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

viso2_ros shows "Visual Odometer got lost!"

asked 2013-05-15 22:50:54 -0500

moyashi gravatar image

Hi, everyone.

I'm trying to have a visual odometry with viso2_ros.
I got some warning and viso2_ros doesn't work well.
Could you give me some advice ?

I've already finished followings.

  1. With usb_cam, camera_calibration and stereo_image_proc, got stereo rectified images
  2. With image_view, confirmed that disparity image is published
  3. With viso2_ros(stereo_odometer) and rviz, confirmed that viso2_ros publish pose and odometry and it is shown in rviz
  4. With rqt_graph, checked that usb_cam, stereo_image_proc and stereo_odometer(viso2) are connected correctly

The problem is occur when a robot which has stereo camera is moved manually.
When the robot is moved, I get warning "Visual Odometer got lost!"
and the pose shown in rviz changes slightly.

For example, the pose changes only 5deg or so even if I rotate the robot to 90deg.

How can I solve this problem ?
Thanks in advance.

OS: Ubuntu 12.04
ROS distro: Groovy
Camera: Logicool USB Web cam(C600) X 2

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2013-05-16 11:41:28 -0500

Stephan gravatar image

The viso2_ros stereo_odometer prints this error when the call to VisualOdometryStereo::process() fails. This can have several reasons. If your cameras are not perfectly synchronized (e.g. through a trigger cable), you could try to relax the match_disp_tolerance threshold. If you subscribe to the stereo_odometer/point_cloud topic in rviz, you can see the 3D positions of the features that the stereo_odometer uses. There should be a fair amount of points.

edit flag offensive delete link more


Thank you! I set the parameter bigger(20), but the warning still appear. I'm not sure that all parameters are set correctly. If camera is towards to front of the robot, x axis of camera frame is along to x axis of the robot, right? Camera frame is attached to a left camera, isn't it?

moyashi gravatar image moyashi  ( 2013-05-16 17:14:05 -0500 )edit

If the camera looks forward, the robot's x axis coincides with the camera's z axis and the robot's y axis coincides with the camera's negative x axis. The camera coordinate system is defined as seen in the top image here:

Stephan gravatar image Stephan  ( 2013-05-20 06:01:08 -0500 )edit

Thank you. I modified tf configuration. However, the warning still appear. Even if I set the param to 100, I have the same situation. Do you have any ideas ?

moyashi gravatar image moyashi  ( 2013-05-20 14:31:43 -0500 )edit

Does the warning appear several times? I think it's normal to appear once in the first iteration. You can also inspect the message published on the ~info topic, especially the number of matches and the number of inliers.

Stephan gravatar image Stephan  ( 2013-05-21 06:52:58 -0500 )edit

Yes, several times. As you say, I checkd info topic. When the warning appears, the numbers are low. So maybe it is because the environment doesn't have enough features. Thank you.

moyashi gravatar image moyashi  ( 2013-05-26 15:07:31 -0500 )edit

I have exactly the same problem here. When the camera is still, a little motion is found, but when I move the camera I always get a Visual Odometer got lost problem. When I move the camera almost 0 matches and inliners are found. I see the disparity map but not the point cloud, I also have 2 webcams

Javier J. Salmerón García gravatar image Javier J. Salmerón García  ( 2013-06-04 06:48:11 -0500 )edit

Javie: viso2_ros does not use the disparity map but if that looks fine your stereo system is calibrated well. Maybe your cameras have a lot of motion blur? If they use a rolling shutter this could be a problem as well.

Stephan gravatar image Stephan  ( 2013-06-04 06:56:03 -0500 )edit

Question Tools

1 follower


Asked: 2013-05-15 22:50:54 -0500

Seen: 1,470 times

Last updated: May 16 '13