Skip to content

Pure Pursuit

ejhon1116 edited this page Oct 11, 2025 · 6 revisions

Context: We implemented an obstacle avoidance system using the A* path planning algorithm. This produces safe paths, but the grid resolution leads to jagged, "choppy" routes. Because our drive commands are limited to mutually exclusive states (stop, turn in place, drive forward), the rover executes many stop–turn–go maneuvers, slowing down traversal significantly.

Problem: When following an A* path with frequent heading changes, the rover cannot simultaneously turn and drive forward. Each heading change forces a stop, rotation in place, and then forward motion. This makes navigation inefficient and jerky, even though the path itself is technically collision-free.

Solution: We will introduce a path-tracking controller that allows the rover to turn and move forward simultaneously, smoothing jagged global paths into continuous arcs. To do this we will use Pure Pursuit. This algorithm picks a lookahead point on the path at a fixed distance ahead of the robot and then computes the curvature of the circular arc connecting the robot’s current position to this point.

Screenshot 2025-10-10 at 9 11 32 PM Screenshot 2025-10-10 at 9 11 49 PM

Clone this wiki locally