Application: icp-slam

1. Description

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.


2. Demo

To run one of the demos included in MRPT, execute:

or to use that same configuration with your own data set:

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


2.1 Video2


2.2 Configuration files

Please, refer to the examples in MRPT/share/mrpt/config_files/icp-slam/


  • dhimas wicaksa

    sorry but im new to SLAM. just want to clarify, ICP slam only use laser output right? or is it also need odometry information? deeply sorry for this shallow question

    • cenbin

      Need odometry information as initial pose.Use the scan observation and odometry information as input of ICP,Then u can get the output which is the current pose.