Application: sm-cli
CLI tool to manipulate and inspect simple-maps:
Available commands:
sm-cli cut Cut part of a .simplemap file into a new file.
sm-cli export-keyframes Export KF poses (opt: twist too) as TUM format.
sm-cli export-rawlog Export KFs as rawlog for inspection.
sm-cli info Analyze a .simplemap file.
sm-cli join Join two or more .simplemap files into one.
sm-cli level Makes a .simplemap file level (horizontal).
sm-cli tf Applies a SE(3) transform by the left to a map.
sm-cli trim Extracts part of a .simplemap inside a given box.
sm-cli --version Shows program version.
sm-cli --help Shows this information.
Or use `sm-cli <COMMAND> --help` for further options
sm-cli cut
Cuts a simple-map by keyframe indices, saving the smaller simple-map to a new file:
sm-cli cut --help
Usage:
sm-cli cut <filename> --from <FIRST_KF_INDEX> --to <LAST_KF_INDEX> --output <OUTPUT.simplemap>
sm-cli export-keyframes
Saves the key-frames in a simple-map as a trajectory file in TUM format:
Refer to the tutorial for example data file and command line: 3. Inspect the resulting simple-map.
sm-cli export-keyframes <filename> --output <OUTPUT.tum> [--output-twist <TWIST.txt>]
sm-cli export-rawlog
Export all keyframes in the simplemap, including pose and twist information, metadata (see MOLA-LO paper), and raw sensor observations (3D LiDAR scans, GNSS data, etc.) to a RawLog file, which can be easily browsed with RawLogViewer.
Refer to the tutorial for example data file and command line: 3. Inspect the resulting simple-map.
sm-cli export-rawlog <filename.simplemap> --output <OUTPUT.rawlog>
sm-cli info
Shows basic information about the contents of a simple map.
Refer to the tutorial for example data file and command line: 3. Inspect the resulting simple-map.
sm-cli info <filename.simplemap>
sm-cli level
Takes an input simple-map and optimizes its key-frame poses such as they lie on an horizontal plane as much as possible, saving the result in another simple-map file. This can be used when a map has an unintentional tilt for some reason, for example, wrong or missing sensor extrinsics.
sm-cli level <input.simplemap> <output.simplemap>
sm-cli tf
Transforms a given simple-map by applying a SE(3) transformation by the left (=left-multiplying homogeneous matrices).
sm-cli tf <input.simplemap> <output.simplemap> "[x y z yaw_deg pitch_deg roll_deg]"
sm-cli trim
Extracts part of a simple-map, leaving only those key-frames that lie within a given bounding box.
sm-cli trim <filename> --min-corner "[xmin ymin zmin]" --max-corner "[xmax ymax zmax]" --output <OUTPUT.simplemap>
sm-cli join
Merges two or more simple-maps in one single map. No map alignment or registration is performed by this simple tool, so the maps should be already aligned beforehand, or the resulting simple-map being the input to a loop-closure pipeline.
sm-cli join <filename_1> [<filename_2> ...] --output <MERGED.simplemap>