자율주행 Process
![](https://velog.velcdn.com/images/gks970113-woo/post/22365dd7-36fc-4ee4-b74b-eec974f035ee/image.png)
Localization
로봇이나 자율주행차량이 주어진 공간(Map)의 어디에 있는지 예측하는 방법
위치를 측정해서 확률을 업데이트하고 움직이는 과정의 반복
정밀지도와 연동하여 차량의 현재 위치를 파악한다
Global Path Planning(Route Planning)
목적지까지의 경로 찾기
- 중간 목적지 또는 최종 목적지까지의 경로
- 교차로에서의 행위도 결정
- 최소 비용, 최단 거리, 단순 정도에 따라 경로를 선택한다
Local Path Planning(Trajectory Planning)
다음 이동할 곳으로의 경로 찾기(충돌 회피 고려)
- 여러 개의 후보 경로 확보
- 끊임 없이 후보를 삭제하고 신규 후보 등록 작업을 반복한다
- 실시간으로 주변 정보를 처리하며 시스템 최적화가 필요하다
- 주행 환경 인식
- 센서를 사용해 주변 환경을 인식하고 정적 및 동적 장애물에 대한 정보를 수집
- Lidar, 레이더, 카메라, 초음파센서 등 다양한 센서 사용
- 비용 맵 생성
- 수집된 데이터를 기반으로 장애물을 포함하는 비용 맵 생성
- 장애물의 거리에 따라 다른 값을 가지며 이동 플랫폼이 안전한 경로를 계획할 수 있도록 도움을 줌
- 경로 검색
- 비용 맵을 사용해 시작점에서 목표 지점까지의 경로를 계획
- A*탐색, Dijkstra 알고리즘, RRT(Rapidly-exploring Random Trees) 등이 있다.
- 경로 스무딩
- 계획된 경로의 불필요한 움직임을 최소화하고 부드러운 움직임을 위한 작업
- 최소 곡률 궤적, 스플라인 보간법 등을 사용
- 속도 프로파일 생성
- 경로에 따라 이동 플랫폼의 속도 및 가속도 프로파일 생성
- 플랫폼이 안전하고 효율적으로 목표 지점까지 도달할 수 있도록함
Object Detection
주변 차량, 보행자, 오토바이, 자전거 등을 인식
Object Tracking
각 오브젝트에 고유 ID 부여하여 추적, 예상되는 주행경로 예측
Behavior Selector
주어진 상황에 적합한 동작과 전략을 선택하는 행위
주변환경의 정보와 시스템의 목표를 고려해 가능한 동작 중 최적의 동작을 수행한다
일반 주행, 차선 변경, 회전, 긴금 정지 등 적절한 것을 결정하고 실행할 수 있는 경로 및 제어 명령을 생성한다
- 환경 정보 수집
- 센서와 인식 시스템을 통해 주변 환경에 대한 정보를 수집
- 정적 장애물, 동적 장애물, 도로 조건, 교통 흐름 등을 포함
- 상태 추정
- 수집된 정보를 사용하여 시스템의 현재 상태를 추정
- 상태 추정은 차량의 위치, 속도, 가속도, 주변 차량 및 보행자의 상태 등을 포함
- 동작 후보 생성
- 가능한 동작 후보를 생성
- 시스템의 목표와 주변 환경에 따라 계속해서 달라짐
- 비용 함수 계산
- 각 동작 후보에 대해 비용 함수를 계산
- 비용 함수는 동작의 안전성, 효율성, 법규 준수 등 여러 요소를 고려하여 적절한 동작을 평가
- 최적 동작 선택
- 비용 함수를 기반으로 최적의 동작을 선택
- 최적 동작은 비용이 가장 낮은 동작이며, 이를 통해 시스템은 상황에 맞게 적절한 동작을 수행할 수 있음
Local Path Following
Local Path Planning에서 생성된 경로를 따라 움직이는 기술
경로의 불연속성과 곡률을 최소화 하며 주어진 환경에서 효율적이고 안전한 이동을 보장하기 위해 설계
- 경로 표현
- 로컬 경로는 일반적으로 연속적인 점들, 다항식, 스플라인 등의 수학적 표현으로 나타낸다
- 위와 같은 구성 성분으로 경로의 모양과 곡률을 명확하게 정의하고 시스템에 필요한 제어 입력을 계산할 수 있음
- 제어 입력 계산
- 시스템의 현재 상태(위치, 속도, 방향 등)와 목표 경로를 고려해 이동 플랫폼이 경로를 정확하게 따르도록 하는 제어 입력 계산
- 제어 입력은 속도, 가속도, 회전률 등의 형태로 표현
- 시스템은 목포 경로에 대한 오차를 최소화할 수 있도록 함
- 오차 수정
- Local Path Following 중에는 목포 경로에서 벗어날 수 있는데 이 경루 시스템은 오차를 감지하고 수정하기 위해 알맞은 제어 입력을 적용해야 한다
- 피드백 제어, 피드포워드 제어 둘의 조합을 사용해 오차를 수정
- 동적 장애물 대응
- Local Path Following 중에 동적 장애물이 경로에 진입하면 장애물을 감지하고 회피
- 경로를 수정하거나 새로운 경로를 생성하여 회피 동작 수행
Local Path Following Algorithm
-
Pure Pursuit, Vector Field Histogram (VFH), Dynamic Window Approach(DWA) 등
-
Pure Pursuit 알고리즘
차량의 현재 위치를 결정
차량에서 가장 가까운 경로상의 점을 찾는다
목표점을 찾는다
곡률을 계산하고 해당 곡률로 차량의 방향을 업데이트 해준다
차량의 위치를 업데이트 한다
Veichle Control
원하는 방향으로 운동 상태를 조절하는 기술
- 센싱 및 인식
- 차량의 센서(카메라, 라이다, 레이터, 초음파 센서 등)를 사용하여 주변 환경에 대한 정보를 수집하고 차량의 상태를 인식
- 차량의 위치, 속도, 방향, 주변 장애물의 위치롸 움직임 정보 포함
- 경로 계획 및 추종
- 차량 제어 시스템은 Global Path Planning으로 부터 전달 받은 경로를 Local Path Planning, Path Planning 알고리즘을 통해 따라가도록 한다
- 제어 알고리즘
- 차량 제어 시스템은 제어 알고리즘을 사용해 차량의 속도, 방향, 가속도 등을 조절
- PID(Proportional-Integral-Derivative)제어, Model Predictive Control(MPC), LQR(Linear Quadratic Regulator)등이 있다
- 엑추에이터 제어
- 제어 알고리즘을 통해 생성된 제어 입력은 차량의 엑추에이터(스로틀, 브레이크, 스티어링 등)를 제어하는데 사용된다
- 이 과정으로 차량은 원하는 속도와 방향으로 움직이게 된다
- 안전 및 긴급 상황 대응
- Veichle Control은 긴급 상황에 대비해 안전 기능을 포함
- 장애물이 갑자기 나타날때 급제동을 하거나 경로를 이탈했을때 안전한 상태로 돌릴 수 있도록 조취를 취함
- 안전한 상태를 유지하기 위해 센서 데이터를 실시간으로 모니터링하고 Local Path Follwing 처럼 잠재적 위험을 감지하고 회피 동작을 수행