Ask Your Question

viso2 camera configuration

asked 2013-05-19 23:09:13 -0600

moyashi gravatar image

Hi, I'm trying to use viso2(viso2_ros).
Especially, I'm interested in stereo odometer.

I've already read wiki(
and tried to setup correctly as I mentioned here(See screenshot or reffer to
image description

But, it doesn't work well.
I have some questions as followings.
If you have some ideas, could you tell me answers ??

  1. Does "/camera" frame mean coodinate fixed in left camera ?
  2. camera_frame_id for left camera and camera_frame_id for right camera are the same ?
  3. Transformation from the robot's reference point (base_link in most cases) to the camera's optical frame should be published. In this case, does camera's optical frame mean left camera's one ?
  4. I calibrated stereo camera with "camera_calibration" package( Is it all right ?
  5. In wiki, viso2_ros is said that it requires a wide angle camera.
    I'm using logicool Webcam C600 whose angle is 75[deg]. Is it enough ?
  6. I can see estimated pose in rviz. However, it gradually directs upward(See screenshot). Why ? Should I set the camera downward slightly(For example, 10[deg]) ? (

image description

Thank you in advance.

edit retag flag offensive close merge delete


Thank you for editting this topic's name !

moyashi gravatar image moyashi  ( 2013-05-20 14:26:19 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2013-05-20 06:32:06 -0600

Stephan gravatar image
  1. Yes
  2. Yes
  3. Yes
  4. Yes
  5. Depends on your environment, I think 75deg. will work fine. We haven't tested the algorithm using webcams, we're using PointGrey Bumblebee2 stereo cameras. The authors of the libviso2 core library use this custom setup:
  6. On your screenshot it looks like the tf from base_link to left_camera is setup correctly. Try to reset the odometer (call the stereo_odometer/reset_pose service). This should set the odom->base_link tf to zero. From the camera image seen in your screenshot I would recommend pointing the camera slightly upwards as the floor does not have many features and the reflections might confuse the algorithm. Of course you'll have to introduce that physical change in your base_link->left_camera static transform.

I recommend to check out also our wrapper for fovis:

Please note that visual odometers have major limitations. If there are not enough features in the scene or the images are not well synchronized or the image is blurry or the baseline is to short for the depth of the scene or ... it will not work well. It is always better to fuse it with an IMU and/or wheel odometry.

edit flag offensive delete link more


Thank you for your answer ! I used fovis with xtion PRO Live instead of viso2 and it works well !! It's easy to use and robust.

In this phase, covariance values are not published. In future will it be supported ??

moyashi gravatar image moyashi  ( 2013-05-26 15:01:53 -0600 )edit

And viso2 with stereo camera didn't work well. I think stereo camera configuration's error cause this situation. I set camera's position roughly a little bit.

moyashi gravatar image moyashi  ( 2013-05-26 15:09:48 -0600 )edit

Regarding the covariance matrix: The library supports covariance computation but what is missing is propagating that information through ROS. Computing robot motion (base_link) coviariance from camera motion covariance is the difficult step. Unfortunately I have no time to work on that.

Stephan gravatar image Stephan  ( 2013-05-28 06:40:02 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2013-05-19 23:09:13 -0600

Seen: 1,933 times

Last updated: May 20 '13