Mobile Robot Programming Toolkit

The Mobile Robot Programming Toolkit (MRPT) is a cross-platform and open source C++ library aimed to help robotics researchers to design and implement algorithms related to Simultaneous Localization and Mapping (SLAM), computer vision and motion planning (obstacle avoidance). Different research groups have employed MRPT to implement projects reported in some of the major robotics journals and conferences.

MRPT is open source and distributed under the New BSD License. Versions prior to 1.0.0 were released under the GPL.

Some features included in the project as user-applications:
 * Visualization and manipulation of large datasets.
 * SLAM algorithms: incremental mapping with ICP, Extended Kalman filtering, Rao-Blackwellized particle filters and GraphSLAM.
 * Grabbing datasets from robotic sensors.

Upon a selection of the individual libraries provided by MRPT, users can develop new applications.

MRPT participated in Google Summer of Code in 2016–2018.

Representation of metric maps
Through polymorphism in the design of metric-map classes, observations (such as a laser scans) can be inserted into a grid-map or a map of points, or both simultaneously, transparently to the user.

The following representations of metric maps are implemented:
 * Occupancy grid maps.
 * Point maps.
 * Landmark maps: discrete elements are 3D points sensed through range and bearing. For example, visual landmarks.
 * Beacon maps: elements are also 3D points, but sensed by means of range-only devices.
 * Coloured point maps.
 * Gas concentration maps.
 * A "multi map", collections of any of the other maps, behaving as a single map.