ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org

# gmapping with vo and arbotix

Hi I am using gmapping with vo data and the vo data shows up fine but it is not connected to the robotmodel (fake turtlebot) so the model doesn't move on rviz. I would like the model to move as I move the kinect camera using the vo data. How can I achieve this transform? I have read the tutorials but I am still confused. I would upload my frames view but I dont have sufficient karma, thanks.

edit retag close merge delete

Sort by » oldest newest most voted

The RobotModel display in rviz moves based on input from /tf messages. You need to check your tf tree and the "fixed frame" in rviz. The default fixed frame in rviz is "map", which should work fine if it matches the map_frame you gave to gmapping (default is also "map", so should be OK). If you've set the "fixed frame" in rviz to "base_link" the robot won't move. If you set it to "odom" (or whatever you are calling the base frame for integrating your visual odometry data), you should see the robot move with the pose estimated only by vo.

There are several tools to investigate tf problems:

tf_monitor runs in a shell and displays all the tf transforms coming in:

rosrun tf tf_monitor


rqt_tf_tree is an rqt plugin which shows a graphical version of the tf tree:

rosrun rqt_tf_tree rqt_tf_tree


Then there's tf_echo, which just continuously spits out a single transform between two requested frames:

rosrun tf tf_echo map base_link


Whichever method you use, you need to get to a point where the tf tree includes both "map" and "base_link" (or whatever you are calling your map frame and your robot base frame) in a single tree.

gmapping by default publishes a transform between frame "odom" and frame "map", and listens to the transform from "odom" to "base_link". If you are using a different tf frame name for any of those, you'll need to tell gmapping by setting rosparams for it.

more

Thank you for the information, I ended up solving, (I still need to test) the problem by running a robot_pose_ekf to transform the vo information as the odom -> base_link tf was dodgy or maybe I just got the wrong end of the stick. Also view_frames is useful if anyone else needs it.

( 2013-07-15 11:17:39 -0600 )edit