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

How does gmapping detect loop closure?

asked 2014-12-18 15:06:10 -0500

infiniti gravatar image

I want to know the way to detect loop closure in gmapping package. I couldn't find loop closing method in gmapping papers.

edit retag flag offensive close merge delete



Its through the ICP (iterative closest point) scan matching technique. Read [here].(

AlexR gravatar image AlexR  ( 2014-12-18 18:21:32 -0500 )edit

Thank you for your reply. If loop closure is found, will all historical pose be recalculated? I want to get recalculated pose data. Is there a good method to do that?

infiniti gravatar image infiniti  ( 2014-12-19 03:24:18 -0500 )edit

Hey! did you end up with loop closures? I can't activate it. set resampleThreshold equal to 1, all the same the new map is superimposed on the old one

Kislyy_homyak gravatar image Kislyy_homyak  ( 2021-11-21 06:26:51 -0500 )edit

@infiniti@AlexR@Kislyy_homyak I am unable to get proper loop closure in gmapping slam, I set the resample Threshold equal to 0.8, were you able to solve this?

hunterlineage1 gravatar image hunterlineage1  ( 2023-04-15 01:40:04 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2014-12-19 05:36:23 -0500

bvbdort gravatar image

updated 2014-12-19 05:36:46 -0500

gmappinp Parameter resampleThreshold handles this.

~resampleThreshold (float, default: 0.5) The Neff based resampling threshold

Neff drops in case of loop closures.

gmapping does resampling based on Neff threshold in case of loop closure.

image description

Check rbpf slam tutorial . Pictures is from these slides.

edit flag offensive delete link more



Doesn't seem to work well. What value of Neff do you think is ok?

Orl gravatar image Orl  ( 2022-07-07 05:28:23 -0500 )edit

I tried using a Neff value of 0.8 and it seemed to make things better in terms of updating the map. According to the slides: "We only resample when Neff drops below a given threshold (N/2)" So setting resampleThreshold to 0.8 instead of 0.5 means resampling is done when fewer particles are needed to reach the sampling threshold.

hunterlineage1 gravatar image hunterlineage1  ( 2023-04-13 03:28:46 -0500 )edit

Question Tools

1 follower


Asked: 2014-12-18 15:06:10 -0500

Seen: 4,571 times

Last updated: Dec 19 '14