icp-slam is a front-end application to the MRPT C++ library class mrpt::slam::CMetricMapBuilderICP. This SLAM algorithm builds a map incrementally by aligning new range scans to either a point point or an occupancy grid map using the ICP algorithm. The ICP implementation itself can be found in the class mrpt::slam::CICP. See this tutorial describing the algorithm.
To run one of the demos included in MRPT, execute:
$ cd MRPT/share/mrpt/config_files/icp-slam/ $ icp-slam icp-slam_demo_classic.ini
or to use that same configuration with your own data set:
$ icp-slam icp-slam_demo_classic.ini YOUR_DATASET.rawlog
Check out the comments in the configuration files provided in MRPT/share/mrpt/config_files/icp-slam/ for further reference. Note that both ICP can be configured to use either a points or occupancy grid map to perform the scan alignment. And even using one of them, the other map type can be also built simultaneously.
NOTE: The rawlog "2007-05MAY-17_SENA_Floor2.3_1laser.rawlog" used in the demo video below is not included by default in the MRPT package, please grab it separately from the collection of datasets (this one).
Please, refer to the examples in MRPT/share/mrpt/config_files/icp-slam/.