안녕하세요 K-Road 5기 정성윤입니다.

저는 자율주행차의 실시간 경로에 대한 안전성을 보장하기 위한 알고리즘 중 하나인 DWA 알고리즘에 대해서 설명드리겠습니다.


Introduction

자율주행차는 복잡한 도시 환경에서 다양한 상황에 직면합니다. 차량은 주행 중 실시간으로 장애물을 피하고, 안전한 경로를 찾아야 합니다. 이러한 실시간성을 보장하며 경로 계획을 진행하고 충돌을 회피하기 위해서 다양한 알고리즘이 존재하며, 그 중 하나가 DWA(Dynamic Window Approach)입니다. DWA는 로컬 경로 계획 알고리즘으로, 자율주행 차량이 글로벌 패스를 기반으로 주어진 목표 지점까지 안전하고 효율적으로 이동할 수 있도록 경로를 생성합니다.


Dynamic Window

DWA 알고리즘의 가장 핵심적인 개념은 Dynamic Window입니다. 다음은 Dynamic window와 관련된 개념들입니다.

  • 선속도 (Linear Velocity)

    • 선속도는 물체가 이동할 때 단위 시간당 이동한 거리를 나타내는 물리량입니다. 선속도의 단위는 주로 미터/초(m/s)입니다. 선속도는 벡터량으로, 이동 방향과 크기를 가집니다.
  • 각속도 (Angular Velocity)

    • 각속도는 물체가 회전할 때 단위 시간당 회전한 각도를 나타내는 물리량입니다. 각속도의 단위는 주로 라디안/초(rad/s) 또는 도/초(°/s)입니다. 각속도는 벡터량으로, 회전의 축과 회전 방향을 가지며, 오른손 법칙에 따라 방향이 결정됩니다.
  • Dynamic Window

    • 차량의 동적 특성을 고려한 속도(선속도)와 조향 각도(각속도)의 범위입니다. DWA 알고리즘은 이 범위 내에서 가능한(장애물 존재 X, 자동차의 동역학적 특성 고려) 모든 선속도와 각속도 조합을 평가합니다.

DWA Algorithm

DWA 알고리즘은 다음과 같은 단계로 구성됩니다.

  1. Current State Assessment & Dynamic Window Generation

    • 차량의 현재 위치 (x,y), 속도 v, 조향 각도 θ를 확인합니다.
    • 현재 상태를 기반으로 Dynamic Window를 생성합니다.
  2. Trajectory Simulation:

    • 가능한 모든 속도와 조향 각도 조합에 대해 시뮬레이션을 진행하여 여러 개의 경로를 생성합니다.
    • 경로는 차량의 운동 방정식을 사용하여 계산됩니다:
    x˙=vcos(θ)\dot{x} = v \cos(\theta)
    y˙=vsin(θ)\dot{y} = v \sin(\theta)
    θ˙=ω\dot{\theta} = \omega

    여기서 x와 y는 차량의 위치, θ는 차량의 조향 각도, v는 속도, ω는 각속도입니다. 이 수식을 통하여 경로를 생성하고 조향 명령을 계산합니다.

  3. Collision Check:

    • 생성된 경로가 장애물과 충돌하지 않는지 확인합니다.
  4. Evaluation Function:

    • 각 경로에 대해 평가 함수(예: 목표 지점까지의 거리, 속도 유지 등)를 적용하여 점수를 계산합니다.
    • 평가 함수의 일반적인 형태는 다음과 같습니다:
    G(v,ω)=αheading(v,ω)+βdistance(v,ω)+γvelocity(v,ω)G(v, \omega) = \alpha \cdot heading(v, \omega) + \beta \cdot distance(v, \omega) + \gamma \cdot velocity(v, \omega)

    heading(v,ω): 목표 지점까지의 거리

    distance(v,ω): 장애물과의 거리

    velocity(v,ω): 속도 유지

    α, β, γ: 각 평가 기준의 가중치

  5. Optimal Path Selection:

    • 평가 점수가 가장 높은 경로를 선택합니다.
  6. Command Execution:

    • 선택된 경로에 따라 차량에 속도와 조향 명령을 전달합니다.

1~6번 과정을 반복하며 목표 지점까지 이동합니다.

Dynamic Window Approach가 어떻게 이루어지는지 보여주는 영상입니다. 선속도와 각속도의 조합을 데카르트 좌표계로 바꾸면 부채꼴 모양이 나오는 것을 확인 가능합니다.

Advantages of DWA

  • 실시간성
    • 각속도와 선속도의 조합을 통해 실시간으로 경로를 계산하여 빠른 의사 결정을 내릴 수 있습니다.
  • 경로 안정성
    • 장애물을 회피하는지도 평가 함수에 포함되어 있기 때문에 장애물을 피하면서도 목표 지점으로 이동할 수 있는 최적의 경로를 생성 가능합니다.
  • 차량 모델 적응성
    • Dynamic Window를 통해 경로 생성 시 차량 모델을 사용하여 데카르트 좌표계로 변환을 진행하기 때문에 차량의 동적 특성을 반영하여 다양한 주행 상황에 적응할 수 있습니다.

Limitations and Challenges

  • 로컬 최적화

    • DWA는 로컬 경로 계획에 중점을 두기 때문에 전역 최적 경로를 찾는 데는 한계가 있습니다.
  • 센서 의존성

    • 정확한 경로 계획을 위해 고정밀 센서 데이터가 필요합니다.
profile
한국기술교육대학교 자율주행연구회 K-ROAD의 기술블로그 입니다.

0개의 댓글