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:
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.