주요 콘텐츠

Pure Pursuit

선속도 및 곡률 제어 명령

  • Pure Pursuit block

라이브러리:
Robotics System Toolbox / Mobile Robot Algorithms
Navigation Toolbox / Control Algorithms

설명

Pure Pursuit 블록은 일련의 웨이포인트와 차륜 이동체 또는 차동 구동 이동체의 현재 자세를 사용하여 경로를 따라가기 위한 선속도 명령과 곡률 명령을 계산합니다. 이 블록은 업데이트된 자세를 받아서, 이동체가 목표로 하는 일련의 웨이포인트를 따라 경로를 추종할 수 있도록 선속도와 곡률 명령을 업데이트합니다. 이동체의 성능에 따라 최대 곡률목표 선속도 파라미터를 사용하여 곡률과 선속도를 각각 업데이트하십시오.

전방 주시 거리 포트 및 파라미터는 이동체의 순시 로컬 목표 지점인 경로상의 전방 주시 지점을 계산합니다. 곡률 명령은 이 점을 기준으로 계산됩니다. 전방 주시 거리를 변경할 경우 알고리즘의 성능에 상당한 영향을 미칩니다. 전방 주시 거리가 길수록 이동체의 궤적이 더 평활하게 되지만 이동체가 경로를 따르면서 코너를 무시하게 될 수도 있습니다. 전방 주시 거리가 너무 짧으면 경로를 따르면서 진동이 발생하여 불안정한 동작을 야기할 수 있습니다. pure pursuit 알고리즘에 대한 자세한 내용은 Pure Pursuit 제어기 항목을 참조하십시오.

예제

포트

입력

모두 확장

이동체의 현재 자세로, [x y theta] 벡터로 지정됩니다. 여기서 x-y는 위치이고 theta는 방향 각입니다. 양의 각은 양의 x축에서부터 반시계 방향으로 측정됩니다.

웨이포인트로, [x y] 쌍의 n×2 배열로 지정됩니다. 여기서 n은 웨이포인트 개수입니다. mobileRobotPRM (Robotics System Toolbox)과 같은 경로 플래너를 사용하여 웨이포인트를 생성하거나 Simulink®에서 웨이포인트를 배열로 지정할 수 있습니다.

목표 선속도로, 스칼라로 지정됩니다(단위: 초당 미터). 제어기는 이동체가 일정한 선속도로 구동되며 계산된 곡률은 선속도와 독립적인 것으로 가정합니다.

종속성

이 포트를 활성화하려면 입력 포트에서 목표 선속도 지정 파라미터를 선택합니다.

전방 주시 거리로, 스칼라로 지정됩니다(단위: 초당 미터). 전방 주시 거리에 따라 제어기의 응답이 달라집니다. 전방 주시 거리가 상대적으로 긴 이동체는 평활화된 경로를 따르지만 코너에서 더 크게 선회합니다. 전방 주시 거리가 상대적으로 짧은 이동체는 경로를 바짝 따라가면서 급선회하지만 경로를 따르면서 진동합니다. 전방 주시 거리의 영향에 대한 자세한 내용은 Pure Pursuit 제어기 항목을 참조하십시오.

종속성

이 포트를 활성화하려면 입력 포트에서 전방 주시 거리 지정 파라미터를 선택합니다.

출력

모두 확장

선속도로, 스칼라로 반환됩니다(단위: 초당 미터).

데이터형: double

곡률로, 양의 실수형 스칼라로 반환됩니다(단위: 1/미터). 곡률에 선속도를 곱하여 각속도를 계산할 수 있습니다.

데이터형: double

이동체의 타깃 방향으로, 스칼라로 반환됩니다(단위: 라디안). 이동체의 정방향은 0 라디안으로 간주되며, 이때 양의 각도는 반시계 방향으로 측정한 값입니다. 이 출력값은 Vector Field Histogram 블록에서 TargetDir 포트에 대한 입력값으로 사용할 수 있습니다.

종속성

이 포트를 활성화하려면 Target Direction 출력 포트 표시 파라미터를 선택합니다.

파라미터

모두 확장

Desired Linear Velocity 입력 포트에서 목표 선속도의 입력을 활성화하려면 이 파라미터를 선택합니다.

목표 선속도(m/s) 파라미터를 사용하여 목표 선속도를 지정하려면 이 파라미터를 선택 해제합니다.

목표 선속도로, 스칼라로 지정됩니다(단위: 초당 미터). 제어기는 이동체가 일정한 선속도로 구동되며 계산된 곡률은 선속도와 독립적인 것으로 가정합니다.

종속성

이 파라미터를 활성화하려면 입력 포트에서 목표 선속도 지정 파라미터를 선택 해제합니다.

최대 곡률로, 양의 실수형 스칼라로 지정됩니다(단위: 1/미터). 제어기는 곡률 출력 절댓값을 지정된 값에서 포화시킵니다.

Lookahead Distance 입력 포트에서 전방 주시 거리의 입력을 활성화하려면 이 파라미터를 선택합니다.

전방 주시 거리(m) 파라미터를 사용하여 목표 선속도를 지정하려면 이 파라미터를 선택 해제합니다.

전방 주시 거리로, 스칼라로 지정됩니다(단위: 미터). 전방 주시 거리에 따라 제어기의 응답이 달라집니다. 전방 주시 거리가 상대적으로 긴 이동체는 평활화된 경로를 따르지만 코너에서 더 크게 선회합니다. 전방 주시 거리가 상대적으로 짧은 이동체는 경로를 바짝 따라가면서 급선회하지만 경로를 따르면서 진동합니다. 전방 주시 거리의 영향에 대한 자세한 내용은 Pure Pursuit 제어기 항목을 참조하십시오.

종속성

이 파라미터를 활성화하려면 입력 포트에서 전방 주시 거리 지정 파라미터를 선택 해제합니다.

Target Direction 출력 포트를 활성화하려면 이 파라미터를 선택합니다. 이 포트는 정방향 위치로부터의 각도(단위: 라디안)로 타깃 방향을 지정하며, 이때 양의 각도는 반시계 방향으로 측정한 값입니다.

  • 인터프리터형 실행 — MATLAB® 인터프리터를 사용하여 모델을 시뮬레이션합니다. 이 옵션은 시작 시간을 줄일 수 있지만 코드 생성보다 시뮬레이션 속도가 느립니다. 이 모드에서는 블록의 소스 코드를 디버그할 수 있습니다.

  • 코드 생성 — 생성된 C 코드를 사용하여 모델을 시뮬레이션합니다. 시뮬레이션을 처음 실행하면 Simulink는 블록에 대한 C 코드를 생성합니다. 이 C 코드는 모델이 바뀌지 않는 한 후속 시뮬레이션에 재사용됩니다. 이 옵션은 시작 시간이 조금 더 걸리지만 이후 시뮬레이션 속도는 인터프리터형 실행과 대등합니다.

조정 가능: No

확장 기능

모두 확장

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2019b에 개발됨

모두 확장