28.4.2. 모드 활성화 전제 조건(Activation Pre-conditions) 엄격 검증
기장이 비행기를 조종하려면 눈(시각)과 귀(전정기관)가 온전하게 기능해야 하듯, PX4의 특정 비행 모드가 활성화되기 위해서는 드론의 센서 상태가 해당 모드가 요구하는 엄격한 **전제 조건(Pre-conditions)**을 반드시 충족시켜야 한다.
단순히 조종사가 스위치를 올렸다고 해서, 혹은 배터리가 충분하다고 해서 모드가 켜지는 것이 아니다. 핵심은 “이 비행 모드가 자신의 수학적 궤적 로직을 구동하기 위해 어떤 종류의 센서 데이터를 필수적으로 요구하는가?“에 달려 있다.
1. 비행 모드별 요구 센서 수준의 차이
PX4에 구현된 수많은 비행 모드들은 각기 다른 수준의 공간 인지 능력을 요구한다.
- Acro (곡예) 모드: 오직 자이로스코프(Gyroscope) 데이터만 있으면 된다. 드론이 지구상 어디에 있는지, 얼마나 높이 떠 있는지는 전혀 알 필요가 없다.
- Altitude (고도 유지) 모드: 자이로스코프에 더해 기압계(Barometer)나 레이더(LiDAR) 같은 고도(Z축) 센서가 필수적으로 요구된다. 수평(XY축) 위치 데이터는 없어도 무방하다.
- Position (위치 유지) 모드: 고도 센서뿐만 아니라, 카메라의 옵티컬 플로우(Optical Flow)나 GPS를 통한 수평(XY축) 위치 데이터가 파악되어야 한다.
- Mission (임무 가이드) 모드: 로컬(Local) 좌표계를 넘어, 지구 맵핑을 위한 글로벌(Global) 위도/경도(GPS Lock) 데이터가 100% 확실하게 락(Lock)되어 있어야만 진입이 허가된다.
2. 평가의 주체: Estimator 단과 Commander 단의 협업
이러한 전제 조건 검증은 단일 모듈에서 독단적으로 이루어지지 않고, 투 콤보(Two-combo) 파이프라인으로 촘촘히 얽혀 있다.
- 데이터의 품질 보증 (Estimator): EKF2(Extended Kalman Filter) 모듈은 현재 들어오는 GPS 센서나 기압계 센서의 노이즈(Noise)와 신뢰도(Confidence)를 철저히 분석하여, 데이터가 ‘믿을 만한지’ 여부를 나타내는 합격 인증 마크(
valid플래그)를 지속적으로 uORB 버스에 띄운다. - 진입 허가 판독 (Commander): 커맨더의 상태 머신은 EKF2가 발행한 이 인증 마크들을 읽어들인다. 그리고 파일럿이 요청한 모드의 요구명세(Requirements)와 현재 센서의 인증 마크 꾸러미(Available Flags) 스펙을 대조 검사하여, 단 하나라도 필수 조건이 누락되면 차갑게 모드 진입을 거부(Reject)한다.
다음 절에서는 이 평가 파이프라인의 핵심 매개체인 estimator_status 토픽의 비트마스크 구조와 조합표를 내부 구조 레벨에서 상세히 분석해 본다.