Mobile Robot Programming Toolkit
Encyclopedia
The Mobile Robot Programming Toolkit (MRPT) is a cross-platform and open source C++
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 ICP
    Iterative Closest Point
    Iterative 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 filter
    Kalman filter
    In 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 polymorphism
Polymorphism 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 landmarks
    Interest point detection
    Interest 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

  • Webots
    Webots
    Webots 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 Studio
    Microsoft Robotics Studio
    Microsoft 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 Project
    Player Project
    The 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 software
    Robot software
    Robot 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.
  • Arduino
    Arduino
    Arduino 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...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK