-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC-0019 Precision Target MAV_SYS_STATUS extension #21
Open
dakejahl
wants to merge
1
commit into
mavlink:master
Choose a base branch
from
dakejahl:rfc-precland
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+41
−0
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
* Start date: 2022-11-07 | ||
* Contributors: Jacob Dahl <[email protected]> | ||
* Related issues: https://github.com/mavlink/mavlink/pull/1858 | ||
|
||
# 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. | ||
|
||
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/precision_indicator_diagram.png"> \ | ||
<img src="images/precland_not_engaged_not_locked.png" width="100"> | ||
<img src="images/precland_not_engaged_locked.png" width="100"> | ||
<img src="images/precland_engaged_not_locked.png" width="100"> | ||
<img src="images/precland_engaged_locked.png" width="100"> | ||
|
||
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. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see what you're doing with MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL below, but what's the proposal for MAV_SYS_STATUS_SENSOR_PRECISION_TARGETTING (I might be missing something obvious)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dakejahl Note, not sure how you want me to progress this. But I'll keep an eye out for your comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The proposal is to just add this new flag MAV_SYS_STATUS_SENSOR_PRECISION_TARGETTING since "XY position control" isn't really accurate -- to me "xy position control" makes me think of an optical flow or VIO system. There are already flags for vision and optical flow tho... just seems like a lot of these flags are unused and not well thought out in the first place. A flag that clearly says "precision targetting" in the name seems more appropriate, and would probably be acceptable (in terms of language) to both px4/ardu peeps