3.11 소프트웨어 미들웨어와 운영 체제
1. 개요
자율주행 시스템의 소프트웨어 스택은 운영 체제(Operating System), 미들웨어(Middleware), 그리고 응용 소프트웨어(Application Software)의 계층적 구조로 구성된다. 미들웨어는 운영 체제와 응용 소프트웨어 사이에 위치하여 프로세스 간 통신, 데이터 직렬화, 시간 동기화, 하드웨어 추상화 등의 공통 기능을 제공한다.
2. 운영 체제
2.1 Linux 기반 시스템
대부분의 자율주행 개발 및 연구 시스템은 Linux 기반 운영 체제를 사용한다. Ubuntu Linux가 가장 널리 사용되며, NVIDIA의 DRIVE OS는 Linux 커널 기반의 자율주행 전용 운영 체제이다. Linux는 풍부한 소프트웨어 생태계, GPU 드라이버 지원, 개발 도구의 가용성 측면에서 유리하다.
2.2 실시간 운영 체제 (RTOS)
안전에 관련된 제어 기능은 결정론적(Deterministic) 시간 내에 실행이 보장되어야 하므로, 실시간 운영 체제(Real-Time Operating System, RTOS)가 사용된다. QNX, AUTOSAR Adaptive Platform 등이 자동차 분야에서 사용되는 RTOS이다. QNX는 마이크로커널 기반의 RTOS로 ISO 26262 인증을 취득하였으며, 안전 관련 기능의 실행 환경으로 널리 채택되고 있다.
2.3 하이퍼바이저 (Hypervisor)
안전 관련 소프트웨어와 비안전 관련 소프트웨어를 단일 하드웨어 플랫폼에서 격리하여 실행하기 위해 하이퍼바이저가 사용된다. 하이퍼바이저는 복수의 운영 체제(예: RTOS + Linux)를 가상화하여 동시에 실행하며, 각 운영 체제 간의 간섭을 방지한다. NVIDIA DRIVE Hypervisor가 대표적 사례이다.
3. 미들웨어
3.1 ROS / ROS 2
ROS(Robot Operating System)는 로봇 소프트웨어 개발을 위한 오픈소스 미들웨어 프레임워크이다(Quigley et al., 2009). ROS는 자율주행 연구에서 사실상의 표준(De Facto Standard)으로 사용되어 왔으며, 노드(Node) 기반의 분산 아키텍처, 토픽(Topic) 기반의 발행-구독(Publish-Subscribe) 통신, 서비스(Service) 기반의 요청-응답 통신 등을 제공한다.
ROS 2는 ROS의 후속 버전으로, DDS(Data Distribution Service) 기반의 통신 계층을 채택하여 실시간성, 보안, 멀티 로봇 지원 등을 강화하였다. 자율주행 분야에서 ROS 2로의 전환이 진행되고 있다.
3.2 DDS (Data Distribution Service)
DDS는 OMG(Object Management Group)에서 표준화한 실시간 발행-구독 통신 미들웨어이다. QoS(Quality of Service) 정책을 통해 통신의 신뢰성, 지연, 대역폭 등을 세밀하게 제어할 수 있으며, ROS 2의 기본 통신 계층으로 채택되었다.
3.3 AUTOSAR (AUTomotive Open System ARchitecture)
AUTOSAR는 자동차 소프트웨어의 표준화된 아키텍처이다. AUTOSAR Classic Platform은 기존 ECU의 소프트웨어 표준이며, AUTOSAR Adaptive Platform은 고성능 연산 환경에서의 자율주행 응용을 지원하기 위해 설계되었다. Adaptive Platform은 POSIX 기반 운영 체제에서 동작하며, 서비스 지향 통신(Service-Oriented Communication)을 지원한다.
4. 시간 동기화
다수의 센서와 처리 모듈이 협력하는 자율주행 시스템에서는 정밀한 시간 동기화가 필수적이다. 카메라 영상, 라이다 포인트 클라우드, IMU 데이터 등이 동일 시점의 환경 상태를 반영하도록 시간 정합(Time Alignment)이 이루어져야 한다. PTP(Precision Time Protocol, IEEE 1588) 또는 gPTP(generalized PTP, IEEE 802.1AS)가 차량 내 시간 동기화에 사용된다.
5. 참고 문헌
- AUTOSAR. (2022). AUTOSAR Adaptive Platform Release R22-11.
- Quigley, M., Conley, K., Gerkey, B., Faust, J., Foote, T., Leibs, J., … & Ng, A. Y. (2009). ROS: An open-source Robot Operating System. ICRA Workshop on Open Source Software, 3(3.2), 5.
v1.0