Open junwoo091400 opened 4 months ago
Interesting case you found here! I don't see an easy solution with the current terminology - PREARM mode is a weird state. I'm curious: why did you set NAV_RCL_ACT to "Disarm" and not "Terminate"? If you set it to "Terminate" (I think) it sends failsafe PWM values instead of disarm values .
Describe the bug
Little Story:
Imagine you are flying a Fixed Wing in Manual mode and lose RC signal. When the RC signal lost failsafe is set to "disarmed", but the prearm mode is set to "always", after RC signal is lost, should the Servo actuators (control surfaces) be at disarmed position or at the last manually commanded position?
Detailed description:
When the RC signal is lost, and Disarm is triggered, the Actuator does not go to 'Disarmed' position but rather continuously gives out the actuator output as if the RC signal is at it's last packet's value.
To Reproduce
Then the actuator will stay stuck (in Manual mode), and in other modes probably as if the RC control is constantly coming in as it's last values.
Expected behavior
I expected that as "Failsafe" action was to "Disarm", the actuators would all go to Disarmed values. At least I think that constantly treating the last manual control setpoint value as valid while the RC signal is lost seems really absurd to me.
Also, this is only relevant for the "Disarm" or "None" RC loss failsafe action cases, as in other RTL / Land / Terminate cases, vehicle will fully automatically guide themselves, or the prearm mode will be overridden (terminate case).
Perhaps there should be a way to *not use the RC input when it is not valid anymore for prearmed actuator output value. Some solutions I thought of were:
Not sure what the solution should be, or whether current behavior should be accepted, but open for discussion!
Screenshot / Media
Flight Log
https://logs.px4.io/plot_app?log=a45dca4b-9975-43de-9499-cee5690c984a
Software Version
v1.14
Flight controller
Cube Orange
Vehicle type
Fixed Wing
How are the different components wired up (including port information)
No response
Additional context
This is the case due to the following logic in FW Rate controller:
https://github.com/PX4/PX4-Autopilot/blob/011af5f7971eab9837fd209a05a63af509aeb492/src/modules/fw_rate_control/FixedwingRateControl.cpp#L128-L139