I’m working on precision landing for a VTOL-plane-drone (tilt-rotor style). The drone can take off and land vertically like a multicopter, then transition midair to fixed-wing flight by tilting the rotors.
For landing, I’m using visual detection of ArUco markers on the ground with a companion computer. The setup and parameters are the same ones I successfully used before with a regular ardupilot hexacopter, where the precision landing worked flawlessly!
Current setup:
Landing mode: QLand
PLND enabled
All other PLND parameters configured sameway as with the hexacopter
Companion computer sending vision-based landing target data (tested)
Problem:
On the VTOL, the system does not react at all to the visual landing target. It just behaves as if no precision landing data was available. Mission PLanner shows massages saying “Target found” “Initializing Complete” but when we want to land, it doe not position itself to the target.
Has anyone experienced a similar issue with precision landing on VTOLs, fixed-wing, or plane-drones? Is there something specific about the transition/QLand implementation that prevents or overwrites PLND from working?
Any hints, or recommendations would be greatly appreciated.
I am actually working through the same issues using an IrLock MarkOne with a VTOL fixed wing using plane 4.6.0. Precision Landing was just added in 4.5.0 for plane. Maybe it just isn’t fully mature yet? We are going to explore using a companion computer now.
I finally got mine to work today. I had to also run the Precision Landing Lua Script to get it to track to the target. Im on 4.6.0 and used the 4.5.0 commit lua script. Are you doing that?
we are also using the 4.6.0 ArduPilot firmware. Our setup is a Raspberry Pi with the Raspberry Pi camera module, detecting ArUco markers. The Pi sends angles and other information via the MAVLink command LANDING_TARGET over UART to the telemetry port of the Orange Cube.
We haven’t used the Lua script – I’m not exactly sure what that is or where to find it. Could you point me to some documentation or examples on how to use the Precision Landing Lua script with Plane?
This script implements a precision landing system for VTOL fixed wing aircraft (quadplanes).
Precision positioning over a landing sensor is supported in QLOITER, QLAND, QRTL and AUTO landing.
Parameters
Beyond the normal PLND parameters the script adds 2 additional parameters to control it’s behaviour. The parameters are:
PLND_ALT_CUTOFF
This is an optional altitude in meters below which the precision landing system will stop correcting the landing position. Many precision landing sensors have poor performance at low altitudes, so setting this to around 5 meters is advisable. A value of zero disables this cutoff.
PLND_DIST_CUTOFF
This is a maximum horizontal distance in meters that will be accepted for a landing corrections. If this parameter is greater than zero and the precision landing subsystem gives a distance beyond this distance then precision landing correction will stop and the last landing position will be used.
Operation
You should first install and configure a precision landing sensor as described here:
then you should enable the precision subsystem and install the lua script in the APM/scripts folder of your flight controller.
The script will start adjusting the landing position only when in the descent phase of an automatic VTOL landing. The PPLD log message can be used to analyse the performance of the precision landing.
It is advisable to have a manual pilot able to take over control in a mode such as QLOITER for instances where the precision landing system may malfunction.
Moving Target
If the PLND_OPTIONS bit for a moving target is enabled then the vehicle will be set to track the estimated target velocity during descent
Precision QLoiter
To enable precision position hold in QLOITER you will need to use auxiliary function 39 (PRECISION_LOITER) on an R/C switch or via GCS auxiliary switch buttons. When enabled the vehicle will position itself above the landing target. Height control is under user control.
If you enable SCR_ENABLE then you can use mavftp to load in the lua script. Thats what finally got the q plane to move to the landing target for me.
“Thanks a lot @Marcus_Hartman!
After applying the Lua-Script and tuning the parameters, it finally worked.
We successfully managed to land our fixed-wing aircraft vertically as a quadcopter in PLND mode . Really appreciate your support!”