28.6.3 시스템 시뮬레이션 환경 내 모의 시간(use_sim_time) 연동 클럭 스케줄링 동기화
고도화된 자율 에이전트 드론 소프트웨어를 개발하는 과정에서 물리적 기체를 직접 띄우는 시험 비행은 막대한 경제적 비용과 파손 위험을 동반한다. 따라서 로보틱스 연구에서는 소프트웨어 ఇన్ 더 루프(SITL) 시스템이나 Gazebo와 같은 3D 물리 시뮬레이터를 활용하여 알고리즘을 1차 검증(Validation)하는 것이 학술적 표준으로 자리 잡았다. 이 가상 시뮬레이션 환경이 물리적 현실을 완벽히 모사하기 위해서는, 운영체제의 실제 시간(Wall Clock)을 탈피하여 시뮬레이터가 제어하는 모의 시간(Simulated Time)에 모든 노드의 제어 타이머를 완벽히 동기화(Synchronization)하는 구조적 추상화가 필수적이며, ROS2는 이를 use_sim_time 파라미터 기반의 스케줄링 모델로 해결한다.
1. ROS 클럭(ROS Clock) 추상화와 모의 시간 오버라이딩
앞서 살펴본 바와 같이 일반적인 비행 환경에서 ROS2 타이머는 운영체제의 시간(Steady Clock)을 참조하여 주기적인 콜백을 트리거(Trigger)한다. 그러나 시뮬레이터 구동 시 사용자가 노드의 런타임 매개변수로 use_sim_time:=true라는 특수 파라미터를 주입(Injection)하면, 해당 노드 내부에 선언된 모든 타이머 객체의 시간 소스(Time Source)는 OS 커널 시계에서 ‘ROS 클럭(ROS Clock)’ 모드로 강제 전환된다.
이 모드에서 노드는 자체적인 하드웨어 인터럽트를 대기하는 대신, 시뮬레이터 엔진(예: Gazebo)이 퍼블리시하는 전역 /clock 토픽을 백그라운드로 서브스크라이빙한다. 실행자(Executor)의 타이머 매니저는 물리적 경과 시간이 아닌, 이 /clock 토픽 스트림 내부에 담긴 타임스탬프(Timestamp) 메시지가 \Delta t만큼 누적되었을 때 작동 주기가 만료된 것으로 판정하여 콜백 큐로 제어권을 넘긴다.
2. 실시간 배수인수(RTF) 편차와 타이머 간격의 신축성(Scaling)
이 모의 시간 스케줄링 동기화의 가장 강력한 공학적 이점은 시뮬레이터의 실시간 배수인수(RTF, Real-Time Factor) 불일치에 대한 무결성(Integrity) 보장이다. 딥러닝 기반의 다중 에이전트 카메라 시뮬레이션을 수행할 경우, GPU 부하로 인해 가상 환경의 1초가 실제 물리적 시간으로는 3초에 걸쳐 느리게 파생(Sub-realtime)될 수 있다. 반대로 단순 궤적 시뮬레이션의 경우 물리적 1초 동안 가상 공간의 10초를 렌더링(Super-realtime)할 수도 있다.
이때 use_sim_time 연동 스케줄링 패턴을 채택한 드론의 400Hz 자세 제어 타이머는 실제 물리적 시계의 2.5ms마다 작동하는 것이 아니라, 가상 세계의 /clock이 2.5ms 전진할 때마다 작동하도록 동적으로 간격을 신축(Scaling)한다. 즉, 시뮬레이션 엔진이 CPU 과부하로 느려지면 제어 로직의 타이머도 동일한 비율로 동작을 지연시키며 완벽한 싱크로율(Synchronization Rate)을 유지한다.
3. 결정론적(Deterministic) 재현성과 검증 파이프라인의 완성
이러한 로보틱스 시간의 추상화 및 캡슐화는 알고리즘 로깅(Logging) 및 재생(Playback) 도구인 rosbag 생태계와 결합하여 학술적 재현성(Reproducibility)의 근간을 완성한다.
과거의 비행 데이터를 모의 시간과 함께 재생(Replay)할 경우, 내부 제어 노드들의 모든 타이머는 과거의 /clock 기록을 바탕으로 다시 구동되므로, 동일한 센서 데이터가 입력되었을 때 과거와 소수점 자릿수 하나 틀리지 않고 완벽하게 동일한 제어 출력 행렬을 복원하는 결정론적(Deterministic) 시뮬레이션 파이프라인이 성립된다. 결론적으로 모의 시간 연동 클럭 아키텍처는 가상 세계의 역학 방정식과 에이전트의 제어 루프를 시계열적으로 밀착시킴으로써 Sim-to-Real(시뮬레이션 대 현실 전이) 간극을 혁신적으로 좁히는 미들웨어 레벨의 핵심 장치이다.