RMUASD-Team2-2017 / UASD

Repository for the UASD course at SDU.
BSD 3-Clause "New" or "Revised" License
1 stars 1 forks source link

Implement mode safety feature on GCS and OES #58

Open TobiasLundby opened 7 years ago

TobiasLundby commented 7 years ago

Make a check in both the OES and GCS where it checks that the drone has been set in altitude hold mode because the manual mode should be protected for the pilot to use (understood as the GCS and OES shall not change the drone state if it is in manual).

mhoejgaard commented 7 years ago

It should be implemented in the onboard control (OES) and drone_communication setup (GCS).

mhoejgaard commented 7 years ago

The onboard functionality is implemented.

The dronehandler listens for changes in mode and stores them in an attribute which is accessible by droneHandler.get_mode(). This method is used in onboardControl such that the control part of the while loop is skipped (with continue) if the mode is Manual or None (not set yet)

mhoejgaard commented 7 years ago

The gcs part must be developed with the drone present, as the mode has to be checked. dronekit reports MANUAL as STABILIZE while mavros reports AUTO.LOITER. This has to be investigated before the safety can be implemented.

mhoejgaard commented 7 years ago

The GCS part is implemented as part of the setup routine. The setup routine simply will not start if the rc sets the drone in manual mode. As long the rc is in manual mode the drone communication node will report an error. As soon as the mode is switched to something else, the setup will continue. While the setup is not complete (not in idle state), the node also rejects upload mission requests.