Planners

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

ToppraPlanner

Time-parameterizing joint paths under velocity and acceleration limits.

Joint waypoints; in-tree Warp on CPU or CUDA.

TrapezoidalPlanner

Batched joint paths with trapezoidal or jerk-limited Double-S timing.

Joint waypoints; Torch or Warp.

cuRobo V2 Planner

Collision-aware planning against an explicit world.

Joint or Cartesian goals; requires CUDA and cuRobo V2.

NeuralPlanner

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.