Using the ScanMatching (ICP) module within the RawLogViewer

This page describes the basic parameters of the ICP algorithm, whose effects can be visually verified with the help of this GUI application.

1. Purpose of this module

This module of the RawLogViewer application is a graphical front-end to the ICP algorithms implemented in the MRPT C++ library. Basically, two sensory frames from the currently loaded rawlog are aligned using the class:

after setting a bunch of parameters which can be modified by the user.

This module can be used to try the performance of the ICP algorithms as the parameters are changed, which is interesting to obtain parameters tunned for some concrete application, or just as a didactic experience. Optionally, the iterations can be seen visually as an animation.

2. Experiments with videos

Note that in the “animate” mode the execution of ICP is intentionally carried out more slowly to ease the step-by-step visualization, though the normal operation usually takes just a few milliseconds.

In this first experiment we can see how the threshold value for the maximum distance for establishing a correspondence between the two maps strongly limits the attainable adjustment that the ICP algorithm can perform from the initial position: in a first trial, a threshold of 0.75m is not enough to lead the algorithm to convergence, but it does quickly by changing the threshold to 2.5m.

This second video just demonstrates the two reference maps that our ICP implementation can handle: a map of points, or a grid map. In this later case, correspondences are established by matching laser points to occupied cells in the grid.