Robot description · repose-robot-description

Robot description

Most robots come with a URDF, and many with an SRDF. repose-robot-description reads them once at startup and hands you the same fixed-size CuKinematicChain<N> and CuRobotCollisionModel<N, M> you would otherwise write by hand. After that, no XML, no strings and no allocation are left in the loop.

Startup versus runtime

text
startup (std)                                    runtime (no_std, no allocation)
─────────────────────────────────────────────    ─────────────────────────────────
robot.urdf ─┐                                     CuKinematicChain<N>
            ├─► CuRobotDescription<N, M> ──into_parts──►
robot.srdf ─┘     joint names, link names,        CuRobotCollisionModel<N, M>
                  named states ("home", …)

The description keeps the names and SRDF named states for startup lookups. into_parts() gives you the two runtime models, which are all the planners, IK and tasks need.

Enable it

XML parsing needs std, which is this crate's default feature. Keep it on: this is the one crate you don't build with default-features = false. Without std only the types remain, for code that receives an already imported model.

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

Choosing N and M

  • N is the number of movable joints on the selected base-to-tip path. It must match exactly: an import with more or fewer is rejected.
  • M bounds the collision shapes, counting every collision element on the path, including fixed links and the base. Pick something comfortably large (2–3 × N). The import fails if the URDF has more shapes than M.

Pages

  • Import a URDF: select the chain, supported joints and geometry, what is rejected.
  • Apply an SRDF: planning groups, disabled collision pairs, named states.

API reference