Units Libraries and Autonomous Vehicles: Lessons from the Trenches
summary
Three years of production use across Uber ATG and Aurora show units libraries do catch mismatches but their primary win is automating the heavy manual tracking developers already do; the library implements a unit safety boundary that forces naming of units at entry/exit, provides dot as and dot in conversion helpers, an adaptive implicit conversion policy (threshold ~1000) for integer overflow, and a unit-aware Eigen wrapper whose proof‑of‑concept matches raw Eigen performance.
AI-written summary · about
chapters (20)
- 0:00Start
- 1:14Who Am I
- 4:31Why We Should Use Units Libraries To Prevent Unit Errors
- 8:39Dimension
- 9:08Treat Unit Symbols like Algebraic Variables
- 11:05Strategy
- 19:24Add Incompatible Quantities
- 21:02Project Interface with the Unit's Library
- 23:39Conversions
- 25:34Examples
- 26:29Wrapped Types Mimic Unwrapped Types
- 27:09Quick To Compile
- 28:51Protobuf Message Definition
- 31:24Implicit Conversions
- 32:17Length
- 39:37Update the Code
- 42:56The Eigen Library
- 48:11Example Unit Provider
- 50:57Implementation Details
- 1:00:28Add a New Fundamental Dimension
related talks
01h 04mThe Au C++ Units Library: Handling Physical Units Safely, Quickly, & Broadly
01h 03mExploration of Strongly-typed Units in C++: A Case Study from Digital Audio
01h 06mPhysical Units for Matrices. How Hard Can It Be?
20m"Rust in Motion: Building Reliable and Performant Robotics Systems"
34mBuilding Kiteshield: A journey from prototype to safety-critical
01h 00mLearn Robotics with C++ in 1 Hour
38mEngineering Software Integral Types
01h 03mWriting sustainable software. The how and the what!
