Application: pf-localization
mrpt_localization
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:
mrpt::slam::CMonteCarloLocalization2D
: For robots moving in 2D; pose=(x,y,phi)mrpt::slam::CMonteCarloLocalization3D
: For robots moving in 3D space; pose=(x,y,z,yaw,pitch,roll)
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:
1 |
pf-localization PATH_TO_CONFIG_FILE |
With a configuration file and a rawlog file as input dataset (in this case the field “rawlog_file” in the configuration file is ignored):
1 |
pf-localization PATH_TO_CONFIG_FILE PATH_TO_DATASET |
4. Examples
Read the configuration file in ”share/mrpt/config_files/pf-localization/localization_demo.ini’‘ for an example.
Results for global localization: