Copper-rs
lastmod 2024-12-05created 2024-12-051 edits
(For Copper, the web app toolkit for Go, see gocopper.)
Purpose-built, Rust-native software engine for robotics
A runtime engine for building robots, implemented in Rust
Features
- A user-friendly runtime engine for building fast and reliable robots
- A "robot engine" for robots, like a "game engine" for games
Technical overview
- Copper is a data-oriented robot SDK that provides the following components:
- Task Graph: configures the system topology as described in RON (Rusty Object Notation), specifying the tasks that communicate and setting the types of nodes and messages
- Runtime Generator: determines the execution plan based on the graph's metadata. Preallocates a 'Copper List' to maximize sequential memory access at runtime
- Zero-Copy Data Logging: records all messages between tasks without copying data, ensuring efficient logging
- Fast Structured Logging: Intern and Index log strings at compile time, avoiding runtime string construction and ensuring high-speed text logging
- When no real robot is available, a simulation environment built with Bevy (a Rust game engine) + Avian3d (a Rust physics engine) can be used
See also
- Robot (Korean: 로봇)
- rust (Korean: 러스트)
- Robot Operating System (Korean: 로봇 운영체제; ROS)
- gocopper - web app toolkit for Go