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

# How does gmapping detect loop closure?

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 close merge delete

2

Its through the ICP (iterative closest point) scan matching technique. Read [here].(http://en.wikipedia.org/wiki/Iterative_closest_point)

( 2014-12-18 18:21:32 -0500 )edit
1

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?

( 2014-12-19 03:24:18 -0500 )edit
1

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

( 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?

( 2023-04-15 01:40:04 -0500 )edit

Sort by ยป oldest newest most voted

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.

Check rbpf slam tutorial . Pictures is from these slides.

more

1

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

( 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.

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