so.whatareyoudoingtoday

[Matlab] Pure Pursuit Controller 본문

Study/Autonomous Driving

[Matlab] Pure Pursuit Controller

rimooooo 2023. 1. 31. 15:40

Pure Pursuit

= Path tracking algorithm, 로봇을 현재 위치에서 Look-ahead point에 도달하도록 각속도를 계산하고 명령한다.

 

Matlab의 controllerPurePursuit 이 path following을 위한 경로 추척 알고리즘이다.

 

Look Ahead Distance

Look Ahead Distance는 controller의 main tuning property

로봇이 현재 위치에서 얼마나 멀리 봐야 하는지를 나타낸다.

아래의 이미지에서 볼 수 있듯 실제 경로는 waypoint 사이의 직선과 일치하지 않는다.

 

따라서, 이 파라미터를 변경하면서 경로를 되찾고, 경로를 유지한다.

Look Ahead Point

waypoint 사이 경로를 빠르기 되찾기 위해 작은 값의 look ahead point를 사용하면 경로를 향해 빠르게 이동할 수 있지만, 진공의 문제가 발생할 수 있다. 더 큰 값의 look ahead point를 사용하면 진동을 줄일 수 있지만, 코너 근처에서 더 큰 곡률이 발생할 수 있다.  상황에 맞는 적절한 look ahead point를 찾기 위해 해당 파라미터를 조정하여 알고리즘에 적용해야 한다. 

Small Look Ahead  vs Large Look Ahead

 

주의점

* Pure Pursuit controller는 waypoint 사이의 직선을 정확히 따르지 않기 떄문에 파라미터 조정을 여러가지 해보아야 한다.

* 해당 알고리즘은 로봇을 한 포인트에서 stabilze하지 못한다. 목표 위치에 threshold 값을 설정하여 목표 근처에서 로봇을 정지 시켜야 한다.