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

Kinect doing Hector Slam

asked 2012-05-13 22:48:44 -0500

DanielAkaAhboon gravatar image

updated 2016-10-24 09:03:55 -0500

ngrennan gravatar image

Hi all. I'm currently doing a project in school regarding 2D mapping. I'm given a Kinect only. After some trying, I'm able to get a map out of it, using hector_slam and fake_laser codes. However, with any fast movement ( actually not that fast ), the map will just be totally ruined. Moreover, even if the kinect is stationary, it will appear to be vibrating. During the process of mapping, it is also very prone to drifting which caused distortion to the map. May someone please tell me how can I improve on this, will an IMU improve the process of mapping? My task is to do something similar to this : link, but using a Kinect instead. Help and guidance will be extremely appreciated as this project is very important to me.

edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted
1

answered 2012-05-13 23:45:30 -0500

Hi Daniel, the comparatively short range, high noise and low field of view of the Kinect data make it hard to use with a unmodified version of hector_mapping (see also this related Q/A). There are some possibilites for improvement, but I'm currently unable to work in this direction. Approaches like RGB-D SLAM better leverage the kind of data the Kinect produces, but OTOH have much higher CPU requirements.

edit flag offensive delete link more

Comments

Thanks for the advice. Previously I tried using the RGB-D-SLAM, however the CPU requirements is too high for the PC104 that is given by the school for this project.Will an IMU stablize the mapping so that it would not drift out too much?

DanielAkaAhboon gravatar image DanielAkaAhboon  ( 2012-05-14 18:30:33 -0500 )edit

Low cost MEMS accelerometers are very noisy and of not much use for estimating translational velocities or positions, so there's not immediate, easy gain to get from them. How large is your scenario and how many features does it have?

Stefan Kohlbrecher gravatar image Stefan Kohlbrecher  ( 2012-05-15 04:05:14 -0500 )edit

Sorry, as a beginner, I don't really get what you meant by scenario and features.. If you are referring to the area that I'm suppose to map, it is a classroom. As for the IMU I'm given CH Robotics UM6 IMU.

DanielAkaAhboon gravatar image DanielAkaAhboon  ( 2012-05-16 16:52:48 -0500 )edit

I meant the general shape and size of the scenario you´re looking at, as well as the amount of unique features (corners, furniture etc. as opposed to just a blank wall) that appears in the Kinect data. For your combination of hardware the problem is very challenging though.

Stefan Kohlbrecher gravatar image Stefan Kohlbrecher  ( 2012-05-17 09:14:31 -0500 )edit

@Stefan I want to do the Mapping with the R200 camera. Do you think that should be good for Hector_mapping? Or should I use GMapping?

Andreluizfc gravatar image Andreluizfc  ( 2018-01-04 00:39:29 -0500 )edit

I think gmapping or cartographer will be better suited for the R200 (for the "fake 2D LIDAR" approach, using Visual SLAM methods would be another option).

Stefan Kohlbrecher gravatar image Stefan Kohlbrecher  ( 2018-01-05 18:26:03 -0500 )edit
1

answered 2012-05-14 00:08:39 -0500

jwrobbo gravatar image

Hi Daniel,

If you haven't seen it already this is quite a good place to start with the type of mapping you're talking about: http://www.hessmer.org/blog/2011/04/10/2d-slam-with-ros-and-kinect/. If sensor noise is a problem you could try filtering the point cloud before you convert it to a laser scan and an IMU probably would help a bit with invariance to sensor motion, possibly with something like an extended Kalman filter.

As Stefan says, another approach would be to use RGBDSLAM, which is what I have been trying to use. This uses computer vision rather than fake laser scan matches and as a result of the extra data available for the matching and some clever optimisation techniques, it gives an excellent 3D representation of the environment in the form of a point cloud. To create a map from this, follow the instructions for using Octomap with it. This gives an efficient 3D map, and also a 2D map as per your requirements. By default the 2D map pancakes features at all heights so if you just need a 2D slice, follow my answer to this question: http://answers.ros.org/question/12995/2d-map-from-octomap

Also, as Stefan mentions, RGBDSLAM is by necessity quite resource intensive. Some ways to speed it up are described in the answer to this question: http://answers.ros.org/question/33310/which-package-is-best-for-slam-and-kinect

Hope that helps!

edit flag offensive delete link more

Comments

Hi and thanks for the advise. Previously I manage to use http://www.hessmer.org/blog/2011/04/10/2d-slam-with-ros-and-kinect/ and made it work with a ground robot, but this time I am not given a robot, only a Kinect and possibly an IMU. I will try using RGBDSLAM again, while speeding it up.

DanielAkaAhboon gravatar image DanielAkaAhboon  ( 2012-05-14 18:41:27 -0500 )edit

Regarding the filtering of point cloud, may I know where can I learn to use it?

DanielAkaAhboon gravatar image DanielAkaAhboon  ( 2012-05-14 18:59:58 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2012-05-13 22:48:44 -0500

Seen: 5,122 times

Last updated: May 14 '12