Releases + Changelogs
Version 11.0.0
MetriCal Sensor Calibration Utilities repository for v11.0.0: https://gitlab.com/tangram-vision/platform/metrical/-/releases/v11.0.0
Overview
This version bump is a big one! Data processing improvements, algorithmic improvements, CLI simplification... there's a little something for everyone here. Most of the changes in 11.0.0 were made based on testing from customers in the field. Thanks, everyone!
Note that many CLI arguments have been shifted or removed. Be sure to check the changelog and updated documentation to make sure your settings remain.
Changelog
Added
- Visualization improvements:
- Render navigation states and IMU data by default.
- Render all observations when log level is set to debug.
- Change of Basis tooling:
- Add
--topic-to-observation-basis
global argument to all modes in order to map a coordinate basis to each component's observations on plex construction (docs). - Add
--topic-to-component-basis
global argument to all modes in order to map a coordinate basis to each component on plex construction (docs). - Changed-basis plex is now included in MetriCal output (docs).
- Add
Changed
- Init mode only looks through the first 100 observations to create the initial plex; this should greatly speed up Init mode for most datasets.
- All observations are now run through their respective detectors before image motion filtering occurs.
- The motion filter acts on the image detections themselves, not the entire image. This should improve the quality of the motion filter in busy, "noisy" datasets (docs).
- A user-specified root is now required to generate the URDF from a plex in Shape mode (docs).
- Reformulate IMU calibration approach:
- Remove unnecessary IMU initialization.
- Implement improvements to IMU optimization mathematics.
- Only one IMU bias is inferred during calibration instead of a wandering bias.
- Shape mode arguments now follow the order
metrical shape [mode] [arguments] [plex] [output]
(docs). license
andreport-path
arguments are now global arguments, and can be passed to any mode (docs).- Lower the minimum required points to fit a circle detector.
Fixed
- Init mode now properly handles differences in the seeded plex (passed through with
-p
) and the created plex. This has been a bug for longer than we care to admit; we're glad it's fixed (docs)! - Observations are no longer held in memory while motion filtering occurs. This greatly reduces memory usage on LiDAR-heavy datasets.
Removed
- Caching of detections and filtered output is no longer supported in Calibrate and Evaluate modes.
Version 10.0.0 (Yanked)
This release was yanked due to a critical bug introduced in Init mode that wasn't caught in time. The odds of many users running into this bug were low, but we played it safe and yanked this version entirely.
All relevant changes will be added to the changelog for 11.0.0.
Version 9.0.0
MetriCal Sensor Calibration Utilities repository for v9.0.0: https://gitlab.com/tangram-vision/platform/metrical/-/releases/v9.0.0
Overview
Version 9.0.0 can be considered a refinement of v8.0, with focus on improving the user experience and clarifying outputs. It also introduces a few new intrinsics models across components. Some default behavior has changed as well, so be sure to check the changelog for details.
This release also includes a big update to rendering. Be sure to update your Rerun version to v0.14!
Changelog
Added
- Introduced
LidarSummary
summary statistics to report lidar-specific metrics (docs). - Support for new IMU intrinsics: Scale, Shear, Rotation, and G-Sensitivity (docs).
- Support for the Omnidirectional camera model (docs).
Changed
- MetriCal now uses Rerun v0.14! 🎊 Make sure to update your version of Rerun accordingly.
- The summary statistics table is now three tables, for optimization, cameras, and lidar respectively (docs).
PerComponentRMSE
in Summary Statistics is nowCameraSummary
(docs).- Circle detector's
detect_interior_points
option is now a mandatory variable, and has no default value (docs). - Circle detector now takes an
x_offset
andy_offset
variable to describe the center of the circle w.r.t. the full board frame (docs). - Object relative extrinsics (OREs) are now generated by default. In turn, the
--enable-ore-inference
flag has been removed and replaced with--disable-ore-inference
(docs). - The camera component initialization process during calibration has been improved to better handle significant distortion.
Fixed
- Rerun rendering code has been completely refactored for user clarity and speed of execution.
- Lidar-lidar datasets are now rendered and registered along with camera-lidar.
- Object relative extrinsics are now rendered when available.
- Images now use lookup tables properly for quick correction.
- Spaces have been reorganized for clarity and ease of use.
- Datasets without cameras no longer print empty camera tables.
Version 8.0.1
MetriCal Sensor Calibration Utilities repository for v8.0.1: https://gitlab.com/tangram-vision/platform/metrical/-/releases/v8.0.1
Overview
This version fixes a small bug found in pipeline license validation.
Changelog
Fixed
null
license values in a pipeline configuration are discarded, not interpreted as a provided license key.
Version 8.0.0
MetriCal Sensor Calibration Utilities repository for v8.0.0: https://gitlab.com/tangram-vision/platform/metrical/-/releases/v8.0.0
Overview
This release brings a ton of new features to the MetriCal CLI, most of them focused on improving the user experience. The biggest difference is one you won't see: all of the math done during optimization is now fully sparse, which means it takes a lot less memory to run a calibration. And smart convergence criteria means that calibrations are faster, too!
We've also added a new mode, pipeline
, which allows you to run a series of commands in serial.
Find out more about it in the Pipeline Mode section of the documentation.
Changelog
Added
- Pipeline mode. This executes a series of Commands in serial, as they're written in a pipeline JSON file.
- Render the optimized plex at the end of a calibration.
- The subplex ID for a spatial constraint now shows up in the Extrinsics table.
- Input JSON files with comments are now accepted as valid.
Changed
- All calibrations now undergo outlier detection and reweighting as part of the BA process. Outliers are detected for cameras, lidar, and relative extrinsics.
- Summary table is sorted by component name, not by UUID.
- Summary statistics in console are now computed using a weighted RMSE.
- The bundle adjustment is now a fully sparse operation, relieving memory pressure on larger datasets.
Fixed
- The height of the sync group chart now adjusts with the number of components present in the dataset.
- Bug in Init mode when using a RealSense435Imu preset.
- All stereo pairs are now derived and graphed in console output
Removed
- The
--metrics-with-outliers
flag and the--outlier-filter
flag have been removed.
Version 7.0.1
MetriCal Sensor Calibration Utilities for v7.0.1: https://gitlab.com/tangram-vision/platform/metrical/-/releases/v7.0.1
Overview
This patch release fixes various errata found in the v7.0.0 release.
Changelog
Fixed
- Rendering the correction at the end of a calibration actually uses the corrected plex (rather than the input plex).
- The extrinsics table now only shows delta values if an input plex is provided.
- Camera-lidar extrinsics rendering in Rerun now takes the spatial constraint with the minimum covariance. This is different from the previous behavior where all spatial constraints were rendered, regardless of quality.
Version 7.0.0
MetriCal Sensor Calibration Utilities for v7.0.0: https://gitlab.com/tangram-vision/platform/metrical/-/releases/v7.0.0
Overview
Welcome, v7.0.0! Yes, merely a week after v6.0.0, we bump major versions. Classic.
Revised Documentation
It's finally here! The revised Tangram Vision documentation site is live: https://docs.tangramvision.com/.
This documentation site holds readmes and tutorials on all of Tangram Vision's products. The MetriCal section is fully-featured, and based on this release. We will be maintaining all documentation for this and newer versions on the official docs site from here on out.
LiDAR-LiDAR Calibration
MetriCal now supports LiDAR-LiDAR calibration, no cameras needed. Users will need a circular markerboard to calibrate LiDAR.
New Modes - pretty-print
and evaluate
v7.0.0 introduces two new modes:
- Pretty Print does what it says on the tin: prints the plex or results of a calibration in a human-readable format. This is useful for debugging and for getting a quick overview of the calibration. Docs: https://docs.tangramvision.com/metrical/modes/pretty_print/
- Evaluate can apply a calibration to a given dataset and produce metrics to validate the quality of the calibration. Docs: https://docs.tangramvision.com/metrical/modes/evaluate/.
The Calibrate mode, by extension, no longer has an --evaluate
flag. This is just Evaluate mode.
Revamped Rendering options + Deprecated Review mode
Review mode is no longer! Instead, passing the --render
flag to either Calibrate or Evaluate mode
will render the corrected calibration at the end of the run. Also, --render
and --render-socket
options are no longer global. Instead, they are only applicable for Calibrate and Evaluate modes.
Changelog
Added
- Support for calibrating multi-LiDAR, no-camera datasets. This still leverages MetriCal's circle target, but no longer requires a camera or any image topics to be present in order to calibrate.
- Pretty Print mode for printing out a plex in a human readable format.
- Evaluate mode to evaluate the quality of a calibration on a test dataset. This is a
reinterpretation of the
--evaluate
flag that was in the Calibrate mode; it's just been given its own command for ease of use. - A
verbose
flag to the shape mode to print the plex that has been created from the command. - Additional descriptions to errors that can be generated by calling the calibrate mode.
Changed
- Calibrate + Evaluate mode now renders its own corrections (rather than punting that capability to review).
- The
--render
flag at the global level has been moved to the Calibrate & Evaluate modes.
Removed
- Review mode and README mode have been removed completely. Review mode's previous functionality is now split between Pretty Print mode and Calibrate mode.
- The
--evaluate
flag in Calibrate mode.
Fixed
- Summary statistics tables now have the correct units displayed alongside their quantities.
- Printing the results of a plex with no extrinsics will now print an empty table, rather than nothing at all.
- Nominal extrinsics deltas in tables are now represented by the string "--".
Errata
- The "corrected" rendering at the end of a calibration run mistakenly uses the input plex, not the output plex. Scheduled fix: v7.0.1.
- The output extrinsics table does not correctly calculate the delta between the input and output plex. Scheduled fix: v7.0.1.
- Rendering the corrected camera-lidar registration would take the first spatial constraints available, rather than taking the constraint with the minimum covariance. This often makes calibrations appear wildly incorrect, despite a good calibration. Scheduled fix: v7.0.1.