일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 알고리즘 문제
- 탐욕 알고리즘
- 중위 표기법
- 부분 집합
- BST
- CPU scheduling
- kruskal 알고리즘
- 최소 비용 신장 트리
- prim 알고리즘
- 트리
- union-find
- 알고리즘
- 프로세스의 상태
- 서로소 집합
- 동적 계획법
- deque
- 3190번
- 이진 검색
- 자료구조
- binary search
- 이진탐색트리
- 다이나믹 프로그래밍
- 최단 경로 알고리즘
- 후위 표기법
- divide and conquer
- 프로세스
- 완전 탐색
- disjoint-sets
- merge-sort
- quick-sort
- Today
- Total
Dionysus
2022.10.21.(금) 공부 내용 - Pure Pursuit 알고리즘 본문
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가 이 단점을 일부 해소할 수 있을 것으로 보인다.
순서도
LookAheadDistance
차량 위치에서 LookAheadPoint까지의 거리를 나타내는 parameter로, Pure Pursuit 알고리즘의 중요 파라미터이다.
LookAheadDistance는 다음 목표지점이 배치되는 거리를 결정하는 것으로, 이는 로봇이 조향각을 계산하기 위해 현재 위치에서 앞으로의 경로상에 있는 목표지점 중 얼마나 멀리 있는 목표지점을 봐야하는지를 결정한다.
위 그림과 같이 실제 경로와 Waypoints 경로는 정확히 일치하지는 않는다.
LookAheadDistance를 변경하면 로봇이 경로를 추적하는 방법이 변경될 수 있는데, 이때 2가지에 변화를 주게된다.
첫 번째는 경로를 유지하는 것이고 두 번째는 다시 경로로 돌아오는 것이다.
1. 만약 LookAheadDistance를 짧게 설정하여 로봇의 경로상에 존재하는 경유지 중 로봇의 현재 위치와 짧은 거리의 경유지를 목표지점으로 설정하면, 로봇이 설정된 경로로 빠르게 되돌아온다. 그러나 아래 그림과 같이 로봇은 경로를 초과하여 경로를 따라 진동할 수 있다.
2. 반면 LookAheadDistance를 길게 설정하면 로봇의 경로상에 있는 경유지 중 로봇의 현재 위치와 먼 거리에 있는 경유지를 목표지점으로 설정하여, 경로를 따라 부드럽게 주행하지만 코너에서 더 큰 곡률이 발생할 수 있고 경유지를 정확히 따라가지 않아 경로 추종 성능이 저하될 수 있다.
LookAheadDistance가 매우 작아 0에 가까울 경우, Steering 계산 시 발산할 수 있다.
이는 LookAheadDistance값이 분모에 존재하기 때문인데, 이는 해당 거리 값을 늘 특정 값 이상으로 설정하거나 분모parameter 값을 더하여 방지할 수 있을 것으로 보인다.
방식
로봇을 현재 위치에서 전방의 목표 지점까지 도달하도록 조향각을 계산한다.
선형 속도는 일정하다고 가정하므로 언제든지 로봇의 선형 속도를 변경할 수 있다.
알고리즘은 경로의 마지막 지점까지 로봇의 현재 위치를 기준으로 차량을 정확한 각도로 조절하여, 경로의 목표 지점을 이동시켜나간다. 즉, 로봇이 전방의 한 목표 지점(LookAheadPoint)을 끊임없이 쫓는 것이라 생각하면 된다.
그림에서의 α는 차체의 방향과 예측선이 이루는 각도를 의미하며, 이때 생성되는 원의 순간회전중심(ICR)에 대해 반지름을 R로 표현한다.
수식 계산
Pure Pursuit 알고리즘의 출력은 차량의 뒷 바퀴가 LookAheadPoint에 도달하기 위한 Wheel Steering (조향각)을 나타낸다.
이는 아래의 식으로 표현된다.
# 참고 자료
https://iridescentboy.tistory.com/69
Pure Pursuit <Path Tracking Algorithm>
개요 Pure Pursuit 알고리즘은 Path Tracking & Lateral Control 알고리즘이다. Stanley Method와 함께 시뮬레이션이나 자율주행 모빌리티의 횡제어에 사용되는 간단한 알고리즘이다. 알고리즘은 간단하기 때문
iridescentboy.tistory.com
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
'전자공학 > Path Planning' 카테고리의 다른 글
2022.10.21.(금) 공부 내용 - Potential Field method (0) | 2022.10.21 |
---|---|
2022.10.21.(금) 공부 내용 - VFH(Vector Field Histogram) (0) | 2022.10.21 |
2022.10.18.(화) 공부 내용 (0) | 2022.10.21 |
2022.10.14.(금) 공부 내용 (0) | 2022.10.15 |
2022.10.13.(목) 공부 내용 (2) | 2022.10.13 |