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