Application: graphslam-engine
Contents
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.
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]
--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:
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