eBook

MATLAB을 사용한 모션 계획

이 eBook에서는 모션 계획이 어떻게 동작하고 이를 다양한 자율 시스템에 적용하는 방법을 알아봅니다. 또한 MATLAB®Navigation Toolbox™에서 사용 가능한 모션 계획 알고리즘과 자신의 응용 사례에 가장 적합한 알고리즘을 선택하는 방법도 알아봅니다.

섹션

개요

차량이나 기계에 운전자 또는 물리적 컨트롤러가 필요하던 시절은 이제 지나갔습니다. 오늘날의 자율주행 차량은 스스로 차선을 변경하고 보행자가 지나가도록 할 수도 있으며 심지어는 평행 주차도 할 수 있을 정도로 똑똑해졌습니다.

모션 계획은 자율주행 자동차, 로봇 매니퓰레이터, UGV, UAV 등의 시스템을 자율적으로 만들어 주는 세 가지 구성요소 중 하나입니다. 나머지 둘은 인식과 제어입니다.

자율 시스템 워크플로.

사람과 마찬가지로 자율 시스템은 새로운 환경을 스캔하여 자신이 어디에 있는지, 주변에 무엇이 있는지 확인합니다. 일단 환경의 지도가 확보되면 모션 계획 알고리즘은 주어진 목적지까지 장애물이 없는 경로를 계획합니다. 컨트롤러는 이 경로의 다음 단계에 대한 결정을 바탕으로 액추에이터에 명령을 전송하여 시스템을 이동시킵니다.

모션 계획의 일반적인 응용 분야는 다음과 같습니다.

창고 내 자율 이동 로봇 내비게이션.

라스트 마일 드론 배송.

로봇 매니퓰레이터를 사용한 픽 앤 플레이스.

섹션

모션 계획이란?

모션 계획은 로봇이나 차량을 초기 상태에서 목표 상태로 이동시키는 일련의 행동을 찾는 연산 문제입니다. '모션 계획'과 '경로 계획'은 보통 구분 없이 사용하는 경우가 많지만, 중요한 차이점이 있습니다. 모션 계획은 시간이 지나면서 위치가 변하는 차량의 움직임을 생성하는 반면, 경로 계획은 차량의 경로만 생성합니다. 아래 두 가지 자율주행 시나리오와 같이 모션 계획에서는 차량이 경로를 따라가면서 차량의 움직임은 변할 수 있습니다.

시나리오 1: 차량은 빨간색 신호에 정차하기 전에 감속한 후 신호가 녹색으로 바뀌면 계속 앞으로 나아갑니다. 움직임은 변했지만 계획된 경로는 변하지 않았습니다.

시나리오 1: 모션 계획.

시나리오 2: 차량이 고속도로에서 차선을 바꿉니다. 이는 경로와 움직임 모두가 변한 것입니다.
 

시나리오 2: 경로 계획.

상태공간 및 모션 계획의 기타 주요 개념

실제 응용 사례에서 모션 계획이 작동하려면 몇 가지 기능적 요소가 필요합니다. 여기에는 SLAM(동시적 위치추정 및 지도작성) 알고리즘을 사용하여 생성된 환경 지도와 로봇 또는 차량의 상태(위치 및 방향)가 포함됩니다. 로봇의 상태 간 변환이 움직임을 정의합니다. 로봇에 적용할 수 있는 변환의 집합을 상태공간 또는 형상 공간(Cspace)이라고 합니다. 형상 공간에는 자유 공간(로봇 상태가 유효한 것으로 간주됨) 및 장애물 공간(로봇 상태가 유효하지 않은 것으로 간주됨)이 포함될 수 있습니다.

예를 들어, 자율주행 차량에서는 자동차의 위치와 나아가는 방향 또는 방향이 집합적으로 그 상태를 나타냅니다. 자율주행 차량의 자동 주차에서는 주차장의 지도가 자유 공간과 장애물 공간을 식별하며, 상태공간은 모션 모델을 사용하여 정의된 모든 가능한 전진 및 후진 동작 집합을 나타냅니다.

경로 비용, 최적성 및 완전성

경로 비용

로봇이나 차량이 경로를 찾는 과정에서의 각 단계는 비용과 연관 지을 수 있습니다. 자유 공간을 이동하는 비용은 보통 0으로 설정되고, 장애물이 있는 공간을 이동하는 비용은 무한대로 설정됩니다.

최적성

경로 계획 알고리즘이 항상 최적의 경로를 찾는다면 최적성을 갖는다고 합니다. 경로를 최적화하려면 초기 위치에서 목표 위치로 이어지는 모든 가능한 경로에서 천이 비용(간선 비용)의 합계가 최소가 되어야 합니다.

완전성

경로 계획 알고리즘이 경로를 찾는 데 한정된 시간이 걸린다면(경로가 존재하는 경우) 완전성을 갖는다고 하고 경로가 존재하지 않는 경우, 경로 알고리즘은 이를 보고합니다.

최적성 및 완전성을 갖는 경로 계획 알고리즘이 제공하는 경로가 최단 경로는 아닐 수 있지만 가장 적은 비용이 듭니다. 예로 실내 로봇이 복도를 따라 이동하는 경우와 같이 특정한 경우에는 로봇이 복도 중앙에서 이동하는 비용이 벽 가까이에서 이동하는 비용보다 저렴하다고 정의할 수 있습니다. 이 시나리오에서 최적의 경로는 로봇이 중앙을 따라 이동하게 하여 벽과 충돌할 가능성을 줄이는 것입니다. 

섹션

널리 사용되는 유형의 모션 계획

모션 계획에는 다양한 유형의 접근 방식이 있습니다. 가장 널리 사용되는 유형은 다음과 같습니다.

  • 탐색 기반 계획 및 샘플링 기반 계획 - 탐색 트리 또는 그래프가 생성되는 방식을 기반으로 하는 접근 방식
  • 전역 및 국소 경로 계획 - 계획이 지도 전체에서 수행되는지 아니면 일부에서 수행되는지 여부를 기반으로 하는 접근 방식

각 접근 방식을 좀 더 자세히 살펴보겠습니다.

탐색 기반 계획

탐색 기반 계획은 각 차량 상태 또는 형상을 노드로 식별하여 탐색 가능한 그래프를 생성합니다. 그래프는 비용 및 발견법 기반 접근 방식을 사용하여 시작 노드에서 목표 노드로 확장하여 최단 경로를 찾습니다. 탐색 기반 계획은 일반적으로 이산 지도에서 수행되는데, 이 지도는 그리드 셀로 세분되고 상태의 수는 유한하거나 셀 수 있게 무한(각 상태에 고유한 정수를 할당할 수 있음)합니다.

이산 상태공간은 종종 2D 그리드 지도에 표현되며 여기서 셀의 중심은 탐색할 상태가 됩니다. 하나의 일반적인 지도 표현은 점유 그리드 지도입니다.

A* 알고리즘은 이산 그리드 지도에서 경로를 찾기 위해 일반적으로 사용되는 탐색 기반 방법입니다.

그림 7. 탐색 기반 계획

탐색 기반 계획.

그림 8. A* 별

그리드 지도에 적용된 A* 알고리즘.

그리드 지도에서의 탐색 기반 계획은 보통 차량이나 로봇이 점으로 간주될 수 있고 계획 단계에 모션 모델이나 운동학 방정식이 포함되지 않는 경우에 적합합니다. 경로 계획 알고리즘이 로봇이 따라야 할 중간점을 제공하면 제어 알고리즘을 사용하여 운동학 제약 조건을 계산에 넣을 수 있습니다.

샘플링 기반 계획

샘플링 기반 계획에서는 상태공간에 노드를 임의로 추가하여 탐색 트리 또는 로드맵을 생성합니다. 연속 모션 모델을 사용하여 가능한 충돌 회피 경로를 찾을 수 있습니다. 샘플링 기반 계획은 종종 발견법을 사용하여 탐색 공간을 살펴보고 탐색 방향을 편향시킵니다. 트리 또는 로드맵이 생성되면 충돌 확인 또는 탐색 방법을 사용하여 목표까지의 최단 경로를 찾습니다.

RRT 알고리즘은 연속 상태공간에서 경로를 찾기 위해 일반적으로 사용되는 샘플링 기반 방법입니다.

그림 9. 샘플링 기반 계획

탐색 기반 계획.

샘플링 기반 모션 계획은 로봇 팔이 물체를 집을 수 있는 유효한 형상의 집합을 찾는 데 사용되는 것과 같은 고차원 탐색 공간에 적합합니다. 샘플링 기반 계획은 다양한 실용적인 응용 사례에 적합하기 때문에 완전해를 제공하지 않더라도 많이 사용됩니다. 탐색 트리의 밀도가 샘플 간 거리를 충분히 가까워지게 만들면 해를 찾을 확률(있는 경우)은 1로 수렴합니다. 이로써 RRT 및 RRT*와 같은 일부 샘플링 기반 플래너는 확률적으로 완전성을 갖습니다.

전역 및 국소 경로 계획

전역 경로 계획 또는 지도 기반 계획에는 환경에 대한 연역적인 지식을 기반으로 최적의 경로를 찾는 작업이 포함됩니다. 전역 계획 알고리즘은 환경 내의 알려진 정적 장애물을 피하는 초기 경로를 계획합니다. 예를 들어, 자율 이동 로봇은 벽과 같은 정적 장애물이 있는 복도에서 한 사무실에서 다른 사무실로 책을 전달하는 전역 경로를 계획할 수 있습니다.

국소 경로 계획(또는 동적 재계획)은 알려지지 않은 동적 장애물을 피하기 위해 경로를 다시 계산합니다. 국소 계획 알고리즘은 새로 발견된 장애물을 피하면서 전역 계획을 추적하고 국소 궤도를 생성합니다. 예를 들어, 자율주행 차량은 다른 차량을 피하기 위해 차선을 변경하는 국소 궤도를 계획하고 다시 전역 경로로 합류하여 목적지에 도달할 수 있습니다.

자율주행 차량의 차선 변경 조작을 위한 국소 경로 계획.

섹션

MATLAB을 사용한 4단계 모션 계획 워크플로

Navigation Toolbox는 A*와 같은 일반적인 탐색 기반 플래너와 RRT 및 RRT*와 같은 샘플링 기반 플래너를 비롯한 다양한 계획 알고리즘을 구현하기 위한 클래스를 제공합니다. Navigation Toolbox는 계획된 경로의 장애물 회피 간격 및 평활도를 평가하는 경로 메트릭도 제공합니다.

그림 12. 경로 메트릭 – 평활도

경로 메트릭: 평활도.

그림 13. 경로 메트릭 - 회피 간격

경로 메트릭: 회피 간격.

또한 Navigation Toolbox는 다음과 같은 체계적인 4단계 워크플로를 통해 샘플링 기반 모션 계획 알고리즘을 구현할 수 있는 인터페이스를 제공합니다.

  1. 상태공간 표현.
  2. 상태 유효성 검사기 정의.
  3. 새 상태를 샘플링 및 유효성 검사.
  4. 유효한 상태의 모음을 경로로 표현.

상태공간 표현

사용자 지정 상태공간 클래스인 nav.StateSpace를 사용하면 모든 응용 사례에서 가능한 상태 또는 형상이 포함된 상태공간을 정의할 수 있습니다. 예를 들어, stateSpaceDubinsstateSpaceReedsShepp는 상태공간에 있는 두 개의 상태를 연결하여 상태공간이 자동차와 유사한 로봇 또는 애커만 조향이 장착된 로봇의 움직임을 모방하도록 하는 방법으로 자동 주차 계획을 지원합니다.

Navigation Toolbox는 다음과 같이 바로 사용할 수 있는 상태공간을 제공합니다.

상태공간 형상 환경 응용 사례
stateSpaceSE2 (x, y, θ) 2차원 홀로노믹 로봇
stateSpaceSE3 (x, y, z, qw, qx, qy, qz) 3차원 로봇 매니퓰레이터
stateSpaceDubins (x, y, θ) 2차원 회전 반경이 최소인 논홀로노믹 차량
stateSpaceReedsShepp (x, y, θ) 2차원 회전 반경이 최소인 논홀로노믹 차량
그림 14. 상태공간 SE2

상태공간 SE2.

그림 15. 상태공간 Dubins

상태공간 Dubins.

상태 유효성 검사기 정의

상태 유효성 검사기는 상태공간을 기반으로 하며 SLAM 알고리즘에서 얻은 지도에 대응합니다. 샘플링된 두 상태 간의 상태 또는 움직임의 유효성을 확인합니다. 예를 들어 충돌 확인기는 로봇의 상태 또는 형상이 장애물과 충돌할 때를 나타내는 상태 유효성 검사기의 한 유형입니다.

Navigation Toolbox는 2차원 및 3차원 점유 지도에서 상태 및 이산화된 움직임의 유효성을 검사하기 위해 다음과 같은 상태 유효성 검사기를 제공합니다.

상태 유효성 검사기 유형 응용 사례
validatorOccupancyMap occupancyMap, binaryOccupancyMap 2차원 점유 지도
validatorVehicleCostmap vehicleCostmap 2차원 점유 지도
validatorOccupancyMap3D occupancyMap3D 3차원 점유 지도

이러한 상태 유효성 검사기는 Toolbox에서 사용할 수 있는 사용자 지정 상태 유효성 검사기인 nav.StateValidator에서 파생됩니다. 이는 상태 또는 두 상태 간 모션의 유효성을 파악하는 데 사용할 수 있습니다.

새로운 상태 샘플링 및 유효성 검사

샘플링 기반 계획 알고리즘은 정의된 상태공간 안에서 상태를 임의로 샘플링하고 상태 유효성 검사기를 사용하여 시작부터 목표까지 장애물이 없는 경로를 생성합니다. RRT 및 PRM과 같은 알고리즘은 서로 다른 샘플링 체계를 사용하여 상태를 샘플링하고 탐색 트리 또는 로드맵을 생성합니다.

(SLAM 알고리즘에서 얻어진) 주어진 지도 내부의 상태를 샘플링하기 위해 지도의 외부 한계에 대응하는 상태공간 경계가 적용됩니다.

샘플링된 상태의 모음 표현

Navigation Toolbox의 plan 함수를 사용하여 계획 알고리즘 출력을 트리 데이터 구조로 통합할 수 있습니다. 클래스 navPath를 사용하여 주어진 상태공간에 상태 모음을 저장하고 이를 보간하여 경로를 얻을 수 있습니다.

섹션

모션 계획 알고리즘 선택하기

Navigation Toolbox에서는 다음 모션 계획 알고리즘을 사용할 수 있습니다.

알고리즘 유형 및 범위 이점
그리드 기반 A* 전역 계획
  • 사용자 정의 가능한 비용 및 발견법
  • 발견법이 일관되고 허용 가능한 경우 최적성 실현
하이브리드 A* 전역 계획
  • 차등 제약 조건 지원
PRM(확률적 로드맵) 전역 계획
  • 사용자 정의 가능
  • 다중 질의
RRT(급속탐색 랜덤 트리) 전역 계획
  • 사용자 정의 가능
RRT* 전역 계획
  • 사용자 정의 가능
  • 점근적 최적
궤도 최적 프레네 국소 궤도 생성기
  • 사용자 정의 가능한 충돌 확인
  • 자체 정의된 최적성

A* 알고리즘은 시작 노드와 목표 노드를 연결하는 가중 그래프를 생성하여 그리드 지도에서 작업할 수 있는 이산 경로 플래너입니다. A*는 이산 그리드 지도에서 작동하며 x-y 선형 연결을 사용하여 탐색 트리를 확장합니다. 노드 간 이동 비용을 추정하는 비용 함수를 기반으로 노드를 하나씩 탐색합니다.

작동 방식

A*는 최소 비용 경로를 찾기 위해 비용 함수 f(n)을 최소화하기 위해 작동합니다.

f(n) = g(n) + h(n)

여기서

  • n은 경로의 다음 노드고,
  • g(n)은 시작 노드에서 n까지의 경로 비용이며,
  • h(n)은 n에서 목표까지의 가장 저렴한 경로 비용을 추정하는 발견법 함수입니다

A* 알고리즘.

MATLAB의 A* 알고리즘

Navigation Toolbox의 plannerAStarGrid는 유클리드 및 맨해튼 거리와 같이 가장 자주 사용되는 발견법을 제공합니다. h(n) 및 g(n)에 대해 미리 정의된 비용 함수 또는 사용자 정의 비용 함수를 사용할 수 있습니다. binaryOccupancyMap 또는 occupancyMap 객체를 플래너에 대한 입력값으로 지정할 수 있습니다.

A* 예제 보기

응용 사례

A* 알고리즘은 전방향 차륜 로봇에 직접 적용할 수 있습니다. 또한 A*는 비디오 게임에서의 경로 탐색과 같은 컴퓨터 기반 응용 사례에도 널리 쓰입니다.

하이브리드 A*는 A*이 확장된 형태입니다. 하이브리드 A*는 A*와 마찬가지로 이산 탐색 공간에서 작동하지만, 각 그리드 셀을 차량의 연속 3차원 상태(x, y, θ)와 연결합니다. 모션 프리미티브로 구성된 연속 상태공간을 사용하여 원활하고 주행 가능한 경로를 생성합니다.

작동 방식

하이브리드 A*는 효율적인 안내 발견법을 사용하여 탐색 트리를 목표가 있는 방향으로 확장합니다. 또한 경로의 해석적 전개를 사용하여 정확도를 높이고 계획 시간을 단축합니다.

하이브리드 A는 제공된 정확한 목표 자세를 바탕으로 차량에 대한 원활하고 주행 가능한 경로를 생성합니다.

하이브리드 A 스타 1
하이브리드 A 스타 2

시작 노드, S = (1.5, 2.5, pi/2)

목표 노드 1, G1 = (5.5, 5.5, 0)

목표 노드 2, G2 = (5.5, 5.5, -pi/2

MATLAB의 하이브리드 A*

Navigation Toolbox는 plannerHybridAStar를 제공하며, 이는 점유 지도에서 충돌 확인에 validatorOccupancyMap 또는 validatorVechicleCostmap과 같은 상태 유효성 검사기를 사용하고, 각 응용 사례에 맞게 조정할 수 있는 비용과 파라미터를 포함합니다.

하이브리드 A* 예제 보기

응용 사례

하이브리드 A*는 기존 A*와 달리 자율주행 차량과 같은 논홀로노믹 제약 조건이 있는 차량에 적합합니다. 이는 운동학적 실현가능성을 보장하고 차등 제약 조건(차량의 방향 및 속도)을 고려합니다.

그림 19. 자동 주차를 위한 하이브리드 A*

자동 주차를 위한 하이브리드 A*.

탐색 기반 알고리즘은 자유도가 높은 응용 사례나 지도 크기가 매우 큰 응용 사례에는 적합하지 않습니다. 대형 그리드 지도에서 데이터를 저장하는 것은 계산량이 많습니다. PRM은 이러한 경우에 유용한 샘플링 기반 계획 알고리즘입니다.

작동 방식

PRM은 지도에서 가능한 여러 다른 경로의 네트워크 그래프입니다. 그래프는 주어진 영역 내의 제한된 수의 임의의 점 또는 노드로 생성됩니다. PRM 알고리즘은 각 노드를 임의로 샘플링한 후 고정 반경 내의 모든 노드를 연결하여 여러 노드의 클러스터를 생성합니다.

로드맵이 구축되면 지도에서 주어진 시작 위치에서 주어진 목표 위치까지의 경로를 질의할 수 있습니다. PRM은 서로 다른 시작 위치와 목표 위치에 대해 동일한 로드맵에서 여러 질의를 허용하기 때문에 지도가 정적인 경우(즉, 시간이 지나면서 변하지 않음) 계산 시간이 절약됩니다. PRM은 A* 플래너와 같은 그래프 탐색 알고리즘을 사용하여, 작성한 로드맵 내부의 경로를 탐색합니다.

PRM 플래너.

MATLAB의 PRM

Robotics System Toolbox™에서 제공하는 mobileRobotPRMbinaryOccupancyMap을 입력값으로 사용하고, 임의로 샘플링된 노드를 연결하여 지도의 자유 공간에 로드맵을 생성합니다. findpath 함수를 사용하여 시작 위치에서 목표 위치까지의 경로를 질의할 수 있습니다. PRM은 장애물이 없는 경로를 찾는 동안 차량의 크기를 고려하지 않기 때문에 inflate 함수로 차량 반경을 반영하여 지도를 부풀릴 수 있습니다.

PRM 예제 보기

응용 사례

MATLAB의 PRM 구현은 전체 지도에 대한 로봇의 재학습 없이 시작 및 목표 위치를 변경할 수 있는, 알 수 없는 장애물이 없는 정적 창고 환경과 같은 홀로노믹 이동 로봇 응용 사례에 적합합니다.

PRM 플래너.

RRT는 논홀로노믹 제약 조건에 적합한 샘플링 기반 알고리즘입니다. RRT 알고리즘은 비볼록 고차원 공간을 효율적으로 탐색합니다. 정의된 상태공간 내 임의의 샘플을 사용하여 탐색 트리를 증분적으로 생성합니다. 탐색 트리는 결국에는 탐색 공간을 포괄하고 시작 상태를 목표 상태에 연결합니다.

작동 방식

RRT 플래너는 다음 단계를 따라 시작 상태 Xstart를 근원으로 하는 탐색 트리를 성장시킵니다.

  1. 플래너는 상태공간의 임의의 상태 Xrand를 샘플링합니다.
  2. 플래너는 이미 탐색 트리에 있으며, (상태공간 내 거리 정의에 기반하여)Xrand에 가장 가까운 상태 Xnear를 찾습니다.
  3. 플래너는 상태 Xnew에 도달할 때까지 Xnear에서 Xrand를 향해 확장합니다.
  4. 새 상태 Xnew가 탐색 트리에 추가됩니다.

이 과정은 트리가 Xgoal에 도달할 때까지 반복됩니다. 새 노드 Xnew를 샘플링할 때마다 다른 노드와의 연결로 충돌이 발생하는지 확인합니다. Xstart에서 Xgoal까지 주행 가능한 경로를 실현하려면 모션 프리미티브 또는 Reeds-Shepp과 같은 모션 모델을 사용할 수 있습니다.

MATLAB의 RRT

Navigation Toolbox는 plannerRRT를 제공하며, 이는 3장에서 설명한 사용자 정의 가능한 샘플링 기반 계획 인터페이스를 따릅니다.

biRRT(양방향 RRT)는 RRT의 변형이며 시작 상태와 목표 상태에서 동시에 두 개의 트리를 생성합니다. biRRT는 고차원 공간에서 탐색 속도를 개선하기 때문에 로봇 매니퓰레이터에 유용합니다. Robotics System Toolbox에서 manipulatorRRT로 사용할 수 있습니다.

RRT 예제 보기

응용 사례

RRT는 장애물이 수반되는 경로 계획 문제, 로봇 매니퓰레이터와 같이 자유도가 높은 로봇의 차등 제약 조건, 이동 로봇의 경로 계획에 특히 적합합니다. RRT 계획에서는 갑작스런 선회를 포함하는 경로가 생성될 수 있음에 유의하십시오. 경로 평활화 알고리즘을 사용하여 이러한 불규칙성을 보정할 수 있습니다.

PRM 플래너.

RRT 알고리즘은 유효한 경로를 제공하지만 반드시 최단 경로를 제공하지는 않습니다. RRT*는 RRT 알고리즘의 최적화된 버전입니다. 현실적으로 실현 가능하지는 않지만 RRT* 알고리즘은 이론적으로는 노드 수가 무한대에 가까워지면 목표까지의 가능한 최단 경로를 제공할 수 있습니다.

작동 방식

RRT*의 기본 원칙은 RRT와 동일하지만, 매우 다른 결과가 나타날 수 있는 두 가지 핵심 추가 사항이 있습니다.

  • RRT*에는 상위 노드까지의 거리로 정의된 각 노드의 비용이 포함됩니다. 항상 Xnew 근처에서 고정 반경 내에서 가장 저렴한 비용을 가진 노드를 찾습니다.
  • RRT*는 노드 비용이 줄어드는지를 검토하고 탐색 트리를 재작성하여 더 짧고 원활한 경로를 얻습니다.

RRT* 플래너.

MATLAB의 RRT*

Navigation Toolbox의 plannerRRTStar는 기하학적 계획 문제를 해결하는 데 적합합니다. 

RRT* 예제 보기

응용 사례

RRT*는 점근적 최적해를 제공하기 때문에 로봇 매니퓰레이터와 같은 고차원 문제에 특히 유용합니다. 많은 장애물이 있는 밀집된 환경에서도 유용합니다. RRT*는 노드가 가장 적은 최단 경로를 찾지만 논홀로노믹 차량에는 적합하지 않습니다. 그에 비해 RRT는 논홀로노믹 차량에 사용할 수 있으며 차등 제약 조건을 처리할 수 있습니다.

RRT* 및 MPC 추적 컨트롤러를 사용한 평행 주차.

궤도 최적 프레네는 전역 기준 경로를 기반으로 궤도를 계획하는 국소 플래너입니다. 궤도는 상태가 시간의 함수인 변수를 포함하는 상태의 집합입니다. 궤도 계획은 속도를 고려하는 상황에서 유용합니다.

작동 방식

국소 플래너로서 궤도 최적 프레네에는 \([\,\,] \) 중간점의 집합으로 제공되는 전역 기준 경로가 필요합니다. 고속도로와 같이 곡선 및 연속 기준 경로를 따르는 계획에는 기준 경로에서 주행 길이 및 수평 거리로 구성된 프레네 좌표를 사용합니다.

궤도 최적 프레네는 기준 경로에서 일정한 수평 거리만큼 벗어나 초기 상태에서 대체 궤도를 샘플링합니다. 프레네 참조 프레임과 다음 두 가지 상태를 사용합니다.

  • 카테시안 상태: \([\,\, \, \, ̇ \,̈] \)
  • 프레네 상태: \([\,̇ \,̈\, \,̇ \,̈] =ℎ, =ℎ\)

초기 상태는 5차 다항식을 통해 샘플링된 단말 상태에 연결되며, 이 다항식은 갑작스러운 움직임을 최소화하고 상태에 따라 연속성을 보장합니다. 샘플링된 궤도는 운동학적 실현가능성, 충돌, 비용 측면에서 평가됩니다.

고속도로 주행을 위한 궤도 계획.

MATLAB의 궤도 최적 프레네

Navigation Toolbox의 trajectoryOptimalFrenet는 하이브리드 A* 또는 RRT와 같은 전역 플래너에 의해 참조 중간점이 생성되는 기준 경로를 따라 최적의 궤도를 찾습니다. trajectoryOptimalFrenet는 다중 대체 경로를 생성하고 기준 경로로부터 최종 상태의 편차, 경로의 평활도, 시간, 거리를 기준으로 비용을 평가합니다. 상태 유효성 검사기 validatorOccupancyMap을 사용하여 상태의 유효성을 확인합니다.

응용 사례

궤도 최적 프레네는 전역 플래너와 차량 또는 로봇 컨트롤러 간의 국소 플래너로 사용할 수 있습니다. 차선 변경 조작 및 적응 순항 제어(속도 유지 포함)와 같은 고속도로 주행 응용 사례에 적용할 수 있습니다. 동적 재계획을 위해 이동 로봇 및 기타 애커만 유형 차량에 사용할 수도 있습니다.