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?
Thanks.
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?
Thanks.
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.
Thank you for your help.
– Guille Sanchez Mar 06 '19 at 17:54Remender 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.
– Akindart Mar 07 '19 at 01:02