Planners#
Planners produce timed trajectories from robot waypoints. Start with MotionGenerator for the shared planning workflow; use a backend directly when you already have its required waypoint inputs.
Choose a planner#
Planner |
Use it for |
Native targets and requirements |
|---|---|---|
Time-parameterizing joint paths under velocity and acceleration limits. |
Joint waypoints; in-tree Warp on CPU or CUDA. |
|
Batched joint paths with trapezoidal or jerk-limited Double-S timing. |
Joint waypoints; Torch or Warp. |
|
Collision-aware planning against an explicit world. |
Joint or Cartesian goals; requires CUDA and cuRobo V2. |
|
Experimental learned end-effector waypoint rollout. |
Cartesian goals; requires an NMG ONNX policy, validated on Franka Panda. |
For joint-only planners, MotionGenerator can convert Cartesian targets
through IK when is_interpolate=True. Only cuRobo provides collision-aware
planning against the configured world; consult its page for supported geometry
and collision-checking limits.
Sampling is configured per backend. TrajectorySampleMethod explains the shared enum; each planner page documents the modes it accepts.
Custom backends#
Subclass BasePlanner with a matching BasePlannerCfg, declare
supported_move_types, and return the timed PlanResult contract described
in the MotionGenerator guide. Register the pair with
MotionGenerator.register_planner_type(name, planner_class, planner_cfg_class).
Full signatures are in the
planner API.