ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

vslam does not publish visual odometry data .

asked 2011-07-09 04:11:28 -0600

rajat gravatar image

updated 2011-07-09 04:13:24 -0600

The vslam seems to work fine for stereo stream but The topic /vo is advertised but it is not published , and i can see no output when i do : rostopic echo /vo

So what might be wrong ?

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2011-08-30 04:54:49 -0600

Thomas D gravatar image

updated 2011-08-30 04:59:53 -0600

See this question for initial setup, synchronization, etc. Then modify line 159 of vslam_system/src/nodes/stereo_vslam_node.cpp to have if(1). After that there are three crucial steps:

  1. Create a URDF for your robot that has a base_link. It is useful to have a camera_base link somehow connected to base_link for later steps.

  2. You will have to have a node that broadcasts a transform from base_link to odom. See REP 105 for more information about the map -> odom -> base_link transforms. This node also needs to listen for the transform between base_link and visual_odom. Note that visual_odom is the frame_id and base_link is the child_frame_id in vslam_system/src/nodes/stereo_vslam_node.cpp.

  3. When starting your camera nodes they must both have frame_id set to camera_base if that is what you have in your URDF. If your URDF only has a base_link then you can set the frame_id to base_link.

When you have your robot model loaded in Rviz along with the nodes to (i) run your cameras and (ii) publish the transform between base_link and visual_odom, then you should see point clouds and camera poses appear in Rviz. I have not seen it work well either.

Also, this ticket has a patch that I recommend applying to fix a big memory leak.

edit flag offensive delete link more

answered 2011-07-12 22:09:37 -0600

philippp625 gravatar image

updated 2011-07-12 22:10:33 -0600

I did the following:

in the file vslam_system/src/nodes/stereo_vslam_node.cpp

go to line 159 and replace "if (0)" by "if (1)"

(then do a rosmake vslam_system)

edit flag offensive delete link more

answered 2011-07-12 23:03:46 -0600

rajat gravatar image

updated 2011-07-12 23:24:39 -0600

I also did the same initially , I changed if(0) to if(0==0),

but again no /vo data , but after making this modification it gives some warning repeatedly

[ WARN] [1310556168.629240179]: Frame id /base_footprint does not exist!
 When trying to transform between /base_footprint and /stereo_frame.
edit flag offensive delete link more

Question Tools



Asked: 2011-07-09 04:11:28 -0600

Seen: 411 times

Last updated: Aug 30 '11