Application: pf-localization

See also: ROS package mrpt_localizationros

The application pf-localization implements a particle filter for localization (aka Markov Localization) of a mobile robot given odometry, a map of the environment and any number and combination of sensor observations such as a likelihood can be computed given the map. This generic implementation is possible through the generic design of metric maps in the MRPT C++ libraries.

1. Overview

The application pf-localization implements a particle filter for localization (aka Markov Localization) of a mobile robot given odometry, a map of the environment and any number and combination of sensor observations such as a likelihood can be computed given the map. This generic implementation is possible through the generic design of metric maps in the MRPT C++ libraries. One typical situation is 2D laser scans used against an occupancy grid map. Note that the program can handles both action-observation and observations-only datasets (since MRPT 0.9.3), but the action-observation is preferred. The application processes all data from a rawlog: it is not intended for real-time operation on a robot, though the source code requires little modification to do so.

2. C++ classes

If you are more interested in the C++ API of Monte Carlo localization than in this front-end application, see:

See also the description of the generic particle filtering algorithms and their corresponding C++ virtual classes.

3. Invokation

With the configuration file as the only argument:

With a configuration file and a rawlog file as input dataset (in this case the field “rawlog_file” in the configuration file is ignored):

4. Examples

Read the configuration file in ”share/mrpt/config_files/pf-localization/localization_demo.ini’‘ for an example.

Results for global localization: