Skip to content

Commit

Permalink
RFC Precision Target MAV_SYS_STATUS extension
Browse files Browse the repository at this point in the history
  • Loading branch information
dakejahl committed Nov 7, 2022
1 parent 46a02af commit 5ebb476
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions text/0019-precland-indication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
* Start date: 2022-11-07
* Contributors: Jacob Dahl <dahl.jakejacob@gmail.com>
* Related issues:

# Summary

When interacting with a [Landing Target](https://mavlink.io/en/services/landing_target.html) it is useful to the user to know the current state of the
precision maneuver -- ie Precision Land.


# Motivation

A failed precision landing could result in a vehicle crash, for example if the vehicle is landing on a small landing pad and loses the target during descent. In this scenario, it is critical that the operator knows the current status of the precision landing maneuver so that they can take control of the drone in the case the maneuver fails. The failure case for precision land (in PX4) is to fallback to a
normal land, and this may not be desirable under certain circumstances. It is also useful to know if the precision landing system can see a target,
regardless of whether the vehicle is actively performing a precision maneuver. This allows an operator to at-a-glance confirm if the precision targetting
system is working properly.

# Detailed Design

MAVLink already supports the concept of "Sensor Status" via the MAV_SYS_STATUS_SENSOR and MAV_SYS_STATUS_SENSOR_EXTENDED bitmasks in the [SYS_STATUS](https://mavlink.io/en/messages/common.html#SYS_STATUS) message. I have implemented this functionality using MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL but I propose that we create a new purpose built bitmask MAV_SYS_STATUS_SENSOR_PRECISION_TARGETTING.

The below diagram illustrates the states that we care about. \
<img alt="diagram" src="images/precision_indicator_diagram.png">

A Ground Control Station (QGC) could then display an indicator in the top toolbar as a function of these states. These images are for demonstration,
when integrated upstream a separate discussion will be held to align on the best image for the indicator.
<img alt="diagram" src="images/precland_not_engaged_not_locked.png" width="600">
<img alt="diagram" src="images/precland_locked_grey.png" width="600">
<img alt="diagram" src="images/precland_engaged_not_locked.png" width="600">
<img alt="diagram" src="images/precland_engaged_locked.png" width="600">

There are logically only 5 states of interest:
1. The system does not support precision maneuvers.
2. The system supports precision maneuvers, the maneuver is not active, no target is seen
3. The system supports precision maneuvers, the maneuver is not active, the target is seen
4. The system supports precision maneuvers, the maneuver is active, no target is seen
5. The system supports precision maneuvers, the maneuver is active, the target is seen

Each one of these states are important on their own.

# Alternatives

Do nothing. There is no way to determine the state of a precision maneuver.
Binary file added text/images/precision_indicator_diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added text/images/precland_engaged_locked.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added text/images/precland_engaged_not_locked.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added text/images/precland_locked_grey.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added text/images/precland_not_engaged_not_locked.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 5ebb476

Please sign in to comment.