ArduPilot / ArduPilot/ardupilot

Plane: Landing glideslope offset

Open
#9,934 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Plane
Dominant language
C++
Stars
15.9k
Forks
21.4k
Avg merge
3d 17h
Merged PRs (30d)
119

Description

Feature request

Is your feature request related to a problem? Please describe.
Plane's traditional landing sequence is fundamentally flawed to achieve smooth flares and touchdowns at the landing waypoint. For a proper final approach, pre-flare, and landing, the landing will always be overshot, often based on the wind speed. The current approach is designed as more of a guided controlled crash sequence.

Quite simply, this is because the glideslope is calculated on a line directly to the land waypoint. Pre-flares and flares only cause a reduction in descent rate, but they do not necessarily slow the forward speed by a proportional amount. For a properly configured landing, the glideslope must be targeted at a point before the touchdown point so that the pre-flare and flare can arrest the descent rate.

This shows itself the most in reverse-thrust enabled landings. The glide slope is achieved with reverse thrust during the final approach to the land waypoint. Once the flare point is hit, the plane's throttle is reduced to zero, and that causes one of two things.

#1 - The glideslope is continued to the touchdown point, and the plane is effectively crashed because of the increase in airspeed at the end of the landing in order to keep the steep descent.
#2 - The plane flares properly, increases its pitch in order to slow the rate of descent, but lands well beyond the LAND waypoint.

Describe the solution you'd like
Add a parameter for the offset of the glideslope calculation that makes the glide target point in front of the touchdown point (land waypoint). Theoretically it could be a fake waypoint between the last waypoint and the LAND waypoint.

Parameter should be named LAND_FLARE_DIST with a description: distance the glide slope is offset to achieve the landings that are not short or long.

This would be much easier than changing TECS and other parameters in order to achieve consistent spot landings.

Describe alternatives you've considered
Offsetting the landing waypoint manually

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

Additional context
Add any other context or screenshots about the feature request here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by tracing ArduPlane's landing glideslope calculation and LAND waypoint handling, then determine how an adjustable LAND_FLARE_DIST would affect final approach and flare behavior. Done means the offset is configurable and produces consistent landings without being short or long, with behavior validated against existing landing cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
robotics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.