Expand description
Expand description
§
§Copper
§
Gitter or open an issue. -
Copper has been tested on: Linux (x86_64, armv7, aarch64 & riskv64) and MacOS (arm64).
+Copper has been tested on: Linux (x86_64, armv7, aarch64 & riskv64) and MacOS (arm64). +Testers would be welcomed on Windows and other platforms.
§Technical Overview
Copper is a data-oriented runtime with these key components:
-
@@ -52,6 +53,17 @@
§< and ensuring high-speed textual logging.
§Copper drives real robots…
+ +§… but you can also use it in virtual environments
+ +Here is Copper in action driving a simulation of the same robot with Bevy (Game Engine +in Rust) +and Avian3d (Physics Engine in Rust)
+You have a mac or a linux? You can try out this demo locally! Just be sure you have Rust installed and the simply run:
+$ cargo install cu-rp-balancebot
+$ balancebot-sim
The source code for this demo is available in the examples/cu_rp_balancebot directory.
§What features are already implemented?
- Basic task lifecycle interface: Should be relatively stable for you to start contributing new algorithms,
@@ -80,22 +92,22 @@
Monitoring: We need a parallel system that can listen to monitoring messages and act accordingly.
+ - +Simulation: Standardized set of interfaces to control Copper based codebases in simulation.
- Batching/Aligning: add a feature to batch messages for high frequency sources to reduce the number of Copper Lists.
- -Deterministic log replay + Sim: As the runtime is generated in a deterministic fashion, we need to add hooks -to -inject messages into an existing runtime. +Deterministic log replay: The ability to inject logs and replay them deterministically. + +
- Parallel Copper Lists: Today Copper is monothreaded; this should enable concurrent Copper Lists to be executed at the same time with no contention.
- ROS/DDS interfacing: Build a pair of sink and source to connect to existing ROS systems, helping users migrate their infra bit by bit. -
- Extensible scheduling: Enables a way to give hints to copper to schedule the workload
To Reach RC1:
+To Reach RC1:
-