This page exists because many planning and control interviews quietly test one deeper idea:
Is the robot free to move in every local direction, or is its motion constrained by its current heading and actuation?
That distinction explains why some robots can follow a path like a cursor on a screen, while others must swing, reverse, or re-approach to reach the same pose.
Let the robot configuration be:
A robot is holonomic if its constraints can be expressed as configuration-only constraints, so the allowed motion directions match the independent coordinates of its configuration space.
In practical robotics language, that means:
The robot can move instantaneously in every independent local direction that its configuration space allows.
For a planar omnidirectional robot, you can model:
with directly commanded body motion:
Here the robot can translate in $x$, translate in $y$, and rotate independently.
A robot is non-holonomic if it has velocity constraints that cannot be integrated into pure position constraints.
These are often written as:
If those constraints cannot be converted into a configuration-only condition like:
then they are non-holonomic.
For a unicycle or differential-drive robot:
This implies the sideways-velocity constraint:
That equation means the robot cannot move sideways instantaneously.
A robot is underactuated when it has fewer independent control inputs than the full number of configuration or state variables that matter for motion.
That is a different question from holonomy.
The common interview-safe summary is:
A quadrotor is the classic example: it is usually discussed as underactuated, not simply as a holonomic mobile robot.
Think of a robot that moves like a computer game character on ice-free tiles:
If it needs to shift a little to the left, it just does it.
Now think of a real car.
It can:
But it cannot do this:
“Move 20 cm directly sideways into the next parking spot right now.”
It has to maneuver.
If the robot is approximately holonomic in the plane, a planner can often think more simply:
If the robot is non-holonomic, the planner must also care about:
That is why a 2D costmap path is not always a drivable path.
This is exactly the intuition behind:
(x, y)(x, y, \theta)Related reading: 04-navfn-vs-smac-search-spaces.md
| Type | Core idea | Mathematical clue | Sideways motion right now? | Typical example | Planning implication |
|---|---|---|---|---|---|
| Holonomic | Can move directly in each independent local direction | Direct local velocity in all relevant DOFs | Usually yes, if that DOF exists | Omni-wheel base | Geometry-first planning often works |
| Non-holonomic | Has non-integrable velocity constraints | A(q)\dot{q} = 0 |
No | Differential drive, car, forklift | Heading and curvature matter |
| Underactuated | Has fewer independent controls than motion variables of interest | Fewer independent inputs than desired motion authority | Not the defining test | Quadrotor, fixed-wing aircraft | Dynamics and control coupling matter |
No. Differential-drive and car-like robots are non-holonomic, but mecanum and omni-wheel robots are often modeled as holonomic in the plane.
Because the constraint is about instantaneous feasible velocity directions, not necessarily eventual reachability.
Because heading determines which local velocities are physically feasible.
No. Underactuation is about missing independent control inputs. Non-holonomy is about motion constraints that forbid arbitrary instantaneous directions.
In full dynamics, the better answer is that it is underactuated. In simplified planning layers, people may sometimes approximate its position control as if it were free in 3D.
A holonomic robot can move instantaneously in every allowed local direction; a non-holonomic robot must maneuver because some velocity directions are forbidden.
When someone says a path is valid, ask:
That is the bridge from geometry to real robot motion.
Companion exercise: Exercise08 — Holonomic, Non-Holonomic, and Underactuated Interview Traps