When using Scan Matching ICP for FastSLAM, which is the proper way to use it?

Between the current scan and the previous one, or between the current scan and the stored map?

Can both be used? If so, what are the point of using each one?



1 Answer 1


From my experience what I saw is the following:

-> Using the ICP against the previous reading is generally a way to simply estimate robot motion. This way you can't match against an old reading to close a loop closure, for instance.

-> Matching against the map maybe slower(if the map is not stored correctly), but offers the possibility to verify if you passed by someplace already. This offers quite stronger meanings to update the map and the robot pose w.r.t. the inertial frame. Also, matching against the map may reduce robot's pose uncertainty, specially in FastSLAM2.0. Remember PFs are multimodal by nature, and is always good to have only one mode.

  • $\begingroup$ Thank you very much @Akindart for the answer. I still have a doubt. If we are referencing against a stored map, would't we be adding an error to the ICP since the gridmap is discrete? Do we have to estimate the pointcloud in the gridmap in the center of each cell? Or the way to proceed would be to underestimate a point if it is already in an occupied cell? Thank you for your help. $\endgroup$ Mar 6, 2019 at 17:54
  • 1
    $\begingroup$ From my experience, discrete is always a good answer. When I was studying Rao-Blackwellized PF I've reimplemented gmapping and one of the mistakes I've done was not to use the discretized grid. Remender that range finder sensors have noise and using raw distance is not a good idea. So you can transform the current reading into the grid, pick the center of the squares(as you said) from the reading grid and pick the center of the squares of the map that your robot was supposed to see(Raytracing + Bresenham algorithm) and apply ICP. This way you mitigate noise interference. $\endgroup$
    – Akindart
    Mar 7, 2019 at 1:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.