Path planning for autonomous vehicles using MPC

OpenJR·2022년 4월 12일
0
post-custom-banner

Abstract

차량 동역학과 차량 주변의 다양한 구속조건들로 인해 동적 환경에서 자율주행을 위한 경로계획은 중요하다.

차선 유지, 변경, 끼어들기, 교차로 등 다양한 모드의 궤적들이 존재한다.

모드 변경을 위해 rule-based high-level decision making approach를 사용한 기존 arts들이 존재

이런 분명한 규칙이 아닌, 자동으로 모드를 바꾸는 MPC를 사용한 unified path planning approach를 제안함.

안정성을 보장하기 위해, 주변 차량을 다각형으로 모델하고 충돌을 회피하기 위해 MPC안에 구속조건으로 개발함

편리하고 자연스러운 행동을 달성하기 위해 차선 관련 가능성 필드를 목적함수안에 넣음

Introduction

자율주행의 주 이점은 교통 안정성을 증가시킨다는 것, 시간을 단축 시키는 것

자율주행에서도 path planning capability는 핵심 기술이지만 어렵다

경로계획법은 어려운 의사결정이고 제어 문제를 가지고 있다.

초반 경로계획법은 최단 경로 생성을 위한 그래프 탐색을 주로 사용

데이크스트라 알로리즘 A 알고리즘

위 그래프 알고리즘은 그래프의 해상도에 너무 의존하고 차량 동역학적 구속조건이 쉽게 적용이 안됨

Curve interpolation planner, clothoid cure, polynomial curve, spline curve, bezier curve도 많이 경로계획에 사용

곡석 보간 계획의 장점은 그래프 기반과 비슷하게 몇 개 제어 점과 매개변수로 정의 될수 있어 계산 비용이 낮다

하지만, 궤적의 최적성이 보장되지 않고 여전히 차량동역학이 고려되지 않아 스무딩 프로세스가 필요하다.

최근엔 Sampling based method (Probabilistic Road Maps, Rapidly-exploring Random Trees) 가 각광받고 있다.

이건 홀로노믹하고 논홀로노믹한 시스템 모두 만족시킨다.

RRT로 생성된 계적은 최적성을 보장하고 샘플 수가 증가함에 따라 거의 확실히 수렴해서 많이 사용됨

하지만. 계산이 복잡하고 실용적이지는 못함

그래서 경로를 최적화문제로 정의한 '경로 최적화 기법'이 최근에 유명함

모든 구속 조건에 유연하게 접근이 가능함

CVX나 Ipopt같은 온라인 최적화 솔버가 많이 진보되서 속도도 빨라짐

전형적 경로 최적화는 시작점과 끝점이 정해져 있지만, 주행 환경이 그렇지 못해서 MPC 접근 방식을 사용함

기존 방식은 각각 모드에 따라 이미 설정된 정책에 따라 작동되고 돌발상황에 신뢰할 수 없다.

MPC를 사용해 차선 변경 차선 유지 끼어들기, 교차로 를 자동으로 결정하는 MPC를 제안

안정성을 보장하기 위해, 주변 차량을 다각형으로 모델하고 충돌을 회피하기 위해 MPC안에 구속조건으로 개발함

편리하고 자연스러운 행동을 달성하기 위해 차선 관련 가능성 필드를 목적함수안에 넣음

Problem Formulation

도시 주행이나 고속도로 같은 정형화된 주행 환경에서 자율 주행은 주어진 목표와 속도에서 달린다.

차량은 주변 차량이나 환경과의 충돌을 피하고 편안한 주행환경을 유지해야한다.

그래서 그림 2 같이 2레이어 구조로 고려했다.

path planner는 주변 환경과 탑승자 상태를 고려해 레퍼런스 궤적을 생성하고, path tracker 제어 입력을 인가해 궤적을 정확하게 추적한다.

패스 플래너는 효율을 위해 차량의 간단화된 kinematic 모델을 사용하고, 패스 트랙커는 정확도가 높은 동적 모델을 사용한다.

이 연구는 패스플레너 디자인에 더 집중함

MPC 방식으로 구현되며 경로는 라인과 포인트들로 4차 다항식으로 근사화된다

Path Planning Algorithm

Vehicle and Environment Modeling

Road 좌표계를 사용해 x,y,세타, v,로 표현함.

z=[x,y,θ,v]z= [x, y,\theta,v]

zk+1=zk+f(zk,uk)Tz_{k+1}=z_k+f(z_k,u_k)T

f(z,u)=[vcosθ,vsinθ,ω,α]f(z,u)=[vcos\theta,vsin\theta,\omega,\alpha]

u=[ω,α]=[θ˙,v˙]u=[\omega, \alpha] = [\dot{\theta},\dot{v}]

MPC Formulation

Untitled

M= 라인 개수, N=prediction horizon

1b = 동역학 구속조건 1c = 액츄에이터 구속조건 1d = 충돌 회피 구속조건

Dk2(x,y)D^2_k(x,y)는 목적지 로부터 현재 거리, (vdvk)2(v_d-v_k)^2는 목표 속도제어, α2,ω2\alpha^2,\omega^2는 과도 입력 제한, αkαk1\alpha_k-\alpha_{k-1}는 절크 텀으로 탑승객의 편안함 증대, θNθd\theta_N-\theta_d는 라인과 차량 방향 일치시킴, w는 가중치

1. Lane selection

h(x,y,pcj)2h(x,y,p^j_c)^2는 라인 중심선 pcjp^j_c에 차량의 위치를 맞추는 용도, 차량 중심선은 4차 다항식으로 표현

2. Lane-associated potential field

P(dj,ko,vj,ko)=s×eγ(vj,ko)dj,ko2P(d^o_{j,k},v^o_{j,k})=s\times e^{-\gamma(v^o_{j,k}){d^o_{j,k}}^2}

d는 정면 방향 주변 차량과 주행 차량의 거리, s는 최대 허용 거리, γ(vj,ko)\gamma(v^o_{j,k})는 각도의 포텐셜 필드

γ(vj,ko)\gamma(v^o_{j,k})vj,kov^o_{j,k}에 비례

3. Collision avoidence

직사각형으로 차량들을 모델링 해서 xy로 안부딪히게 모델

Ax<bAx<b

MPC는 근데 저렇게 푸는게 안좋아서 다른 방식으로 품

ATβ=0A^T\beta=0

Fail-safe Strategy

MPC가 해를 구하는데 실패할 수도 있음. 그래서 가능한 초기값이 이 문제를 함

2가지 방법이 있는데 첫번째로 목적함수에 상수를 그대로 사용하고 그래도 안되면 충돌 회피 조건을 없앴다.

Results & Discussion

MPC를 통한 제어로도 유연하고 높은 성능의 제어가 가능

profile
Jacob
post-custom-banner

0개의 댓글