copper-project/copper-rs
Copper is an operating system for robots - build, run, and replay your entire robot deterministically.
What it solves
Copper provides a high-performance, deterministic runtime for robot task graphs. It addresses the challenge of building robot software that needs to run across diverse hardware—from high-level Linux systems to bare-metal microcontrollers—while maintaining real-time performance and the ability to perfectly reproduce execution runs for debugging.
How it works
Copper uses a static design where task graphs are declared in RON (Rusty Object Notation) and wired at compile time. This approach allows for a zero-allocation execution path on the "hot path," ensuring real-time performance. The system records all messages, timing, and state into a unified .copper log, which can be used for deterministic replay and offline inspection.
Who it’s for
It is designed for robotics engineers and developers building autonomous systems like quadcopters, self-balancing robots, and humanoids that require strict timing guarantees and cross-platform compatibility.
Highlights
- Cross-platform support: Runs on Linux, macOS, SBCs, and bare-metal microcontrollers.
- Deterministic replay: Ability to record a run and reproduce it exactly for offline analysis.
- Real-time first: Zero-allocation, data-oriented execution for high-performance paths.
- Interoperable: Connects to ROS 2 via Zenoh for progressive migration.
- Rust-first: Leverages Rust's compile-time guarantees and ergonomic APIs.
Related
- Project
- Project
- Project
- Project
- Project