Hybrid A* is a path planner for car-like robots that searches over feasible, drivable motions instead of grid cells — producing smooth paths a vehicle can actually follow, the algorithm behind self-driving parking and navigation.
Hybrid A* plans routes for cars that can't turn on the spot. Instead of hopping between grid squares, it searches using realistic little driving moves, so the path it finds is one the car can actually steer — smooth curves, no impossible sideways jumps.
Plain A* plans on a grid, hopping cell to cell — fine for a robot that can move any direction, useless for a car that can't turn in place or slide sideways. Hybrid A* adapts A* to plan paths a car-like robot can actually drive.
The problem with grid A* for cars
A car is nonholonomic (Ackermann steering): it has a minimum turning radius and can't move laterally. A grid-A* path is a chain of cell-to-cell steps that ignores this — it might command a sharp turn or a sideways jump no car could follow. You'd get an "optimal" path that's physically undrivable.
The hybrid trick
Hybrid A* keeps A*'s guided search but changes what it expands:
Instead of stepping to neighboring grid cells, it applies continuous, feasible motion primitives — short drivable arcs the vehicle can actually execute (respecting its turning radius, forward/reverse).
It tracks the vehicle's continuous position and heading within each grid cell (hence "hybrid": a grid for bookkeeping, continuous state for the actual pose).
It uses smart heuristics (a non-holonomic-without-obstacles heuristic and a holonomic-with-obstacles one) to guide the search efficiently.
Search over drivable moves
By expanding only motions the car can perform and keeping continuous state, the path that comes out is one the vehicle can actually steer along.
Where it's used
Hybrid A* is a staple of autonomous driving and mobile robotics:
Parking and low-speed maneuvering — the classic use (it was developed in the DARPA Urban Challenge era), handling tight spaces with forward/reverse maneuvers.
Unstructured navigation — driving through open or cluttered areas where lanes don't exist.
Nav2's Smac planner offers a Hybrid-A* option for car-like robots.
The raw path is often smoothed afterward for comfort, but it's feasible from the start.
Hybrid A* vs lattice planners
A related approach, the state lattice planner, precomputes a fixed set of motion primitives forming a regular lattice. Hybrid A* generates motions on the fly from the continuous state; both aim to produce feasible paths for constrained vehicles, and they're often compared.
Why it matters
Hybrid A* solved a core practical problem: planning optimal-ish paths that a real vehicle can actually drive. It bridges A*'s efficient search with the kinematic reality of cars, making it foundational to self-driving navigation and parking.