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
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.
repose-robot-description = { git = "https://github.com/ReposeRobotics/repose", tag = "v0.7.1" }Choosing N and M
Nis the number of movable joints on the selected base-to-tip path. It must match exactly: an import with more or fewer is rejected.Mbounds 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 thanM.
Pages
- Import a URDF: select the chain, supported joints and geometry, what is rejected.
- Apply an SRDF: planning groups, disabled collision pairs, named states.