Skip to main content
Version: 9.0

A Typical MetriCal Workflow

Users can find workflow scripts and sample datasets in the MetriCal Sensor Calibration Utilities repo on GitLab:
https://gitlab.com/tangram-vision/platform/metrical/-/tree/main/examples

1: Initialize MetriCal

A plex is a virtual snapshot of your system's calibration at a point in time. Init creates a raw input plex by inferring it from the data it is given. We'll optimize this plex, and this data, using Calibrate later.

metrical init \
--topic-to-model *:opencv_radtan \ # Assign all of our models
--preset-device RealSense435:[ir_one,ir_two,color] \ # Set any pre-configured devices
$DATA \ # Provide our data
$INIT_PLEX # Our output: a fresh plex!

More on...

2: Calibrate the Initial Plex

The actual calibration! This refines the plex, giving you accurate calibation values. We'll visualize this process using Rerun by passing the --render flag.

metrical calibrate            \
--render \ # Render the calibration process using Rerun
--output-json $OUTPUT \ # Write the results to $OUTPUT
$DATA \ # Our input calibration dataset
$INIT_PLEX \ # Our fresh plex from Step 1
$OBJ \ # Our object space file describing fiducials and targets

More on...

3: Shape the Calibration Results

This shapes the calibration output into something more useful for our system. In this case, we want to create a stereo rectification for our system.

metrical shape       \
$OUTPUT \ # Use the calibration output we derived from Step 2
$OUTPUT_DIR \ # Write the results to $OUTPUT_DIR
stereo-lut \ # Create a pair of stereo rectification lookup tables
--dominant ir_one \ # The dominant eye in this stereo pair
--secondary ir_two \ # The secondary eye in this stereo pair

And there you have it! In three easy (and scriptable) lines, we went from raw data to a calibrated, rectified stereo pair.

More on...