28.1.2.1.2. 자동 제어 상태 군: `AUTO_MISSION`, `AUTO_LOITER`, `AUTO_RTL`, `AUTO_TAKEOFF`, `AUTO_LAND`

28.1.2.1.2. 자동 제어 상태 군: AUTO_MISSION, AUTO_LOITER, AUTO_RTL, AUTO_TAKEOFF, AUTO_LAND

Px4 아키텍처의 vehicle_status 마스터 관제 메시지 열거형 상수 중, 인간의 한계를 넘어선 두 번째 거대 축을 관장하는 그룹이 바로 자동 제어 상태(Autonomous Control State Domain) 군이다.

이 상태 그룹군으로 시스템 nav_state 변수가 전이(Transition)되는 그 짧은 찰나의 순간, 조종사의 물리적인 조종기 스틱 타각 조작은 비행 궤적 생성 수식에 어떠한 피드포워드(Feedforward) 영향력도 행사하지 못하도록 철저하고 완벽하게 시스템에서 무시(Bypass) 단절된다. 오직 위급 상황 시 제어권을 탈환하기 위한 최상위 인터럽트(Take-over) 탈출 브레이킹 트리거 용도로만 전락하게 되며, 비행 조향의 운전석 스티어링 휠은 시스템 내장 C++ 자율 내비게이션 알고리즘 머신이 기체의 X, Y, Z 우주 3차원 여정을 100% 독재 지배하는 구조로 완전히 탈바꿈하게 된다.

1. 개별 자동 제어 상수표의 동역학적 임무 분석

대표적인 핵심 5가지 자동 비행 열거형 상수는, 그 번호에 매핑(Mapping)된 각각의 독립적인 FlightTask 서브 클래스 다형성 인스턴스를 동적으로 램(RAM)에 활성화시키며 다음과 같은 고유하고 거대한 역학적 미션을 수행한다.

1.1 NAVIGATION_STATE_AUTO_MISSION (웨이포인트 자율 임무 수행 모드)

  • 동작 원리 및 메커니즘: 지상 관제망 GCS(QGC)나 온보드 동반 컴퓨터(Companion Computer)에서 마이크로 SD 카드 비휘발성 메모리로 사전에 업로드해 둔 MAVLink 웨이포인트(Waypoint List) 항목 큐(Queue)를 백그라운드 스레드에서 순차적으로 꺼내어 파싱(Parsing)해 읽어 들인다.
  • 아키텍처 고유 특징: 단순히 점과 점을 잇는 것이 아니라, 3차원 도착 허용 반경(Acceptance Radius) 파라미터를 돌파 달성했는지를 매 틱(Tick) 실시간 적분 계산하며, 도달 판정 시 다음 배열 인덱스 경로로 스스로 노우즈(Nose) 방향을 틀어 미끄러지듯 비행 궤적을 전개한다. 더불어 곡선 경로 스플라인(Spline) 계산 및 카메라 셔터 트리거(Camera Trigger), 짐벌 각도 할당과 같은 부가 페이로드(Payload) 컨트롤까지 모두 이 단일 상태 머신 블록 내에서 캡슐화되어 통합 제어된다.

1.2 NAVIGATION_STATE_AUTO_LOITER (자동 3D 위치 배회 및 정지 홀딩 모드)

  • 동작 원리: 일반 유저들이 QGC 앱 조작에서 가장 흔히 접하는 ‘Hold (일시 정지)’ 기능 버튼의 시스템 커널 레벨 진실 변수 텍스트다. 이 상수 번호로 전이된 즉시 기체는 현재 허무의 허공 좌표계(위도, 경도, 기압/GPS 혼합 고도)를 락 온(Lock-on) 타게팅한다.
  • 아키텍처 고유 특징: 동역학적 기체 프레임워크 뼈대에 따라 반응 로직이 내부적으로 갈라진다. 고정익(Fixed Wing)의 경우 추락을 면하기 위해 지정된 파라미터 반경을 그리며 빙글빙글 원형 선회(Loiter circle) 비행을 연료가 닳을 때까지 영원히 반복하는 반면, 멀티로터의 경우 그 허공의 픽셀 자리에 말뚝을 박고 멈춰 서는 브레이킹(Kinematic Braking/Hovering) 역분사 궤적을 맹렬히 뿜어내며 결사 항전한다.

1.3 NAVIGATION_STATE_AUTO_RTL (Return To Launch, 안전 귀환 복귀 비행 모드)

  • 동작 원리: 조종사가 명시적으로 조종기 Return 스위치를 당기거나, 배터리 전압 급감 Failsafe 로직이 백그라운드에서 터지는 등 기체 회수가 시급할 때 강제 발동한다.
  • 아키텍처 고유 특징: 아키텍처 관점에서 이는 단순무식한 직선 되돌아가기 함수가 아니다. 현 위치 상승(Climb to Safe Altitude) \rightarrow 홈 좌표로 수평 순항(Cruise to Home) \rightarrow 홈 상공 하강 대기(Loiter at Home) \rightarrow 최종 수직 착륙(Land) 이라는 엄청나게 복잡한 하부 메타 FSM(Finite State Machine) 시퀀스가 오직 이 단일한 nav_state 5번 상수 넘버링 안에서 거대한 통뼈 알고리즘 체계로 물 흐르듯 순차 자동 진행된다.

1.4 NAVIGATION_STATE_AUTO_TAKEOFF / NAVIGATION_STATE_AUTO_LAND (수직 자동 이착륙 전용 모드)

  • 동작 원리: 이륙 고도 파라미터(예: MIS_TAKEOFF_ALT) 한계점까지 수직으로 치솟아 오르거나, 역으로 지면 충돌을 감지할 때까지 초당 수십 센티미터의 연착륙 하강 한계 속도만을 일정하게 프로파일링 유지해 내는 수직 통제 전용 상태 번호다.
  • 아키텍처 고유 특징: 이 착륙 궤도 상태 구간에서는 비전 센서나 하단 레이저 거리계(Distance Sensor/Rangefinder) 데이터의 내부 신뢰도 가중치가 고도로 급상승 맵핑된다. 특히 AUTO_LAND 하강 모드 수행 중, 가속도계 데이터상 지면 접촉 충격(Landed Contact) 플래그가 최종 참(True)으로 판명되면 즉각 잔여 모터 회전을 강제 비활성화(Disarm Kill)하는 파이널 종료 프로세스로 자연스럽게 직렬 트랜잭션 연결된다.

2. 자동 제어 상태 천이의 가장 치명적 전제 조건: “Global Position Validity” (글로벌 락 검증)

결과적으로 이토록 눈부신 자율 비행 상태 군(AUTO_*)으로 nav_state 인덱스가 성공적으로 점프(Jump)하기 위해, 최상위 사령탑인 Commander 모듈이 가장 크리티컬하고 철처하게 검열 통제하는 단 하나의 안전망 절대 필수 전제 조건(Pre-condition)이 존재한다. 바로 ‘EKF2 코어 모듈의 삼차원 글로벌 포지션(Global Position) 확률적 추정 통계가 논리적으로 완벽히 건강(Valid)한가?’ 이다.

AUTO 그룹에 속한 시스템 제어 궤적 알고리즘 모듈들은 근본적으로 지표면 절대 좌표계를 기준으로 한 기체의 위도(Latitude)와 경도(Longitude) 정보를 알지 못하면, 그 어떤 곡선 스플라인 궤적 단 한 줄도 수학적으로 재생산해 낼 수 없는 태생적 수학 공식의 한계를 지닌다.
따라서 Commander 폴링 다이내믹 루프는, 자동 제어 상태 천이(Transition Approval) 인가 발급 직전 찰나의 시간에 EKF2 필터망이 뿜어내고 있는 위성 락온 개수 추정치(HDOP/VDOP), 지자기 나침반 혁신 오차율 분산(Mag Innovation Variance) 수치가 허용 파라미터 상한선(Limit)을 초과하지 않고 믿을 만한 수준의 글로벌 락(Global 3D Lock) 퀄리티를 유지하고 있는지 가혹하게 타개 검토(Cross Check)한다.

만약 깊은 계곡 지하 주차장과 같이 GPS 시그널이 사방으로 반사되어 튀고 멀티패스 오차가 발생하여 글로벌 포지셔닝 타당성(Global Position Validity) 플래그가 False로 바닥을 친 상태라면, 조종사가 조종기 Mission 토글 버튼 스위치를 부서져라 연타하더라도 Commander의 유한 상태 기계(FSM) 전이 매트릭스 도어(Door)는 “수학적 사전 요구 조건 불충족(Transition Rejected: No Global Position Valid)“이라는 시스템의 차디찬 에러 비프음(Buzzer)과 함께 nav_state 인덱스 변경을 절대적이고 단호하게 시스템 단위로 거부해 버린다.

이는 복잡해 보이는 최첨단 자율 비행 인공지능 알고리즘의 화려함 이면에서, PX4 펌웨어가 얼마나 오차론적 수학 통계에 철저히 입각한 하드코어한 생존 지향 설계 철학과 안정성 절대 우위(Safety First) 룰을 타협 없이 굳건히 고수하고 있는지를 방증하는 가장 극명하고 통쾌한 소프트웨어적 판례라 할 수 있다.