본문 바로가기

Autonomous Vehicle

AV(자율주행차) 소프트웨어 아키텍처

현재 다양한 산업군에서 자율 주행차(Autonomous Vehicle or Automated Vehicle)에 대한 개발이 활발히 진행 중입니다.

"AV"의 지칭?

위의 AV에 대해 "Autonomous Vehicle"이라고 또는 Automated Vehicle이라고 지칭을 한다. 일반적으로 자동차 업계(완성차 및 부품사 등의 기존 전장품 개발업체)에서는 Automated Vehicle이라는 용어로 많이 사용된다, 즉 차량을 하나의 자동화된 기계장치로 볼려는 보수적인 시각을 가지고 있고, 다른 산업계에서는 차량(자동차)를 하나의 IoT 의 새로운 Device 형태로 새로운 산업 생태계를 만들어 나가길 기대하는 측면에서 Autonomous vehicle로 바라 보고 있다.


또한 자율주행 차량에 대한 명명은 학계(Universities and Colleges)와 산업계(Corporate and Company)와 정부(Government)는 다음과 같이 다양하게 사용하고 있다 예를들면

autonomous_car; autonomous_vehicle;

autonomous_automobile; driverless_car; driverless_vehicle; driverless_automobile; self-driving_car; self-driving vehicle; 

self-driving_automobile; intelligent_car; intelligent_vehicle; intelligent_automobile 등....


여하튼 현재는 향후에 어떤 형태로 발전을 하던, 결론적으로 AV는 ADS(Autonomous Driving System)으로 지칭하는 것이 가장 타당하다. - ADS 출처 SAE J3016

위의 그림은 ADS의 Dynamic Driving Task의 전형적인 구조 이다.

J3016(Operational, Tactical, Fall-back for DDT)기반 및 NIST reference architecture (RCS - Real time Control System)의 ADS의 시스템의 기능적(Functional) 또는 논리적(Logical) 아키텍처의 예는 아래와 같이 구성될 수 있다. (출처 : A standard driven software architecture for fully autonomous vehicles Alexandru Constantin Serban외 IEEE-2018)

위의 그림에서

1. 파란색 영역은  HW-SW interface abstraction 영역으로 차량의 내부 데이터 (vehicle interal state / dynamic, speed, rpm, steering, torque 등의 정보)와 차량의 외부 데이터(차량, 보행자, 교통 신호, 도로 정보 등의 외부 환경을 Ladar, Lidar, Camear, V2X, GPS etc 등으로 부터 수신된 정보)의 interface역할을 한다.

2. 붉은색의 Perception(인지) 영역은 Senor fusion으로 Static and dynamic object(보행자, 차량, 타 차량 등) + Road object (교통신호 (다양한 Semantic meaning을 이해해야 함 - 교통표지판 형태, 공사로 지시, 표시 등)) + Local positioning (자차의 위치) + Global position (전략적 기능을 위한 차량 주행의 Map 생성을 위치 정보) 등의 데이터의 융합을 통해 사람의 입장에서는 눈/귀의 역활을 담당한다.

추가적으로 Word Model은 센서로 획득한 데이터를 통해 Behavior Decision에 정보를 제공한다.

3. 붉은색의 Decision(판단) 영역은 차량에서 두뇌역할을 하는 구간으로 ADS의 주변 환경의 정보를 결정하고, 차량의 주행에 대한 방향 및 동작을 결정한다. 즉, 차량의 주행에 대한 전체의 경로를 결정하고 HMI변경시 관련 입력을 받아 다시 주변정보 및 World model 및 위치를 활용하여 다른 경로를 설정한다. 선택된 behavior를 만족시키기 위해 실행해야하는 각각의 기동(maneuver)를 결정한다. 또한, 안전한 운행과 목적된 경로로 가기 위해 어떤 동작(composite function)을 해야 하는지 결정한다.

4. 붉은색의 Control(제어) 영역은 Decision(판단)에서 결정된 주행 동작에 대한 값들을 차량의 액추에이터에 보내기 위해 계산을 하는 영역으로 주로 종방향 제어(Longitudinal control), 횡방향 제어(Lateral control) 및 긴급제동(Emergency braking)의 3가지 동작에 대한 제어 명령 값 예를 들면, 가속도 값, 토크 값, 스티어링 각 값 등을 계산하여 기존의 EPS, EMS, TCU, ESC 등과 송신하는 액추에이터 인터페이스 영역으로 전송한다.

5. 황토색 Actuator Interface 영역은 기존 차량에 장착되어 있는 스티어링 제어기(EPS), 엔진 제어기(EMS), 변속기 제어기(TCU), 자세 제어기(ESC), 정보장치(Cluster 및 네비게이터) 등에 관련 정보를 전달하는 Interface역할을 한다.


위의 경우는 기능적 및 논리적인 아키텍처로 실제 물리적(Physical) 아키텍처는 SOC 칩, GPU, MCU 등의 물리적 구조에 기능을 어떤식으로 할당하고 구조화할지는 Fail operation 관점에서 물리적-기능적 분석(Analysis) 및 벤치마킹을 통해 아키텍처 구조가 달라지며, 복잡해 진다.

(이 부분은 Nvidia 칩 기반의 아키텍처를 참고로 설명 예정)