C++ on Mars: Incorporating C++ into Mars Rover Flight Software
summary
Mars rovers run autonomous navigation code in C++ on VxWorks with rad‑hard PowerPC CPUs, tight memory (32 MB address space, ~10 MB for much code) and a commercial/GCC toolchain; dense stereo vision and visual odometry produce 3D point clouds, a grid traversability map and a path planner that drives up to ~140 m in a day and >9 km cumulatively. To fly C++ safely the team forbids risky features (no exceptions or STL), uses a specialized memory allocator implemented via placement new, extensive unit/static analysis and multi‑stage hardware simulation and V&V.
AI-written summary · about
chapters (16)
- 0:00Start
- 0:15A Journey Through Time and Space
- 0:42Meet NASA's Mars Rovers
- 3:13A Day's Plan Might Include Driving. Using the Arm, or Remote Science
- 5:37Software Resources
- 8:42Mars Rover FSW Modules
- 18:07What Does our C++ Code Do?
- 26:23Rover Navigation 101
- 38:17Initial Concerns about C++
- 40:46Using Embedded C++
- 42:06Placement New
- 44:54Using the Memory Allocator
- 45:40Running Tests
- 48:32Indoor Testbed: In-Situ Lab
- 50:40MSL Engineering Model
- 57:38C++ Annotates Drive Data
related talks
41mWriting Apps For Mars!
57mDeeply Embedded C++
01h 38mEmbedded & C++
01h 31mUsing C++14 in an Embedded “SuperLoop” Firmware
01h 00mLearn Robotics with C++ in 1 Hour
20m"Rust in Motion: Building Reliable and Performant Robotics Systems"
52mCross plattform C++ development is challenging
55mC++ on small micro controllers
