Double v1.1 and v1.0.2 releases.
Copper v1.1 Is Available
Copper v1.1 is now available, with new capabilities across configuration, execution analysis, robotics data, debugging, and platform support. It also includes the compatibility fixes released in v1.0.2.
Anytime algorithms join the scheduler
The main runtime addition is scheduler-level support for anytime algorithms. Copper can schedule bounded refinement work in the generated execution plan, either alongside foreground tasks or on a background pool.
The full design, policies, replay model, and RRT* example are covered here.
More of the robot defined at compile time
Cargo features can now select complete RON graph fragments. A project can share its common configuration while building different graphs for firmware, simulation, and distributed deployments.
RON can also generate typed Rust constants, of example you can include physical quantities expressed in SI units or Frame-typed 3D transforms and compose at compile time! Any const expressions would work so this is a nice way to extend the composability of your project while keeping it statically compiled when it doesn’t need to be dynamic.
From generated plan to recorded timing
`just plan` renders the schedule Copper generates from the task graph, including serial work, parallel realtime work, resource constraints, and anytime refinement steps.
Copper now can generate the expected scheduling plan for your robot so you can spot what will execute at the same time.
`just plan-log` adds timing observed in a recorded Copper log. It shows typical and slow executions, task duration, remaining time, and possible resource overlap.
Copper can now also match the plans with actual timings from the logs and give you an overview of the dedicated time for typical and slowest copperlists (ie. execution cycles)
Copper warning that in some cases you might have a bottleneck on a specific shared resource in your graph.
cargo install cargo-cunew --version 1.1
cargo cunew hello_copper
cd hello_copper
cargo run
For an existing project, update the Copper dependencies to `1.1.0`, run `just plan`, and use `just plan-log` after recording a run.
If you are building a robot with several deployment configurations, a demanding autonomy pipeline, or an algorithm that can improve its answer when time allows, join us on Discord, open a GitHub discussion, or contact Copper Robotics directly.