Skip to main content

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

  1. POSE

Sequence

sequenceDiagram
participant GCS
participant UAV

UAV->>GCS: POSE
GCS->>GCS: Start/reset timeout
  1. When the UAV wants to send the current pose to the GCS (at a fixed frequency), it sends a POSE message which contains the fused sensor data. The rate is limited by only sending 1 out of every n frames, which acts as a frequency divider.
  2. After receiving a POSE message (while a connection exists), the GCS starts a timeout of a fixed duration. If a timeout was already started, it is reset.
  3. If the timeout expires before the UAV can send the next set of values, the values are considered stale.

Notes

  • The POSE message 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

  1. BATTERY_PARAMS_READ_REQUEST
  2. BATTERY_PARAMS_READ_REQUEST_ACK
  3. BATTERY_CRITICAL
  4. BATTERY_CRITICAL_ACK
  5. BATTERY_FAILSAFE
  6. BATTERY_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
  1. If the GCS wants to read the battery paramaters (voltage, current draw, temperature) then it sends a BATTERY_PARAMS_READ_REQUEST message to the UAV.
  2. The GCS starts a timeout of a fixed duration.
  3. If the UAV responds with a BATTERY_PARAMS_READ_REQUEST_ACK message before the timeout expires (which includes the battery parameters), the operation is considered successful.
  4. 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

  1. SENSOR_GPS

Sequence

sequenceDiagram
participant GCS
participant UAV

UAV->>GCS: SENSOR_GPS
GCS->>GCS: Start/reset timeout
  1. When the UAV receives a new set of raw GPS values from the positioning module, it sends a SENSOR_GPS message to the GCS.
  2. The GCS starts a timeout of a fixed duration.
  3. If the timeout expires before the UAV can send the next set of values, the values are considered stale.

Notes

  • The SENSOR_GPS message 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).