0
$\begingroup$

Rosanswers logo

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.


Originally posted by DanielAkaAhboon on ROS Answers with karma: 21 on 2012-05-13

Post score: 2

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

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.


Originally posted by Stefan Kohlbrecher with karma: 24361 on 2012-05-13

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by DanielAkaAhboon on 2012-05-14:
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?

Comment by Stefan Kohlbrecher on 2012-05-15:
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?

Comment by DanielAkaAhboon on 2012-05-16:
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.

Comment by Stefan Kohlbrecher on 2012-05-17:
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.

Comment by Andreluizfc on 2018-01-04:
@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?

Comment by Stefan Kohlbrecher on 2018-01-05:
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).

$\endgroup$
0
$\begingroup$

Rosanswers logo

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!


Originally posted by jwrobbo with karma: 258 on 2012-05-14

This answer was NOT ACCEPTED on the original site

Post score: 1


Original comments

Comment by DanielAkaAhboon on 2012-05-14:
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.

Comment by DanielAkaAhboon on 2012-05-14:
Regarding the filtering of point cloud, may I know where can I learn to use it?

$\endgroup$

Your Answer

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