0
$\begingroup$

Rosanswers logo

I've been experimenting with fovis and viso2 in order to acquire visual odometry using the Kinect and Phidgets IMU. I noticed that the parameters are pretty much the same for both packages. Can anyone tell me which one they prefer and why?


Originally posted by ee.cornwell on ROS Answers with karma: 108 on 2013-03-12

Post score: 5


Original comments

Comment by joq on 2013-03-12:
Which works better for you?

Comment by ee.cornwell on 2013-03-12:
I'm getting better results from fovis_ros because it uses both depth and rgb. There are tf issues if you rely on the tf odom->base_link that fovis publishes. Errors arise if the messages are not perfectly in sync...

Comment by Stephan on 2013-03-12:
Please report any bugs regarding fovis_ros here.

Comment by ee.cornwell on 2013-03-12:
I don't think the bug is in fovis_ros necessarily. The time stamp syncing between messages becomes delayed via a main launch file that launches every node for the robot. I believe this is the processor's fault. To compensate, I added a rate.sleep() in the odometer_base.hpp, increased the queue...

Comment by ee.cornwell on 2013-03-12:
...to 10 and changed how fast the WallDuration was requesting synchronization.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

One of the main differences is that fovis_ros supports mono+depth input as well as stereo and viso2_ros supports mono and stereo (but no mono+depth). If you use just a kinect, you will likely get better results using fovis_ros as with viso2_ros you can only use the mono_odometer which has several drawbacks (needs features on the floor and needs to know pitch and height of camera). If you use a stereo camera you can try both algorithms and look which works best for you.

fovis_ros offers a little more introspection which eases the tuning of parameters (compare FovisInfo to VisoInfo). It also has keyframe selection built in. For viso2_ros we hacked a solution to prevent drift on top of the library which is not very well tested.

Long story short: If you have a kinect, use fovis_ros. If you have a stereo camera, try both and look what works best for you. If you have a mono camera, use viso2_ros.

Hope that helps!


Originally posted by Stephan with karma: 1924 on 2013-03-12

This answer was ACCEPTED on the original site

Post score: 6


Original comments

Comment by ee.cornwell on 2013-04-17:
I actually started using ccny_rgbd and it has proved to be a nice complement to wheel encoder odometry. It is very lightweight which is desirable for my system and doesn't throw a lot of warnings and errors.

$\endgroup$

Your Answer

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