Gazebo | Ignition | Community
Ask Your Question

How can I dynamically get the coordinate of a model in gazebo?

asked 2017-03-27 06:33:49 -0500

Turtle gravatar image

I'm using Gazebo/ROS with TurtleBot. My robot needs to find the distance from itself to all the obstacles that exist in the environment while it is moving. I believe Laserscan has this information, but I am not sure how can I get the position of the models from Gazebo and reuse them in ROS with rospy. Can someone help me with some examples/tutorials?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2017-04-03 09:20:11 -0500

jetdillo gravatar image

If you are running the gazebo_ros_laser plugin(or similar), it publishes a sensor_msgs/LaserScan.msg to /scan just like a real laser in ROS. Check out the LaserScan Message page for details on the format of the messages published by the /scan topic. One of the data elements in a LaserScan.msg is an array of range values:

float32[] ranges

This has the range data you're probably looking for. It's up to you/your code to determine how to use it, what makes up an object, filter out noise, etc.

You can find the position of the TurtleBot by subscribing to the /tf topic: (About which see here and here, and of course, The ROS Wiki tf Tutorial)

If you don't know how to work with the rospy publish/subscribe framework, there are tutorials on Writing Publishers and Subscribers in Python

HTH and please mark this as an answer if it helped you!

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2017-03-27 06:26:31 -0500

Seen: 3,027 times

Last updated: Apr 03 '17