ReDAG-RT: Global Rate-Priority Scheduling for Real-Time Multi-DAG Execution in ROS 2
이 논문은 ROS 2 의 기본 실행기에서 발생하는 우선순위 역전 및 데드라인 불안정 문제를 해결하기 위해, 사용자 공간에서 DAG 간 우선순위를 기반으로 한 글로벌 스케줄링 프레임워크인 ReDAG-RT 를 제안하고, 이를 통해 데드라인 미스율 감소 및 응답 시간 개선을 입증했습니다.
이 각각의 일은 **DAG(작업 흐름도)**라고 불리는 순서대로 연결된 일련의 과정입니다.
기존 ROS 2 의 방식 (비유: 무질서한 주방) 기존 로봇의 작업 관리자는 마치 작업 순서를 무시하고 도착한 순서대로만 일하는 주방장과 같습니다.
상황: 요리사 A 는 "불에 탄 빵을 빨리 구워야 한다 (매우 중요하고 빠른 작업)"고 외칩니다. 하지만 요리사 B 가 먼저 "식탁을 치워야 한다 (덜 중요하고 느린 작업)"고 요청해서 주방장에 먼저 들어갔습니다.
결과: 중요한 빵 구우기가 늦어지면서 로봇이 길을 잃거나 넘어질 수 있습니다. 이를 **'우선순위 역전 (Priority Inversion)'**이라고 합니다.
문제점: 중요한 일이 늦어지고, 로봇의 반응이 느려져서 안전사고가 날 수 있습니다.
🚀 2. 해결책: ReDAGRT (비유: 지능형 응급실)
이 논문에서 제안한 ReDAGRT는 이 혼란을 해결하는 지능형 작업 관리자입니다.
핵심 아이디어: "빠를수록 더 중요하게!" (Rate-Priority) ReDAGRT 는 모든 작업이 도착한 순서가 아니라, **"얼마나 자주 일어나야 하는가 (빈도)"**에 따라 우선순위를 정합니다.
규칙: 1 초에 100 번 일어나야 하는 작업 (매우 빠름) 은 1 분에 1 번 일어나는 작업 (느림) 보다 무조건 먼저 처리합니다.
비유: 병원 응급실처럼, 심장이 멈출 뻔한 환자 (빠른 제어 작업) 는 가벼운 감기 환자 (느린 데이터 기록) 보다 먼저 치료받습니다.
🛠️ 3. ReDAGRT 가 어떻게 작동하나요?
하나의 대기실 (Global Ready Queue): 모든 작업이 하나의 줄에 서지만, 빈도가 높은 사람 (중요한 작업) 이 앞쪽에 서는 규칙을 따릅니다.
선점 (Preemption): 만약 뒤쪽에 있던 아주 중요한 작업이 들어오면, 지금 하고 있던 덜 중요한 작업을 즉시 멈추고 중요한 작업을 먼저 처리합니다.
혼란 방지: 각 로봇의 작업 흐름 (DAG) 마다 동시에 처리할 수 있는 작업 수를 제한해서, 한쪽 흐름이 너무 많은 자원을 차지하지 못하게 막습니다.
📊 4. 실험 결과: 얼마나 좋아졌나요?
연구팀은 가상의 로봇 작업들을 만들어 기존 방식과 ReDAGRT 를 비교했습니다. 결과는 놀라웠습니다.
기다리는 시간 감소: 로봇이 명령을 받고 반응하는 시간이 약 43% 줄었습니다. (예: 49ms 가 28ms 로 단축)
실패율 감소: 중요한 작업을 제때 못 하는 경우 (마감 시간 위반) 가 약 30% 감소했습니다.
예측 가능성: 로봇의 반응이 훨씬 일정해져서, 언제 어떤 일이 일어날지 예측하기 쉬워졌습니다.
💡 5. 결론: 왜 이것이 중요한가요?
이 기술은 로봇의 운영체제 (ROS 2) 를 바꿀 필요 없이, 사용자 공간 (User-space) 에서만 작동합니다. 마치 OS 를 건드리지 않고도, 식당의 메뉴판과 서빙 순서만 바꾸어 전체 서비스 속도를 획기적으로 높인 것과 같습니다.
한 줄 요약:
"기존 로봇은 '먼저 온 순서대로' 일해서 중요한 일이 늦어졌지만, ReDAGRT 는 '가장 중요한 (빠른) 일'을 먼저 처리하게 해서 로봇을 더 안전하고 빠르게 만들었습니다."
이 기술은 자율주행차, 수술용 로봇, 재난 구조 로봇처럼 실시간으로 정확한 반응이 필수적인 안전 시스템에 큰 도움을 줄 것입니다.
1. 문제 정의 (Problem Statement)
ROS 2 의 실시간성 한계: 현대 로봇 시스템은 지각 (Perception), 계획 (Planning), 제어 (Control) 등 여러 독립적인 작업 흐름을 방향성 비순환 그래프 (DAG) 형태로 구성하여 공유 실행기 (Executor) 에서 처리합니다. 그러나 ROS 2 의 기본 실행기 (SingleThreadedExecutor, MultiThreadedExecutor) 는 최선 노력 (Best-effort) 방식의 FIFO(선입선출) 큐를 사용합니다.
교차-DAG 우선순위 반전 (Cross-DAG Priority Inversion): 기본 실행기는 DAG 간에 전역적인 우선순위 규칙이 없습니다. 따라서 주기 (Period) 가 짧고 시급한 고빈도 작업보다, 도착 시간이 먼저인 저빈도 작업이 먼저 실행될 수 있습니다. 이는 우선순위 반전을 유발하여 고빈도 제어 루프의 데드라인 미스를 초래합니다.
통제되지 않은 간섭 (Uncontrolled Interference): 여러 DAG 가 공유 스레드 풀을 경쟁할 때, 어떤 DAG 가 다른 DAG 를 차단하는지에 대한 분석적 상한선이 없어 응답 시간의 변동성 (Jitter) 이 커지고 실시간 예측이 불가능해집니다. 이는 안전이 중요한 사이버 - 물리 시스템 (CPS) 에 배포하는 것을 제한합니다.
2. 방법론 및 시스템 설계 (Methodology & System Design)
논문은 ROS 2 API 나 커널을 수정하지 않고, 사용자 공간 (User-space) 에서만 작동하는 ReDAGRT라는 새로운 실행 프레임워크를 제안합니다.
전역 레이트 - 우선순위 (Global Rate-Priority) 스케줄링:
모든 DAG 에 속한 콜백 (Callback) 을 단일 전역 우선순위 큐에 통합합니다.
레이트 - 모노토닉 (Rate-Monotonic, RM) 원칙을 적용하여, 주기 (Period) 가 짧은 작업일수록 더 높은 우선순위를 부여합니다.
이를 통해 고빈도 작업이 저빈도 작업을 선점 (Preempt) 하도록 보장하여, 교차-DAG 우선순위 반전을 제거합니다.
DAG 별 동시성 경계 (Per-DAG Concurrency Bounds):
각 DAG 가 동시에 실행할 수 있는 최대 콜백 수를 제한하는 비대칭적 경계를 설정합니다. 이는 특정 DAG 가 시스템 자원을 독점하여 다른 DAG 에 간섭을 일으키는 것을 방지합니다.
종속성 인식 방출 (Dependency-Aware Release):
DAG 내부의 선행 제약 조건 (Precedence Constraints) 을 확인한 후, 조건이 충족된 작업만 'READY' 상태로 전환하여 전역 큐에 삽입합니다.
고정 우선순위 선점 스케줄링:
작업이 큐에 도착하거나 완료될 때마다, 현재 실행 중인 작업보다 우선순위가 높은 작업이 있으면 즉시 선점하여 실행합니다.
분석적 기반:
고전적인 고정 우선순위 스케줄링 이론 (Response-Time Analysis, RTA) 을 기반으로 응답 시간 재귀식과 스케줄 가능성 조건을 유도하여, 시스템이 데드라인을 준수할 수 있는지 수학적으로 증명합니다.
3. 주요 기여 (Key Contributions)
ROS 2 실행기의 구조적 결함 규명: 기본 실행기가 DAG 간 전역 우선순위 조정 부재로 인해 발생하는 '교차-DAG 우선순위 반전'을 구조적 결함으로 정의하고 분석했습니다.
수학적 간섭 모델 제시: 다중 DAG 작업 모델 하에서 레이트 - 우선순위 스케줄링이 간섭을 어떻게 제한하고 응답 시간을 분석 가능하게 만드는지 형식적으로 증명했습니다.
ReDAGRT 프레임워크 구현 및 오픈소스:
커널 수정 없이 ROS 2 사용자 공간에서 작동하는 통합 스케줄러를 구현했습니다.
ROS 2 API 호환성을 유지하며, 다양한 주기 및 중요도 (Mixed-Criticality) 워크로드에서 기존 실행기 대비 성능을 검증했습니다.
전체 소스 코드를 오픈소스로 공개하여 재현성을 보장했습니다.
4. 실험 결과 (Experimental Results)
ROS 2 Humble 환경에서 합성된 다중-DAG 워크로드를 사용하여 SingleThreadedExecutor 및 MultiThreadedExecutor 와 비교 평가했습니다.
데드라인 미스율 감소:
ReDAGRT 는 기존 MultiThreadedExecutor 대비 **최대 13.7%**의 데드라인 미스율 감소를 달성했습니다.
스레드 수를 4 개에서 8 개로 늘렸을 때, 결합된 미스율이 29.7% 감소했습니다 (8 개 스레드 이후 포화 현상 발생).
응답 시간 분포의 CDF 가 왼쪽으로 이동하여 지연 시간 변동성이 크게 줄어듦을 확인했습니다.
비대칭 동시성 경계의 효과:
DAG 간 동시성 제한을 비대칭적으로 설정한 경우 (예: 한 DAG 는 2 개, 다른 DAG 는 5 개), 대칭 설정 대비 40.8% 더 많은 간섭 감소 효과를 보였습니다.
안정성:
기본 실행기는 높은 부하에서 응답 시간이 기하급수적으로 증가하는 (Pathological Lateness) 현상을 보인 반면, ReDAGRT 는 부하 증가에 따라 점진적으로 성능이 저하되는 (Graceful Degradation) 안정적인 행동을 보였습니다.
5. 의의 및 결론 (Significance & Conclusion)
실시간 로봇 미들웨어의 새로운 기준: ReDAGRT 는 ROS 2 환경에서 **결정론적 (Deterministic)**이고 **분석 가능 (Analyzable)**한 다중 DAG 실행을 가능하게 합니다. 이는 안전이 중요한 자율주행 및 로봇 시스템의 실시간성 요구사항을 충족하는 데 필수적입니다.
커널 수정 불필요: 운영체제 커널을 수정하거나 ROS 2 API 를 변경하지 않고도 사용자 공간에서 전역 스케줄링 정책을 구현할 수 있음을 입증했습니다.
이론과 실전의 결합: 고전적인 실시간 스케줄링 이론 (Rate-Monotonic) 을 실제 로봇 미들웨어 아키텍처에 성공적으로 적용하여, 이론적 스케줄 가능성 보장을 실제 시스템 성능 개선으로 연결했습니다.
요약하자면, 이 논문은 ROS 2 의 비결정적 실행 문제를 해결하기 위해 전역 레이트 - 우선순위 큐와 DAG 별 동시성 제어를 도입함으로써, 로봇 시스템의 실시간 예측 가능성과 안전성을 획기적으로 향상시킨 획기적인 솔루션을 제시합니다.