The stages of the approach to a VTOL landing
What ArduPilot says:
- VTOL position2 started v=N.N d=N.N h=N.N
- VTOL Position1 d=N.N
- VTOL approach d=N.N
- VTOL position1 v=N.N d=N.N sd=N.N h=N.N
- VTOL airbrake v=N.N d=N.N sd=N.N h=N.N
- VTOL position1 d=N.N r=N.N
Also explained here: 1 more
- VTOL position1 v=N.N d=N.N h=N.N dc=N.N
A VTOL landing (QRTL, or a VTOL_LAND mission item) announces each stage. Approach: flying to the point on the wing. Airbrake: the lift motors spin up as a brake, for at least 1 s. Position1: the back-transition; the lift motors carry the aircraft and slow it at Q_TRANS_DECEL. Position2: within 10 m and under 9 m/s it lines up over the point like a multicopter. In the lines, v is the ground speed (m/s), d the distance to the point (m), sd the stopping distance, h the height above ground, dc the wanted closing speed, r the radius inside which QRTL stays on its lift motors.
“VTOL Position1 d=…” with no other figures means approach and airbrake were skipped: Q_OPTIONS bit 16 is set, the point is nearer than Q_APPROACH_DIST, or the lift motors were already running close to it. r is 1.5 times the larger of RTL_RADIUS and WP_LOITER_RAD. Tailsitters never use the airbrake stage.
Parameters to look at
| Parameter | What it is |
|---|---|
Q_TRANS_DECEL | Transition deceleration |
Q_APPROACH_DIST | Q mode approach distance |
Q_OPTIONS | quadplane options |
RTL_RADIUS | RTL loiter radius |
WP_LOITER_RAD | Waypoint Loiter Radius |
The code that sends it
VTOL position2 started v=N.N d=N.N h=N.N
ArduPlane/quadplane.cpp QuadPlane::vtol_position_controller() · Open in ArduPilot Plane-4.7.1
VTOL Position1 d=N.N
ArduPlane/quadplane.cpp QuadPlane::poscontrol_init_approach() · Open in ArduPilot Plane-4.7.1
VTOL approach d=N.N
ArduPlane/quadplane.cpp QuadPlane::poscontrol_init_approach() · Open in ArduPilot Plane-4.7.1
VTOL position1 v=N.N d=N.N sd=N.N h=N.N
ArduPlane/quadplane.cpp QuadPlane::vtol_position_controller() · Open in ArduPilot Plane-4.7.1
And 3 more messages, sent from the same places.