Expand description
Planner-agnostic joint-space motion planning for copper-rs.
Every planner — sampling-based (RRT*, PRM, …), optimization-based
(CHOMP/TrajOpt style), search-based, or direct — implements one trait,
CuJointPlanner, and runs inside one Copper task,
CuJointPlannerTask. The task owns the anytime base/refine contract,
publishing, seeding, and replay state, so a planner only has to answer:
build itself from validated parameters (CuJointPlanner::new), start a
job (CuJointPlanner::begin), do a bounded quantum of work
(CuJointPlanner::step), and write its best path in place
(CuJointPlanner::write_best).
Requests and results are planner-neutral payloads:
CuJointPlanRequest carries the planning scene, exclusions, start and
goal; CuJointPlanPath carries the path, its cost, the scene revision it
was planned against, and an explicit CuPlanStatus — failures such as an
invalid start or an exhausted search are published, not silently dropped.
Built-in planners, each with a Cu<Planner>Params struct and a task alias:
- Sampling:
CuJointRrtConnect(CuJointRrtConnectTask; bidirectional, feasibility-first) andCuJointPrm(CuJointPrmTask; probabilistic roadmap, improving). - Search:
CuJointAStar(CuJointAStarTask; A* on a joint-space lattice, resolution-complete). - Optimization:
CuJointPathOptimizer(CuJointPathOptimizerTask; deterministic gradient, CHOMP-style) andCuJointStomp(CuJointStompTask; seeded stochastic rollouts). - Direct:
CuJointDirect(CuJointDirectTask; straight joint line, one shot).
Every planner task has the same node config, CuJointPlannerParams;
switching planners means changing the task type and the params block:
(
id: "planner",
type: "repose_motion_planning::CuJointPrmTask<6>",
config: {
"chain": "igus_rebel",
"collision_model": "igus_rebel",
"params": {"connection_radius": 1.5, "max_nodes": 512},
"refine_budget": 16, // optional; default per planner
},
)A plan-and-execute graph needs no application code:
joint state ─► CuJointGoalTask ─► CuJoint<Planner>Task ─► CuPlanToTrajectoryTask ─► followerCuJointGoalTask turns measured state and a configured goal into a
request, and CuPlanToTrajectoryTask times each final path for
repose_trajectory::CuFollowTrajectoryTask.
RRT* lives in repose-joint-rrt-star. Every planner shares
CuSceneValidity for collision and clearance queries.
Modules§
- planner_
resources - Resources of
CuJointPlannerTask: an ownedrngthat seeds jobs.
Macros§
- impl_
planner_ type_ path - Implements [
TypePath] for a const-generic planner$ty<N, M>with the fixed path$path(const arguments are not part of the path).
Structs§
- CuJointA
Star - A* search over a joint-space lattice.
- CuJointA
Star Params - Parameters of
CuJointAStar. - CuJoint
Direct - Straight joint-space line planner.
- CuJoint
Direct Params - Parameters of
CuJointDirect. - CuJoint
Goal Params - Node config of
CuJointGoalTask. - CuJoint
Goal Task - Requests one plan from the measured joint state to a configured goal.
- CuJoint
Path Optimizer - Deterministic anytime joint-path optimizer.
- CuJoint
Path Optimizer Params - Parameters of
CuJointPathOptimizer. - CuJoint
Plan Path - Planned joint-space path (
CuMsgPayload-compliant). - CuJoint
Plan Request - Joint-space planning request (
CuMsgPayload-compliant). - CuJoint
Planner Debug State - Compact progress snapshot for remote inspection.
- CuJoint
Planner Params - Node config of
CuJointPlannerTask(and everyCuJoint<Planner>Taskalias): robot models, the planner’s own parameters, and work budgets. - CuJoint
Planner Task - Anytime planning task (
CuAnytimeTask) over anyCuJointPlanner. - CuJoint
Prm - Probabilistic roadmap planner (single query per job).
- CuJoint
PrmParams - Parameters of
CuJointPrm. - CuJoint
RrtConnect - Bidirectional RRT-Connect planner.
- CuJoint
RrtConnect Params - Parameters of
CuJointRrtConnect. - CuJoint
Stomp - Stochastic trajectory optimizer.
- CuJoint
Stomp Params - Parameters of
CuJointStomp. - CuPlan
ToTrajectory Task - Times each published plan into a
CuTrajectoryPayload<N, CAP>. - CuScene
Validity - Collision queries against one captured planning-scene snapshot.
Enums§
- CuPlan
Status - Outcome of a planning job, carried by
CuJointPlanPath. - CuPlanner
Kind - How a planner explores the configuration space.
Constants§
- ASTAR_
MAX_ NODES - Lattice node capacity.
- MAX_
ATTACHED_ SHAPES - Fixed capacity of attached shapes in a
CuJointPlanRequest. - MAX_
EXCLUSIONS - Fixed capacity of stable-ID exclusions in a
CuJointPlanRequest. - MAX_
OBSTACLES - Fixed capacity of scene obstacles in a
CuJointPlanRequest. - MAX_
WAYPOINTS - Fixed capacity of waypoints in a published
CuJointPlanPath. - PRM_
MAX_ NEIGHBORS - Edge capacity per roadmap node.
- PRM_
MAX_ NODES - Roadmap node capacity, including start and goal.
- RRT_
CONNECT_ MAX_ NODES - Node capacity of each of the two trees.
- STOMP_
MAX_ ROLLOUTS - Rollout capacity per iteration.
Traits§
- CuJoint
Planner - A joint-space motion planner usable by
CuJointPlannerTask.
Functions§
- joint_
distance - Joint-space L2 distance under
metric(dimensionless, metric-scaled).
Type Aliases§
- CuJointA
Star Task CuJointPlannerTaskrunningCuJointAStar.- CuJoint
Direct Task CuJointPlannerTaskrunningCuJointDirect.- CuJoint
Path Optimizer Task CuJointPlannerTaskrunningCuJointPathOptimizer.- CuJoint
PrmTask CuJointPlannerTaskrunningCuJointPrm.- CuJoint
RrtConnect Task CuJointPlannerTaskrunningCuJointRrtConnect.- CuJoint
Stomp Task CuJointPlannerTaskrunningCuJointStomp.