Open TobiasLundby opened 7 years ago
It should be implemented in the onboard control (OES) and drone_communication setup (GCS).
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)
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.
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.
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).