Sensors and Pose
The sensor and pose subprotocols allows the UAV to transmit individual sensor data as well as the calculated pose to the GCS.
Pose
The pose subprotocol allows the UAV to transmit its pose to the GCS, formed by fusing data from all its sensors to estimate its attitude, altitude, velocity, position etc.
Messages
POSE
Sequence
sequenceDiagram
participant GCS
participant UAV
UAV->>GCS: POSE
GCS->>GCS: Start/reset timeout
- When the UAV wants to send the current pose to the GCS (at a fixed frequency), it sends a
POSEmessage which contains the fused sensor data. The rate is limited by only sending 1 out of everynframes, which acts as a frequency divider. - After receiving a
POSEmessage (while a connection exists), the GCS starts a timeout of a fixed duration. If a timeout was already started, it is reset. - If the timeout expires before the UAV can send the next set of values, the values are considered stale.
Notes
- The
POSEmessage does not require an acknowledgment from the GCS because it is a periodic message sent at a considerable frequency. Acknowledgments can overload the buffer and in case of the GCS not receiving the values, the UAV can still be flown and landed without catastrophic failure (the GCS will report that the values are stale so that the Operator/Pilot are aware of the issue).
Battery
The battery subprotocol allows the UAV to transmit battery related information (voltage, current draw, temperature, percentage) to the GCS and the GCS to request such information.
Messages
BATTERY_PARAMS_READ_REQUESTBATTERY_PARAMS_READ_REQUEST_ACKBATTERY_CRITICALBATTERY_CRITICAL_ACKBATTERY_FAILSAFEBATTERY_FAILSAFE_ACK
Sequence
sequenceDiagram
participant GCS
participant UAV
loop n
UAV->>GCS: BATTERY_PARAMS_READ_REQUEST
GCS->>GCS: Start timeout
alt success
UAV-->>GCS: BATTERY_PARAMS_READ_REQUEST_ACK
else failure
GCS->>GCS: Timeout expired
end
end
loop n
UAV->>GCS: BATTERY_CRITICAL<br />/ BATTERY_FAILSAFE
UAV->>UAV: Start timeout
alt success
GCS-->>UAV: BATTER_CRITICAL_ACK<br />/ BATTERY_FAILSAFE_ACK
else failure
UAV->>UAV: Timeout expired
end
end
- If the GCS wants to read the battery paramaters (voltage, current draw, temperature) then it sends a
BATTERY_PARAMS_READ_REQUESTmessage to the UAV. - The GCS starts a timeout of a fixed duration.
- If the UAV responds with a
BATTERY_PARAMS_READ_REQUEST_ACKmessage before the timeout expires (which includes the battery parameters), the operation is considered successful. - If the timeout expires before the UAV can send a response, the operation is considered a failure, the error is logged and the UAV continues operations (possibly activating a failsafe).
GPS
The GPS subprotocol allows the UAV to send data collected from the GPS/GNNS positioning module to the GCS.
Messages
SENSOR_GPS
Sequence
sequenceDiagram
participant GCS
participant UAV
UAV->>GCS: SENSOR_GPS
GCS->>GCS: Start/reset timeout
- When the UAV receives a new set of raw GPS values from the positioning module, it sends a
SENSOR_GPSmessage to the GCS. - The GCS starts a timeout of a fixed duration.
- If the timeout expires before the UAV can send the next set of values, the values are considered stale.
Notes
- The
SENSOR_GPSmessage does not require an acknowledgment from the GCS because it is a periodic message sent at a considerable frequency. Acknowledgments can overload the buffer and in case of the GCS not receiving the values, the UAV can still be flown and landed without catastrophic failure (the GCS will report that the values are stale so that the Operator/Pilot are aware of the issue).