Embodied AI Glossary中文

Dynamic Window Approach

动态窗口法DWAAdvanced

Sampling, simulating, and scoring the velocities a robot could reach next, then picking the best one — a classic local obstacle-avoidance method.

The dynamic window approach, proposed by Dieter Fox, Wolfram Burgard, and Sebastian Thrun in 1997, is one of the most classic local obstacle-avoidance algorithms for mobile robots. It searches for a control command directly in velocity space — for a differential-drive base, the candidates are combinations of linear velocity v and angular velocity ω. The ‘dynamic window’ is the small range of velocities actually reachable in the next control cycle given the robot's maximum acceleration and deceleration; velocities that can't brake in time to avoid a collision are then filtered out. Each remaining (v, ω) pair is forward-simulated along a short circular-arc trajectory and scored with G = α·heading toward goal + β·distance from obstacles + γ·speed, and the highest-scoring pair is executed. It accounts for the robot's acceleration limits and is cheap to compute, but since it only looks a short distance ahead, it can get stuck at U-shaped obstacles, so it usually needs a global planner such as A* or D* to give a rough route first. Both ROS 1's dwa_local_planner and Nav2's DWB controller are built on this idea.

ExampleA differential-drive robot running in the ROS navigation stack: a global planner gives a route, and each control cycle a local planner samples a batch of (v, ω) pairs, simulates each one's short-term trajectory, discards any that would hit a costmap obstacle, and sends the chassis the pair that stays close to the route while moving fastest.

Also called
DWA, dwa_local_planner
Related
Global Planning and Local Planning · Timed Elastic Band · Artificial Potential Field · Costmap · ROS 2 Navigation Stack (Nav2) · Obstacle Avoidance
Sources
Wikipedia: Dynamic window approach
Nav2 DWB Controller README(successor to DWA in ROS 1)

See it in the full glossary →