MAVLink parachute system support improvements #18589
Merged
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.
Describe problem solved by this pull request
The biggest advantage of a MAVLink enabled parachute system is the standardized communication for presence, status and triggering. This pr aims at adding basic support for evaluating the status of such a parachute after the triggering was added in #17564
Describe your solution
The parameter
COM_PARACHUTE
enables the requirement for presence and a healthy status of an external MAVLink enabled parachute system. Presence is checked by checking for regular HEARTBEATs from a device with type MAV_TYPE_PARACHUTE and the status is read out of thesystem_status
field of the heartbeat whereSTANDBY
andACTIVE
are considered healthy assuming that either the system is ready for operation on the ground but not yet activated for safety reasons or already activated depending on the configuration.Test data / coverage
This was tested against a prototype parachute system to work as specified.
Additional context
Note: Adding the parachute triggering to manually triggered kill switch event I saw now as a requirement for multiple projects and the testing of the parachute system here. I propose to simplify termination, lockdown and manual_lockdown into a single termination with or without parachute deployment and hence recovery "unterminate" if the parachute is not deployed.