27.4.1.1. IMU 데이터 도달 시간 대비 타 센서(GPS 등) 처리 지연에 따른 상태 비동기화 현상
1. 개요 (Introduction)
비행 제어 시스템의 상태 추정(State Estimation) 알고리즘은 근본적으로 ’다양한 주기를 가진 불완전한 정보들을 동일한 시간 선상으로 정렬하여 융합하는 과정’이라고 정의할 수 있다. PX4-Autopilot의 EKF2(Estimation and Control Library, ECL)는 관성 측정 장치(IMU) 데이터를 모델의 기준 뼈대로 사용하며, 위성 항법 시스템(GPS)이나 컴퓨터 비전(VIO) 등의 외부 센서 데이터를 교정용 관측치로 활용한다.
이 구조에서 가장 큰 수학적 및 공학적 난제는 IMU 데이터의 도달 시간(Arrival Time)과 타 센서의 도달 시간 사이의 극단적인 비대칭성이다. IMU 데이터가 거의 0에 가까운 지연(Zero-latency)으로 시스템에 주입되는 반면, GPS 등의 데이터는 연산 및 전송을 거치며 필연적으로 무거운 지연(Heavy Latency)을 수반한다. 두 센서의 측정과 도착 간격의 불일치를 ’상태 비동기화(State Desynchronization)’라 부르며, 이를 간과할 경우 필터 모델이 붕괴하는 치명적인 현상을 초래한다.
2. IMU 데이터의 실시간성과 시스템의 신경망 구조
기체 하드웨어 보드에 장착된 IMU(가속도계 및 자이로스코프)는 드론의 물리적 움직임을 가장 즉각적으로 감지하는 코어 신경망이다.
- 고도화된 샘플링 속도 (High Sampling Rate): 최신 Pixhawk 계열의 하드웨어에서 IMU는 내부적으로 수 kHz 단위의 오버샘플링(Oversampling)을 수행한 후, 내부 하드웨어 로우 패스 필터(LPF) 등을 거쳐 보통 200Hz ~ 400Hz의 속도로 제어기(FC)에 전달된다.
- 초저지연 전송 (Ultra-low Latency): SPI 또는 고속 I2C 버스로 직접 연결되어 있어, 기체 움직임이 발생한 직후부터 PX4의 uORB 토픽(
sensor_gyro,sensor_accel)으로 퍼블리시되기까지 소요되는 총 시스템 지연 시간은 불과 1ms \sim 2ms 미만에 불과하다. - EKF의 척추(Base Spine) 역할: EKF 알고리즘은 이 고속의 IMU 델타 각도(\Delta \theta)와 델타 속도(\Delta V)를 시간 구동 모델(Time Update Step)에 끊임없이 누적 적분(Integration)하여 현재 실시간(T_{now})에서의 위치, 속도, 자세 상태 벡터(X)의 기틀을 확립한다.
3. 타 센서(GPS 등)의 처리 지연 파이프라인 형성 구조
반면, 외부 환경을 절대적으로 수치화하여 위치나 고도를 제공하는 관측 센서들은 고도의 처리 알고리즘이 필요하여 필연적인 지연 파이프라인(Delay Pipeline)을 형성한다. 대표적으로 GPS 센서 시스템은 다음과 같은 계층적 딜레이가 필연적으로 발생한다.
3.1 RF 신호 포착 및 측위 해 연산 (Signal Acquisition & Fix)
GPS 칩셋은 수동적으로 센서 값을 읽는 수준이 아니라, 공전하는 다수의 위성(Space Vehicle)으로부터 수신한 거대한 RF 신호들을 해석해 낸다. 다중 경로(Multipath)에 의한 반사 간섭 타임을 보정하고, 지구 타원체 좌표계(WGS84) 상의 위치를 역산립하는 매우 복잡한 미적분 방정식을 칩셋 내 체공 상태에서 실시간으로 푼다. 이 연산 과정 자체만으로 U-Blox M9N 수준의 최신 모듈에서도 약 50ms \sim 150ms의 소요 시간이 불가피하다. (물론 베이스 스테이션 기반의 RTK 연동 시에는 보정 통신이 추가되어 딜레이 사이클의 변동성은 더욱 예측 불허가 된다.)
3.2 직렬화(Serialization) 및 버스 전송 (UART Transmission)
측위 연산이 도출된 위치 데이터셋(위경도, 고도, 3차원 속도 및 분산값 등)은 패킷으로 직렬화되어 NMEA 0183이나 U-Blox UBX 바이너리 프로토콜로 재조립된다. 이 패킷은 UART 포트를 통해 (일반적으로 115200_{bps} 보드레이트 설정) FC로 직렬 전송(Serial Transfer)되며, 대역폭 병목 관문에서 10ms \sim 30ms의 물리적 전송 지연이 고스란히 추가된다.
3.3 PX4 드라이버 수신 및 스케줄링 (Driver & OS Scheduling)
UART에서 데이터가 Pixhawk 내 Serial FIFO 버퍼로 쏟아지면, NuttX RTOS 상 구동되는 gps 디바이스 드라이버 모듈이 패킷의 마커를 파싱(Parsing)하고 검증(Checksum Validate)한 후, 최종적으로 vehicle_gps_position 혹은 시스템 글로벌 uORB 토픽으로 뿌린다. 이 과정에서도 OS 우선순위 스케줄링에 의한 지연이 개입한다.
결론적으로 GPS 측정 시점(T_{measurement})부터 EKF 추정기에 실제 수신되는 시점(T_{arrival})까지 최소 100ms에서 최대 250ms에 달하는 엄청난 ’시간 갭(Gap)’이 벌어진다. 자율 에이전트로 각광받는 ROS2 기반 VIO의 경우 라즈베리파이의 비전 프로세싱 부하에 따라 이 갭은 한층 도드라진다.
4. 상태 비동기화(State Desynchronization) 현상이 유발하는 필터링 오작동
만일 시간 불일치 현실을 무시하고 수학 공식에 따라 무비판적으로 ’데이터가 EKF 모듈로 들어온 수신 순간’을 무조건 ’현재(T_{now})’라고 맹신하여 칼만 업데이트(Kalman Update)에 돌입하면 최악의 궤멸적 수리 붕괴를 초래한다.
- 수십 m/s로 급가속 기동 중인 고정익 기체나 FPV 레이싱 드론을 가정해 보자.
- 현재(T_{now}) EKF 추정기는 초고속 파이프라인의 IMU 누적을 통해 가장 최전선(Frontline) 선단에 위치한 X_{now} 상태를 계산해 놓고 있다.
- 바로 다음 스루풋, 길고 긴 험난한 버스 지연을 극복한 GPS 관측치(Z_{gps})가 EKF에 안착한다. 하지만 이 데이터가 담고있는 물리적 진실은 약 200ms 전(T_{now} - 0.2s)의 기체 과거 위치이다.
- 비동기화를 방치한 순진한 EKF의 혁신(Innovation, 잔차) 연산 로직은 “현재 IMU 누적 위치(X_{now}) - 관측 위치(Z_{gps})“라는 시공간을 초월한 비상식적인 오차를 계산하게 된다.
- 정작 기체의 궤적은 매우 정상적으로 뻗어나가고 있음에도 불구하고, 필터의 신경망 속에서는 불현듯 기체가 한참 뒤처져있거나 이탈했다는 파멸적 혁신 오차(Innovation Error) 폭풍을 마주한다. 시간 관점에서 어불성설인 값을 동기화(Mismatch)했기 때문이다.
- 이 오버슈팅 된 잔차 에러는 칼만 이득(Kalman Gain, K) 행렬을 타고 상태 벡터 업데이트 루틴에 파고들며, PID 제어기(Position/Velocity Controller)는 이 존재하지 않는 오차를 다급히 되돌리기 위해 액추에이터에 출력을 과잉인가하게 된다. 결과적으로 기체는 통제 불능의 요동(Oscillation) 그리고 완전한 수렴 발산(Crash Divergence)의 늪에 빠지게 된다.
4.1 비동기화 붕괴 현상 도식화 (Mermaid Diagram)
graph TD
A[기체 정상 비행 시퀀스 t=0] --> B(초고속 IMU: 1ms 만에 FC 도달)
A --> C(무거운 연산의 GPS: 200ms 지연 후 도달)
B --> D{비동기 무결성 없는 필터 융합 <br> 1ms 적분 상태 vs 200ms 과거 관측치}
C --> D
D --> E((심각한 허구적 수학 오차 발생))
E --> F[제어 컨트롤러의 과잉 보상 기동 유발]
F --> G[기체 요동발생 및 크래시 발산]
style E fill:#ff9999,stroke:#333,stroke-width:2px
style G fill:#ff6666,stroke:#333,stroke-width:4px
5. 설계 철학적 관점: Ardupilot 체계와의 차별성
Ardupilot 생태계의 EKF3 추정기 역시 지연(Delay)을 파라미터로 입력받고 그 편차를 줄이기 위한 고전적 보완 기법을 탑재해왔다. 하지만 주로 시스템 자코비안(Jacobian) 등 모델 내부의 상태 천이 행렬 연산을 통하여 지연된 시간을 수학적으로 상쇄하고 보상하는 투영(Projection) 방식에 집중하는 기조가 강했다.
반면, PX4-Autopilot의 EKF2(Estimation and Control Library) 소프트웨어 아키텍처는 이러한 “상태 비동기화 현상“이라는 고질적 병폐를 원천적으로 도려내기 위하여 메인 메모리 구조 자체의 파라다임 전환을 결행했다. 고정밀 타임스탬프(timestamp_sample) 기반으로 모든 과거의 상태 궤적과 IMU 측정 조각들을 줄지어 기록 해두는 링 버퍼(Ring Buffer) 메커니즘을 창안해 낸 것이다. EKF는 지연 수신된 데이터와 동일한 과거 시점에 맞춰어 시스템의 영혼을 통째로 롤백(Rollback)한 뒤 칼만 업데이트를 가하고 다시 IMU를 긁어모아 현재 시점으로 적분(Re-propagation)하는 극강의 정적 시간 보상(Time-Alignment) 동역학을 확립하였다. 이는 무인항공기가 어떠한 괴이한 딜레이를 지닌 이종(Heterogeneous) 통신 센서를 연결하든 완벽한 수학적 정합성을 제공하는 PX4만의 무기이다.