2.1 ROS1 소프트웨어 프레임워크의 탄생 배경 및 구조적 한계 분석
로봇 운영 체제(ROS, Robot Operating System)의 제1세대 아키텍처는 과거 2007년 스탠퍼드 대학교 인공지능 연구소(SAIL)와 윌로우 가라지(Willow Garage)의 학문적 연합을 기점으로 태동하였다. 이 프레임워크는 파편화되어 있던 전례 없는 하드웨어 종속적 스크립트들을 척결하고, ’바퀴를 다시 발명하지 말자(Don’t reinvent the wheel)’는 강력한 실용주의 철학을 표방하며 탄생했다. ROS1은 센서 입력 드라이버, SLAM 매핑, 역기구학 모델 및 시각화 도구(RViz) 등의 굵직한 컴포넌트들을 철저한 노드(Node) 형태로 모듈화(Modularization)하였으며, 이를 퍼블리셔-서브스크라이버(Publisher-Subscriber) 모델 기반의 비동기 메시지 패싱(Message Passing)으로 결합하여 단숨에 글로벌 학계의 절대적인 사실상 표준(De facto standard) 미들웨어로 군림했다. 그러나 이 위대한 개방형 유산의 밑단에 깔린 초기 설계의 맹점들은, 다차원 공간을 횡단하며 밀리초(ms) 단위의 궤적 제어 루프를 사수해야 하는 오늘날의 자율 에이전트 드론(Autonomous Agent Drone) 도메인에 직면하여 치명적인 구조적 균열을 노출시켰다.
1. 연구실 통제 환경(Controlled Environment)에 결박된 낙관적 설계 가정
ROS1이 이루어 낸 소프트웨어 공학적 성취는 지대하지만, 그 핵심 코어 아키텍처 이면에는 오직 방해물이 통제된 실내 연구실 환경(Laboratory Environment)이라는 극히 안일하고 낙관적인(Optimistic) 전제들이 침전되어 있었다.
당대의 시스템 연출가들은 다관절 매니퓰레이터를 장착한 휠 구동형 단일 로봇(PR2 등)이, 전력 공급이 차질 없이 보장되는 거대한 로컬 워크스테이션(Workstation)이나 패킷 손실률이 0\%에 등치되는 견고한 유선 이더넷(Ethernet) 폐쇄망 안에서 구동될 것임을 의심치 않았다. 와이파이(Wi-Fi), 5G 망과 같은 변덕스러운 무선 대기 환경에서 빈번히 발생하는 패킷 드롭(Packet Drop)이나 일시적인 대역폭 고갈(Bandwidth Starvation) 현상에 대항할 자체적 복구 탄력성(Resilience)은 애당초 코어 설계 명세서(Specification) 밖의 영역이었다. 나아가 수 킬로미터 상공에서 수십 대의 에이전트가 광역 P2P 채널을 형성해 군집 토폴로지(Swarm Topology) 상태망을 갱신하는 방대한 이기종 멀티 로봇 환경을 수용하기에는, ROS1의 데이터 라우팅 내구력이 원천적으로 결핍되어 있었다.
2. 단일 마스터(Master) 노드의 중앙 집권화가 빚어낸 시스템 붕괴의 뇌관
전술적 비행의 관점에서 ROS1 아키텍처를 단두대로 이끈 가장 명백하고도 파괴적인 공학적 결함은, 네트워크의 네임스페이스 해석망(Name Service)과 서비스 디스커버리 권력을 오로지 roscore라 불리는 단일 마스터(Single Master) 노드에 전격 위임해놓은 중앙 집중형(Centralized) 설계에 연원한다.
단일 마스터 체제 하에서는 영상 처리 노드든 모터 제어 노드든, 상대방과 통신 소켓을 매칭(Match-making)하기 위해 반드시 XML-RPC 인터페이스를 경유하여 마스터 서버에 자신의 직통 IP와 수발신 포트 주소를 알현(Registration)해야 한다. 만약 기체의 기계적 진동, 주 보드의 열화로 인한 전압 강하, 혹은 예측 불가한 메모리 누수 파동으로 인해 이 중앙 마스터 프로세스가 커널 패닉(Kernel Panic)에 빠져 척살당하는 순간, 이미 접속이 체결된 노드 간의 기존 데이터 호스는 구사일생으로 잔명(Residual Life)을 유지할지언정, 새로운 동적 장애물 출현에 대응하는 임시 노드의 스포닝(Spawning)이나 서브스크라이버의 동적 재배치(Dynamic Reallocation)는 원천 봉쇄된다. 시스템의 가변성과 전체 생명력을 단 한 줄기의 연산 스레드에 인질로 잡히는 이 무책임한 단일 장애점(SPOF, Single Point of Failure) 구조는, 극한 환경 생존이라는 안전 필수(Safety-Critical) 철학자들의 격렬한 분노를 샀다.
3. 비실시간성(Non-real-time)의 방임과 논리적 제어권의 수학적 상실
마침내 ROS1을 자율 무인기 비행 역학의 지휘소에서 완전히 파문시킨 결정타는, 운영 체제(OS)의 범용 비동기 스케줄러(Asynchronous Scheduler)에게 자원 배분의 칼자루를 송두리째 헌납해버린 비실시간성(Non-real-time)의 오만함이다.
범용 ROS1 실행망 내부의 콜백 무한 큐(Callback Queue) 메커니즘은 그저 쏟아지는 토픽 데이터를 선입선출(FIFO)이라는 맹목적인 법칙 아래 적재할 뿐이다. 그 메시지가 1\text{ms} 내에 도달하지 못하면 드론이 지면에 충돌하게 될 회피 명령인지, 혹은 1\text{sec} 지연되어도 무방할 단순 배터리 잔량 보고인지에 대한 데이터 프레임의 생존 데드라인(Deadline Window) 계급을 판별할 이성이 부재하다. 만우절 장난처럼 고해상도 스테레오 카메라 노드가 시각 데이터 구조를 동적 할당하기 위해 CPU 캐시를 독식하며 버그를 발산할 때, 시스템 아키텍처는 이를 짓밟고 400\text{Hz} 주기의 비행 제어기(FCU) 하드웨어 송신 스레드를 최고 선점 우선순위(Preemptible Priority)로 밀어 넣을 논리적 대기-자유 매커니즘(Wait-free Data Structure)을 미탑재하고 있다. 결국 무한의 자원 경합 속에서 ROS1 코어는 “데이터 전송에 최선의 물리적 노력(Best-effort)을 경주하겠으나, 그 최악 실행 시간(WCET, Worst Case Execution Time)이 결코 유효한 상수값임을 증명할 수는 없다“는 비결정론(Non-determinism)적인 항복 선언을 자백함에 이르렀다.