Skip to content
CoreSource checked

Dynamic Window Approach

Chooses robot velocity commands by simulating short feasible motions and scoring them.

Quick Facts

Compact metadata for implementation and discovery.

Category
Pathfinding
Difficulty
Intermediate
Family
Robot Navigation
Tier
Core
Status
Verified
Review
Source Checked
Sources
1
Formulas
0
Relationships
3
Code example
Ready
Visualization
Ready

Overview

The Dynamic Window Approach samples translational and angular velocities that the robot can reach within acceleration limits, simulates short trajectories, and chooses a collision-free command with a good score.

Core Concepts

local robot navigationrobot navigationrandom samplingpathfinding

Quick facts

Complexity

Runtime and memory behavior at a glance.

Best

O(n)

Average

O(n log n)

Worst

O(n^2)

Space

O(n)

When to Use

  • Use when a robot needs local collision avoidance from current state and sensor data.
  • Use when a global planner can provide a goal direction but local dynamics still matter.

When Not to Use

  • Avoid when long-horizon global optimality is required by itself.
  • Avoid when dynamics, obstacle prediction, or footprint checks are too inaccurate.

What It Does

  • Samples reachable velocity commands
  • Predicts short trajectories
  • Scores commands by safety, goal progress, and speed

Use Cases

  • Local mobile-robot navigation
  • Reactive obstacle avoidance
  • Velocity-space planning with acceleration limits

Inputs

  • Robot Navigation input instance for robot navigation
  • Configuration parameters controlling local robot navigation

Outputs

  • Computed robot navigation solution produced by Dynamic Window Approach
  • Diagnostic state over local robot navigation and robot navigation

Pseudocode

  1. 1.Compute the dynamic window from current velocity and acceleration limits
  2. 2.Sample candidate linear and angular velocities
  3. 3.Roll out each candidate for a short horizon
  4. 4.Reject trajectories that collide with obstacles
  5. 5.Score remaining trajectories and return the best command

Canonical Example

Input
robot at (0,0), obstacle ahead, candidate velocities turn-left and go-straight
Output
turn-left command if go-straight collides in the rollout
Explanation
The chosen velocity is feasible under acceleration limits and scores better after collision checking.

Implementation Notes

  • Separate velocity sampling, trajectory rollout, collision checks, and scoring.
  • Tune heading, clearance, and velocity weights on representative maps.
  • Test narrow passages and moving-obstacle edge cases.

Common Pitfalls

  • Ignoring acceleration limits makes sampled commands infeasible.
  • Short horizons can get trapped in local minima.
  • Footprint and clearance calculations must match the robot geometry.

Interactive Mechanism Walkthrough

2D Grid Wavefront & Trajectory

Show sampling feasible velocity commands and scoring short simulated trajectories on a small local robot navigation example.

S
#
#
#
#
#
#
#
G
Step 1 of 5: Compute the dynamic window from current velocity and acceleration limits
pathfinding-mechanism

Notes

DWA is a local planner; it is commonly paired with a global planner or navigation objective.

Sources (1)

What each reference supports for this entry.

Dynamic Window Approach

Paper

Original dynamic window approach paper for velocity-space local robot collision avoidance.

Open source

Explore Next

Good next jumps from the relationship graph, ranked for useful discovery.

Conceptual neighborA* Search

Dynamic Window Approach and A* Search both relate to local robot navigation, but use different structures or assumptions.

Conceptual neighborD* Search

Dynamic Window Approach and D* Search both relate to local robot navigation, but use different structures or assumptions.

Conceptual neighborLifelong Planning A*

Dynamic Window Approach and Lifelong Planning A* both relate to local robot navigation, but use different structures or assumptions.

Tags

PathfindingGraphRandomness