Application: graphslam-engine
Description
graphslam-engine constructs and optimizes robot pose-graphs from rawlog datasets. This app performs 2D graph-slam: the robot localizes itself in the environment while, at the same time, builds a map of that environment consisting of robot poses and links (relative poses). The MRPT rawlog files should contain (some of) the following observation types:
- CObservationOdometry
- CObservation2DRangeScan
- CObservation3DRangeScan
Currently working with 3DRangeScan is currently in an experimental phase.
An example of using the graphslam-engine application is given below:
Command line options
The available command line arguments are listed below. Alternatively run graphslam-engine -h for the full arguments list.
1 2 3 4 5 6 |
graphslam-engine [--disable-visuals] [--list-optimizers] [--list-regs] [--list-edge-regs] [--list-node-regs][-o ][-e ][-n ][-g <contents.rawlog.GT.txt>][-r <contents.rawlog>] [-i ] [--][--version] [-h] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
--disable-visuals Disable Visualization - Overrides related visualize* directives of the .ini file --list-optimizers List (all) available graphslam optimizer classes --list-regs List (all) available registration decider classes --list-edge-regs List available edge registration decider classes --list-node-regs List available node registration decider classes -o <CLevMarqGSO>, --optimizer <CLevMarqGSO> Specify GraphSlam Optimizer -e <CICPCriteriaERD>, --edge-reg <CICPCriteriaERD> Specify Edge registration decider -n <CICPCriteriaNRD>, --node-reg <CICPCriteriaNRD> Specify Node registration decider -g <contents.rawlog.GT.txt>, --ground-truth <contents.rawlog.GT.txt> Ground-truth textfile -r <contents.rawlog>, --rawlog <contents.rawlog> Rawlog dataset file -i <config.ini>, --ini_file <config.ini> .ini configuration file --, --ignore_rest Ignores the rest of the labeled arguments following this flag. --version Displays version information and exits. -h, --help Displays usage information and exits. |
Important notions
The majority of the graphslam-engine parameters in each case should be specified in an external .ini file which is to be given as a command-line argument. The following parameters can also be specified as command-line arguments:
- .ini-file [REQUIRED]Specify the .ini configuration file using the -i, –ini-file flags. Configuration file parameters are read by the main CGraphSlamEngine class as well as the node/edge registration schemes, and the optimization scheme.
- rawlog-file [REQUIRED]Specify the rawlog dataset file using the -r, –rawlog flags.
- ground-truth
Specify a ground truth file with -g, –ground-truth flags. Ground truth has to be specified if user has set visualize_slam_metric or visualize_ground_truth to true in the .ini file, otherwise an exception is raised. - Node/Edge registration decider classes to be used
Specify the node registration or/and edge registration decider classes to be used using -n, –node-reg, -e –edge-reg flags.If not specified the default CFixedIntervalsNRD, CICPCriteriaERD are used as node and edge registration decider schemes respectively. - Optimizer class to be used
Specify the class to be used for the optimization of the pose-graph using the -o –optimizer flags. Currently the only supported optimization scheme is Levenberg-Marquardt non-linear graph optimization defined in optimize_graph_spa_levmarq
If not specified, the default CLevMarqGSO is used.
Examples
Sample calls of the graphslam-engine application are given below:
1 2 3 4 5 6 7 |
graphslam-engine --list-regs --list-optimizers graphslam-engine -i $mrpt/share/mrpt/config_files/graphslam-engine/odometry_2DRangeScans.ini -r $mrpt/share/mrpt/datasets/graphslam-engine-demos/action_observations_map/range_030_bearing_015.rawlog -g $mrpt/share/mrpt/datasets/graphslam-engine-demos/action_observations_map/range_030_bearing_015.rawlog.GT.txt graphslam-engine -i $mrpt/share/mrpt/config_files/graphslam-engine/odometry_2DRangeScans_LC_version.ini -r $mrpt/share/mrpt/datasets/graphslam-engine-demos/action_observations_map/range_030_bearing_015.rawlog -g $mrpt/share/mrpt/datasets/graphslam-engine-demos/action_observations_map/range_030_bearing_015.rawlog.GT.txt --node-reg CFixedIntervalsNRD --edge-reg CLoopCloserERD --optimizer CLevMarqGSO graphslam-engine -i $mrpt/share/mrpt/config_files/graphslam-engine/laser_odometry.ini -r $mrpt/share/mrpt/datasets/graphslam-engine-demos/action_observations_map/range_030_bearing_015.rawlog -g $mrpt/share/mrpt/datasets/graphslam-engine-demos/action_observations_map/range_030_bearing_015.rawlog.GT.txt -n CFixedIntervalsNRD -e CICPCriteriaERD |
For more details on the application usage, and for insight on the corresponding mrpt-graphslam library classes see here.
// TODO – add link to the PDF