Skip to main content
Version: 14.0

MetriCal Commands

MetriCal is a powerful program with many different tools to help you calibrate your system. Each one is designed for a specific purpose, and can be used in conjunction with other commands to achieve your desired calibration results.

CommandDescription
InitProfile a dataset for calibration. Create or modify a Plex based on this data
CalibrateCalibrate a dataset given an Init plex and object space configuration.
ReportGenerate the report from a plex of the output file of a calibration.
DisplayApply the calibrated plex to a dataset and render the results
ShapeModify an input plex into any number of different helpful output formats
CompletionGenerate autocomplete files for common shell variants
Consolidate Object SpacesConsolidate compatible markers and dot markers into a single object space
PipelineCreate a pipeline of MetriCal commands in JSON (rather than shell scripting)

Universal Options

Most commands in MetriCal have their own options and settings. However, there are a few common options that are applicable to all commands. These options can be placed in any command, either before or after the command 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_VISION_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 command 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*:FRD