Step-by-step procedure for ship landing support

Hello everyone,

I am working on a college project based on the concept of ship landing support. If anyone knows how to implement this, please guide me with a step-by-step procedure.

How to set up ship landing support in ArduPilot?

Setting up ship landing support in ArduPilot involves configuring your aircraft and beacon system to ensure a safe and accurate landing on a moving platform, such as a ship. Below is a step-by-step guide to help you set up this feature:

Aircraft Configuration

  1. Enable Scripting:

    • Set SCR_ENABLE to 1 to enable scripting.
    • Adjust SCR_HEAP_SIZE to 100000 or more if other scripts are running.
  2. Enable Ship Landing:

    • Set SHIP_ENABLE to 1 to activate ship landing features.
  3. Follow Mode Configuration:

    • Enable follow mode by setting FOLL_ENABLE to 1.
    • Set FOLL_SYSID to the system ID of the beacon (e.g., 17).
  4. Return-to-Launch (RTL) Settings:

    • Set Q_RTL_MODE to 0 for a normal RTL.
    • Configure FS_LONG_ACTN to either 0 or 1 to continue in AUTO or RTL always.
    • Set RTL_AUTOLAND to 0.
  5. VTOL Options:

    • Set Q_OPTIONS with bit 5 enabled for QRTL return in RC failsafes while in a VTOL mode.

Beacon Configuration

  • Moving Baseline Setup: Ensure your GPS setup supports moving baseline configurations.
  • Set EK3_SRC1_POSZ to 3 to use GPS altitude as the altitude source.

Landing Angle and Offset

  • Approach Angle: Configure SHIP_LAND_ANGLE to determine the approach direction:

    • 0 for landing from behind the ship.
    • 90 for approaching from the left.
    • -90 for approaching from the right.
    • 180 for approaching from the front.
  • Landing Offset: Set the landing point relative to the beacon using:

    • FOLL_OFS_X for distance in front of the beacon.
    • FOLL_OFS_Y for distance to the right of the beacon.
    • FOLL_OFS_Z for distance below the beacon.

    Use SHIP_AUTO_OFS set to 1 to automatically calculate these offsets when the aircraft is in the correct landing location.

Takeoff and Landing Procedure

  • Takeoff: When SHIP_ENABLE is 1 and the beacon is visible, an AUTO VTOL takeoff will use velocity matching to ascend relative to the beacon.

  • Hold-off Position: The aircraft will loiter at a hold-off position until the pilot commands landing via the throttle stick. The altitude is set by RTL_ALTITUDE.

  • Landing: Switch to RTL mode to initiate landing. The aircraft will approach the hold-off position and descend based on throttle stick inputs:

    • Above 40%: Hold at the hold-off position.
    • Below 40% and above 10%: Descend while loitering.
    • Below 10%: Start landing approach.

Simulation

To simulate a QuadPlane ship landing, follow these steps:

  1. Copy the plane_ship_landing.lua script into the /scripts directory.

  2. Run the following commands for Linux SITL:

    sim_vehicle.py -v plane -f quadplane --console --map -w
    param set sim_ship_enable 1
    param set scr_enable 1
    param ftp
    param set scr_heap_size 100000
    reboot
    param set ship_enable 1
    
  3. Set up a mission item: VTOL_TAKEOFF to the desired altitude.

  4. Enter:

    mode auto
    arm throttle
    rc 3 1500
    

This setup will enable your QuadPlane to take off and execute an RTL to the hold-off point, waiting for the throttle to be lowered to start the landing.

For more detailed information, refer to the Moving Platform Takeoff and Landing (Ships, Trucks, etc.) — Plane documentation.