2.9 실시간 제어 시스템 구축을 위한 실시간 운영체제(RTOS) 이행성 검토

2.9 실시간 제어 시스템 구축을 위한 실시간 운영체제(RTOS) 이행성 검토

범용 운영체제(General Purpose Operating System, GPOS) 기반으로 설계된 ROS 1 프레임워크는 프로세스 스케줄링의 비결정성(Non-determinism)으로 인해 밀리초(ms) 단위의 엄격한 타이밍 보장이 필수적인 비행 제어 및 고기동 로보틱스 도메인에 직접 적용하기에 치명적인 구조적 한계를 내포하고 있었다. 본 절에서는 드론의 모터 역학 제어 및 센서 퓨전 파이프라인에서 하드 리얼타임(Hard Real-Time) 제어 주기 보장을 위해, ROS 2 아키텍처가 실시간 운영체제(RTOS) 환경으로 이행(Migration)할 수 있도록 설계된 핵심 기술적 기반과 그 학술적 의의를 검토한다.

1. 실시간(Real-Time) 제어의 학술적 정의 및 스케줄링 결정론

비행 제어 시스템에서 ’실시간(Real-Time)’이란 연산 처리의 절대적인 연산 속도뿐만 아니라, 특정 태스크가 반드시 규정된 시간(Deadline) 내에 완료되어야 함을 의미하는 결정론(Determinism)의 척도이다. 우분투(Ubuntu) 리눅스와 같은 일반 GPOS의 스케줄러(예: CFS)는 공정성과 전체 시스템 처리량(Throughput)의 극대화를 목표로 하므로, 특정 프로세스 컨텍스트 스위칭 지연(Context Switching Overhead)이 무작위로 발생할 가능성을 배제할 수 없다. 반면 ROS 2가 타겟으로 하는 NuttX, FreeRTOS, QNX 혹은 PREEMPT_RT 패치가 적용된 실시간 커널은 우선순위 기반 선점형(Priority-based Preemptive) 스케줄링을 보장함으로써, 비행 자세 통제(Attitude Control)와 같은 최우선 필수 스레드의 실행 지연 바운드를 수학적으로 예측 가능하게 한다.

2. ROS 2 커스텀 메모리 할당자(Custom Memory Allocator) 아키텍처

자율 에이전트 드론 소프트웨어에서 런타임(Runtime) 중 발생하는 동적 메모리 할당(malloc, new) 및 해제 작업은 운영체제의 페이지 폴트(Page Fault)를 유발하거나 가비지 컬렉션(GC) 간섭을 초래하여 비결정적인 멈춤(Jitter) 현상의 주요 원인이 된다. ROS 2의 코어 및 클라이언트 라이브러리(rcl, rclcpp)는 이러한 근본적 문제를 회피하기 위해 맞춤형 메모리 할당자(Custom Allocator) 인터페이스를 프레임워크 최하단에 통합하였다. 즉, 시스템 초기화(Initialization) 단계에서 노드가 사용할 모든 메모리 풀(Memory Pool)을 사전에 정적으로 할당해 두고, 메인 제어 루프 진입 이후에는 추가적인 동적 할당을 철저히 억제하여 예측 불가능한 스케줄링 간섭을 원천 차단하는 이행 조건을 충족시켰다.

3. 실시간성에 부합하는 무잠금(Lock-free) 자료구조 및 엑시큐터(Executor) 배포

멀티스레드 기반 제어 구동 환경에서 발생하는 운영체제 레벨의 뮤텍스(Mutex) 잠금과 데드락(Deadlock) 현상은 실시간 시스템 붕괴의 주된 위험 요소이다. 이를 회피하기 위해 ROS 2 RTOS 이행성 구현은 락프리(Lock-free) 기반 링 버퍼 구성 및 Waitset, 혹은 콜백 그룹(Callback Group) 간 상호 간섭이 없는 전용 엑시큐터 스레드 분배 방식을 도입하고 있다. 실시간 운영체제 환경을 목표로 한 응용 컴포넌트는 우선순위 역전(Priority Inversion) 현상을 방지하고, 인터럽트 핸들러가 사용자 공간(User space) 메인 루프를 통과하는 전 과정에서의 락 오버헤드를 제로화하는 설계 패턴을 채택해야만 무정지 제어를 보증할 수 있다.

4. 마이크로컨트롤러(MCU) 및 PX4 Autopilot 펌웨어 플랫폼과의 종속성 체결

가장 엄격한 수준의 실시간성은 종종 컴퓨팅 파워가 극도로 제한된 마이크로컨트롤러(MCU) 기반 비행 컨트롤러(Flight Controller) 상에서 작동하는 펌웨어(예: PX4) 환경을 요구한다. ROS 2 생태계는 이를 지원하기 위해 Micro-ROS 및 Micro-XRCE-DDS 기술을 표준화하였다. 이를 통해 하이엔드 GPOS 기반의 VLA(지각·계획 연산) 엣지 컴퓨터 노드 환경과, NuttX 기반의 PX4 구동 하드 리얼타임(모터 제어) 노드 체계가 각각 고유의 임무 주기를 침해하지 않으면서도 통합된 글로벌 데이터 공간(ROS 2 Topic 토폴로지) 내에서 완전하게 상호 동기화되는 이종(Heterogeneous) 아키텍처 실증을 완수한다.

  • 참고문헌 및 버전 정보
  • Real-Time Working Group (RTWG) Design Documents, Open Robotics (ROS 2 Rolling/Jazzy 기준).
  • Design of the ROS 2 Client Libraries and Custom Memory Allocators, Open Source Robotics Foundation.