Mobile Robot Programming Toolkit
Encyclopedia
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 applied it to implement projects reported in some of the major robotics journals and conferences
.
MRPT is open source
and distributed under the GPL.
Some features included in the project as user-applications:
Upon a selection of the individual libraries provided by MRPT, users can develop new applications.
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:
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
library aimed to help robotics researchers to design and implement algorithms related to Simultaneous Localization and Mapping
Simultaneous localization and mapping
Simultaneous localization and mapping is a technique used by robots and autonomous vehicles to build up a map within an unknown environment , or to update a map within a known environment , while at the same time keeping track of their current location.- Operational definition :Maps are used...
(SLAM), computer vision
Computer vision
Computer vision is a field that includes methods for acquiring, processing, analysing, and understanding images and, in general, high-dimensional data from the real world in order to produce numerical or symbolic information, e.g., in the forms of decisions...
and motion planning
Motion planning
Motion planning is a term used in robotics for the process of detailing a task into discrete motions....
(obstacle avoidance). Different research groups have applied it to implement projects reported in some of the major robotics journals and conferences
.
MRPT is open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
and distributed under the GPL.
Some features included in the project as user-applications:
- Visualization and manipulation of large datasets.
- Off-line SLAM algorithms, using ICPIterative Closest PointIterative Closest Point is an algorithm employed to minimize the difference between two clouds of points. ICP is often used to reconstruct 2D or 3D surfaces from different scans, to localize robots and achieve optimal path planning , to co-register bone models, etc.The algorithm is conceptually...
, Extended Kalman filterKalman filterIn statistics, the Kalman filter is a mathematical method named after Rudolf E. Kálmán. Its purpose is to use measurements observed over time, containing noise and other inaccuracies, and produce values that tend to be closer to the true values of the measurements and their associated calculated...
ing, or a Rao-Blackwellized particle filter. - Grabbing datasets from robotic sensors.
Upon a selection of the individual libraries provided by MRPT, users can develop new applications.
Representation of metric maps
Through polymorphismPolymorphism in object-oriented programming
Subtype polymorphism, almost universally called just polymorphism in the context of object-oriented programming, is the ability to create a variable, a function, or an object that has more than one form. The word derives from the Greek "πολυμορφισμός" meaning "having multiple forms"...
in the design of metric-map classes, observations (such as a laser scans) can be inserted into a grid-map
Occupancy grid mapping
Occupancy Grid Mapping refers to a family of computer algorithms in probabilistic robotics for mobile robots which address the problem of generating maps from noisy and uncertain sensor measurement data, with the assumption that the robot pose is known....
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 landmarksInterest point detectionInterest point detection is a recent terminology in computer vision that refers to the detection of interest points for subsequent processing...
. - 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.
See also
- WebotsWebotsWebots is a professional robot simulator widely used for educational purposes.The Webots project started in 1996, initially developed by Dr. Olivier Michel at the Swiss Federal Institute of Technology in Lausanne, Switzerland....
- A Professional Mobile Robot Simulator (Commercial) - Microsoft Robotics StudioMicrosoft Robotics StudioMicrosoft Robotics Developer Studio is a Windows-based environment for robot control and simulation. It is aimed at academic, hobbyist, and commercial developers and handles a wide variety of robot hardware....
- Player ProjectPlayer ProjectThe Player Project is a project to create free software for research into robotics and sensor systems . Its components include the Player network server and Stage and Gazebo robot platform simulators...
- Robot softwareRobot softwareRobot software is the coded commands that tell a mechanical device what tasks to perform and control its actions. Robot software is used to perform tasks and automate tasks to be performed. Programming robots is a non-trivial task...
- openslam.org - A good collection of open source code and explanations of SLAM.
- ArduinoArduinoArduino is an open-source single-board microcontroller, descendant of the open-source Wiring platform, designed to make the process of using electronics in multidisciplinary projects more accessible. The hardware consists of a simple open hardware design for the Arduino board with an Atmel AVR...