Revision

Date

Description

1.0

26 Nov 2024

Initial publication

     

[info]For questions or assistance, please reach out to IntegrationSupport@skydio.com[/info]

Control Interface

Skydio X10D implements the Robotics and Autonomous Systems - Air (RAS-A) MAVLink Control Link Interoperability Profile (IOP). RAS-A is a MAVLink dialect with some extensions to accommodate autonomous systems and the capabilities they provide. Related efforts, e.g. RAS-G, have no relationship to MAVLink. RAS-A also includes standardization around video, e.g., protocols, codecs, and metadata. X10D supports RAS-A protocol version 1.2. 

Text

Description automatically generated

 Known Deviations from RAS-A v1.2  

  • Skydio X10D does not fully implement Gimbal Protocol V2.   
  • X10D extends the RAS-A In-Band Pairing Protocol to support changing component IP addresses and alters timeout thresholds to be more reliably achievable with available radios.
  • While not a deviation from the specification, X10D behaves unlike PX4 platforms in that a mode change will not halt motion. The preferred method to implement a “stop” is to issue a MAV_CMD_DO_REPOSITION with the latitude, longitude, and altitude all set to NaN.  
  • Only cylindrical geofences are supported. Geofences only support the no_action and hold geofence actions.
  • X10D does not support the optional Autonomy Engine arming procedure. 
  • X10D exclusively supports UDP for RAS-A Wireless Pairing communications protocol

Supported MAVLink Parameters  

Skydio Supported MAVLink Parameters PDF

Supported Microservices  

  • Heartbeat/Connection Protocol  
  • Mission Protocol  
  • Flight plan  
  • Single rally point  
  • Geofence (partially supported)  
  • Geofence upload (partially supported)
  • Parameter & Extended Parameter Protocol  
  • Command Protocol  
  • Camera Protocol  
  • Ping Protocol  
  • Battery Protocol  
  • Gimbal Protocol  
  • Gimbal Protocol V2 (partially supported)  

Unsupported Microservices  

  • Arm Authorization  
  • Image Transmission Protocol  
  • File Transfer Protocol  
  • Landing Target Protocol  
  • Path Planning (Trajectory) Protocol  
  • Terrain Protocol  
  • Tunnel Protocol  
  • Open Drone ID Protocol  
  • High Latency Protocol  
  • Component Information Protocol  

Telemetry Interfaces

The X10D implements the RAS-A IOP as the third-party telemetry interface, as it does for control. Relevant background is covered in the Control Interface section.

Network Interface

Wired Pairing

The X10D supports wired and manual pairing via the back USB-C port, located under the rubber cover directly above the drone battery. This requires the host computer to support the CDC-ECM driver. Most Linux and MacOS computers have a compatible driver by default. The X10D will assign the host computer a DHCP address in the 192.168.42.0/24 address space on a successful connection.

Wired pairing occurs via HTTP POST requests to the vehicle and is a two-step process: 

1. Request a bearer token:

     a) A bearer token can be requested from the following endpoint and with the provided JSON request body where the client_id (1-32 characters) is set to be the client requesting the token.  

URL: 192.168.11.1/api/authentication  

JSON Body:   {"requested_level":"GUEST","client_id":"<wired_pairing_client>"}

    b) The API will then respond with the bearer token as a subelement of the “data” JSON array labeled “accessToken”.  

{ “data”: {..., “accessToken”: “<bearer_token>”}, ...}  

2. Request a settings change after the bearer token is received: 

     a) RF radio settings - include channel, bandwidth, mode, network ID, and encryption key.   

URL: 192.168.11.1/api/radio_config/rf  

Authorization: Bearer: <bearer_token>  

JSON Body:   

   {“rfConfig”:   

   {“channel”: <int>,  

   “bandwidth”: <enum>,  

   “mode”: <enum>,  

   “networkId”: “<string>”,  

   “encryptionPassword”: “<string>”}} 

  • All settings must be given and have values be requested, or the request will be rejected.  
  • Bandwidth and Mode must be requested with their microhard enum value (e.g., a bandwidth of 8 MHz would use a value of 0).  
  • Invalid radio frequency and bandwidth combinations will not be checked on an interface level and will silently fail to be set.  
  • Network ID and encryption keys that are too short/too long (< 8 char or > 63 char) will not be checked on an interface level and silently fail to be set.

    b) LAN settings - include subnet and netmask.

URL: 192.168.11.1/api/radio_config/lan  

Authorization: Bearer: <bearer_token>  

JSON Body:   

{"lanConfig":

{"subnet": “<0-255>”,

 “netmask": “<ipv4-subnet-mask>”}}    

Default Network Settings  

Drone Radio

  • IP Address: 192.168.42.1 
  • Network Mask: 255.255.255.0  

Drone MAVLink Interface  

  • IP Address: 192.168.42.10  
  • Port: vehicle is listening on port 15667  
  • Protocol: UDP    

Ground Station Radio 

  • IP Address: 192.168.42.2 (default; optionally modified) 
  • Network Mask: 255.255.255.0 (default; optionally modified)  

Ground Station 

  • Configure as 192.168.42.0/24 while avoiding the 192.168.42.1, 192.168.42.2, and 192.168.42.10 addresses (already assigned elsewhere)  \
  • DHCP is OK (typical default setting for Microhard radios)
    •  

If the request is successful:\

{ "data": { "success": true}, ...}  

If the request is unsuccessful: 

{ “data”: {“success”: false},   

“error”: {“message”: <field_issue>, “error”: <error_type>}, ...  }  

Wireless Pairing

Skydio X10D implements the Robotics and Autonomous Systems - Air (RAS-A) MAVLink Control Link Interoperability Profile In-Band Pairing specification with extensions for IP configuration and multiple paired drones.

[note]The Skydio vendor-specific default pairing security key is 1234567890, bandwidth is 1 MHz, and frequency is 1823 MHz. Additionally, when configuring during Pairing and Reconfiguration, bandwidth and frequency/channel must be provided in MHz, while encryption_password and network_id must follow the same requirements listed below in Manual Pairing.[/note]

The vehicle’s pairing implementation allows reconfiguring the vehicle and its radio’s IP. When making changes, the vehicle and radio must be placed in the same /16 subnet where the first two octets are 192.168, the fourth octet is .1 for the radio and .10 for the vehicle, and the third is between 200 and 250. A valid example configuration would be 192.168.206.1 for the radio and 192.168.206.10 for the vehicle. If desired, the subnet mask can also be specified using CIDR notation. If not provided, the radio and vehicle will be set to the most conservative netmask for the given settings (ie. /24). These settings can be configured during Pairing and Reconfiguration by providing ip_address for the radio and remote_ip_address for the vehicle.

Manual Pairing

The X10D radio can be manually configured at http://192.168.11.1/radio  when the vehicle is plugged into a laptop supporting Ethernet over USB. 

1. Enter RF Channel, Channel Bandwidth, Radio Mode, Network ID, and Encryption Password. 

    a) Channel refers to a valid MH frequency (ie. 1840)

    b) Network ID must be 1-64 characters

    c) Encryption Password must be 8-63 characters

2. Select the Configure RF Settings button to request acceptance.

3. Reconfigure the microhard radio IP from this page via the IP Address configuration tool and the Configure LAN button. However, the IP should be reset via the Reset LAN Configuration for OTA button before applying any vehicle updates. 

Media Interfaces 

Video

X10D supports RTP or RTSP video delivery. Which video protocol is used is determined by the configuration of the vehicle. Only one RTP or RTSP can be active at a time.

RTP 

RTP video is delivered using the AVC (H.264) codec. Many RTP clients, such as VLC, mplayer, and gstreamer, require a .sdp file to configure RTP. Below are valid .sdp files for the EO and IR camera streams.

eo.sdp

v=0  

o=- 0 0 IN IP4 127.0.0.1  

s=No Name  

c=IN IP4 127.0.0.1  

t=0 0  

a=tool:libavformat 55.2.100  

m=video 5600 RTP/AVP 96  

a=rtpmap:96 H264/90000  

a=fmtp:96 packetization-mode=1  

ir.sdp  

v=0  

o=- 0 0 IN IP4 127.0.0.1  

s=No Name  

c=IN IP4 127.0.0.1  

t=0 0  

a=tool:libavformat 55.2.100  

m=video 5900 RTP/AVP 96  

a=rtpmap:96 H264/90000  

a=fmtp:96 packetization-mode=1   

RTSP

RTSP video is also delivered using the AVC (H.264) codec, and additionally multiplexes KLV metadata into an MPEG-TS container. More details about the specific metadata included are available in the Video Metadata section below.

There are separate endpoints for each camera stream using RTSP. The URIs to specify with many common clients, including ffplay, VLC, and gstreamer, are as follows:

rtsp://192.168.42.10:5554/subject (EO stream)
rtsp://192.168.42.10:6554/infrared (IR stream)

Video metadata

When using the RTSP video option, X10D includes video metadata in accordance with the MISB 0601 UAS Datalink Local Set standard. Items marked with an asterisk are planned but not currently implemented. They will be offered in future releases.

Tag # Name Description
1 Checksum Checksum used to detect errors within a UAS Datalink LS packet
2 Precision Time Stamp Timestamp for all metadata in this Local Set; used to coordinate with Motion Imagery
5 Platform Heading Angle Aircraft heading angle
6 Platform Pitch Angle Aircraft pitch angle
7 Platform Roll Angle Aircraft roll angle
10* Platform Designation Model name for the platform
12* Image Coordinate System Name of the image coordinate system used
13 Sensor Latitude Sensor latitude
14 Sensor Longitude Sensor longitude
15 Sensor True Altitude Altitude of sensor as measured from Mean Sea Level (MSL)
16 Sensor Horizontal Field of View Horizontal field of view of selected imaging sensor
17 Sensor Vertical Field of View Vertical field of view of selected imaging sensor 
18 Sensor Relative Azimuth Angle Relative rotation angle of sensor to platform longitudinal axis
19 Sensor Relative Elevation Angle Relative elevation angle of sensor to platform longitudinal-transverse plane
20 Sensor Relative Roll Angle Relative roll angle of sensor to aircraft platform
21* Slant Range Slant range in meters
23* Frame Center Latitude Terrain latitude of frame center
24* Frame Center Longitude Terrain longitude of frame center
25* Frame Center Elevation Terrain elevation at frame center relative to Mean Sea Level (MSL)
56* Platform Ground Speed Speed projected to the ground of an airborne platform passing overhead
59* Platform Callsign Call sign of platform or operating unit
74* VMTI Local Set Object detection information
79* Sensor North Velocity Northing velocity of the sensor or platform
80* Sensor East Velocity Easting velocity of the sensor or platform
82* Corner Latitude Point 1 (Full) Frame latitude for upper left corner
83* Corner Longitude Point 1 (Full) Frame longitude for upper left corner
84* Corner Latitude Point 2 (Full) Frame latitude for upper right corner
85* Corner Longitude Point 2 (Full) Frame longitude for upper right corner
86* Corner Latitude Point 3 (Full) Frame latitude for lower right corner
87* Corner Longitude Point 3 (Full) Frame longitude for lower right corner
88* Corner Latitude Point 4 (Full) Frame latitude for lower left corner
89* Corner Longitude Point 4 (Full) Frame longitude for lower left corner
90 Platform Pitch Angle (Full) Aircraft pitch angle
91 Platform Roll Angle (Full) Aircraft roll angle
112* Platform Course Angle Direction the aircraft is moving relative to True North
113* Altitude AGL Above Ground Level (AGL) height above the ground/water
123* Number of NAVSATs in View Count of navigation satellites in view of platform
134* Zoom Percentage For a variable zoom system, the percentage of zoom

Validation & Testing Guidance

Configuring and Pairing a Microhard Dev Kit

This section provides some rough guidelines for getting started with a development kit; please refer to the Microhard Operating Manual and support at https://support.microhardcorp.com/portal/en/home for more details on configuration and troubleshooting.

Required hardware:

Quick Setup steps:

  1. Attach antennas to MH 
  2. Connect an ethernet cable to the LAN port 
  3. Attach power cable (device will power up) 
  4. Wait ~60 seconds for boot -> monitor LED status 
  5. Log in from a browser (these values all assume default configuration)
    1. http://192.168.168.1 
    2. User: admin 
    3. Password: admin 
  6. Change the IP address to 192.168.42.2 
  7. Network -> LAN -> IP address: 192.168.42.2 
  8. Network -> LAN -> Netmask: 255.255.255.0 
  9. Apply changes 
  10. Bridge the LAN & WAN interfaces 
  11. Network -> WAN -> Working Mode: Bridged with LAN Port 
  12. Apply Changes 
  13. Configure the RF Settings using the Wired Pairing instructions.

Connecting to X10D with a MAVLink Ground Control Station (GCS)

QGroundControl

  1. Navigate to:   QMenu > Comm Links
  2. Populate the options as shown in the screenshot below. Note that it is necessary to add the target host. The IP of the X10D host is 192.168.42.10 on the Microhard network.

A screenshot of a computer

Description automatically generated

MAVProxy

  1. mavproxy.py --master=udpout:192.168.42.10:15667  

 

Skydio, Inc. A0553

Was this article helpful?