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

Visual (Inertial) Odometry in ROS noetic

asked 2021-04-06 10:28:01 -0600

Hendrik C gravatar image

updated 2021-04-07 10:04:15 -0600

Hello everyone

I am looking for V(I)O algorithms that are available for ROS Noetic. The VO is to be performed with a monocular camera and an IMU. I have already found and tried the following algorithms:

So far I got Viso2 and MSCKF working, however results aren't great. Any ideas for more up-to-date V(I)O would be appreciated!

PS. I am aware some SLAM algorithms also incorporate V(I)O (like RTAB-map and ORB-SLAM2). What I'm looking for is an algorithm that only does V(I)O. This because I want to compare different available algorithms.

Thanks in advance


edit retag flag offensive close merge delete


What do you mean by standalone implementation?

fabian gravatar image fabian  ( 2021-04-07 08:36:49 -0600 )edit

I changed the post to hopefully make it a bit more clear. Basically, I want to compare some V(I)O-techniques with eachother. If it is possible to only use the V(I)O part of ORB-SLAM, than I will take a look at it as well.

Hendrik C gravatar image Hendrik C  ( 2021-04-07 10:02:35 -0600 )edit

You can use only the visual data for ORB slam, but it wont exploit the IMU information. To combine both source of information, did you think of writing a pose graph with edges being created from the IMU data and transformations you calculate from the visual data? Would that work for you?

fabian gravatar image fabian  ( 2021-04-08 01:26:14 -0600 )edit

This is an interesting solution, I'll certainly give it a try. Do you have any knowledge about additional algorithms that I could use? Only having one algorithm in a comparison is not ideal :).

Hendrik C gravatar image Hendrik C  ( 2021-04-08 01:47:16 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2021-04-20 03:44:30 -0600

Hendrik C gravatar image

updated 2021-04-20 03:45:06 -0600

For anyone interested in using these V(I)O (or older software in general), I have solved the issue by using docker. This allows me to run the algorithms on an older version of Ubuntu/ros (Xenial/kinetic in my case). Afterwards, I set up a network between this docker container and my host OS (Focal/noetic). For more info you can check out these tutorials:

I would recommend first looking at some tutorials about docker in general. Otherwise the used concepts will be quite foreign.

edit flag offensive delete link more

Question Tools



Asked: 2021-04-06 10:28:01 -0600

Seen: 1,633 times

Last updated: Apr 20 '21