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

Revision history [back]

click to hide/show revision 1
initial version

What is your TF tree? ($ rosrun tf view_frames)

As the error is saying, odometry cannot transform frame left to frame base_link. You may want to add a static transform between camera_link and left as this:

<arg name="pi/2" value="1.5707963267948966" />
<node if="$(arg use_static_transform)" pkg="tf" type="static_transform_publisher" name="camera_optical" 
      args="0 0 0 -$(arg pi/2) 0 -$(arg pi/2) /camera_link /left 100" />

... so you have base_link -> camera_link -> left.

Note that you don't need to pre-synchronize as stereo_odometry and rtabmap nodes can do it directly with approx_sync:=true. But yes, if you pre-syncrhonize and set the same timestamp on all image/camera_info topics, you can use approx_sync:=false for odometry and rtabmap. If you have poor results after that, it may be caused by bad stereo rectification and/or synchronization. You may add to your question an example of left/right images to see if they seem correctly rectified at least.

I strongly suggest that you get a real stereo camera that does stereo hardware (not software!) synchronization to get good results when the robot is moving.

cheers,

Mathieu

What is your TF tree? ($ rosrun tf view_frames)

As the error is saying, odometry cannot transform frame left to frame base_link. You may want to add a static transform between camera_link and left as this:

<arg name="pi/2" value="1.5707963267948966" />
<node if="$(arg use_static_transform)" pkg="tf" type="static_transform_publisher" name="camera_optical" 
      args="0 0 0 -$(arg pi/2) 0 -$(arg pi/2) /camera_link /left 100" />

... so you have base_link -> camera_link -> left.

Note that you don't need to pre-synchronize as stereo_odometry and rtabmap nodes can do it directly with approx_sync:=true. But yes, if you pre-syncrhonize and set the same timestamp on all image/camera_info topics, you can use approx_sync:=false for odometry and rtabmap. If you have poor results after that, it may be caused by bad stereo rectification and/or synchronization. You may add to your question an example of left/right images (as well as the disparity image generated from stereo_image_proc) to see if they seem correctly rectified at least.

I strongly suggest that you get a real stereo camera that does stereo hardware (not software!) synchronization to get good results when the robot is moving.

cheers,

Mathieu