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

SLAM with a camera without odometry

asked 2017-01-13 07:04:46 -0600

pallavbakshi gravatar image

I am new to the computing world. I recently bought a Kinect v2 for windows for making a self-driving car to navigate in the indoor areas. I have a small RC car with simple functionalities of start, stop, right, left, backward but without any sensors mounted on the car. The car doesn't provide any data about the number of rotations or other odometry related data. Q1. Is there any particular SLAM that can be helpful to solve the above problem given the constraints of camera being Kinect v2 and a car without odometry?

Since, I intend to use the car in the indoor areas therefore the map of the environment is quite fixed (constant). I plan to create a map of the environment using kinect v2 and then later on compare the real time movement against that map in order to navigate. I found Hector SLAM as an alternate to gmapping but it uses laser scanner. Q2. Can I fake the kinect v2 camera as a laser scanner for Hector SLAM?

Q3. Kinect v2 requires AC power which stops the car from being a true autonomous driving RC car. Is there any way around that?

All suggestions are welcome :D

Note - Kinect v2, Hector SLAM, gmapping, turtle bot

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2017-01-16 17:08:06 -0600

petern3 gravatar image

Question 1

There is a library called RGBDslam which can use the Kinect, and doesn't require odometry. This has been tested on Fuerte and Indigo, and the github repository also has a Kinetic branch.

For the ros wiki page:

For the github repo:

Question 2

I assume if the above works you don't need to fake the laser scanner?

Question 3

According to a forum, the power supply is rated for 12V, 2.67A. 12V batteries are not uncommon, but you'll have to be a bit more careful about the 2.67A rating. You may also need to solder your own connectors.

edit flag offensive delete link more


Hi @petern3,

thank you so much for your answer. I am trying to use RGBDSlam as well. Will update the results if it works. Do you have any idea about how can I create a 2D map using RGBDSlam and can we use that map with the ROS navigation stack?

pallavbakshi gravatar image pallavbakshi  ( 2017-01-17 03:36:29 -0600 )edit

I've had a quick look around, and found , which should be able to be used with something like gmapping. There's also this tutorial, although it may be outdated.

petern3 gravatar image petern3  ( 2017-01-18 20:24:43 -0600 )edit

If you're just doing this, then you won't need to use RGBDslam. It's a good option, as 2D path-planning is much easier.

petern3 gravatar image petern3  ( 2017-01-18 20:27:39 -0600 )edit

I think I will be going with gmapping. I had another question about gmapping with Kinect v2 though. I was confused about the drivers. Do I need iai_kinect2 as well? I have already installed libfreenect2 though.

pallavbakshi gravatar image pallavbakshi  ( 2017-01-21 10:33:26 -0600 )edit

I haven't used the Kinect myself, so I don't know for sure. If you can't get the depth stream from the camera you could try installing both, otherwise I think openni2 will do the trick.

petern3 gravatar image petern3  ( 2017-01-22 13:50:40 -0600 )edit

answered 2017-01-13 08:19:45 -0600

Hi There,

I'm not sure what the best solution to your localisation problem is but it's non trivial. The laser scanner input used by Hector SLAM is a 2D line scanning LIDAR, whereas the kinect V2 is a full 3D RGBD sensor. You could simply take the central horizontal line of samples from the Kinect frame and feed that into Hector SLAM which would work in a mostly 2D envrionment. But you'd be using less than 1% of the data from the kinect for this. I may be wrong but I don't think there's an out of the box solution for full 3D SLAM in ROS at the moment.

Secondly about the power supply for the Kinect, I assume you mean there's an AC power pack that feeds DC power into the Kinect sensor itself. I've not seen one in the flesh but, this is how 99% of these things work. You'll have to find out what voltage and how many amps the Kinect needs and find a DC-DC power converter to produce this voltage from the battery that your RC car has. Then you'll have a fully mobile robot.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2017-01-13 07:04:46 -0600

Seen: 1,569 times

Last updated: Jan 16 '17