0
$\begingroup$

Rosanswers logo

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

I've already read wiki(http://www.ros.org/wiki/viso2_ros?distro=groovy(http://www.ros.org/wiki/viso2_ros?distro=groovy))
and tried to setup correctly as I mentioned here(See screenshot or reffer to http://answers.ros.org/question/62872/viso2_ros-shows-visual-odometer-got-lost/)
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(http://www.ros.org/wiki/camera_calibration/Tutorials/StereoCalibration). 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]) ? (http://answers.ros.org/question/44232/stereo-libviso2-doesnt-seem-compute-an-accuracy-odometry/)

image description

Thank you in advance.


Originally posted by moyashi on ROS Answers with karma: 721 on 2013-05-19

Post score: 1


Original comments

Comment by moyashi on 2013-05-20:
Thank you for editting this topic's name !

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

  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: http://www.cvlibs.net/datasets/kitti/setup.php
  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: http://www.ros.org/wiki/fovis_ros

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.


Originally posted by Stephan with karma: 1924 on 2013-05-20

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by moyashi on 2013-05-26:
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 ??

Comment by moyashi on 2013-05-26:
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.

Comment by Stephan on 2013-05-28:
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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.