Lost in translation?! Robotics with type-safe coordinate systems
summary
Claims that mixing frames becomes impossible by encoding frames into types and checking conversions at compile time; implementation uses generic framed wrappers and isometries with from/to type parameters so multiplying a point produces a different type and triggers compiler errors when mismatched. It wraps nalgebra types with #[repr(transparent)] and uses phantom data to remain zero-cost. The crate runs in an SPL robot-soccer stack, documents 37 coordinate systems, compiles incrementally, and currently lives in a monorepo being extracted for public use.
AI-written summary · about
chapters (8)
- 0:00Robocup team intro
- 1:48Rust in robotics stack
- 6:07Coordinate system problem
- 7:52Type-safe frame design
- 14:41Type safety in linear algebra
- 19:18Real-world code example
- 23:41Summary of benefits
- 25:05Q&A
related talks
27mDeterministic fleet management for autonomous mobile robots using Rust
37mTeaching myself Rust through the medium of coordinate system transforms and FFI
36mThe language that isn't
01h 22mCostless Software Abstractions for Parallel Architectures
20m"Rust in Motion: Building Reliable and Performant Robotics Systems"
14mMultiparty Motion Coordination: From Choreographies to Robotics Programs
41mCap'n Proto and Rust: Type Systems for Sharing
55mThe Curiously Recurring Pattern of Coupled Types
