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

Use of Kinect as a Stereo camera for Visual Odometry

asked 2013-01-14 23:45:38 -0600

Karan gravatar image

updated 2016-10-24 09:10:59 -0600

ngrennan gravatar image

I wanted to use my Kinect Camera with a stereo vision node which estimates visual Odometry. The package is viso2_ros link text . I use openni_launcher package to get Kinect data. According to Openni_launch package's documentation link text i can use kinect data for stereo nodes(under IR projector paragraph in above link( Fuerte Tab))..

Now the problem is that what should i take as left camera and what as right camera..? And also accordingly what input images..

I have tried various frames but i always get.."[ WARN] [1358249627.907026303]: Visual Odometer got lost!"

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2013-01-15 00:09:14 -0600

Stephan gravatar image

updated 2013-02-14 02:36:53 -0600

Unfortunately viso2_ros does not support RGBD cameras (yet). The input for the viso2_ros stereo node must be two images from left and right camera.

The underlying library libviso2 would have to be modified a lot to support it.

Up to now there exist interfaces for mono odometry and for stereo odometry.

To support RGBD odometry, one would have to create a similar interface for image+depth input. The math would be the same as for stereo odometer but the matcher would have to be extended. You are very welcome to add this feature!

Another option would be to use the mono odometer of viso2_ros (with all its drawbacks) using just the RGB camera or use other packages that are especially designed for RGBD cameras, e.g. RGBDSLAM.


If you are looking for an RGBD odometry, fovis was especially designed to work with the Kinect. Unfortunately there is no "official" ROS wrapper for that library (yet), but it should be simple to write one.

EDIT2: We just released fovis_ros, a wrapper for the above mentioned library. This one works with stereo cameras as well as RGBD cameras such as the Kinect.

edit flag offensive delete link more


According to openni_launch documentation i can use CameraInfo of rgb/depth/Ir frames for stereo. I can change that in stereo_processor.cpp file in viso2_ros so that it subscribes to correct topics.... What is the problem because of which the two input images do not work with viso2_ros package ??

Karan gravatar image Karan  ( 2013-01-15 00:21:32 -0600 )edit

Also what can i do to add the feature...??

Karan gravatar image Karan  ( 2013-01-15 00:22:02 -0600 )edit

The node is not the problem, it is the underlying library that lacks support for RGBD. I modified the answer to clarify this.

Stephan gravatar image Stephan  ( 2013-01-15 00:48:01 -0600 )edit

Ok so if RGBD wont work... Can rgb mono image and ir mono image work...?? Also there is disparity image in topics being published by openni_launch..can that be of some use??

Karan gravatar image Karan  ( 2013-01-15 00:51:42 -0600 )edit

The stereo odometer tries to match like this: current left image -> current right image -> previous right image -> previous left image -> current left image. Taking images from different modalities for left and right image make no sense and would not work. Please read the referenced paper!

Stephan gravatar image Stephan  ( 2013-01-15 01:13:23 -0600 )edit

In what other ways can i get visual odometry for Kinect..?

Karan gravatar image Karan  ( 2013-01-15 01:18:16 -0600 )edit

@Stephan will ur package work in ros indigo?

mruniverse gravatar image mruniverse  ( 2015-11-07 14:00:02 -0600 )edit

Question Tools


Asked: 2013-01-14 23:45:38 -0600

Seen: 2,193 times

Last updated: Feb 14 '13