선속도
- 로봇이 얼마나 앞으로 가는지
- 만약 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)