경로 추종

두부김치·2024년 6월 10일

로봇경로계획

목록 보기
16/17

1. 경로 추종 개요

1.1 경로 추종

  • 자동차의 역학적 특성 등을 고려하여 자동차를 제어하여 계획된 경로를 따르도록 하는 것

1.2 횡방향 제어

  • 자동차가 계획된 경로를 추종할 수 있도록 조향 각도를 제어
  • 활용 예
    • 차선 유지 시스템(LKAS: Lane Keeping Assist System)
    • 자동 조향 시스템(ACSF: Automatically Commanded Steering Function)등

1.3 종방향 제어

  • 전방 차량과의 거리, 속도 등의 정보를 토대로 주행 또는 충돌을 피하기 위한 속도 또는 가속도의 제어 명령을 출력
  • 활용 예
    • 스마트 크루즈 컨트롤(Smart Cruise Control 등)

2. 자전거 모델

  • 분석을 용이하게 하기 위하여 자동차의 모델을 간략화하여 표현
  • 앞바퀴 : 제한된 범위의 각도에서 조향
  • 뒷바퀴 : 각도는 고정되어 앞바퀴의 움직임을 추종
  • 자동차는 앞바퀴와 뒷바퀴가 각각 2개씩이지만, 분석의 편의를 위해 각 하나의 바퀴가 있는 모델로 간략화

2.3 자전거 모델 분석

  • 뒷바퀴의 축을 중심으로 자전거 모델을 분석
  • 주요 변수
    • δ\delta : 조향 각도
    • ϕ\phi : 자동차의 방향
    • υ\upsilon : 속력
    • τ\tau : 스티어링률(Steering rate)
    • ω\omega : 회전율(rotation rate)

3. Pure Pursuit 알고리즘

  • Pure Pursuit 알고리즘
    • 계획된 경로 상에 추종 목표점을 설정하고, 목표점을 추종할 수 있도록 조향각을 제어
    • 추종 목표점과 자동차의 뒷바퀴 축 사이의 거리인 전방 주시거리(Look-Ahead-Distance)를 이용하여 자동차의 조향을 계산
    • ldl_d : 전방 주시거리
    • α\alpha : 전방 주시거리와 자동차 동체의 방향 사이의 각도
    • RR : 전방 주시거리와 자동차 뒷바퀴의 중심축을 연결하는 원호의 반경
  • 사인 법칙으로 다음과 같이 수식을 정리
    ldsin(2α)=Rsin(π2α)\frac{l_d}{sin(2\alpha)} = \frac{R}{sin(\frac{\pi}{2}-\alpha)} \\
    ld2sin(α)cos(α)=Rcos(α)\rightarrow \frac{l_d}{2sin(\alpha)cos(\alpha)} = \frac{R}{cos(\alpha)} \\
    ldsin(α)=2R\rightarrow \frac{l_d}{sin(\alpha)} = 2R \\
    k=1R=2sin(α)ld\rightarrow k = \frac{1}{R} = \frac{2sin(\alpha)}{l_d}
  • 곡률 k에 자전거 모델을 적용
    • δ\delta : 자동차의 뒷바퀴가 목표 지점에 도달하기 위한 조향 각
      k=1R=2sin(α)ldR=Ltan(δ)k = \frac{1}{R} = \frac{2sin(\alpha)}{l_d} \leftarrow R=\frac{L}{tan(\delta)} \\
      \downarrow
      δ=arctan(2Lsin(α)ld)\delta = arctan(\frac{2Lsin(\alpha)}{l_d})
  • Look-Ahead-Distance

4. 스탠리(Stanley)알고리즘

4.1 스탠리 알고리즘

  • DARPA에서 주최한 그랜드 챌리지에서 스탠포드 대학팀이 사용한 알고리즘
  • 자동차의 앞 바퀴 축을 기준으로 기준점으로 사용
  • 목표점까지의 경로 교차 오차(Cross-track error)와 목표점과 자동차의 조향 방향의 오차를 고려
    • Pure Pursuit : 자동차와 목표 지점까지의 오차

4.2 방향 오차 제거

  • 방향 오차와 조향 각을 일치시킴
    δ(t)=ϕ(t)\delta(t) = \phi(t)

4.3 경로 교차 오차 제거

  • e(t)e(t) : 경로와 자동차 사이에 가장 가까운 지점
    δ(t)=arctan(ke(t)υf(t))=조향각\delta(t) = arctan(\frac{ke(t)}{\upsilon_f(t)}) = 조향각

4.4 조향 각 제한치 설정

δ(t)=ϕ(t)+arctan(ke(t)υf(t)), δ(t)ϵ[δmin,δmax]\delta(t) = \phi(t)+arctan(\frac{ke(t)}{\upsilon_f(t)}),\ \delta(t)\epsilon[\delta_{min}, \delta_{max}]

4.5 조향 각도 계산

δ(t)=ϕ(t)+arctan(ke(t)kδ(t)υf(t))\delta(t) = \phi(t)+arctan(\frac{ke(t)}{k_{\delta(t)}\upsilon_f(t)})
  • 자동차의 조향 방향의 오차만 고려하는 것이 아니라 경로 교차 오차를 포함하여 조향 각을 결정

4.6 스탠리 알고리즘 특징

  • 조향 방향의 오차가 크고 경로 교차 오차가 작은 경우
    • 조향 방향의 오차 증가 -> 조향 각 증가 -> 조향 방향 오차를 수정하기 위해 반대 방향으로 조향을 하여 자동차가 경로와 동일한 방향을 향함
  • 반대로, 조향 방향의 오차는 작지만 경로 교차 오차가 큰 경우
    • 경로 교차 오차가 큰 경우, e(t)이 충분히 크다면 다음과 같이 근사
      arctan(ke(t)υf(t))π2arctan(\frac{ke(t)}{\upsilon_f(t)}) \approx \frac{\pi}{2}
    • 조향 각은 다음과 같이 근사
      δ(t)=ϕ(t)+π2\delta(t) = \phi(t) + \frac{\pi}{2}
profile
Robotics

0개의 댓글