Dionysus

2022.10.21.(금) 공부 내용 - Pure Pursuit 알고리즘 본문

전자공학/Path Planning

2022.10.21.(금) 공부 내용 - Pure Pursuit 알고리즘

Gogumiing 2022. 10. 21. 17:22

Pure Pursuit 알고리즘

  • Path Tracking & Lateral Control 알고리즘
  • 차량의 운동 방정식과 기준이 되는 경로의 geometry만을 사용하여 기준 경로를 추종하는 알고리즘이다.
  • Stanley Method와 함께 시뮬레이션이나 자율주행 모빌리티의 횡제어에 사용되는 간단한 알고리즘이다.
    --> 알고리즘이 간단하므로, 실제 좋은 성능을 위해서는 튜닝 파라미터를 잘 설정하거나 수식적인 보완이 필요하다.
  • Pure Pursuit 알고리즘은 차량을 Bycicle Model 혹은 Ackerman Model로 가정한다.
  • 차량의 후륜축 중심(Rear Center Wheel)을 기준점으로 사용한다.
  • Pure Pursuit 알고리즘은 제어 추종 기준점을 LookAheadPoint로 일치시키게끔 제어하기 때문에, 위치 값 (x,y)만 제어되고 차량의 Heading과 경로의 기울기는 일치되게끔 제어되지 않는다.
    --> 이것은 곡률이 큰 경로에서의 단점이 될 수 있고, Stanley Method가 이 단점을 일부 해소할 수 있을 것으로 보인다.

순서도

[출처 : https://iridescentboy.tistory.com/69]

LookAheadDistance

차량 위치에서 LookAheadPoint까지의 거리를 나타내는 parameter로, Pure Pursuit 알고리즘의 중요 파라미터이다.

LookAheadDistance는 다음 목표지점이 배치되는 거리를 결정하는 것으로, 이는 로봇이 조향각을 계산하기 위해 현재 위치에서 앞으로의 경로상에 있는 목표지점 중 얼마나 멀리 있는 목표지점을 봐야하는지를 결정한다.

 

[출처 : https://iridescentboy.tistory.com/69]
[출처 : https://blog.naver.com/PostView.naver?blogId=rich0812&logNo=222592223219&parentCategoryNo=&categoryNo=57&viewDate=&isShowPopularPosts=true&from=search]

위 그림과 같이 실제 경로와 Waypoints 경로는 정확히 일치하지는 않는다.

 

LookAheadDistance를 변경하면 로봇이 경로를 추적하는 방법이 변경될 수 있는데, 이때 2가지에 변화를 주게된다.

첫 번째는 경로를 유지하는 것이고 두 번째는 다시 경로로 돌아오는 것이다.

 

1. 만약 LookAheadDistance를 짧게 설정하여 로봇의 경로상에 존재하는 경유지 중 로봇의 현재 위치와 짧은 거리의 경유지를 목표지점으로 설정하면, 로봇이 설정된 경로로 빠르게 되돌아온다. 그러나 아래 그림과 같이 로봇은 경로를 초과하여 경로를 따라 진동할 수 있다.

[출처 : https://blog.naver.com/PostView.naver?blogId=rich0812&logNo=222592223219&parentCategoryNo=&categoryNo=57&viewDate=&isShowPopularPosts=true&from=search]

 

2. 반면 LookAheadDistance를 길게 설정하면 로봇의 경로상에 있는 경유지 중 로봇의 현재 위치와 먼 거리에 있는 경유지를 목표지점으로 설정하여, 경로를 따라 부드럽게 주행하지만 코너에서 더 큰 곡률이 발생할 수 있고 경유지를 정확히 따라가지 않아 경로 추종 성능이 저하될 수 있다.

LookAheadDistance가 매우 작아 0에 가까울 경우, Steering 계산 시 발산할 수 있다.

이는 LookAheadDistance값이 분모에 존재하기 때문인데, 이는 해당 거리 값을 늘 특정 값 이상으로 설정하거나 분모parameter 값을 더하여 방지할 수 있을 것으로 보인다.

 

방식

로봇을 현재 위치에서 전방의 목표 지점까지 도달하도록 조향각을 계산한다.

선형 속도는 일정하다고 가정하므로 언제든지 로봇의 선형 속도를 변경할 수 있다.

 

알고리즘은 경로의 마지막 지점까지 로봇의 현재 위치를 기준으로 차량을 정확한 각도로 조절하여, 경로의 목표 지점을 이동시켜나간다. 즉, 로봇이 전방의 한 목표 지점(LookAheadPoint)을 끊임없이 쫓는 것이라 생각하면 된다.

[출처 : https://blog.naver.com/PostView.naver?blogId=rich0812&logNo=222592223219&parentCategoryNo=&categoryNo=57&viewDate=&isShowPopularPosts=true&from=search]

그림에서α는 차체의 방향과 예측선이 이루는 각도를 의미하며, 이때 생성되는 원의 순간회전중심(ICR)에 대해 반지름을 R로 표현한다.

수식 계산

Pure Pursuit 알고리즘의 출력은 차량의 뒷 바퀴가 LookAheadPoint에 도달하기 위한 Wheel Steering (조향각)을 나타낸다.

이는 아래의 식으로 표현된다.

[출처 : https://iridescentboy.tistory.com/69]

 

# 참고 자료

https://iridescentboy.tistory.com/69

 

Pure Pursuit <Path Tracking Algorithm>

개요 Pure Pursuit 알고리즘은 Path Tracking & Lateral Control 알고리즘이다. Stanley Method와 함께 시뮬레이션이나 자율주행 모빌리티의 횡제어에 사용되는 간단한 알고리즘이다. 알고리즘은 간단하기 때문

iridescentboy.tistory.com

https://blog.naver.com/PostView.naver?blogId=rich0812&logNo=222592223219&parentCategoryNo=&categoryNo=57&viewDate=&isShowPopularPosts=true&from=search 

 

Pure Pursuit

1. Pure Pursuit 소개 Pure Pursuit 알고리즘은 경로 추종 알고리즘입니다. 이 알고리즘은 차량의 운동...

blog.naver.com

 

# 공부할 때 참고하면 좋을 자료

https://velog.io/@legendre13/Stanley-Method

 

Stanley Method

2005년 Darpa Grand Challenge에서 우승을 차지한 Standford University 팀이 사용한 사용한 Contoller

velog.io