State Transitions
The state transition subprotocols allows the GCS to receive (or initiate) state transitions to the orthogonal states of the UAV.
Activity State Transition/Failed
The activity state transition and activity state failed transition subprotocols allow the UAV to report activity state changes (initiated by the Pilot using the Remote Controller) to the GCS while a connection exists.
Messages
ACTIVITY_STATE_TRANSITIONACTIVITY_STATE_TRANSITION_ACKACTIVITY_STATE_TRANSITION_FAILACTIVITY_STATE_TRANSITION_FAIL_ACK
Sequence
sequenceDiagram
participant GCS
participant UAV
loop n
UAV->>GCS: ACTIVITY_STATE_TRANSITION<br /> / ACTIVITY_STATE_TRANSITION_FAIL
UAV->>UAV: Start timeout
alt success
GCS-->>UAV: ACTIVITY_STATE_TRANSITION_ACK<br /> / ACTIVITY_STATE_TRANSITION_FAIL_ACK
else failure
UAV-->>UAV: Timeout expires
end
end
- When the UAV's activity state transitions, the UAV sends a
ACTIVITY_STATE_TRANSITIONmessage to the GCS with information about the transition. In case an activity state transition was requested but failed, the UAV sends aACTIVITY_STATE_TRANSITION_FAILmessage to the GCS. - The UAV starts a timeout of a fixed duration.
- If the GCS responds with an
ACTIVITY_STATE_TRANSITION_ACKorACTIVITY_STATE_TRANSITION_FAIL_ACKmessage before the timeout expires, the operation is successful. - If the timeout expires, the UAV retries the operation upto
ntimes before the operation is considered a failure. If before retrying, the activity state transitions again then the operation is cancelled. In case of a faillure/cancellation, the error is logged and the UAV continues operations with the new activity state.
Notes
- If an activity state transition occurs/fails (initiated by the Pilot using the RC) and is not received by the GCS even after multiple attempts, the Pilot implicitly becomes aware of the issue and can land the UAV. A failure does not cause an immediate catastrophe.
- If the GCS's acknowledgment is not received by the UAV, it logs the error and continues operations. The operation requested by the Pilot still occurs (or gracefully fails) and is reported by the GCS. The error is not irrecoverable or catastrophic and the logs can be checked later to find the error.
Flight Control Mode Transition/Failed
The flight control mode transition and flight control mode failed transition subprotocols allow the GCS to update the UAV's flight control mode and receive whether the transition was a success or not. It also allows automatic changes to the flight control mode (initiated by failsafe) to be sent to the GCS while a connection exists.
Messages
FC_MODE_TRANSITION_REQUESTFC_MODE_TRANSITIONFC_MODE_TRANSITION_ACKFC_MODE_TRANSITION_FAILFC_MODE_TRANSITION_FAIL_ACK
Sequence
sequenceDiagram
participant GCS
participant UAV
loop n
GCS->>UAV: FC_MODE_TRANSITION_REQUEST
GCS->>GCS: Start timeout
alt success
loop n
UAV-->>GCS: FC_MODE_TRANSITION
UAV->>UAV: Start timeout
alt success
GCS-->>UAV: FC_MODE_TRANSITION_ACK
else failure
UAV->>UAV: Timeout expires
end
end
else cancelled
loop n
UAV-->>GCS: FC_MODE_TRANSITION_FAIL
UAV->>UAV: Start timeout
alt success
GCS-->>UAV: FC_MODE_TRANSITION_FAIL_ACK
else failure
UAV->>UAV: Timeout expires
end
end
else failure
GCS->>GCS: Timeout expires
end
end
- When the GCS wants to update the state of the UAV, it sends an
FC_MODE_TRANSITION_REQUESTmessage to the UAV with information about the transition. - The GCS starts a timeout of a fixed duration.
- If the UAV responds with an
FC_MODE_TRANSITION_FAILbefore the timeout expires, the operation is considered cancelled, and the GCS responds with anFC_MODE_TRANSITION_FAIL_ACKmessage. - If the UAV responds with an
FC_MODE_TRANSITIONbefore the timeout expires, the operation is considered successful, and the GCS responds with anFC_MODE_TRANSITION_ACKmessage. - After sending an
FC_MODE_TRANSITIONorFC_MODE_TRANSITION_FAILmessage, the UAV starts a timeout of a fixed duration. - If the GCS responds with an
FC_MODE_TRANSITION_ACKorFC_MODE_TRANSITION_FAIL_ACKmessage before the timeout expires, the operation is considered successful. - If the timeout expires before the GCS can send a response, the operation is considered a failure, the error is logged and the UAV continues operations with the new flight control mode.
Notes
- Since flight control mode transitions can be initiated by the operator using the GCS or by error situations, the
FC_MODE_TRANSITIONmessage can be sent on its own by the UAV or as a response to theFC_MODE_TRANSITION_REQUESTmessage from the GCS. - If a request was sent by the GCS and the timeout expires before the UAV's response could be received, the request is sent once more and the UAV reports that the transition has failed the second time through an
FC_MODE_TRANSITION_FAILmessage. This will still contain the reason and allow the GCS to update the displayed flight control mode. - If the GCS does not receieve the
FC_MODE_TRANSITION/FC_MODE_TRANSITION_FAILmessage, it continues to display the old flight control mode while the UAV starts using the new mode. This can potentially cause accidents as the UAV can switch to an autonomous flight mode while the operator still thinks it is in manual mode.
Error State/Flags Update
The error state/flags update subprotocol allows the UAV to inform the GCS of error state transitions and flag changes, including if a failsafe was activated.
Messages
ERROR_STATE_TRANSITIONERROR_STATE_TRANSITION_ACKERROR_FLAGS_CHANGEERROR_FLAGS_CHANGE_ACK
Sequence
sequenceDiagram
participant GCS
participant UAV
loop n
UAV->>GCS: ERROR_STATE_TRANSITION<br />/ERROR_FLAGS_CHANGE
UAV->>UAV: Start timeout
alt success
GCS-->>UAV: ERROR_STATE_TRANSITION_ACK<br />ERROR_FLAGS_CHANGE_ACK
else failure
UAV->>UAV: Timeout expires
end
end
- When the UAV's error state transitions or error flags change, an
ERROR_STATE_TRANSITIONorERROR_FLAGS_CHANGEmessage to the GCS. - The UAV starts a timeout of a fixed duration.
- If the GCS responds with an
ERROR_STATE_TRANSITION_ACKorERROR_FLAGS_CHANGE_ACKbefore the timeout expires, the operation is considered successful. - If the timeout expires, the UAV retries the operation upto
ntimes before the operation is considered a failure, the error is logged and the UAV continues operations with the new error state/error flags.
Notes
- If the GCS's acknowledgment is not received by the UAV, it logs the error and continues operations. The new error state/flags are still displayed by the GCS and followed by the UAV. The UAV logs can be checked later to discover the error, and it is not catastrophic.
- If the error state transition caused a failsafe to be activated (such as updating the flight control mode), it is indicated in the
ERROR_STATE_TRANSITIONmessage as well as the message corresponding to the side-effect. This allows the GCS to easily manage and display the events.