ROBOTIC.INDUSTRIES

Robot Software

RRT, PRM, CHOMP: Motion Planners Compared

Sampling planners find a path in seconds but produce ugly ones. Optimisation planners produce smooth paths but get stuck. Which to use for which robot task, and why most stacks use both.

Engineer at a laptop beside a robot controller cabinet with cable looms
Engineer at a laptop beside a robot controller cabinet with cable looms

Sampling-based planners such as RRT and PRM find a collision-free path in a high-dimensional space quickly, typically in 10 to 500 milliseconds for a 6-axis arm, and the path they return is jagged. Optimisation planners such as CHOMP and its successors produce smooth, short paths but can fail entirely in cluttered scenes. Production stacks use a sampling planner to find a path and an optimiser to clean it up.

10 to 500 mstypical sampling planner solve time, 6 axes
6 to 30dimensions of a typical planning problem
2planners in most production stacks
0planners that guarantee an optimal path quickly

Why this is hard at all

Motion planning searches the configuration space, which has one dimension per joint. A six-axis arm plans in six dimensions, a dual-arm humanoid with a torso in twenty or more. Obstacles in the workspace become complicated regions in configuration space that cannot be computed explicitly, which is why planners sample or optimise rather than search exhaustively. The volume of the space grows exponentially with dimension, and that single fact explains the design of every algorithm below.

Motion planning families
PlannerTypeTypical solve timeProducesFails when
RRTSampling, single query10 to 200 msA valid path, jaggedNarrow passages
RRT-ConnectSampling, bidirectional5 to 100 msA valid path, fasterNarrow passages
RRT*Sampling, asymptotically optimal100 ms to secondsImproving path over timeTime budget too short
PRMSampling, multi-query roadmapseconds to build, ms to queryReusable roadmapEnvironment changes
CHOMPTrajectory optimisation50 to 500 msSmooth pathLocal minimum in clutter
STOMPStochastic optimisation100 ms to secondsSmooth path, no gradients neededCluttered scenes
TrajOptSequential convex optimisation50 to 400 msSmooth path with constraintsPoor initial guess
Learned plannersNeural1 to 50 msFast proposalsOut-of-distribution scenes

Sampling planners, and the narrow passage problem

A rapidly exploring random tree grows from the start configuration toward random samples, checking each extension for collision. It is probabilistically complete, meaning that given enough time it finds a path if one exists, and it is fast in open spaces. Its weakness is a narrow passage: a region where valid configurations occupy a tiny fraction of the sampled volume, so random sampling almost never lands in it.

The practical form of that weakness is recognisable. A robot that plans instantly to a point in free space but takes seconds to plan into a machine through an open door is meeting a narrow passage, and the remedies are biasing samples toward the passage, planning in stages through an intermediate waypoint, or widening the passage physically.

A valid path is not a good path. Sampling planners return whatever they found first, which frequently includes unnecessary detours and joint reversals. Post-processing with shortcutting and smoothing typically reduces path length by 20 % to 50 % and takes a few milliseconds, and skipping it is why some cells look like the robot is dancing.

What production stacks actually run

  1. Try a cached or taught path first. Most industrial motions repeat. Planning a fresh path for a motion performed 4,000 times a day is wasted computation and unpredictable timing.
  2. Plan with a bidirectional sampling planner when the scene has changed, with a hard time budget.
  3. Shortcut and smooth the result, which is cheap and improves cycle time materially.
  4. Time-parameterise against the robot's real velocity, acceleration and jerk limits. This step, not the planner, determines cycle time.
  5. Fall back deterministically. If planning exceeds its budget, retreat to a known safe path rather than continuing to search while the line waits.

Point five separates laboratory code from production code. A planner without a bounded failure behaviour will eventually stall a cell, and the operator will not care which algorithm was responsible.

Collision checking is where the time goes

Planners are usually described by their search strategy, but 80 % to 95 % of their runtime is spent answering one question repeatedly: is this configuration in collision. Making that question cheaper speeds up every planner at once.

Collision representation, cost and fidelity
RepresentationCheck costFidelityUse
Bounding spheres1xcoarseBroad phase rejection
Capsules on links2 to 4xgood for armsStandard for manipulators
Convex hulls5 to 15xgoodTooling and fixtures
Full mesh50 to 500xexactFinal verification only
Voxel or octree of sensor data3 to 20xdepends on resolutionUnknown or changing environments

The practical recipe is a two-phase check: reject most configurations with spheres or capsules in a fraction of a microsecond, and only run the expensive representation on the few that survive. Teams that plan directly against full meshes usually find their planner ten to fifty times slower than it needs to be.

Frequently asked questions

Which motion planner should I use?

A bidirectional sampling planner such as RRT-Connect to find a path, followed by shortcutting and smoothing. Add a trajectory optimiser where path quality matters, and cache repeated motions rather than replanning them.

Why does planning sometimes take seconds?

Almost always a narrow passage, where valid configurations occupy a tiny fraction of the sampled space, such as reaching through a machine door. Sample biasing, an intermediate waypoint or a physically wider opening are the fixes.

What is the difference between sampling and optimisation planners?

Sampling planners search randomly for any collision-free path and are robust in clutter but produce jagged results. Optimisation planners refine a trajectory against a cost function and produce smooth paths but can stall in local minima in cluttered scenes.

Does the planner determine cycle time?

No, time parameterisation does. The planner produces a geometric path; converting it into a timed trajectory against velocity, acceleration and jerk limits is what sets how long the motion takes.

Are learned planners usable in production?

As fast proposal generators inside a stack that still verifies collisions and has a classical fallback. Used alone they fail unpredictably on scenes outside their training distribution, which is unacceptable in a cell.

Sources

  1. Open Motion Planning Library documentationReference implementations and characteristics of the sampling planners described
  2. arXiv robotics preprints, motion planningPrimary literature on sampling and optimisation-based planning
  3. ISO 8373, robotics vocabularyInternational Organization for Standardization, definitions of path, trajectory and pose