30.5.7. 정밀 착륙(Precision Landing, precland) 모듈 연동 시 컴퓨터 비전(IR/Marker) 기반 상대 위치 오차 피드백 제어 루프(Feedback Control Loop) 진입 과정
RTL(Return To Launch)이나 임무(Mission) 착륙 단계에서 기존의 상용 GPS(RTK 미지원) 데이터에만 의존할 경우, 기체는 이륙했던 지점(Home) 반경 1~3m 수준의 오차를 보이며 착륙하게 된다. 드론 스테이션(Drone Station), 해상 이동 선박 보트, 혹은 매우 협소한 착륙 패드에 복귀하기 위해서는 센티미터(cm) 단위의 정확도가 요구된다.
PX4-Autopilot은 이 난제를 극복하기 위해 하강 및 착륙 단계에서 정밀 착륙(Precision Landing, precland) 모듈을 가동하여, 하방을 향한 컴퓨터 비전 카메라(IR 비콘 센서 또는 아루코/에이프릴택 등 광학 마커 인식)가 획득한 착륙 지점과의 실시간 ’상대 위치 오차’를 비행 제어 루프(Feedback Loop)에 직접 통합시킨다. 본 장에서는 precland 모듈의 아키텍처와 오차 보정 피드백 파이프라인(Feedback Control Loop)을 분석한다.
1. 정밀 착륙(Precision Landing) 아키텍처 및 진입 조건
정밀 착륙은 비행 전 과정에서 활성화되는 것이 아니라, 목표 상공을 향한 일반 접근(GPS 기반)이 마무리되고 기체가 착륙 패드 상공 일정 반경 안으로 들어오는 탐색 및 하강(Search & Descend) 국면에서 발동된다.
- 초기 수평 접근 (Global Navigation): 네비게이터(
rtl.cpp또는mission.cpp)는 GPS/EKF2 글로벌 좌표를 사용하여 Home 또는 착륙 지점을 향해 통상 비행한다. - 센서 시야각(FOV) 진입 탐색 (Search Phase): 기체가 착륙 예정지 상공에 도착하면, 비전(Vision) 컴패니언 컴퓨터나 IR 락온 센서(IR Lock Sensor)가 착륙 패드의 마커 형상을 스캔하기 시작한다. 만약 마커가 감지되지 않으면 기체는 지정된
PLD_SRCH_ALT고도까지 탐색 상승/하강을 수행할 수 있다. - 타겟 포착 (Target Acquisition) 및 피드백 제어 전이: 마커가 감지되고 MAVLink
LANDING_TARGET메시지가 수신되기 시작하면, 위치 제어기(Position Controller)는 GPS 중심의 절대 좌표 추종을 1순위 타겟에서 배제하고, 마커와의 상대적인 X-Y 거리 오차망 기반의 Precland 피드백 제어 루프로 권한을 전이(Transition)한다.
2. 컴퓨터 비전 기반 피드백 제어 루프 (Feedback Control Loop)
착륙 패드의 마커 위치 데이터가 PX4 시스템 내부로 인입되어 모터 추력으로 환산되기까지의 파이프라인은 다음과 같이 흐른다.
2.1 상대 위치 오차 측정 (Relative Position Error Measurement)
- 카메라가 인식한 패드의 중심점은 영상 픽셀 좌표계(Pixel Coordinate) 상에 존재한다. 컴패니언 컴퓨터(혹은 내장 드라이버)는 카메라의 렌즈 초점 거리, 원근 기하학(Perspective Geometry), 그리고 기체의 현재 고도 텔레메트리를 계산하여 이 픽셀 오차를 3D 공간상의 각도 편차(Angular Error) 및 **미터법 상대 거리(\Delta X, \Delta Y)**로 변환하여 MAVLink로 전송한다.
- PX4의
landing_target_estimator.cpp모듈은 이 로우 데이터를 수신하여 EKF 필터(1D Kalman Filter 복합 적용)를 통해 카메라 센서 노이즈를 평활화(Smoothing)하고, 마커의 관성계(NED) 상 절대 좌표를 순간적으로 역추정해 낸다.
2.2 피드백 보상기(Compensator) 개입
비전 카메라 기반의 정밀 제어는 지면이 가까워져 카메라 FOV(시야각)가 극도로 좁아진 상태에서 수행되므로 제어 응답 속도가 매우 빨라야만 마커를 놓치지(Target Lost) 않는다.
FlightTaskAutoMapper클래스는 일반적인 GPS 기반 경유지(Waypoint) 추종 속도를 지우고,precland모듈이 생성해낸 V_x, V_y 속도 보정량(Velocity Setpoint)을 다이렉트로 주입한다.- 이 속도 보정량은 마커 중심까지의 오차 거리에 비례 상수(Proportional Gain)를 곱하여 발생된다. 드론은 비스듬히 비스듬히 대각선 슬라이딩을 하듯, 패드 중심에 몸집의 중앙 십자선을 동기화(Alignment)시키며 내려가게 된다.
graph TD
A[RTL 하강 단계 진입] --> B{IR/Vision 카메라<br>마커 감지 성공?}
B -->|No| C[과거 센서 스캔 (Search Mode 진입)<br>또는 GPS 기반 강제 일반 착륙]
B -->|Yes| D[landing_target_estimator<br>EKF 노이즈 필터링]
D --> E[조준점 - 기체 간 상대 위치<br>오차($e_x, e_y$) 계산치 산출]
E --> F[오차에 비례하는 Z-Y축 <br>보상 속도(Velocity Setpoint) 도출]
F --> G[FlightTask 모듈에 Setpoint 주입]
G --> H[마커 위 중심 정렬을 유지하며<br>수직 하강 (Feedback Closed-Loop)]
H --> I[Touchdown: 오차 반경 5cm 이내 정밀 착륙 달성]
3. 이동형 표적(Moving Target) 착륙 대응
정밀 착륙의 정수는 정지된 땅이 아닌 파도치는 선박의 헬리패드(Helipad)나 이동 중인 자동차 로버(Rover) 위로의 착륙이다.
landing_target_estimator는 타겟 마커 데이터가 단발성으로 들어오는 것이 아니라 연속적으로 갱신될 때, 타겟 좌표의 1차 미분(Derivative)을 취해 타겟 자체가 현재 어떤 속도 벡터(Target Velocity)를 가지고 이동하는지를 분석한다.- 이동 표적의 속도(V_{target\_x}, V_{target\_y})가 감지되면, 제어 피드포워드(Feed-forward) 항에 이를 즉각 추가하여 드론 자체가 타겟 차량(선박)과 동일한 기준선에서 날아가도록 에스코트 궤적(Escort Trajectory)에 편입시킨 후 천천히 하강하게 만들어 접지 충돌 사고를 예방한다.
4. 핵심 튜닝 지침 (Precland Parameters)
PLD_BTOUT: 타겟 락온(Lock-on)이 실패했다고 판단하기까지의 타임아웃 지연시간. 일시적인 카메라 블링크 시 드론이 무작정 기존 GPS 위치로 튕겨 나가는 현상(Hunting)을 막아준다.PLD_MAX_SRCH: 정밀 착륙 마커를 찾지 못했을 때 시스템이 탐색을 시도할 최대 횟수 제한. 배터리 소진 전 결정을 내리기 위한 필수 세팅.PLD_HACC_RAD: 정밀 착륙 시 허용되는 수평 도차 오차(Acceptance Radius). 지정된 범위 내에 정렬되지 않았다면 기체는 강하를 보류하거나 탐색 고도로 다시 튀어 올라(Pop-up) 접근 각도를 리트라이(Retry)한다.
5. 결론 및 생태계 확장성
PX4 precland 모듈의 위치 보정 피드백 파이프라인 설계는 전파 교란(Jamming)이나 완전한 GPS-Denied 구역 체계 내에서도 광학 인식(Optical Detection)만으로 치명적인 홈 복귀 임무의 마침표를 찍게 해주는 방어 메커니즘이다. MAVLink LANDING_TARGET 프로토콜 기반의 개방형 통신 인터페이스는 단순한 IR-Lock 비콘을 넘어, ROS2 등 신경망 프레임워크(YOLO-based Pad Detection)를 연동한 무결점 항법 플랫폼 구축에 결정적인 교두보로 활약한다.