Skip to content

Telemetry integration

The API allows for the integration of telemetry data to enhance the detection and analysis capabilities of the API and enable the estimation of the geolocation coordinates of detected targets.

The telemetry data can be sent to the API through a websocket in JSON format, or via MQTT, as introduced in the POST /stream section.

In order to select the telemetry type, you must state it in the telemetry_cfg when posting a new stream as source. This is only available for stream sources. A stream with no telemetry_cfg in its body will have the telemetry ingest disabled.

Mesage Format

Different message formats are supported:

  • sense: a simple json message with the fields specified below:
{
    "timestamp": 1707553200.23,
    "latitude": 37.774929,
    "longitude": -122.419418,
    "speed": 12.35,
    "drone_pitch": -5.67,
    "drone_yaw": 182.45,
    "drone_roll": 3.21,
    "sensor_hfov": 90.0,
    "sensor_vfov": 60.0,
    "camera_pitch": -10.5,
    "camera_yaw": 250.75,
    "camera_roll": 2.3,
    "altitude": 120.5,
    "rel_altitude": 50.0,
}
  • dji: the format used by flighthub. This may vary depending on drone and payload configuration.

Different formats may be agreed upon with Sense Aeronautics to better suit your needs.

Websocket connection

A websocket "endpoint" will become available once a Process starts (see input workflow). Each process will be assigned a unique process_uuid, which shall be used to connect to the corresponding websocket endpoint, at:

ws://[product].senseaeronautics.com/process/<process_uuid>/telemetry

So, the overall process to integrate telemetry data would be:

ws-workflow

Websocket streaming scripts

Websockets is a widely extended communication protocol, available in most popular programming languages. Here are examples of how to connect to a websocket using Python or Javascript:

python

js

MQTT connection

The user must provide the MQTT broker, whose ip, port and topic where the drone telemetry is being posted will have to be configured in the body of the POST /stream endpoint.

Note: The broker must be up and running when the process starts. Otherwise, no telemetry information will be ingested by the API.