Why HectorSLAM gets better results from a rosbag that in live time?

asked 2017-05-20 22:48:58 -0500

Diana_Elyza gravatar image

updated 2017-05-30 10:49:27 -0500


I've been doing proves with the turtlebot using the Kinect sensor with HectorSLAM and in live time, and the result was that HectorSLAM could not generate the map of a small environment, because it loses the robot pose by the rotations. I've read that HectorSLAM doesn't work good with the Kinect, so I created a rosbag of /scan and /tf while I was using Gmapping to build a map in live time, and then I used this file to run HectorSLAM with the same parameters that in live time. The surprise for me was that HectorSLAM generated a good map with this file and I still can not understand why? If it supose that the file has the same data that if I run HectorSLAM in live time.

I hope that someone can explain me why happens this situation please. Thanks in advance!!!


I attach the map generated by HectorSLAM in live time: HectorSLAM in live time

The map generated with a rosbag of the same environment: HectorSLAM with rosbag

edit retag flag offensive close merge delete


What sort of CPU are you running this on? Have you monitored the CPU usage of each node to see if you have enough CPU cycles to run the map-building process?

ahendrix gravatar image ahendrix  ( 2017-05-22 13:18:22 -0500 )edit

I've running this with an Intel core i7 with 8 cores and I don't know how to see the CPU usage of each node. Thanks by your attention!

Diana_Elyza gravatar image Diana_Elyza  ( 2017-05-22 13:21:41 -0500 )edit

I might miss something here, but where do you get the scan topic from? From Kinect sensor?

DavidN gravatar image DavidN  ( 2017-05-27 06:43:34 -0500 )edit

And btw, HectorSlam can still work with Kinect if the area is small enough and you do some filtering of data from Kinect

DavidN gravatar image DavidN  ( 2017-05-27 06:44:24 -0500 )edit

Thanks DavidN by your attention!! Then, HectorSLAM does not do the filtering of data? Because I only keep the data from /scan and /tf topics in the rosbag and then I replayed it with the default parameters of the algorithm. I did not do a filtering of data, but the area is small.

Diana_Elyza gravatar image Diana_Elyza  ( 2017-05-29 10:00:13 -0500 )edit

I tried this algorithm with a rosbag that I generated of another environment bigger but HectorSLAM collapsed, it only did a map with the small environment with the rosbag, but it can not generate the map in live time. I can not understand this situation, if it supose that is the same data no? Thanks

Diana_Elyza gravatar image Diana_Elyza  ( 2017-05-29 10:06:04 -0500 )edit

So HectorSLAM collapsed when you used the bag of a big environment? Is it ok if you upload the rosbag so I can try?

DavidN gravatar image DavidN  ( 2017-05-29 21:42:56 -0500 )edit

Thanks again DavidN! HectorSLAM sometimes collapsed with big environments or it generates small portions of the map, but it always loses the robot pose. With small environments, it generates the map with the rosbag, but I stop the replay of the bag when it begins to generate errors.

Diana_Elyza gravatar image Diana_Elyza  ( 2017-05-30 10:53:23 -0500 )edit