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

Disarming improvements #1426

Merged
merged 3 commits into from
Oct 21, 2024
Merged

Disarming improvements #1426

merged 3 commits into from
Oct 21, 2024

Conversation

gemenerik
Copy link
Member

Previously, sending a "disarm" request while the drone was in an unexpected state—such as still being in flight mode when the user believed it had landed—could unintentionally trigger an emergency stop or crash state. This issue arises because the drone’s internal supervisor state is largely hidden from the user, leading to confusion when attempting to disarm in states that instead trigger an emergency stop.

This PR fixes the issue by ensuring that disarm requests no longer trigger an emergency stop or crash state. If a disarm command is sent before the system confirms the landing, it will not result in an emergency stop or system lock-up. However, users can still trigger an emergency stop through the correct command as intended.

In the event that users have been deliberately using the disarm command to trigger an emergency stop, they must now switch to using the dedicated emergency stop command.

This fix addresses issue #1425.


Furthermore, sending a disarm request while in landed state now allows you to skip waiting for the disarming timeout and disarm early.

Sending a disarm request while in landed state now allows you to skip waiting for the timeout and disarm early.
… trigger.

If you try to disarm before landing has been registered, this will no longer trigger an emergency stop and the resulting system lock. Fixes #1425.
@gemenerik gemenerik requested review from evoggy and knmcguire October 17, 2024 12:28
This commit introduces the ability to disarm the drone mid-flight without triggering an emergency stop or crash state. However, disarming should not be used as a substitute for an emergency stop, as the disarm signal could be lost or delayed in critical situations. The emergency stop command is specifically designed for higher reliability and should continue to be used when immediate and secure halting of the drone is necessary.
gemenerik added a commit to bitcraze/crazyflie-clients-python that referenced this pull request Oct 21, 2024
… stop

This commit updates the client to allow users controlling their drones with physical controllers to disarm the drone mid-flight. Previously, the disarm button on controllers was explicitly linked to triggering an emergency stop, preventing standard disarming during flight.

With this change, pressing the disarm button on the controller will now safely disarm the drone, rather than activating an emergency stop. For emergency situations, users should continue using the dedicated emergency stop function, which is more reliable for halting the drone immediately.

The (dis)arm controller button is still linked to crash recovery.

UI arm/recover/emergency-stop button behavior is unchanged.

Use together with bitcraze/crazyflie-firmware#1426
@gemenerik
Copy link
Member Author

Latest commit introduces the ability to disarm the drone mid-flight without triggering an emergency stop or crash state.

This change aligns with industry standards by separating disarm and emergency stop functions, providing a safer and more intuitive user experience.

Again; note that disarming should not be used as a substitute for an emergency stop. The emergency stop command is specifically designed for higher reliability and should continue to be used when immediate and secure halting of the drone is necessary.

Copy link
Member

@tobbeanton tobbeanton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All good now!

gemenerik added a commit to bitcraze/crazyflie-clients-python that referenced this pull request Oct 21, 2024
… stop

This commit updates the client to allow users controlling their drones with physical controllers to disarm the drone mid-flight. Previously, the disarm button on controllers was explicitly linked to triggering an emergency stop, preventing standard disarming during flight.

With this change, pressing the disarm button on the controller will now safely disarm the drone, rather than activating an emergency stop. For emergency situations, users should continue using the dedicated emergency stop function, which is more reliable for halting the drone immediately.

The (dis)arm controller button is still linked to crash recovery.

UI arm/recover/emergency-stop button behavior is unchanged.

Use together with bitcraze/crazyflie-firmware#1426
@gemenerik gemenerik merged commit e0df606 into master Oct 21, 2024
25 checks passed
@gemenerik gemenerik deleted the rik/disarming branch October 24, 2024 12:14
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.

3 participants