MetriCal's Many Modes
MetriCal is a powerful tool with many modes to help you calibrate your system. Each mode is designed for a specific purpose, and can be used in conjunction with other modes to achieve your desired calibration results.
Mode | Description |
---|---|
Calibrate | Refine the init plex to create a calibrated plex, i.e. your calibration results |
Completion | Generate a shell completion script for MetriCal |
Display | Apply the calibrated plex to a dataset and render the results |
Evaluate | Validate the quality of a calibration on a test dataset |
Init | Profile a dataset for calibration and create an init plex |
Pipeline | Create a pipeline of MetriCal commands in JSON (rather than shell scripting) |
Pretty Print | Print the plex or results of a calibration in a human-readable format |
Shape | Modify the calibrated plex into another form for easier use in other systems |
Universal Options
Most commands in MetriCal have their own options and settings. However, there are a few common options that are applicable to all modes. These options can be placed in any command, either before or after the mode you'd like to use.
--license [LICENSE]
The license key for MetriCal.
There are three ways to pass in a license key:
- Set it via the command line argument
--license
- Set the
TANGRAM_PLATFORM_LICENSE
environment variable- Locate it in the Tangram config TOML, typically located at
$HOME/.config/tangram-vision/config.toml
License keys are checked and validated in this order.
--report-path [REPORT_PATH]
MetriCal can actually write the TUI output of any command to an HTML file. The path to save the TUI output to. you can also just redirect stderr, though this will subsume the interactive output
-V, --version
Print the current version of MetriCal
-h, --help
Print the help message for this mode or function. -h prints a summary of the documentation presented by --help.
-vv, -v, -q, -qq, -qqq
The logging verbosity for MetriCal.
MetriCal uses the log crate to produce logs at various levels of priority. Users can set the log level by passing verbosity flags to any MetriCal command:
-vv
: Trace-v
: Debug- default: Info
-q
: Warn-qqq
: OffSome outputs will change slightly depending on the verbosity level to avoid spamming your console.
-z, --topic-to-observation-basis [topic_name:observation_basis]
A mapping of topic/folder names to their respective observation coordinate bases.
MetriCal natively computes extrinsics as a transformation between observations. This can sometimes lead to confusion, as extrinsics won't "match" your preferred convention or coordinate system (even though they're valid!).
Providing an observation coordinate basis for a topic will allow MetriCal to modify transformations between components to match the conventions found in your system.
Example: The topic "lidar_1" streams data in FLU [x: forward, y: left, > z: up], while the topic "lidar_2" uses FRD. Designate these components as such:
-z lidar_1:FLU -z lidar_2:FRD
One may also use wildcards to designate many topics at a time with the same observation basis:
-z /lidar/*:FLU
-Z, --topic-to-component-basis [topic_name:component_basis]
A mapping of topic/folder names to their respective transform coordinate bases.
MetriCal natively extrinsics as a transformation between observations. This can sometimes lead to confusion, as extrinsics won't "match" your preferred convention or coordinate system (even though they're valid!)
Providing a transform coordinate basis for a topic will allow MetriCal to modify transformations between components to match the conventions found in your system
Example: The topic "lidar_1" streams pointcloud data in FLU [x: > forward, y: left, z: up], while the topic "lidar_2" uses FRD. However, we desire coordinate bases to be FRD for both lidar. Designate these components as such
-z lidar_1:FLU -z lidar_2:FRD -Z *lidar*:FR
Exit Codes
Exit Code | Category |
---|---|
0 | Success |
1 | I/O error |
2 | CLI error |
3 | Error specific to Shape mode operation |
4 | Error specific to Init mode operation |
5 | Error specific to Pretty Print mode operation |
6 | MetriCal license error |
7 | Error specific to Display mode |
8 | Error specific to Calibrate mode |
9 | Error specific to Completion mode |