본문 바로가기

자율주행

제 2강 - 자율주행 핵심 기술 ( 풀 스택 )

이전 강의에서는 전반적인 자율주행의 소개하는 내용이었다. 자율주행의 역사, 현재 자율주행 산업을 이끌고 있는 인물, 기업 등 자율 주행의 전반적인 흐름을 이해할 수 있었다. 2강에서는 이전에 자율주행의 핵심기술로 분류했던 4가지 기술을 부가적인 정보를 서술한다. 특히 핵심기술에 대해서 소프트웨어 인프라스트럭쳐가 어떤 방식으로 구성되어 있는지 설명한다.

 

자율주행의 핵심 기술은 크게 4가지로 '인지', '측위', '판단', '제어' 로 구성되어 있다. 이 기술이 어떤 과정으로 진행되는지 알기 위해서 먼저 필요로 되는 하드웨어의 기능들을 정리할 필요가 있다.

 

자율주행 기술에 사용되는 Computing Hardware는 다음과 같다

- Velodyne :  3D LiDAR로 거리와 세밀한 depth 정보를 얻는 데 사용된다. 유용한 정보이니 만큼 비싼 가격을 형성한다.

- GPS/INS  :  High Definition Global Map에서 자신의 위치를 추정할 때 사용한다.

- SICK Scanning Lidar : 2d 레이저로 , SLAM 연구에 많이 사용된다고 한다.

- Camera   :  가장 흔하게 사용할 수 있는 하드웨어로 주로 AI 알고리즘을 위한 자료를 제공한다.

 

자율주행을 연구하는데 있어서 모든 정보를 다루는 것을 목표로 하고 싶지만 현재 나의 전문 분야는 이미지 프로세싱이므로 카메라 정보를 입력으로 사용하는 AI 알고리즘에 더 집중할 계획이다.

 

소프트웨어 인프라스트럭쳐

소프트웨어 인프라스트럭쳐는 자율주행기술들이 서로 연관되어 작동할 수 있도록 인터페이스를 구성한 것이라고 볼 수 있다. 이러한 소프트웨어의 제공은 양산 소프트웨어로 포팅하기 위한 노력을 최소화시키게 된다. 구성요소로는 MissionPlannerTask , BehaviorTask , LocalPlannerTask , PerceptionTask , Planner3 DTask , ControllerTask 등이 있으며 각 Task는 센서로부터 받은 입력 정보를 output으로 출력을 하는데 이 output 출력을 그다음 Task의 입력으로 사용되게 된다. 효율성을 위해서 어떤 Task의 output으로 받는지에 대한 정보는 신경 쓰지 않는다고 한다.

 

각 Task는 Initialize , Executive , Cleanup 과정을 진행하는데 

Initialize는 동작을 시작하기전에 입력에 맞춰 구성을 초기화하는 작업

Executive는 주기적으로 입력에 맞춰 결과를 출력하는 작업

Cleanup은 Task의 작업이 끝났을 때 사용되었던 정보를 초기 상태로 만드는 작업이다

메모리를 비우지 않는다면 치명적인 오류를 가져올 수 있으니 항상 조심하자

 

그렇게 Task는 입력을 받아서 출력으로 나가는 일련의 과정을 진행하는데 이와 같은 과정은 Subscribe & Publish 메커니즘이라고 설명한다. 또한 Inter-Process Communications(IPC) 방식으로 Task를 진행한다고 하는데 말 그대로 프로세스 간에 정보를 주고받는 형식으로 프로세서가 입력을 구독(subscribe)하고 excutive 과정을 통해 나온 정보를 출력(Publish)하는 과정이라고 이해했다. 즉, 여러 개의 컴퓨터에서 여러 개의 task 진행될 때 사용하게 된다.

 

Perception

페셉션은 인지 단계로 Lidar , Radar , camera를 통해서 3가지의 정보를 얻어온다.

1. Statci Obstacle Map : 정적인 움직이지 않는 사물의 정보 수집( 신호등 , 표시판 )

2. Moving Obstacle List : 동적인 움직이는 물체 정보 수집 및 추적 ( 보행자 , 차량 )

3. Road Shape           :  차선 , 경계 정보 수집

 

요즘에는 computer vision을 통해 진행되는 perception이 중요해지는 추세라고 한다.

카메라를 모든 방향에 대해 설치하고 멀티 카메라를 통해 얻은 정보들을 fusion 해서 사용한다.

1번 카메라에서의 물체가 2번 카메라로 진입했을 때의 해당 물체의 id가 유지되어야 하므로 정보의 fusion이 필요하다고 언급한다. 

 

아래는 일반적인 Perception 과정을 나타낸 표이다.

Perception Process by 패스트캠퍼스 조형기

 

Localization

High Definition map과 센서를 통해서 자신의 위치정보를 실시간으로 업데이트 하는 과정을 localization(측위)라고 한다.

측위를 하는데 있어서 중요한 역할을 하는 High Definition map의 경우 주로 2가지로 구성되어있다.

Loalization map : Lidar 센서로 지면 , 주로 정적인 특징점을 이용하여 생성한 지도

Semantic map   : 도로의 모든 의미 있는 정보(표지판 등)를 담고 있는 지도로 motion planning 작업에도 중요한 역할을 한다.

Localization map
semantic map

미리 설계된 localization map 정보와 차량의 센서를 통해 실시간으로 얻은 정보가 일치하였을 때 차량의 위치 정보를 알 수 있다.

 

Simulation module

시뮬레이션 모듈은 돌발 상황 등을 시뮬레이션 프로그램을 통해서 미리 직면하고 해결하는 과정으로 소프트웨어를 학습시키는 용도로 사용할 수 있다. 보다 구체적이고 원하는 시나리오에 대한 데이터를 얻을 수 있고 원하는 결과인 Ground truth을 각 상황에 대해서 생성하여 소프트 웨어를 학습시켜 예기치 못한 상황에 대한 안정성을 높일 수 있다.