The big picture is clear - the MAV_CMD_DO_PARACHUTE is emitted if the parachute is detected and healthy on failsafe. The COM_PARACHUTE parameter is checked an will warn if a parachute is expected but not present/healthy.
The small picture is less clear:
PX4 appears to base its health checks on getting the heartbeat - that then sets SYS_STATUS.onboard_control_sensors_present_extended and .onboard_control_sensors_health_extended for the recovery system bit. Is that right?
What about the enabled flag? (onboard_control_sensors_enabled_extended) - doesn't seem to be set. I would kind have expected enabled to be based on the COM_PARACHUTE parameter.
I guess we're assuming that a parachute is always "in a good state". Otherwise we need a mechanism for it to actually tell the flight stack it is OK.
What is COM_PARACHUTE supposed to do other than be a trigger for sending events when the heartbeat is lost?
Should COM_PARACHUTE be set for a PWM parachute? In this case how would you know if it is "healthy" etc? Presumably you will still want to emit this info for a GCS?
Is the MAV_CMD_DO_PARACHUTE sent to the specific component that emits the MAV_TYPE_PARACHUTE? What if two are connected? Or is it just sent to current system ID and component 0 (broadcast).
Is the MAV_CMD_DO_PARACHUTE command forwarded? i.e. can a GCS trigger the parachute? Should it?
@MaEtUgR I merged the parachute docs in https://github.com/PX4/PX4-user_guide/pull/1943/files#r919653233 with this comment:
Can you mark up that issue if I got anything wrong, and ideally PR fixes and answer:
I've looked at the code in https://github.com/PX4/PX4-Autopilot/pull/18589 and I want to confirm my understanding
The big picture is clear - the
MAV_CMD_DO_PARACHUTE
is emitted if the parachute is detected and healthy on failsafe. TheCOM_PARACHUTE
parameter is checked an will warn if a parachute is expected but not present/healthy.The small picture is less clear:
SYS_STATUS.onboard_control_sensors_present_extended
and.onboard_control_sensors_health_extended
for the recovery system bit. Is that right?onboard_control_sensors_enabled_extended
) - doesn't seem to be set. I would kind have expected enabled to be based on theCOM_PARACHUTE
parameter.COM_PARACHUTE
supposed to do other than be a trigger for sending events when the heartbeat is lost?COM_PARACHUTE
be set for a PWM parachute? In this case how would you know if it is "healthy" etc? Presumably you will still want to emit this info for a GCS?MAV_CMD_DO_PARACHUTE
sent to the specific component that emits the MAV_TYPE_PARACHUTE? What if two are connected? Or is it just sent to current system ID and component 0 (broadcast).MAV_CMD_DO_PARACHUTE
command forwarded? i.e. can a GCS trigger the parachute? Should it?