2026년 08월 17일 PX4-Autopilot 주간 개발 동향: v1.18 안정화 박차 및 핵심 인프라 혁신
PX4 주간 통합 브리핑
이번 주 PX4 Autopilot 개발은 다가오는 v1.18 정식 릴리즈의 안정화에 집중하면서도, 미래를 위한 핵심 인프라 개선과 기능 확장을 병행하는 양상을 보였습니다. 특히, 지난 8월 9일 릴리즈된 v1.18.0-beta2는 비행 제어, QGC 호환성, 저장소 및 센서 드라이버 등 전반적인 시스템 안정성을 크게 향상시키는 다양한 버그 픽스를 포함하며, 릴리즈의 완성도에 대한 커뮤니티의 기대를 높였습니다.
한편, GitHub에서는 내비게이션 시스템의 스마트 미션 경로 계획 기능 추가, 외부 회피 세트포인트 통합, 그리고 ADS-B 트래픽 고장 주입 기능과 같은 고급 자율 비행 및 안전 관련 기능들이 활발하게 논의되고 있습니다. 이와 함께 uORB 시스템을 NuttX의 SHM(Shared Memory) 기반으로 재구성하려는 "안전 필수(safety-critical)" 등급의 대규모 인프라 PR이 진행 중이며, 이는 PX4의 코어 메시징 및 프로세스 간 통신(IPC) 성능과 안정성에 근본적인 변화를 가져올 잠재력을 지니고 있습니다. QGroundControl 역시 v5.1 Release Candidate 2를 발표하며 지상국 소프트웨어의 발전을 예고했습니다.
PX4 릴리즈 및 버전별 주요 변경 사항
지난 7일 동안 PX4 Autopilot은 v1.18.0-beta2 프리릴리즈를 발표하며 주요 안정화 작업의 진전을 알렸습니다. 이 버전은 beta1 이후 발견된 다수의 치명적인 버그를 수정하여 사용자 및 개발자들에게 더욱 안정적인 테스트 환경을 제공합니다.
- v1.18.0-beta2 (2026년 08월 09일 릴리즈)
- 고정익(Fixed-wing) 개선: 제로 에어스피드(airspeed) 분할로 인한 lat/lon 제어의 NaN eas2tas 문제 해결 (#28107), 잘못된 자세 프레임으로 인한 테일시터(tailsitter)의 오작동 방지 (#27834).
- QGroundControl 호환성: 더욱 엄격해진 커맨드 유효성 검사로 인해 발생했던 멀티콥터 가이드 이륙, 카메라 미션 항목, VTOL 착륙 패턴 거부 문제 해결 (#27853, #28079).
- STM32H7 SD 카드 안정성: NuttX SDMMC 캐시 일관성 개선을 통해 STM32H7 보드의 SD 카드 읽기 손상 문제 수정 (#28071).
- 파라미터 저장소: FMUv6X-RT FRAM 다중 페이지 쓰기 안정화 (#28127), 플래시 파라미터 압축을 부팅 시로 이동 (#28093).
- FMUv6X-RT 부팅: 부팅 시 FlexSPI DLL 캘리브레이션 구현으로 부하 의존적인 하드폴트(hardfault) 수정 (#28141).
- 추정기(Estimator): 외부 위치 추정 활성화 중 하드 리셋 문제 해결 (#27856), DroneCAN 거리 측정기의 범위를 벗어난 판독값이 지형 추정에 통합되지 않도록 수정 (#27963).
- 내비게이션: DO_JUMP가 현재 미션 항목으로 설정될 경우 목표 지점으로 올바르게 해석되도록 수정 (#28063).
- 배터리 관리: 남은 시간 불명 시 RTL(Return To Launch)이 트리거되지 않도록 수정 (#27929), 쿨롱 카운팅이 unclamped dt 사용하도록 변경 (#27866).
- 커맨더: COM_PARACHUTE 경고 전용 모드 추가 (#27903), 멀티콥터 자동 튜닝이 재부팅 없이 재트리거 가능하도록 개선 (#27851).
- VOXL2 / Qurt 플랫폼: px4_task_join 구현 (#27886), Hexagon NaN 비교 수정 (#27931), 스타트업 stdout TLS 경쟁 조건 해결 (#28013), keepalive 파일 디렉토리 수정 (#28053).
- GPS: RTCM 보정 및 움직이는 기준선(moving-baseline) 데이터가 별도의 uORB 토픽으로 분리 (#27097).
- MAVLink: 수신 스레드 스택 크기 조정 (#28124); FMUv4 (Pixracer)의 플래시 여유 공간 확보를 위해 UAVCAN, uXRCE-DDS, 마그네틱 바이어스 추정기 및 SIH가 기본 빌드에서 제외됨 (#28124).
- 보드 지원: CUAV X25-mega 보드가 이름이 변경된 히터 센서 ID 파라미터를 사용하도록 업데이트 (#27846).
이번 v1.18.0-beta2는 주요 시스템의 안정성과 호환성을 크게 향상시키는 데 중점을 두었으며, 특히 하드웨어 및 임베디드 OS 수준의 깊이 있는 수정사항들이 포함되어 있습니다. 이는 PX4의 핵심 기능뿐만 아니라 다양한 하드웨어 플랫폼에서의 견고성을 확보하려는 노력을 보여줍니다. FMUv4와 같은 구형 보드의 리소스 제약에 대응하여 핵심 기능에 집중한 점 또한 주목할 만합니다.
핵심 GitHub 업데이트 (PX4-Autopilot)
병합(Merged)된 주요 Pull Requests
- fix(ekf2): advertise global position and odometry in single-EKF mode too: EKF2 추정기가 단일 EKF 모드에서도 글로벌 위치 및 오도메트리 정보를 광고하도록 수정하여, 외부 시스템과의 데이터 연동성을 개선하고 추정기의 유용성을 높였습니다.
- fix(drivers/bmi270): correct FIFO watermark byte calculation: BMI270 센서 드라이버의 FIFO 워터마크 바이트 계산 오류를 수정하여, 센서 데이터의 정확성과 안정적인 수집을 보장합니다.
- fix(uavcan): warn while the dynamic node ID allocation table is full: UAVCAN 드라이버에서 동적 노드 ID 할당 테이블이 가득 찼을 때 경고를 발생시켜, 시스템 관리자가 잠재적인 네트워크 문제를 조기에 인지하고 대응할 수 있도록 합니다.
- fix(dshot): resynchronise serial ESC telemetry to its request: DShot 시리얼 ESC 텔레메트리 데이터를 요청에 맞춰 재동기화하여, ESC 데이터의 신뢰성을 향상시키고 비행 제어 루프의 정확도를 높입니다.
- feat(rtl): type prioritize home: RTL(Return To Launch) 모드에서 홈(home) 위치 우선순위를 지정할 수 있는 기능을 추가하여, 비상 상황 시 드론의 복귀 로직에 유연성을 더했습니다.
- feat(boards/tustin_mach): add TUSTIN MACH board support: TUSTIN MACH 비행 컨트롤러 보드에 대한 지원을 추가하여, PX4 하드웨어 생태계를 확장하고 새로운 플랫폼 개발을 위한 기반을 마련했습니다.
- [BACKPORT 1.18] fix(cdcacm_autostart): gate MAVLink start on USB port readiness: USB 포트 준비 상태에 따라 MAVLink 시작을 제어하는 1.18 버전 버그 픽스가 백포트되어, USB 연결 시 MAVLink 통신의 안정성을 향상시켰습니다.
오픈된 크리티컬 Pull Requests 및 Issue
- feat(uorb): (WIP) Rebase TII’s SHM-based uORB on pr-nuttx-nuttx-12-12-0: "safety-critical" 레이블이 붙은 이 PR은 uORB 메시징 시스템을 TII의 SHM(Shared Memory) 기반으로 재구성하는 작업입니다. 이는 PX4의 핵심 IPC 메커니즘을 근본적으로 변경하며, 실시간 성능과 멀티코어 환경에서의 효율성을 극대화할 잠재력을 가집니다. 하지만 동시에 시스템 안정성에 미치는 영향이 매우 커 신중한 검토와 테스트가 요구됩니다.
- fix(navigator): prevent multicopter mission stall at waypoints: 멀티콥터가 웨이포인트에서 미션 스톨(mission stall)되는 현상을 방지하는 중요한 내비게이션 버그 픽스입니다. 자율 비행의 신뢰성에 직접적인 영향을 미치므로 빠른 병합이 기대됩니다.
- feat(navigator): mission route planning library & feat(navigator): Add infrastructure for smart mission route planning: 스마트 미션 경로 계획을 위한 라이브러리와 인프라를 추가하는 PR로, PX4의 자율 비행 능력을 한 단계 더 발전시킬 핵심 기능입니다. 이는 복잡한 임무 수행과 효율적인 경로 최적화에 기여할 것입니다.
- feat(avoidance): fuse external avoidance setpoints in Position/Mission: 외부 회피 시스템에서 생성된 세트포인트를 Position/Mission 모드에 통합하는 기능입니다. 외부 비전 시스템이나 센서 기반 회피 시스템과의 연동성을 강화하여 드론의 안전 운행을 크게 향상시킬 수 있습니다.
- feat(failure_injection): add ADS-B traffic failure injection and battery severity levels: ADS-B 트래픽 고장 주입 및 배터리 심각도 수준(severity levels)을 추가하는 PR로, 시스템의 견고성을 테스트하고 다양한 비상 시나리오에 대한 대응 능력을 검증하는 데 필수적인 도구입니다.
- fix(gps): stop unsupported u-blox config keys from taking the receiver down: 지원되지 않는 u-blox 설정 키가 GPS 수신기를 다운시키는 것을 방지하는 버그 픽스입니다. 이는 GPS 시스템의 안정성과 신뢰성 확보에 중요합니다.
- fix(release): backport 10 bugfixes for v1.18: v1.18 릴리즈를 위한 10가지 버그 픽스를 백포트하는 PR로, 정식 릴리즈의 안정성을 최종적으로 확보하기 위한 중요한 작업입니다.
- COMMAND_INT: frame is ignored for altitude — DO_SET_ROI_LOCATION always treats z as AMSL: MAVLink
COMMAND_INT메시지에서 고도 프레임이 무시되어DO_SET_ROI_LOCATION이 항상 AMSL(Above Mean Sea Level)을 기준으로 처리되는 문제에 대한 새로운 이슈가 제기되었습니다. 이는 MAVLink 기반의 정밀한 임무 수행에 영향을 미칠 수 있습니다. - [Bug] mavlink does not respect MAV_x_RATE: MAVLink 메시지 전송률 설정(
MAV_x_RATE)이 제대로 지켜지지 않는 버그가 여전히 오픈되어 있습니다. 이는 MAVLink를 이용한 외부 시스템 통합 시 데이터 흐름 제어에 문제를 야기할 수 있습니다. - [RFC] EKF2 altitude semantics for Flow+Range and Multi-EKF: EKF2의 고도 추정에서 Flow+Range 센서 및 Multi-EKF 사용 시의 시맨틱(semantics)에 대한 RFC(Request For Comments)가 진행 중입니다. 이는 EKF의 고도 추정 정확도와 센서 퓨전 방식에 대한 중요한 아키텍처 논의를 담고 있습니다.
이번 주 GitHub 활동은 v1.18의 막바지 안정화와 함께, uORB 재구성과 같은 깊이 있는 인프라 개선, 그리고 스마트 미션 플래닝, 외부 회피 통합 등 PX4의 미래 지향적인 기능 확장에 대한 활발한 논의와 개발이 이루어지고 있음을 보여줍니다.
Weekly Dev Call & 커뮤니티 동향
지난 8월 12일 진행된 주간 개발자 콜 (PX4 Dev Call: Aug 12, 2026)은 팀 싱크 및 커뮤니티 Q&A 위주로 진행되었으며, 공개된 내용은 정기적인 현황 공유에 가까웠습니다. 특별히 뜨거운 논쟁이나 새로운 발표보다는 개발 현황을 점검하는 자리였습니다.
Discourse 포럼의 ‘PX4 Autopilot’ 섹션에서는 실질적인 개발 및 운영 관련 질문들이 주를 이루었습니다. 특히 "PID tuning Large drone" 스레드는 96회의 조회수와 6개의 답변으로, 대형 드론 운용 시의 PID 튜닝이라는 실용적이고 중요한 주제에 대한 커뮤니티의 높은 관심을 나타냈습니다. 이는 대형 산업용 드론의 활용이 증가함에 따라 정밀한 제어 최적화 요구가 커지고 있음을 시사합니다. "Firmware for Pixhawk Pro Chinese clone [FIXED]" 스레드는 특정 하드웨어 호환성 문제가 커뮤니티의 도움으로 해결되었음을 보여주며, 오픈소스 프로젝트의 강점인 활발한 상호 지원을 증명했습니다. DShot ESC의 모터 인덕턴스와 진동 판독값 간의 관계에 대한 기술적인 질문도 제기되어, 깊이 있는 기술적 논의가 계속되고 있음을 알 수 있습니다.
서브 시스템 동향 (MAVLink, MAVSDK, QGC)
QGroundControl
이번 주 QGroundControl에서는 QGroundControl v5.1 Release Candidate 2가 공개되었습니다. 이는 정식 v5.1 릴리즈가 임박했음을 알리는 중요한 소식입니다. RC2는 사용자 인터페이스 개선, 안정성 향상 및 새로운 기능을 포함할 것으로 예상되며, PX4 사용자들에게 더욱 향상된 지상국 경험을 제공할 것입니다. 또한, "[Showcase] QGC custom build extension for iLive video under weak networks"와 같이 약한 네트워크 환경에서의 iLive 비디오를 위한 QGC 커스텀 빌드 확장 기능이 소개되며, QGC의 확장성과 다양한 산업 애플리케이션에 대한 적용 가능성을 보여주었습니다.
MAVLink
MAVLink 관련하여 여러 활동이 포착되었습니다. PX4-Autopilot GitHub PR 중 `[BACKPORT 1.18] fix(cdcacm_autostart): gate MAVLink start on USB port readiness`가 병합되어 USB 연결 시 MAVLink 초기화의 안정성이 향상되었습니다. 또한, `feat(manual_control): Publish source of manual control setpoint via mavlink` PR은 매뉴얼 제어 세트포인트의 소스를 MAVLink를 통해 발행하는 기능을 추가하여, MAVLink 기반의 외부 시스템이 조종 입력의 출처를 정확히 파악할 수 있도록 돕습니다.
그러나 MAVLink 관련 주요 이슈들도 여전히 존재합니다. `COMMAND_INT: frame is ignored for altitude — DO_SET_ROI_LOCATION always treats z as AMSL` 이슈는 MAVLink COMMAND_INT 메시지의 고도 프레임 처리 문제를 지적하며, 이는 정밀한 임무 계획에 있어 중요한 문제입니다. 또한, `[Bug] mavlink does not respect MAV_x_RATE` 이슈는 MAVLink 메시지 전송률 설정이 무시되는 버그로, 외부 시스템과의 안정적인 데이터 통신에 영향을 줄 수 있습니다. 이러한 논의들은 MAVLink 프로토콜의 정확한 구현과 견고한 활용이 PX4 생태계에서 얼마나 중요한지를 다시 한번 상기시켜 줍니다.
MAVSDK
이번 주 데이터에는 MAVSDK 자체의 직접적인 릴리즈나 주요 활동은 기록되지 않았습니다. 하지만, `docs(ros2): clarify VehicleCommand routing` PR은 ROS2 통합 문서화를 개선하려는 노력의 일환으로, 이는 MAVSDK 또는 MAVROS를 통한 PX4와의 상호작용을 더욱 명확하게 하는 데 기여할 것입니다. MAVSDK는 PX4와 외부 소프트웨어 스택(특히 ROS/ROS2) 간의 주요 인터페이스 역할을 하므로, 이러한 문서화 개선은 개발자 경험 향상에 긍정적인 영향을 미칩니다.
