알고리즘

DWA( dynamic window approach )

정지홍 2025. 6. 8. 09:47

선속도

  • 로봇이 얼마나 앞으로 가는지
  • 만약 v=10 m/s이며 , Δt = 0.1이라면, 0.1초동안 1만큼 이동한다.
    • 그러면 v=30m/s라면, 0.1초동안 3미터씩 이동하는 것 

 

DWA

  • 실시간 속도 기반의 path planning 및 장애물 회피 알고리즘이다.
  • 로봇이 goal을 향해서 이동할때, 로봇의 동적 제약( velocity , max_speed )와 주변 장애물을 고려해서 매 순간의 "속도( v , w )"를 선택한다.
  • 주요목적
    • 빠른 실시간 장애물 회피와 경로 추종
  • 입력
    • 현재 로봇의 위치와 속도
    • goal
    • 주변 장애물( 센서 입력,,,, laserscan과 같은,,,, )
  • 출력
    • 로봇의 다음 주기(dt)동안 적용한 선속도(v)각속도(w) 

 

  • 핵심 아이디어
    • 로봇의 속도(v , w) 공간에서 현재 가능한 조합을 동적으로 계산
    • 후보 속도( v , w )별로
      • 1. 로봇의 운동학 모델에 따라서 "미래 궤적"을 시뮬레이션
      • 2. 해당 경로가 장애물에 충돌하지 않는지 체크
      • 3. 여러 평기 기준으로 "최적의 (v , w)"를 선택

 

  • 장점
    • 실시간성 
    • 로봇의 동적 제약을 고려
    • 실제로 많이 사용됨
  • 단점
    • local planning만 가능
    • local minima문제 존재
    • 단순한  차륜형 로봇에만 특화
    • 움직이는 장애물에는 약하다.

  • 운동학 모델
    • 로봇:
      -- 선속도 v , 각속도 w
      -- pose ( x , y , θ )
    • 로봇의 상태 변화 ( descript time )

각속도도 선속도와 비슷하게 계산하지만, 양수라면 반시계 방향, 음수라면 시계방향이다.

 


  • 동적 윈도우 생성
    • 기본 속도 공간
      • [ v_min , v_max ]  ,  [ w_min , w_max ]
    • 동적인 제약
      • 최대 각속도,감속도(브레이크 ) 등을 고려
      • 한 주기 내 로봇이 실제로 도달 가능한 속도만 고려한다
    • 충돌 제약
      • 각 속도 조합에서, 해당 속도로 정지 시까지의 경로 상에 충돌하는 장애물이 존재하는지 체크

 

    • 평가 함수 ( cost function )
      • DWA는 각각의 후보 ( v , w )에 대해서 아래의 항목을 종합적으로 평가한다 
      • 1. 목표점 접근성 ( goal heading )
        • 목표를 향해서 나아가는지 평가
          heading( v , w ) = cos( θ_goal θ_trajectory)
      • 2. 장애물과의 거리 ( clearance )
        • 가장 가까운 장애물과의 거리 ( 클수록 종다 )
          clearance( v , w ) = min(경로상_장애물까지의 거리)
      • 3. 속도 유지 ( velocity )
        • 빠르게 가기를 원하면 v가 클수록 점수를 부여
          velocity( v , w ) = v
      • 4. 전체 평가 ( 가중합 )
        • 최종적으로 각 항목에 가중치를 곱해서 점수를 합산 
          G(v,w) = αheading(v,w) + βclearance(v,w) + γvelocity(v,w)
          • α,β,γ 는 하이퍼파라미터(사용자 설정)

 

 

 

'알고리즘' 카테고리의 다른 글

테스트 케이스 => RRT Star , Q_RRT  (0) 2025.07.21
Voronoi Diagram  (0) 2025.05.27
Visibility Graph  (0) 2025.05.27
[RRT] RRG(Rapidly-exploring Random Graph)  (0) 2025.04.30
[RRT] LBT-RRT(Local-Best-Tree RRT)  (0) 2025.04.27