Skip to content
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
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dakejahl
Copy link

@dakejahl dakejahl commented Nov 7, 2022

This would also support status reporting for PRECISION_HOLD
mavlink/mavlink#1858

@dakejahl dakejahl force-pushed the rfc-precland branch 2 times, most recently from 5ebb476 to fc20ed0 Compare November 7, 2022 21:02
@dakejahl dakejahl changed the title RFC Precision Target MAV_SYS_STATUS extension RFC-0019 Precision Target MAV_SYS_STATUS extension Nov 7, 2022
@dakejahl dakejahl force-pushed the rfc-precland branch 5 times, most recently from ebf30f8 to 5681e61 Compare November 7, 2022 21:11
@dakejahl
Copy link
Author

dakejahl commented Nov 7, 2022

Further thoughts on how the MAV_SYS_STATUS bitfields are populated

present
There are two cases

  1. Flight controller precision targeting system (eg IRLock). The autopilot can determine if the driver is running and healthy.
  2. Offboard companion computer solution via LANDING_TARGET. We should probably expect a HEARTBEAT message since the LANDING_TARGET protocol implies that the LANDING_TARGET message is only sent when a target is visible. This means we also probably need a component ID definition MAV_COMP_ID_PRECISION_TARGETING

enabled
The precision maneuver is actively engaged. This can be determined within the autopilot software from the mode/submode of the control and navigation implementation.

healthy
The precision targeting system can actively see a target. For the autopilot managed implementation, we can look at internal data (eg px4 uorb) and monitor with a timeout. For on offboard companion computer implementation we can monitor for the LANDING_TARGET message with a timeout.

@dakejahl
Copy link
Author

@akkawimo


# 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.
Copy link
Collaborator

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)

Copy link
Collaborator

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.

Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants