Mobile Robot Programming Toolkit (MRPT) provides C++ developers an extensive, portable and well-tested set of libraries and applications which cover the most common data structures and algorithms employed in a number of mobile robotics research areas: localization, Simultaneous Localization and Mapping (SLAM), computer vision and motion planning (obstacle avoidance).
Key points in the design of MRPT are efficiency and reusability of code. The libraries include classes for easily managing 3D(6D) geometry, probability density functions (pdfs) over many predefined variables (points and poses, landmarks, maps), Bayesian inference (Kalman filters, particle filters), computer vision, SLAM, path planning and obstacle avoidance, 3D visualization of all kind of maps (points, occupancy grids, landmarks, graphs, ...), etc. Gathering, manipulating and inspecting very large robotic datasets (Rawlogs) efficiently is another goal of MRPT, supported by several classes and applications.
A proper and up-to-date documentation is another of the major goals of MRPT developers. Currently there are dozens of examples and several single-topic tutorials. A currently on-going project is devoted to write a "MRPT book" tutorial.
The MRPT is free software and it is released under the 3-clauses BSD License.
An up-to-date list of hardware and robotic sensors currently supported by MRPT is maintained here.
For an overview of MRPT performance, there is a benchmark updated for each released version here.
More about the authors and contributors here.
Some statistics: Currently (Jun 2011), the MRPT project comprises >1900 source files, and >750 KLOC.
Some videos on MRPT-based projects (see all videos):