“Hierarchical Trajectory Planning of an Autonomous Car based on the Integration of a Sampling and an Optimization Method”라는 이 논문은 IEEE Transactions on Intelligent Transportation Systems ( Volume: 19, Issue: 2, Feb. 2018)에 실린 것으로 수준이 높은 논문이다.
이 논문은 한양대학교 미래자동차공학과 ACE lab 소속인 임원택 박사과정, 이성진 박사과정(현재 박사과정, 당시엔 석사과정)이 투고한 논문이며, 교신저자로 선우명호 교수, 조기춘 교수가 올라와 있다.
교수님들에 대해서 말씀드리면, 선우명호 교수는 오래전부터 자율주행을 연구하였고 꾸준히 우수한 인력을 양성하였다. 현대자동차, 현대모비스, 만도 등 자율주행을 연구하는 한국 회사에는 그의 제자들이 많이 포진해 있다. 그리고 조기춘 교수는 선우명호 교수의 제자로써, 실력을 인정받아 Valeo라는 회사에서 연구를 하다 최근에 건국대학교 교수로 재직 중에 있다. 개인적 생각으로는, 향후 한국의 자율주행을 선도하는 사람은 조기춘 교수가 되지 않을 까 싶다.
필자는 자율주행을 개발하는 회사에서 인턴을 했는데, 그 기간 중에 이 논문을 접하게 되었다. 직교좌표계 뿐만 아니라 곡선좌표계를 사용한다는 것이 새로웠고, 영문 논문을 진지하게 읽은 첫 논문이 이 논문이여서 10번이 넘게 읽었던 논문이다.
* 논문에 대해서 이해한 만큼 리뷰를 진행할 것이고, 논문에 있는 사진을 첨부하였다.
논문은 자율주행을 위한 Path-planning을 다룬다.
먼저 Planning을 3단계로 나눴다.
1. Planning space : 센서로부터 받은 주행 환경
2. Behavioral trajectory planning : 현재, 예측되는 주행 환경에 기초한 조작을 결정
3. Motion trajectory planning : 수치최적화를 통해 부드러운 궤적 생성
1. Planning space
첫번째인 Planning space에 대해서 설명하겠다. Planning space는 Behavioral, Motion planning에 관련된 환경을 대표하는 data layer를 말한다. 쉽게 말하면, Planning에 활용하기 용이하게끔 플래닝할 공간을 구분하는 것이다.
Planning space는 Object, TCD(Traffic Control Device), Route 3가지로 나뉜다.
1-1. Object
Object는 피해야 할 공간적 장애물로 static(정적 장애물)과 dynamic(동적 장애물)로 구분한다.
static은 점의 집합으로 표현하고, grid map에 표현된다.
한편 dynamic은 자동차나 보행자 등 동적 사물을 말하는 것으로, box로 표현한다.
이런 정보를 활용하여 Ego vehicle의 Future trajectory와 Collision risk 측정 시 사용된다.
1-2. TCDTraffic Control Device)
교통흐름, 규칙 등을 나타내는 것으로 Ego vehicle의 behavior를 결정하고 trajectory를 계획할 때 사용된다.
1-3. Route
목적지를 향한 도로정보를 제공하는 것으로, Global route와 Local route로 구분된다.
Global route는 출발지부터 도착지까지 연결된 연속적인 도로를 말하는 것으로, Road network map에서 추출한다.
Local route는 road geometry, road boundary, lane information을 포함하는 구체화된 도로 정보를 제공한다.
2. Behavioral trajectory planning
Behavior planning은 다양한 주행 상황을 결정하고 각각의 조작에 따라 sub-problem으로 나눠준다. 그럼으로써 Local planning은 오직 sub-problem에만 집중할 수 있다.
Behavior trajectory는 사용한 behavior를 말하는데, data structure에 시공간 정보를 담은 노드들이 포함된다.
이 Planning은 3가지로 나뉜다.
2-1. Path candidate Generation
곡선에서 점을 표시하기 쉽도록 직교좌표계(x, y)를 곡선좌표계(s, n)로 변환한다.
Behavior candidate를 표시할 Searching space를 grid로 생성한다.
Searching space에서 후보 경로를 추출한다.
2-2. Speed profile generation
후보경로는 공간 노드만 가지기에, 시간 정보를 추가하려고 Speed profile generation을 사용한다.
이때 Speed limit, acceleration limit를 고려하여 여러 경로 선택 알고리즘 중 하나인 Hybrid A*를 이 논문에서 사용하였다.
2-3. Optimal trajectory selection
연속적인 Trajectory 생성에 관한 Consistency cost를 고려하여 최적의 경로를 선택한다.
여기서 곡선좌표계를 사용해야 하는 것에 의문을 품을 수 있다.
내가 생각해볼 때, 곡선좌표계는 장점 2가지가 있다.
첫째, 곡선을 표현하기 쉽다.
직교좌표계로는 곡선을 표현하기가 어렵다. 반면 곡선좌표계는 곡률 정보를 담고 있기 때문에 곡선 표현이 자유롭다.
둘째, 여러 차선을 빠르게 생성 및 표현이 쉽다.
차량이 주행을 하던 도중에 차선 변경을 할 필요성이 있을 수 있다. 이럴 경우에 곡선좌표계를 사용하면, 내 차선의 정보에서 offset만 시키면 바로 옆 차선의 정보를 생성할 수 있다.
이러한 이유로 곡선좌표계를 사용하는 것이 더 낫다고 생각한다.
Hybrid A*는 휴리스틱한 조건에서의 대표적 경로 알고리즘인 A*의 파생형으로써 대강의 경로를 파악할 목적으로 사용되었다.
시작지점부터 도착지점까지 경로를 계산하고 경로를 간략화하여 다음 단계인 Motion planning에 활용한다.
3. Motion trajectory planning
마지막 단계로, Behavior planning 단에서 만든 대강의 경로를, 자동차의 동역학적 특성을 고려하여 부드러운 곡선 형태로 바꿔주는 단계이다.
Trajectory resampling, trajectory optimization 두 가지로 나눌 수 있다.
3-1. Trajectory resampling
생성된 대강의 경로를 자동차의 동역학적 특성에 맞게 경로를 최적화할 수 있도록 경로를 잘게 자르는 단계이다.
3-2. trajectory optimization
잘게 나눠진 경로를 부드러운 곡선의 형태로 최적화하는 단계이다.
이와 같은 과정을 거치면 차량을 위한 부드러운 곡선이 생성된다.
<Paper review conclusion>
1. Sampling-based, Optimized based trajectory planning을 통해서 주행환경과 계산적 부하를 감소
2. Behavioral planning : 주행환경을 고려한 sampling method를 활용하여 trajectory 생성
3. Motion planning : 수치적 최적화 방법을 사용하여 최적 local trajectory 생성