Reference

Configuration & versions

Rules that hold for every Repose component's configuration, and what to depend on.

RON configuration patterns

  • Robot selection is explicit. "chain" and "collision_model" take a preset name ("igus_rebel") or an inline spec. No task defaults to a robot.
  • Every planner task has the same config: chain, collision_model, params, base_budget, refine_budget. Switching planners changes the task type and the params block.
  • Parameter blocks are optional field by field. "ik": {"damping": 0.1} keeps every other IK default.
  • Unknown keys are rejected. A typo is a startup error, not a silently ignored setting.
  • SI everywhere. Metres, radians, seconds, rad/s. Typed enums are snake_case and keyed by variant: {"revolute": 0.4}.
  • Generics are literal. Joint count and capacities appear in the type string: repose_trajectory::CuFollowTrajectoryTask<6, 1024>.
  • Generated files. In template projects copperconfig.ron is generated from robot.ron and robots/<robot>.ron on every build. Edit the profiles.

Validation happens at startup

Every task validates its config in new. Missing robot models, invalid limits, non-positive budgets and malformed shapes stop the graph before the first cycle, with a message naming the field. Runtime code then never has to re-check them.

Versions

Repose 0.7 (repose-*)Copper cu29 1.3 · Rust 1.95 (MSRV)
Repose 0.1–0.6 (cu-*)Copper cu29 1.3 · Rust 1.95

One version for the whole workspace, tagged vX.Y.Z, never per crate, and not on crates.io before 1.0: depend on the git tag.

toml
repose = { git = "https://github.com/ReposeRobotics/repose", tag = "v0.7.1" }

Pre-1.0, a minor bump may break the Rust API, payload encoding or RON config; patch releases never do. Logs recorded with one minor version may not replay on another. The 0.7 rename (cu-<name> → repose-<name>) is the worked example: Rust paths and RON type names follow the crates, type names keep their Cu prefix.

Features

stdOn by default. Runtime crates build without it (default-features = false) for no_std targets. Required by repose-robot-description for XML parsing.
mujoco-simUmbrella crate: includes the MuJoCo bridge.
controlHardware bridges: enables session and motion channels.

API reference