28.6.2.2. 고정익 특화 이착륙 모드(Takeoff/Land)의 활주로(Runway) 상태 머신 및 플레어(Flare) 알고리즘

28.6.2.2. 고정익 특화 이착륙 모드(Takeoff/Land)의 활주로(Runway) 상태 머신 및 플레어(Flare) 알고리즘

고정익의 이착륙은 단순히 고도를 올리고 내리는 차원을 넘어선다. 날개에서 발생하는 양력(Lift)이 기체의 무게를 이기기 위해서는 반드시 일정 수준 이상의 대기속도(Airspeed)가 선행되어야 하며, 반대로 착륙할 때는 이 속도를 완전히 죽이면서도 실속(Stall)에 빠지지 않고 부드럽게 지면에 역학적으로 닿아야 한다.

PX4-Autopilot의 고정익 제어 모듈에는 일반적인 공중 순항(Cruising) 모드와는 완전히 차원이 다른, 오직 지면과의 상호 작용(Ground Interaction)만을 위해 특화 설계된 활주로 상태 머신(Runway State Machine)플레어(Flare) 제어 알고리즘이 내장되어 있다. 본 절에서는 이착륙 모드의 코어 로직을 분석한다.


1. 이륙(Takeoff) 상태 머신 추이 분석

고정익의 자동 이륙 명령(Mission Takeoff 또는 Takeoff 모드 진입)이 하달되면, 기체는 수평으로 질주하여 양력을 얻고 안전 고도 위로 부상해야 한다. 이 과정은 PX4 내부 모듈(FixedwingTakeoff)에서 3단계의 하위 상태 기계(State Machine)로 철저하게 통제된다.

1.1 _STATE_TAKEOFF_ROLL (지상 활주)

  • 조건: 스로틀이 켜지고 기체가 아직 활주로에 붙어 있는 상태.
  • 제어 로직: 고도 제어(Pitch)는 완전히 무시된다. 조향(Steering)은 오직 러더(Rudder) 바퀴 방향 제어를 통해 활주로의 중앙선(Heading)을 유지하는 데 집중된다. 스로틀은 RWTO_MAX_THR 파라미터 수준으로 풀 개방(Full Open)되어 무조건적인 가속도를 확보한다.

1.2 _STATE_TAKEOFF_PITCHUP (로테이션/부양)

  • 조건: 기체의 대기속도가 이륙 최소 속도 파라미터(FW_T_CLMB_R_SP 교차점 등)를 초과하여 양력이 발생하기 시작한 지점.
  • 제어 로직: 활주로에서 기체를 띄우기 위해 승강타(Elevator)를 강하게 당겨 피치 각도를 RWTO_PSP (이륙 피치 설정값, 약 10~15도) 만큼 확 들어 올린다(Rotation). 이때부터 기체는 지면을 탈출하여 3D 공간으로 올라오기 시작한다.

1.3 _STATE_TAKEOFF_CLIMBOUT (초기 상승)

  • 조건: 바퀴가 지면에서 떨어졌음을 EKF가 감지한 단계.
  • 제어 로직: 기동이 가장 불안정한 마의 고도(보통 지상 10m~20m 이내)를 통과하는 단계다. 일반 TECS 제어기로 바로 넘기지 않고, 무조건 최소 안전 고도(FW_T_ALT_TC)에 도달할 때까지 강제 최대로 상승각을 유지하며 스로틀을 치게 만든다.

이 3단계가 모두 끝나야 비로소 커맨더는 이륙 완료(Takeoff Complete)를 선언하고 다음 웨이포인트를 향한 일반 L1/TECS 순항 컨트롤러로 바통을 넘기게 된다.


2. 착륙(Land) 접근 및 글라이드 슬로프(Glide Slope)

목적지에 도달하여 랜딩(Landing) 미션을 수행할 때, 고정익은 활주로의 진입 좌표점부터 터치다운 지점까지 가상의 미끄럼틀을 만든다. 이를 글라이드 슬로프(Glide Slope) 라 부른다.

PX4 착륙 제어기(FixedwingLandDetector, TECS 착륙 분기)는 다음 세 가지 물리량을 동기화하여 기체를 제어한다.

  1. L1 위치 제어: 가상의 미끄럼틀 라인을 벗어나지 않도록 수평 크로스 트랙 에러(Cross-track Error)를 0으로 맞춘다.
  2. TECS 피치 제어: 미끄럼틀의 하강 각도(일반적으로 3~5도)를 정확히 타스(True Airspeed)와 연동하여 유지한다.
  3. 스로틀 유휴(Idle): 착륙 접근 중에는 위치 에너지를 깎아먹어야 하므로 스로틀은 거의 0(Idle)이나 최소 속도 유지용 수준으로만 내려간다. 기체는 순수한 중력 글라이딩(Gliding) 역학에 의존하게 된다.

3. 플레어(Flare) 알고리즘: 마지막 1초의 미학

활주로 코앞까지 성공적으로 하강한 비행기가 그 속도와 하강 각도 그대로 바닥에 부딪히면(Crash Land), 랜딩 기어가 박살 나고 기체가 뒤집히게 된다. 고정익 착륙의 성공 여부는 지면에 닿기 직전 1~5미터 상공에서 이루어지는 플레어(Flare) 조작에 달려 있다.

PX4 FlightTaskFixedwingLand 클래스 내부 플레어 로직의 수학적 실체는 다음과 같다.

3.1 플레어 발동 고도 추정

레이저 고도계(Range Finder)나 RTK GPS를 통해 지면으로부터의 상대 고도(dist_bottom)가 파라미터 FW_LND_FLALT (플레어 시작 고도, 약 2~3m)에 도달하는 순간 플레어 상태(State)가 true로 점프한다.

3.2 역학적 감속 (Aerodynamic Braking) 루틴

플레어가 발동되면 TECS 시스템은 즉시 정규 하강 알고리즘을 중단하고 특수 플레어 감속 루틴을 가동시킨다.

  1. 스로틀 차단(Kill): 모터 출력을 즉각 0으로 끌어내린다.
  2. 지수 붕괴식 Pitch Up (Exponential Pitch Up): 기수의 피치 각도를 점진적으로 크게 들어 올린다. 날개의 받음각(Angle of Attack)이 극한으로 커지면서 날개 전체가 거대한 에어브레이크(Airbrake) 판막 역할을 수행하게 된다.
  3. 지면 효과(Ground Effect) 타기: 기수를 들고 하강률(Sink Rate)을 강제로 줄임으로써, 지면 가까이 압축된 공기 쿠션(Ground Effect)을 타고 수 초간 마치 호버크래프트처럼 수평 부양하며 미끄러지듯 속도를 소모한다.

최종적으로 대기속도가 서서히 깎이면서 양력을 완전히 상실한 기체가 10cm 높이에서 털썩 활주로에 주저앉게(Touchdown) 되며 코드는 즉각 Landed 상태 플래그를 올려 모든 제어기를 정지(Disarm)시킨다.


4. ArduPlane과의 착륙 철학 구조 비교

  • ArduPlane (역사적 세분화): 고정익 전용으로 10년 이상 발전해 온 ArduPlane은 착륙/이륙 상태 머신 코드가 PX4보다 훨씬 방대하다. 착륙 시의 어프로치(Approach), 플레어(Flare), 활주 거리 계산 등이 정교하며 특히 딥 스톨(Deep Stall, 기수를 90도 꺾어 낙하산처럼 착륙)이나 네트 그물망 랜딩(Net Landing) 등 특수 착륙 매커니즘이 모드 하위 체계에 단단히 결합되어 있다.
  • PX4 (단순화 및 궤적 통합): PX4의 고정익 이착륙 코드는 멀티로터의 자율 궤적 생성기와 프레임워크를 공유하려는 성격이 강하다. TECS 내부적으로 플레어 훅(Flare Hook)을 제공하지만, 복잡한 휴리스틱 예외를 만들기보다는 “수평/수직/방향 오차에 기초한 보편적 활주로 모델” 하나로 간결하게 떨어뜨려 추상화(Abstraction)를 최대한 지키려는 설계 사상을 유지하고 있다.