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.
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.
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.
With the configuration file as the only argument:
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):
pf-localization PATH_TO_CONFIG_FILE PATH_TO_DATASET
Read the configuration file in ''share/mrpt/config_files/pf-localization/localization_demo.ini'' for an example.