ROBOTICS 101Concept explainer

Local Planning: The Dynamic Window Approach

A local planner decides what to do in the next fraction of a second. The dynamic window approach only considers speeds the robot can actually reach given its acceleration limits. For each candidate, it simulates a short arc, throws out the ones that would hit something, and scores the rest on heading toward the goal, distance from obstacles, and speed.

The dynamic window

Given the current speed \(v\) and turn rate \(\omega\), the reachable window over the next control step \(\Delta t\) is limited by the accelerations:

$$V_d = \big[v - \dot v_{\max}\Delta t,\ v + \dot v_{\max}\Delta t\big] \times \big[\omega - \dot\omega_{\max}\Delta t,\ \omega + \dot\omega_{\max}\Delta t\big]$$

Each sampled \((v, \omega)\) in that window is rolled out for a short time and scored, with colliding rollouts discarded:

$$G(v, \omega) = \alpha\,\text{heading} + \beta\,\text{clearance} + \gamma\,\text{speed}$$

What to notice

Red rollouts would collide and are never chosen. With a high clearance weight the robot keeps a wide berth but can stall in tight spaces. With a high speed weight it moves boldly and cuts close. Because it only looks a moment ahead, DWA can be trapped by obstacles shaped like a U, which is why it runs under a global planner. Nav2's DWB controller is a modern version of this idea.