ArduPilot / ArduPilot/ardupilot

QuadPlane Safety Issue: RTL Enters Fixed-Wing Mode Before Q_RTL When Inside RTL_RADIUS at Low Altitude

Open
#32,154 4 comments 0 reactions 0 assignees View on GitHub
VTOL-Plane
Dominant language
C++
Stars
15.9k
Forks
21.4k
Avg merge
3d 17h
Merged PRs (30d)
119

Description

When flying a QuadPlane (Hybrid VTOL) in AUTO mission mode, switching to RTL while already inside RTL_RADIUS causes the system to first enter fixed-wing RTL logic before transitioning to Q_RTL.

This creates a delay in VTOL motor takeover. At low altitude (~15 m AGL) this delay may result in insufficient height for safe VTOL stabilization, potentially causing ground impact before Q_RTL authority is established.

Observed sequence:

AUTO → RTL (FW logic active) → position check → Q_RTL

The aircraft briefly behaves as a fixed-wing RTL vehicle even though it is already near home where immediate VTOL control would be safer.

Version
ArduPlane 4.6.3

Platform
[ ] All
[ ] AntennaTracker
[ ] Copter
[✔] Plane
[ ] Rover
[ ] Submarine

Airframe type
QuadPlane (Hybrid VTOL)

Hardware type
Pixhawk-class flight controller (Cube compatible)

Logs
Logs available and can be provided. Key indicators in logs:

MODE change: AUTO → RTL

Delay before second MODE change: RTL → QRTL

STATUSTEXT: "RTL" before VTOL entry

EV message showing Q-mode entry occurs after RTL logic

RCOU: VTOL motors idle until Q_RTL engages

Mode Transition Timeline

T0 – Aircraft in AUTO (FW)
T1 – Pilot switches to RTL
T2 – Mode = RTL (fixed-wing RTL active)
T3 – System detects aircraft inside RTL_RADIUS
T4 – Mode switches to Q_RTL
T5 – VTOL motors spool and stabilization begins

Risk Window: T1 → T4 (fixed-wing logic active at low altitude)

Parameter Interaction

RTL_RADIUS → Triggers the “already near home” logic

Q_RTL_MODE → Enables VTOL behavior during RTL

Q_RTL_ALT → Target VTOL altitude may not be reached before transition

Q_TRANSITION_MS → Adds transition delay

Q_ASSIST_SPEED → May delay VTOL dominance

Expected Behavior

If:

Vehicle = QuadPlane

RTL is triggered

Aircraft is already inside RTL_RADIUS

➡ System should immediately enter Q_RTL, skipping fixed-wing RTL logic.

Safety Impact

This affects emergency mission aborts near home at low altitude and represents a potential crash scenario due to delayed VTOL takeover.

Reporter: Sundar C

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the AUTO → RTL → Q_RTL sequence for a QuadPlane inside RTL_RADIUS at low altitude, then inspect the RTL and Q_RTL transition handling using the reported mode, STATUSTEXT, EV, and RCOU log indicators. Done means the vehicle enters Q_RTL immediately in this situation without the fixed-wing RTL risk window.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
embedded-iot, robotics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.