Skip to main content

Protocol Documentation

Table of Contents

Top

messages/result.proto

AvoidanceResult

Avoidance result generated by an avoidance model.

FieldTypeLabelDescription
actuation_vectordoubleactuation vector towards safe area

BoundingBox

Bounding box associated with an object detection.

Defines the upper left and lower right corners of a detected object in an image frame. Origin (0,0) is the top left corner of the input image. (image_height, image_width) is the bottom right corner. Also the class and confidence threshold associated with the box.

FieldTypeLabelDescription
y_mindoubleminimum y offset percentage with respect to image size [0.0-1.0]
x_mindoubleminimum x offset percentage with respect to image size [0.0-1.0]
y_maxdoublemaximum y offset percentage with respect to image size [0.0-1.0]
x_maxdoublemaximum x offset percentage with respect to image size [0.0-1.0]

ComputeResult

Compute result generated by a compute server.

FieldTypeLabelDescription
engine_namestringengine that generated the result
detection_resultDetectionResultobject detection
avoidance_resultAvoidanceResultavoidance directive
slam_resultSLAMResultSLAM position estimate
generic_resultstringJSON result

Detection

Object detection generated by a model.

FieldTypeLabelDescription
detection_iduint64can be multiple objects per frame
class_namestringclass name of detection
scoredoubleconfidence score
bboxBoundingBoxbounding box

DetectionResult

List of object detections.

FieldTypeLabelDescription
detectionsDetectionrepeatedlist of detections
frame_iduint64frame corresponding to these detections

FrameResult

Compute results generated by datasink modules

FieldTypeLabelDescription
typestringresult type(s)
frame_iduint64for correlation
resultComputeResultrepeatedlist of generated results
timestampgoogle.protobuf.Timestampinference timestamp

HSV

HSV values generated by a color filter.

Color filter represented by hue, saturation, and value Uses OpenCV ranges defined here.

FieldTypeLabelDescription
huint32hue range is [0,179]
suint32saturation range is [0,255]
vuint32value range is [0,255]

SLAMResult

SLAM result generated by a SLAM model.

FieldTypeLabelDescription
relative_positionsteeleagle.protocol.common.Positionrelative position estimate relative to SLAM initialization
global_positionsteeleagle.protocol.common.Locationglobal position estimate

Top

messages/telemetry.proto

AlertInfo

Information about all vehicle warning and alerts.

FieldTypeLabelDescription
battery_warningBatteryWarningbattery warnings
gps_warningGPSWarningGPS warnings
magnetometer_warningMagnetometerWarningmagnetometer warnings
connection_warningConnectionWarningconnection warnings
compass_warningCompassWarningcompass warnings

BatteryInfo

Information about the vehicle battery.

FieldTypeLabelDescription
percentageuint32battery level [0-100]%

CommsInfo

Future: information about the vehicle's communication links.

DriverTelemetry

Telemetry message for the vehicle, originating from the driver module.

This message outlines all the current information about the vehicle. It is one of three messages (DriverTelemetry, Frame, MissionTelemetry) that is broadcast to attached compute services.

FieldTypeLabelDescription
timestampgoogle.protobuf.Timestamptimestamp of message
telemetry_stream_infoTelemetryStreamInfoinfo about current telemetry stream
vehicle_infoVehicleInfothe vehicle that this telemetry corresponds to
position_infoPositionInfopositional info about the vehicle
gimbal_infoGimbalInfostatus on attached gimbals and their orientations
imaging_sensor_infoImagingSensorInfoinformation about the vehicle imaging sensors
alert_infoAlertInfoenumeration of vehicle warnings

Frame

Imaging sensor frames, originating from the driver module.

This message provides frame data from currently streaming imaging sensors. It is one of three messages (DriverTelemetry, Frame, MissionTelemetry) that is broadcast to attached compute services.

FieldTypeLabelDescription
timestampgoogle.protobuf.Timestampcapture timestamp of the frame
databytesraw bytes representing the frame
h_resuint64horizontal frame resolution in pixels
v_resuint64vertical frame resolution in pixels
d_resuint64depth resolution in pixels
channelsuint64number of channels
iduint64frame ID for future correlation
vehicle_infoVehicleInfothe vehicle that this telemetry corresponds to
position_infoPositionInfopositional info about the vehicle
gimbal_infoGimbalInfostatus on attached gimbals and their orientations
imaging_sensor_infoImagingSensorInfoinformation about the vehicle imaging sensors

GPSInfo

Information about the vehicle GPS fix.

FieldTypeLabelDescription
satellitesuint32number of satellites used in GPS fix

GimbalInfo

Info of all attached gimbals.

FieldTypeLabelDescription
num_gimbalsuint32number of connected gimbals
gimbalsGimbalStatusrepeatedlist of connected gimbals

GimbalStatus

Status of a gimbal.

FieldTypeLabelDescription
iduint32ID of the gimbal
pose_bodysteeleagle.protocol.common.Posecurrent pose in the body (forward, right, up) reference frame
pose_neusteeleagle.protocol.common.Posecurrent pose in the NEU (North, East, Up) reference frame

ImagingSensorInfo

Information about all attached imaging sensors.

FieldTypeLabelDescription
stream_statusImagingSensorStreamStatusstatus of current imaging sensor streams
sensorsImagingSensorStatusrepeatedlist of connected imaging sensors

ImagingSensorStatus

Status of an imaging sensor.

Includes information about its type and resolution/stream settings.

FieldTypeLabelDescription
iduint32ID of the imaging sensor
typeImagingSensorTypetype of the imaging sensor
activeboolindicates whether the imaging sensor is currently streaming
supports_secondaryboolindicates whether the imaging sensor supports background streaming
current_fpsuint32current streaming frames per second
max_fpsuint32maximum streaming frames per second
h_resuint32horizontal resolution
v_resuint32vertical resolution
channelsuint32number of image channels
h_fovuint32horizontal FOV
v_fovuint32vertical FOV
gimbal_mountedboolindicates if imaging sensor is gimbal mounted
gimbal_iduint32indicates which gimbal the imaging sensor is mounted on

ImagingSensorStreamStatus

Information about all imaging sensor streams.

FieldTypeLabelDescription
stream_capacityuint32the total number of allowed simultaneously streaming cameras
num_streamsuint32the total number of currently streaming cameras
primary_camuint32ID of the primary camera
secondary_camsuint32repeatedIDs of the secondary active cameras

MissionInfo

Information about the current mission.

FieldTypeLabelDescription
namestringmission name
hashint64mission hash to establish version uniqueness
agegoogle.protobuf.Timestamptimestamp of upload
exec_stateMissionExecStateexecution state of the mission
task_statestringtask state of the mission (plaintext), if active

MissionTelemetry

Telemetry message for the mission, originating from the mission module.

This message outlines all current information about the mission. It is one of three messages (DriverTelemetry, Frame, MissionTelemetry) that is broadcast to attached compute services.

FieldTypeLabelDescription
timestampgoogle.protobuf.Timestamptimestamp of message
telemetry_stream_infoTelemetryStreamInfoinfo about the current telemetry stream
mission_infoMissionInforepeatedinfo about the current mission states

PositionInfo

Information about the vehicle position.

Includes home position, global position (only valid with a GPS fix), relative position (only available on some vehicles), current velocity, and the current setpoint.

FieldTypeLabelDescription
homesteeleagle.protocol.common.Locationglobal position that will be used when returning home
global_positionsteeleagle.protocol.common.Locationcurrent global position of the vehicle
relative_positionsteeleagle.protocol.common.Positioncurrent local position of the vehicle in the global NEU (North, East, Up) coordinate frame, relative to start position
velocity_neusteeleagle.protocol.common.Velocitycurrent velocity of the vehicle in the global NEU (North, East, Up) coordinate frame
velocity_bodysteeleagle.protocol.common.Velocitycurrent velocity of the vehicle in the body (forward, right, up) coordinate frame
setpoint_infoSetpointInfoinfo on the current vehicle setpoint

SetpointInfo

Information about the current setpoint.

Provides the current setpoint for the vehicle. A setpoint is a position or velocity target that the vehicle is currently moving towards. By default, when the vehicle is idle, this setpoint is a position_body_sp object set to all zeros. The frame of reference for each setpoint is implied by the name; e.g. velocity_neu_sp uses the NEU (North, East, Up) reference frame and velocity_body_sp uses the body (forward, right, up) reference frame.

FieldTypeLabelDescription
position_body_spsteeleagle.protocol.common.Positiondefault all zeros idle setpoint
position_neu_spsteeleagle.protocol.common.PositionNEU (North, East, Up) position setpoint
global_spsteeleagle.protocol.common.Locationglobal setpoint
velocity_body_spsteeleagle.protocol.common.Velocitybody (forward, right, up) velocity setpoint
velocity_neu_spsteeleagle.protocol.common.VelocityNEU (North, East, Up) velocity setpoint

TelemetryStreamInfo

Information about the telemetry stream.

FieldTypeLabelDescription
current_frequencyuint32current frequency of telemetry messages [Hz]
max_frequencyuint32maximum frequency of telemetry messages [Hz]
uptimegoogle.protobuf.Durationuptime of the stream

VehicleInfo

Information about the vehicle.

This includes the name, make, model and its current status (battery, GPS, comms, motion).

FieldTypeLabelDescription
namestringthe vehicle that this telemetry corresponds to
modelstringmodel of the vehicle
manufacturerstringmanufacturer of the vehicle
motion_statusMotionStatuscurrent status of the vehicle
battery_infoBatteryInfobattery info for the vehicle
gps_infoGPSInfoGPS sensor info for the vehicle
comms_infoCommsInfocommunications info for the vehicle

BatteryWarning

Battery warnings and alerts.

NameNumberDescription
NONE0the vehicle is above 30% battery
LOW1the vehicle is below 30% battery
CRITICAL2the vehicle is below 15% battery

CompassWarning

Compass warnings and alerts.

NameNumberDescription
NO_COMPASS_WARNING0absolute heading is nominal
WEAK_HEADING_LOCK1absolute heading is available but may be incorrect
NO_HEADING_LOCK2no absolute heading available from the vehicle

ConnectionWarning

Connection warnings and alerts.

NameNumberDescription
NO_CONNECTION_WARNING0connection to remote server is nominal
DISCONNECTED1contact has been lost with the remote server
WEAK_CONNECTION2connection is experiencing interference or is weak

GPSWarning

GPS fix warnings and alerts.

NameNumberDescription
NO_GPS_WARNING0GPS readings are nominal and a fix has been achieved
WEAK_SIGNAL1weak GPS fix, expect errant global position data
NO_FIX2no GPS fix

ImagingSensorType

Imaging sensor types.

NameNumberDescription
RGB0RGB camera
STEREO1stereo camera
THERMAL2thermal camera
NIGHT3night vision camera
LIDAR4LIDAR sensor
RGBD5RGB-Depth camera
TOF6ToF (time of flight) camera
RADAR7RADAR sensor

MagnetometerWarning

Magnetometer warnings and alerts.

NameNumberDescription
NO_MAGNETOMETER_WARNING0magnetometer readings are nominal
PERTURBATION1the vehicle is experiencing magnetic perturbations

MissionExecState

Execution state of the current mission.

NameNumberDescription
READY0mission is ready to be executed
IN_PROGRESS1mission is in progress
PAUSED3mission is paused
COMPLETED4mission has been completed
CANCELED5mission was cancelled

MotionStatus

Information about the motion of the vehicle.

NameNumberDescription
MOTORS_OFF0motors of the vehicle are off
RAMPING_UP1motors of the vehicle are ramping
IDLE2the vehicle is on but idle
IN_TRANSIT3the vehicle is in motion
RAMPING_DOWN4motors of the vehicle are ramping down

Top

services/compute_service.proto

AddDatasinksRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
datasinksDatasinkInforepeatedname of target datasinks

DatasinkInfo

Information about a datasink.

FieldTypeLabelDescription
idstringdatasink ID
locationDatasinkLocationdatasink location
sourcesInputSourcerepeatedinput sources for this datasink

RemoveDatasinksRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
datasinksDatasinkInforepeatedname of target datasinks

SetDatasinksRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
datasinksDatasinkInforepeatedname of target datasinks

DatasinkLocation

Denotes where a datasink is located.

NameNumberDescription
REMOTE0remote location (network hop required)
LOCAL1local location (IPC)

InputSource

NameNumberDescription
SOURCE_UNSPECIFIED0default value
DRIVER_TELEMETRY1telemetry from the vehicle driver
MISSION_TELEMETRY2telemetry from the mission service
IMAGERY3imagery from the vehicle

Compute

Used to configure datasinks for sensor streams.

This service is used to configure datasink endpoints for frames and telemetry post-processing. It maintains an internal consumer list of datasinks that the kernel broadcasts frames and telemetry to. RPC methods within this service allow for manipulation of this list.

Method NameRequest TypeResponse TypeDescription
AddDatasinksAddDatasinksRequest.steeleagle.protocol.common.ResponseAdd datasinks to consumer list. Takes a list of datasinks and adds them to the current consumer list.
SetDatasinksSetDatasinksRequest.steeleagle.protocol.common.ResponseSet the datasink consumer list. Takes a list of datasinks and replaces the current consumer list with them.
RemoveDatasinksRemoveDatasinksRequest.steeleagle.protocol.common.ResponseRemove datasinks from consumer list. Takes a list of datasinks and removes them from the current consumer list.

Top

services/control_service.proto

ArmRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data

ConfigureImagingSensorStreamRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
configurationsImagingSensorConfigurationrepeatedlist of configurations to be updated

ConfigureTelemetryStreamRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
frequencyuint32target frequency of telemetry generation, in Hz

ConnectRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data

DisarmRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data

DisconnectRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data

HoldRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data

ImagingSensorConfiguration

Configuration for an imaging sensor.

FieldTypeLabelDescription
iduint32target imaging sensor ID
set_primaryboolset this sensor as the primary stream
set_fpsuint32target FPS for stream

JoystickRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
velocitysteeleagle.protocol.common.Velocitytarget velocity to move towards
durationgoogle.protobuf.Durationtime of actuation after which the vehicle will Hold

KillRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data

LandRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data

ReturnToHomeRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data

SetGimbalPoseRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
gimbal_iduint32ID of the target gimbal
posesteeleagle.protocol.common.Posetarget pose
pose_modePoseModeoptionalspecifies how to interpret the target pose
frameReferenceFrameoptionalframe of reference

SetGimbalPoseTargetRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
gimbal_iduint32ID of the target gimbal
posesteeleagle.protocol.common.Posetarget pose
pose_modePoseModeoptionalspecifies how to interpret the target pose
frameReferenceFrameoptionalframe of reference

SetGlobalPositionRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
locationsteeleagle.protocol.common.Locationtarget global position
heading_modeHeadingModeoptionaldetermines how the vehicle will orient during transit (default: TO_TARGET)
altitude_modeAltitudeModeoptionaldetermines how the vehicle will interpret altitude (default: ABSOLUTE)
max_velocitysteeleagle.protocol.common.Velocityoptionalmaximum velocity during transit

SetHeadingRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
locationsteeleagle.protocol.common.Locationtarget heading or global location to look at
heading_modeHeadingModeoptionaldetermines how the drone will orient

SetHomeRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
locationsteeleagle.protocol.common.Locationnew home location

SetRelativePositionRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
positionsteeleagle.protocol.common.Positiontarget relative position
max_velocitysteeleagle.protocol.common.Velocityoptionalmaximum velocity during transit
frameReferenceFrameoptionalframe of reference

SetVelocityRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
velocitysteeleagle.protocol.common.Velocitytarget velocity
frameReferenceFrameoptionalframe of reference

TakeOffRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
take_off_altitudefloattake off height in relative altitude [meters]

AltitudeMode

Altitude mode switch.

NameNumberDescription
ABSOLUTE0meters above Mean Sea Level
RELATIVE1meters above takeoff position

HeadingMode

Heading mode switch.

NameNumberDescription
TO_TARGET0orient towards the target location
HEADING_START1orient towards the given heading

PoseMode

Pose mode switch.

NameNumberDescription
ANGLE0absolute angle
OFFSET1request data // Offset from current
VELOCITY2rotational velocities

ReferenceFrame

Reference frame mode switch.

NameNumberDescription
BODY0vehicle reference frame
NEU1NEU (North, East, Up) reference frame

Control

Used for low-level control of a vehicle.

This service is hosted by the driver module and represents the global control interface for the vehicle. Most methods called here will result in actuation of the vehicle if it is armed (be careful!). Some methods, like TakeOff, may take some time to complete. For this reason, it is not advisable to set a timeout/deadline on the RPC call. However, to ensure that the service is progressing, a client can either check telemetry or listen for IN_PROGRESS response heartbeats which are streamed back from the RPC while executing an operation.

Method NameRequest TypeResponse TypeDescription
ConnectConnectRequest.steeleagle.protocol.common.ResponseConnect to the vehicle. Connects to the underlying vehicle hardware. Generally, this method is called by the law authority on startup and is not called by user code.
DisconnectDisconnectRequest.steeleagle.protocol.common.ResponseDisconnect from the vehicle. Disconnects from the underlying vehicle hardware. Generally, this method is called by the law authority when it attempts a driver restart and is not called by user code.
ArmArmRequest.steeleagle.protocol.common.ResponseOrder the vehicle to arm. Arms the vehicle. This is required before any other commands are run, otherwise the methods will return FAILED_PRECONDITION. Once the vehicle is armed, all subsequent actuation methods will move the vehicle. Make sure to go over the manufacturer recommended vehicle-specific pre-operation checklist before arming.
DisarmDisarmRequest.steeleagle.protocol.common.ResponseOrder the vehicle to disarm. Disarms the vehicle. Prevents any further actuation methods from executing, unless the vehicle is re-armed.
JoystickJoystickRequest.steeleagle.protocol.common.ResponseSend a joystick command to the vehicle. Causes the vehicle to accelerate towards a provided velocity setpoint over a provided duration. This is useful for fine-grained control based on streamed datasink results or for tele-operating the vehicle from a remote commander.
TakeOffTakeOffRequest.steeleagle.protocol.common.Response streamOrder the vehicle to take off. Causes the vehicle to take off to a specified take off altitude. If the vehicle is not a UAV, this method will be unimplemented.
LandLandRequest.steeleagle.protocol.common.Response streamOrder the vehicle to land. Causes the vehicle to land at its current location. If the vehicle is not a UAV, this method will be unimplemented.
HoldHoldRequest.steeleagle.protocol.common.Response streamOrder the vehicle to hold/loiter. Causes the vehicle to hold at its current location and to cancel any ongoing movement commands (ReturnToHome e.g.).
KillKillRequest.steeleagle.protocol.common.Response streamOrders an emergency shutdown of the vehicle motors. Causes the vehicle to immediately turn off its motors. If the vehicle is a UAV, this will result in a freefall. Use this method only in emergency situations.
SetHomeSetHomeRequest.steeleagle.protocol.common.ResponseSet the home location of the vehicle. Changes the home location of the vehicle. Future ReturnToHome commands will move the vehicle to the provided location instead of its starting position.
ReturnToHomeReturnToHomeRequest.steeleagle.protocol.common.Response streamOrder the vehicle to return to its home position. Causes the vehicle to return to its home position. If the home position has not been explicitly set, this will be its start position (defined as its takeoff position for UAVs). If the home position has been explicitly set, by SetHome, the vehicle will return to that position instead.
SetGlobalPositionSetGlobalPositionRequest.steeleagle.protocol.common.Response streamOrder the vehicle to move to a global position. Causes the vehicle to transit to the provided global position. The vehicle will interpret the heading of travel according to heading_mode: - TO_TARGET -> turn to face the target position bearing - HEADING_START -> turn to face the provided heading in the global position object. This will be the heading the vehicle maintains for the duration of transit. Generally only UAVs will support HEADING_START. The vehicle will move towards the target at the specified maximum velocity until the vehicle has reached its destination. Error tolerance is determined by the driver. Maximum velocity is interpreted from max_velocity as follows: - x_vel -> maximum horizontal velocity - y_vel -> ignored - z_vel -> maximum vertical velocity (UAV only) If no maximum velocity is provided, the driver will use a preset speed usually determined by the manufacturer or hardware settings. (UAV only) During motion, the vehicle will also ascend or descend towards the target altitude, linearly interpolating this movement over the duration of travel. The vehicle will interpret altitude from altitude_mode as follows: - ABSOLUTE -> altitude is relative to MSL (Mean Sea Level) - RELATIVE -> altitude is relative to take off position
SetRelativePositionSetRelativePositionRequest.steeleagle.protocol.common.Response streamOrder the vehicle to move to a relative position. Causes the vehicle to transit to the provided relative position. The vehicle will interpret the input position according to frame as follows: - BODY -> (x, y, z) = (forward offset, right offset, up offset) from current position - NEU -> (x, y, z) = (north offset, east offset, up offset) from start position The vehicle will move towards the target at the specified maximum velocity until the vehicle has reached its destination. Error tolerance is determined by the driver. Maximum velocity is interpreted from max_velocity as follows: - x_vel -> maximum horizontal velocity - y_vel -> ignored - z_vel -> maximum vertical velocity (UAV only) If no maximum velocity is provided, the driver will use a preset speed usually determined by the manufacturer or hardware settings.
SetVelocitySetVelocityRequest.steeleagle.protocol.common.Response streamOrder the vehicle to accelerate to a velocity. Causes the vehicle to accelerate until it reaches a provided velocity. Error tolerance is determined by the driver. The vehicle will interpret the input velocity according to frame as follows: - BODY -> (x_vel, y_vel, z_vel) = (forward velocity, right velocity, up velocity) - NEU -> (x_vel, y_vel, z_vel) = (north velocity, east velocity, up velocity)
SetHeadingSetHeadingRequest.steeleagle.protocol.common.Response streamOrder the vehicle to set a new heading. Causes the vehicle to turn to face the provided global position. The vehicle will interpret the final heading according to heading_mode: - TO_TARGET -> turn to face the target position bearing - HEADING_START -> turn to face the provided heading in the global position object.
SetGimbalPoseSetGimbalPoseRequest.steeleagle.protocol.common.Response streamOrder the vehicle to set the pose of a gimbal. Causes the vehicle to actuate a gimbal to a new pose. The vehicle will interpret the new pose type from pose_mode as follows: - ABSOLUTE -> absolute angle - RELATIVE -> angle relative to current position - VELOCITY -> angular velocities The vehicle will interpret the new pose angles according to frame as follows: - BODY -> (pitch, roll, yaw) = (body pitch, body roll, body yaw) - NEU -> (pitch, roll, yaw) = (body pitch, body roll, global yaw)
SetGimbalPoseTargetSetGimbalPoseTargetRequest.steeleagle.protocol.common.ResponseOrder the vehicle to set the pose of a gimbal asynchronously. Causes the vehicle to actuate a gimbal to a new pose. The vehicle will interpret the new pose type from pose_mode as follows: - ABSOLUTE -> absolute angle - RELATIVE -> angle relative to current position - VELOCITY -> angular velocities The vehicle will interpret the new pose angles according to frame as follows: - BODY -> (pitch, roll, yaw) = (body pitch, body roll, body yaw) - NEU -> (pitch, roll, yaw) = (body pitch, body roll, global yaw)
ConfigureImagingSensorStreamConfigureImagingSensorStreamRequest.steeleagle.protocol.common.ResponseConfigure the vehicle imaging stream. Sets which imaging sensors are streaming and sets their target frame rates.
ConfigureTelemetryStreamConfigureTelemetryStreamRequest.steeleagle.protocol.common.ResponseConfigure the vehicle telemetry stream. Sets the frequency of the telemetry stream.

Top

services/flight_log_service.proto

LogMessage

Basic log message.

FieldTypeLabelDescription
typeLogTypetype of the log
msgstringmessage content

LogProtoRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
topicstringtopic of the log
reqrep_protoReqRepProtoRequest/Response object and content

LogRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
topicstringtopic of the log
logLogMessagelog content

ReqRepProto

Protobuf object that is either a Request/Response type.

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
responsesteeleagle.protocol.common.Responseresponse data
namestringname of the request and associated service
contentstringplaintext representation of the proto contents (usually via MessageToDict)

LogType

Log types (follows Python convention).

NameNumberDescription
DEBUG0for debugging
INFO1information
PROTO2Protobuf objects
WARNING3warnings
ERROR4errors
CRITICAL5critical errors

FlightLog

Used to log to a flight log.

This service is hosted by a logger instance and is responsible for writing all system logs to an MCAP file for mission playback.

Method NameRequest TypeResponse TypeDescription
LogLogRequest.steeleagle.protocol.common.ResponseBasic log endpoint. Behaves identically to most log endpoints, but writes the data to an MCAP file instead of the console.
LogProtoLogProtoRequest.steeleagle.protocol.common.ResponseProtobuf log endpoint. Accepts Protobuf Request/Response types, and writes the data to an MCAP file. Useful for playback of gRPC calls.

Top

services/mission_service.proto

ConfigureTelemetryStreamRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Request
frequencyuint32Target frequency for telemetry stream

ConfigureTelemetryStreamResponse

FieldTypeLabelDescription
responsesteeleagle.protocol.common.Response

MissionData

FieldTypeLabelDescription
contentstringURI, either local or remote, of a mission file
mapbyteskml object

NotifyRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Request
notify_codeint32Integer notification code, generated by the backend

StartRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Request

StopRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Request

UploadRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Request
missionMissionDataData of the target mission

Mission

Used to start a new mission or stop an active mission

Method NameRequest TypeResponse TypeDescription
UploadUploadRequest.steeleagle.protocol.common.ResponseUpload a mission for execution
StartStartRequest.steeleagle.protocol.common.ResponseStart an uploaded mission
StopStopRequest.steeleagle.protocol.common.ResponseStop the current mission
NotifyNotifyRequest.steeleagle.protocol.common.ResponseSend a notification to the current mission
ConfigureTelemetryStreamConfigureTelemetryStreamRequest.steeleagle.protocol.common.ResponseSet the mission telemetry stream parameters

Top

services/remote_service.proto

CommandRequest

FieldTypeLabelDescription
sequence_numberuint32optionalSince command sequencing is not built-in to ZeroMQ, it must be done manually; this will be set automatically by the server
requestgoogle.protobuf.AnyContains request data for an RPC call
method_namestringFully qualified method name
identitystringIdentity of the sender
vehicle_idstringTarget vehicle to send to

CommandResponse

FieldTypeLabelDescription
sequence_numberuint32This response is not seen by the client, but is a wrapper around a normal response; this is done for sequence_number correlation
responsesteeleagle.protocol.common.ResponseGeneric response

CompileMissionRequest

FieldTypeLabelDescription
dsl_contentstring

CompileMissionResponse

FieldTypeLabelDescription
compiled_dsl_contentstring
responsesteeleagle.protocol.common.Response

Remote

Used to control a vehicle remotely over ZeroMQ, usually hosted on the server

Method NameRequest TypeResponse TypeDescription
CommandCommandRequest.steeleagle.protocol.common.Response streamSends a service request to a vehicle core service (Control, Mission, etc.) over ZeroMQ and returns the response
CompileMissionCompileMissionRequestCompileMissionResponse

Top

services/report_service.proto

ReportMessage

Message container for a report.

FieldTypeLabelDescription
report_codeint32integer report code, interpreted by the backend

SendReportRequest

FieldTypeLabelDescription
requeststeeleagle.protocol.common.Requestrequest data
reportReportMessagereport data

Report

Used to report messages to the Swarm Controller server.

Method NameRequest TypeResponse TypeDescription
SendReportSendReportRequest.steeleagle.protocol.common.ResponseSend a report to the server.

Top

testing/testing.proto

ServiceReady

FieldTypeLabelDescription
readied_serviceServiceTypeIndicates which service is ready for testing

ServiceType

Types of test messages for testing infrastructure

NameNumberDescription
CORE_SERVICES0
STREAM_SERVICES1
MISSION_SERVICE2
DRIVER_CONTROL_SERVICE3

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)