Skip to main content
Version: Next

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.

ModeDescription
CalibrateRefine the init plex to create a calibrated plex, i.e. your calibration results
CompletionGenerate a shell completion script for MetriCal
DisplayApply the calibrated plex to a dataset and render the results
EvaluateValidate the quality of a calibration on a test dataset
InitProfile a dataset for calibration and create an init plex
PipelineCreate a pipeline of MetriCal commands in JSON (rather than shell scripting)
Pretty PrintPrint the plex or results of a calibration in a human-readable format
ShapeModify 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
  • -qq: Error
  • -qqq: Off

Some 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 CodeCategory
0Success
1I/O error
2CLI error
3Error specific to Shape mode operation
4Error specific to Init mode operation
5Error specific to Pretty Print mode operation
6MetriCal license error
7Error specific to Display mode
8Error specific to Calibrate mode
9Error specific to Completion mode