Dynamic Window Approach(DWA) 는 로봇의 경로 계획과 충돌 회피를 위해 사용되는 대표적인 지역 경로 계획(Local Path Planning) 알고리즘으로, 로봇의 현재 동적 제약(최대 속도, 가속도 등)을 고려하여 다음 시간 스텝 동안 도달 가능한 속도 공간(Velocity Space : Dynamic Window)을 정의한다.
속도 공간 내에서 여러 궤적을 예측하고, 목표 지점 도달, 장애물 회피, 속도 유지 등의 평가 함수를 통해 최적의 궤적을 선택하여 로봇을 제어한다.
위치 공간(Position Space)이 아닌 속도 공간에서 미래 궤적을 예측하여, 차량의 운동학적 및 동역학적 제약을 직접 고려할 수 있다.
Dynamic Window
Dynamic Window는 차량이 다음 제어 주기 Δt 동안 실제로 만들어낼 수 있는 모든 속도 명령의 집합(=속도 공간)을 말하며, 2차원 이동 로봇에서 속도의 상태는 선속도 v 와 각속도 ω 로 정의할 수 있다.
이때 로봇의 물리적 속도 한계를 고려하여 현재 차량의 상태(속도)에서 실제로 도달 가능한 영역(Window)만 탐색하는 것이 핵심이다.
세로축, 가로축 : 선속도 v와 각속도 ω
Vd : Dynamic Window - 현재 속도에서 제어 주기(Δt) 동안 차량이 실제로 도달 가능한 속도 집합
Vs : Velocity Space - 차량이 구조적으로 가질 수 있는 모든 속도의 집합
Va : Admissible Velocity - 허용 가능한 속도 집합 (현재 속도에서주행하다가 최대 제동을 했을 때 장애물과 충돌하기 전에 완전히 정지할 수 있는 속도들의 집합)
Vr : Reachable Velocity - Vd,Vs,Va를 모두 고려하여 실제로 탐색할 후보 집합
Velocity Space
차량 자체가 낼 수 있는 모든 속도의 집합.
Vs={(v,ω)∣Vmin≤v≤Vmax,Wmin≤ω≤Wmax}
Vmax,Vmin : 차량의 최대, 최소 선속도
Wmax,Wmin : 차량의 최대, 최소 각속도 (좌회전, 우회전)
Dynamic Window
현재 속도에서 차량의 가속도 한계를 고려했을 때 다음 제어 주기 내에 실제로 도달 가능한 속도들의 집합.
이때, 일반적으로 Dmax는 모든 후보 Trajectory의 모든 점들에 대한 dmin 값 중 가장 큰 값을 의미한다.
따라서, 만약 장애물과 거리가 멀수록 dmin 값이 증가하므로 장애물을 최대한 회피하는 경로라고 할 수 있다.
Velocity Evaluation
목표 위치까지 빠르게 이동하도록 유도하기 위해, 후보 속도의 선속도 v를 다음과 같이 정규화하여 Velocity Score로 사용한다.
V=Vmaxv
이때, 일반적으로 Vmax는 전체 후보 속도 중 가장 큰 선속도 값을 의미한다.
Weight Parameters
DWA의 목적함수에 사용되는 각 평가항목의 가중치 α,β,γ에 대하여 다음과 같이 해석할 수 있다.
G(v,ω)=αHeading(v,ω)+βDistance(v,ω)+γVelocity(v)
α : 커질수록 목표 방향을 우선한다.
β : 커질수록 장애물에서 멀리 떨어진다.
γ : 커질수록 빠르게 이동한다.
일반적으로 가중치를 모두 합하여 1이 되도록 구성한다.
Trajectory Selection
모든 후보속도에 대한 Trajectory를 대상으로 목적함수를 이용해 점수를 계산한다.
점수가 가장 높은 Trajectory를 최종 제어입력 (v,ω)로 선택한다.
이러한 Trajectory를 선택하는 과정은 매 제어주기(Δt) 또는 설정한 주기마다 반복하여 계산함으로써 로봇이 실시간으로 장애물을 피하며 주행할 수 있게 한다.
DWA 한계
지역 최적해 문제 (Local Minimum): 일반적으로는 DWA가 APF보다 Local Minimum 문제에 더 강하지만, U자 형태의 장애물 등에서 빠져나오지 못하는 문제가 발생할 수 있다.
예측 기간의 의존성 (Prediction Horizon): 예측 Trajectory의 시간이 길어질수록 더 안정적이지만, 구성하는 점의 수가 증가하여 계산량이 증가한다. 예측 성능과 계산량 사이의 적절한 균형이 요구된다.
파라미터 튜닝의 어려움 (Parameter Tuning): 목적 함수의 가중치 설정에 따라 주행 특성이 크게 달라지므로, 적절한 파라미터를 선택하는 과정이 매우 중요하다. 강화학습을 통해 가중치를 결정하는 알고리즘 등이 연구되고 있다.
동적 장애물 처리의 한계 (Dynamic Obstacle Handling): 예측 불가능하게 움직이는 동적 장애물에 대한 효과적인 회피 능력이 제한적이다. 이후 많은 DWA 관련 연구에서 Dynamic Obstacle 의 움직임을 예측 및 반영하여 Trajectory를 계산하는 방식으로 진화하였다.