UAS TRACR II ICD.pdf

PDF 859 KB Posted

Attached to
UAS AND TRACR II INTERFACE CONTROL DOCUMENT (ICD) COMPLIANCE
Solicitation number
W906ZL27RA001
Issued by

About this file

This is an Interface Control Document (ICD) for the Unmanned Aircraft System (UAS) Targetry Range Automated Control & Recording II (TRACR II) system, dated September 14, 2026, Version 1.0.

The document defines the communications interface and message protocols for controlling fixed-wing and rotary-wing UAS in Force-on-Force and Force-on-Target training environments. The system supports both pilot-controlled and centrally-controlled UAS operations, with rotary-wing UAS capable of participating in "Hive" formations where coordinators manage collective behaviors. The ICD specifies network requirements (point-to-point and point-to-multipoint capability), endpoint configurations supporting IPv4, IPv6, and network-specific addressing formats, and big-endian byte transmission order. Message types include Range Init announcements, UAS Join requests, acknowledgements, control requests, rotor control, landing commands (Land Now, Land Here), navigation commands (Go To Location), zone and path loading/execution for rotary-wing platforms, and continuous telemetry streams for general and positional status. The document details 14+ command message types with specific lengths and field structures, fault codes for hardware issues, and behavioral guidance for command acknowledgements, pilot override capabilities, payload control, and GPS reporting requirements. Status reporting is configured at rates specified by the control system, with UAS required to land if GPS signal is lost for more than 10 seconds. The ICD also addresses TESS (engagement simulation) event reporting for equipped UAS, with mandatory acknowledgement and up to three retransmission attempts if acknowledgements are not received.

View the file

On GovTribe

Work with this file

  • Download the original file
  • Contacts named in this file
  • Similar government files
  • Ask GovTribe AI about this file

Text version

UNMANNED AIRCRAFT SYSTEM (UAS)

TARGETRY RANGE AUTOMATED CONTROL & RECORDING

II (TRACR II)

INTERFACE CONTROL DOCUMENT (ICD)

VERSION 1.0

14 SEPTEMBER 2026

Page i

PREPARATION:

Prepared By:

Date:

Coordinated with:

REVIEWED:

Endorsed by:

APPROVED

Approved by:

Page ii

Table of Contents

1.0 SCOPE

1.1 DOCUMENT OVERVIEW

2.0 INTERFACE DESCRIPTION

2.1 NETWORK TYPE

2.2 NETWORK ENDPOINTS

2.3 BYTE TRANSMISSION ORDER

2.4 DATATYPES

2.5 UAS CAPABILITIES

2.6 ADDRESSING

2.7 MESSAGES

2.7.1 Message Header

2.7.2 Announcement Messages

2.7.2.1 Range Init Message

2.7.3 General Purpose Messages

2.7.3.1 UAS Join Message

2.7.3.2 Acknowledgement

2.7.4 Command Messages

2.7.4.1 UAS Rejoin Request

2.7.4.2 Control Request

2.7.4.3 Rotor Control Request

2.7.4.4 Land Now Request

2.7.4.5 Land Here Request

2.7.4.6 Go To Location Request

2.7.4.7 Zone Load Request

2.7.4.8 Zone Definition

2.7.4.9 Path Load Request

2.7.4.10 Path Execution Request

2.7.5 Status

2.7.5.1 General Status

2.7.5.2 Positional Status

2.7.5.3 TESS Engagements

2.7.6 UAS Fault Codes

2.8 GENERAL UAS BEHAVIOR

2.8.1 Command Acknowledgements

2.8.2 Rotor Control

2.8.3 Pilot Control

2.8.4 Centralized Control

2.8.5 Payload Control

2.8.6 GPS Reporting

2.9 DIAGRAMS

2.9.1 Control States

2.9.2 Command Flows

2.9.3 TESS Engagements

Page iii

Page iv

List of Figures

Figure 1: Big Endian Byte Ordering Figure 2: UAS Control States Figure 3: UAS Join Figure 4: UAS Rejoin Figure 5: UAS Nominal Command

Figure 6: UAS Control Command Reject – Control Request Figure 7: UAS Command Retry Figure 8: UAS Command Retry Fail Figure 9: UAS Command Ack Lost Figure 10: TESS Engagement

Page v

List of Tables

Table 1 ICD Quick Links Table 2: Message Datatypes Table 3: Message Header Table 4: UAS Fault Codes

1.0 Scope

The Unmanned Aircraft System (UAS) Targety Range Automated Control & Recording II

(TRACR II) Interface Control Document (ICD) describes the communications interface for controlling UAS for use in Force-on-Force and Force-on-Target training. UAS used for training can be fixed-wing or rotary wing. Fixed-wing UAS are piloted by an operator utilizing vendor-specific ground control station software but will transmit a telemetry stream to the centralized control system and will not accept path-following commands. Rotary-wing UAS may be controlled either individually or as a part of a grouping of UAS called a “Hive” (Future) where they serve as a coordinator of movement behaviors for a grouping of nearby UAS. There may be one or more coordinators which communicate locally to other hive members to synchronize movements and maintain a safe distance from each other in addition to communicating with the centralized control system. This also provides redundancy in the event that one or more coordinators fail. Non-coordinator hive members only communicate to their coordinators, not directly with the centralized control system. If non-coordinator UAS belonging to a hive lose communications with all coordinators, they shall land in place in order to avoid possible safety issues. Hive location shall be tracked as an aggregation of the location of the UAS coordinators for the hive.

1.1 Document Overview

This document is divided into two primary sections. Section 1 defines the overall scope of the document. Section 2 defines the details of the UAS communications interface including message structure and sequencing.

Table 1 ICD Quick Links

Message Type Description UAS Types Range Init Message Sent from control system to initialize the range

All

UAS Join Message Sent from the UAS in response to a Range Init Message to join the range.

All

Acknowledgement Acknowledges message receipt and acceptance or rejection

All

UAS Rejoin Request Request that the UAS rejoin the range.

All

Control Request Reqyest to establish or release

UAS control.

Rotary-wing only

Rotor Control Request Request the UAS to turn on/off its rotors.

All

Land Now Request Sent by the control system to request that the UAS land immediately.

Rotary-wing only

Land Here Request Sent by the control system to request that the UAS transit to the specified location and land.

Rotary-wing only

Go To Location Request Sent by the control system to request that the UAS transit to the specified location and altitude.

Rotary-wing only

Zone Load Request Sent by the control system to a

UAS notify that zone definitions will begin uploading.

All

Zone Definition Sent by the control system to define a UAS boundary.

All

Path Load Request Sent by the control system to request that a new path be loaded.

Rotary-wing only

Path Execution Request Sent by the control system to request that a path be executed.

Rotary-wing only

General Status General operational status telemetry sent from the UAS to the control system.

All

Positional Status Positional status telemetry sent from the UAS to the control system.

All

TESS Engagement Event TESS engagement events All

UAS Fault Codes Pre-defined fault codes that the

UAS may set in status.

All

2.0 Interface Description

2.1 Network Type

The UAS interface is defined in such a way as to not dictate a specific network type for communicating. The network being used need only be capable of sending data point-to-point and point-to-multipoint (broadcast or multicast) at a bit rate that is adequate for the number of UAS controlled. Network types where UAS might be employed include standard WiFi, LTE, ZigBee, and XBee DigiMesh, LTE, all of which support point-to-point and point-to-multipoint communications. However, in the future other network types may be identified that are suitable for UAS communications. Protocols being used on the network need not guarantee delivery of messages (e.g., UDP) but it is highly recommended that the network infrastructure be reliable in order to minimize retransmissions or lost messages and as a result better ensure safe operations.

Each network frame shall contain a single UAS message in its entirety with no additional bytes before or after the message payload.

2.2 Network Endpoints

Communication on a network requires the concept of an “Endpoint” which defines a specific address that messages can be sent to in a point-to-point fashion. The use of point-to-multipoint messaging allows a UAS to determine the Control System communication endpoint by retrieving the source address from point-to-multipoint messages it receives from the control system. Once the UAS sends a point-to-point message to the Control System endpoint, the UAS endpoint can be determined from the source address of the message, thus allowing both sides to communicate point-to-point when appropriate. For networks that utilize port numbers such as UDP over IPv4 or IPv6, the Control System shall broadcast/multicast on an agreed upon port number that both the UAS and the control system will be configured to use. In the case of multicast, the multicast address/group must also be agreed upon and configured. The endpoint of the Control System shall be specified in the UAS Join Message specified in Section 2.7.3.1. Endpoint Records shall consist of one-byte value specifying the endpoint type followed by an array of bytes containing the endpoint data whose format is dependent on the endpoint type. The endpoint record shall be used for identifying where the UAS should send point-to-point data for the Control System.

IPv4 Endpoint 0x01 – Endpoint payload consists of a 4-byte IPv4 address followed by a 2-byte port number. Total Length: 7 bytes

IPv6 Endpoint 0x02 – Endpoint payload consists of a 16-byte IPv6 address followed by a 2-byte port number. Total Length: 19 bytes

Network Endpoint Large 0x03 – Endpoint payload consists of an 8-byte network address. Total

Length: 9 bytes

Network Endpoint Medium 0x04 – Endpoint payload consists of a 4-byte network address.

Total Length: 5 bytes

Network Endpoint Small 0x05 – Endpoint payload consists of a 2-byte network address. Total

Length: 3 bytes

2.3 Byte Transmission Order

All messages and data fields described in this ICD shall be defined on byte boundaries and transmitted in big-endian format. Figure 1 illustrates the order of transmission. Bits are numbered across the top of the figure. Bytes are transmitted in the order in which they are numbered.

Figure 1: Big Endian Byte Ordering

2.4 Datatypes

The base datatypes referenced in this ICD are defined in the table below. Message definitions and data structures that reference these types shall restrict the acceptable values as needed.

Table 2: Message Datatypes

Datatype Bytes Description unsigned char 1 Unsigned integral value. 0 - 255 char 1 Signed integral value, twos complement. -128 - 127 boolean 1 Unsigned integral value. 0 represents false. All other values represent true.

enum 1 char datatype restricted to a specific set of enumerated values.

unsigned short 2 Unsigned two-byte integral value. 0 - 65535 short 2 Signed two-byte integral value, twos complement. -32768 - 32767 unsigned int 4 Unsigned integral value. 0 – 4,294,967,295 int 4 Signed integral value. -2,147,483,648 – 2,147,483,647 float 4 Single precision floating point value as specified by IEEE STD 754-

1985.

unsigned long 8 Unsigned integral value. 0 - 18446744073709551615 long 8 Signed integral value. -9223372036854775808 -

9223372036854775807 double 8 Double precision floating point value as specified by IEEE STD

754-1985.

bit-field N/A A group of one or more bytes whose individual bit values have a specific meaning.

In certain instances, unsigned char, unsigned short, and unsigned int fields may be subdivided at the bit level in the interest of conserving network bandwidth. These instances shall be clearly identified in this ICD, specifying bit position, and number of bits to be used. When a numeric

01234567

01234567

01234567

01234567

6 7 8 value is being expressed in hexadecimal format, the value shall be preceded by “0x”. All other values are expressed in decimal format.

2.5 UAS Capabilities

When joining the range, the UAS shall advertise the capabilities it supports. These capabilities are declared via a bit-field (8 bits) where the state of each bit represents whether that service is provided by the UAS. A bit value of 1 declares that the UAS provides the Service. UAS shall only report status corresponding to Services that it provides.

Service Bit

Position Description

Mission 0 Mission execution (path following and behavior)

Payload Drop 1 Ability to drop a payload being carried by the UAS.

(Future)

TESS 2 Ability to report TESS engagements. (Future)

Camera 3 UAS is equipped with a camera whose feed will be transmitted via a separate communication channel specific to that UAS. (Future)

Hit Sensor 4 UAS is equipped with a ballistic hit sensor and will report sensed hits to the control system. (Future)

Hive Behavior 5 UAS can participate as a coordinator in collective behaviors. (Future)

Reserved 6 – 7 Reserved for future use.

2.6 Addressing

When the control system is transmitting a command to a single UAS or a group, the Address field will which individual or group is being commanded. Values between 1 and 65530 specify an individual UAS address. Other values defined below specify UAS groupings. UAS shall report their UAS address in their status messages.

Individual. (1 - 65530). This address type is for addressing an individual UAS. This value is required to be unique on a given training range.

All UAS (65535, 0xFFFF). When this group address type is present, there are no additional group address bytes. All UAS receiving a command with this group address type should attempt to execute the command. Membership to this group will not be commanded. All UAS shall recognize this group and react to any command if it is able.

All Rotary Wing UAS (65534, 0xFFFE). All rotary wing UAS receiving a command with this address should attempt to execute the command.

All Fixed Wing UAS (65533, 0xFFFD). All fixed wing UAS receiving a command with this address should attempt to execute the command.

2.7 Messages

Communication is in the form of digital messages sent in a point-to-point or point-to-multipoint fashion. The structure of messages is defined in the following subsections.

2.7.1 Message Header

All UAS messages shall utilize a common message header. This header allows the receiver to identify the message type, ICD version, and sequence number of the message payload that follows.

Table 3: Message Header

Message Header. 8 bytes.

Field Datatype Description

Message ID unsigned short Message type identifier.

ICD Major Version unsigned char ICD major version. Changes in major version indicate significant structural changes that are not backward compatible.

ICD Minor Version unsigned char ICD minor version. Changes in minor version indicate minor ICD changes that are typically backward compatible. Release notes should be consulted for backward compatibility determination.

Sequence Number unsigned short Message sequence number. Value shall be increased by 1 by the sender for each message transmitted. Once the Sequence Number reaches

65535, the next sequence value shall reset to 1.

Message Length unsigned short Message length including header

2.7.2 Announcement Messages

Announcement messages are sent from the Control System in a point-to-multipoint fashion for the purpose of distributing important information to all UAS on a range. Announcements are not addressed to individual UAS. Upon receipt of an announcement message UAS shall react to the command in the manner defined in this ICD.

2.7.2.1 Range Init Message

During Control System startup, the Range Init Message is sent over the network in a point-to-multipoint fashion. The control system shall also send the Range Init message periodically during range idle time in order to discover UAS that have restarted since the control system startup and to ascertain comm status for UAS. Upon receiving a Range Init message UAS shall compare the Instance ID in the message to that of the most recently received Range Init message

(if any). If this is the first Range Init message received or if the Instance ID does not match, the

UAS shall respond with a UAS Join message after the designated random response interval. This announcement serves the following purposes.

1. Allows UAS that are listening on the network to determine the network endpoint of the control system.

2. Inform UAS that they must cease any behaviors that they are currently performing (if any) if the Instance ID indicates a control system restart.

3. Define the Response-Interval (in seconds) for UAS. Upon receiving the Range Init message, the UAS shall calculate a Random Wait Interval in milliseconds between 100 and [(Response-Interval * 1000) – 500].

4. Upon receiving the Range Init message UAS shall wait for the calculated random wait interval after which it shall send a UAS Join message to the Control System endpoint.

After sending the first UAS Join message, the UAS shall begin sending telemetry

(Position and Status) at the rates specified in the Range Init message. The UAS shall send another Join message if the Instance ID in the Range Init indicates a control system restart (Instance ID has changed from the original Range Init).

Range Init Message

Message ID: 0x2A00

Origin: Control System

Transmission Mode: point-to-multipoint

Acknowledgement Required: No

Length: 26 - 42 bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Instance unsigned int Instance identifier for Controller randomly generated at startup. Controller shall not generate duplicate Instance identifiers on consecutive startups. Instance shall be a random value between 1 and 4,294,967,295.

Response Interval unsigned char Interval in seconds for sending a response to the

Range Init message. The UAS shall generate a random number between 100 and [(Response-

Interval*1000) – 500] and wait that many milliseconds before sending a response. The range control system shall periodically re-send the Range Init message while the control system is operating.

Maximum Altitude

(AGL centimeters) int Maximum safe altitude that any UAS shall operate at.

Minimum Altitude

(AGL centimeters) int Minimum safe altitude that any UAS shall operate at. UAS shall be allowed to fly below this altitude only when taking off and landing.

Control System

Endpoint

Data Structure Network Endpoint as defined in Section 2.2

Position Reporting

Rate unsigned char Telemetry reporting rate for position status in hertz.

Status Reporting

Rate unsigned char Telemetry reporting rate for general operational status in hertz

2.7.3 General Purpose Messages

2.7.3.1 UAS Join Message

The UAS Join Message is sent by a UAS to the Control System in order to “join” the range and provide necessary identity information. This message is sent in response to a Range Init

Message.

UAS Join Message

Message ID: 0x2A01

Origin: UAS

Transmission Mode: point-to-point

Acknowledgement Required: No

Length: 14 bytes

Field Datatype Description

Message Header Data Structure FASIT II Message Header defined in Table 3

UAS Address unsigned short Range-unique 16-bit identifier (See Section 2.6).

Capabilities bit-field (1 byte) Defines the capabilities that are offered by the

UAS as defined in Section 2.5

UAS Type enum Rotary-Wing:0x01 Rotary-wing UAS may be piloted or centrally controlled.

Fixed-Wing: 0x02 Fixed-Wing UAS are piloted and their movement is controlled by the pilot. No path following functionality is supported for

Fixed-Wing. (Future)

Firmware Major

Version unsigned char Major version of the UAS firmware

Firmware Minor

Version unsigned char Minor version of the UAS firmware

2.7.3.2 Acknowledgement

The Acknowledgement message is sent point-to-point by a UAS or the control system to confirm receipt of a message. If no command acknowledgement is received, the control system shall retransmit the command. Timeouts for acknowledgements and number of retries shall be configurable within the control system. Commands sent to a group address shall not be acknowledged. UAS shall retain the sequence number of the most recent point-to-point command it has received in order to prevent executing the same command more than once due to an acknowledgement message being lost. Upon receiving a duplicate command, the UAS shall send an acknowledgement result of Accepted with Reason Duplicate. For commands other than

Land Now and Land Here, requiring an Acknowledgement, the control system shall not send any additional commands until it receives an Acknowledgement or all retry attempts have failed.

Land Now and Land Here shall supersede any active command retries and be sent immediately.

The control system shall send an Acknowledgement in response to a TESS engagement event.

Acknowledgement

Message ID: 0x2A04

Origin: UAS, Control System

Transmission Mode: point-to-point

Acknowledgement Required: No

Length: 12 bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Response Sequence

Number unsigned short Sequence number of the UAS command message containing being acknowledged.

Result boolean 0x00: False Command rejected

0x01: True Command accepted

Reason enum OK: 0x00 Command is valid. UAS will attempt to execute.

Duplicate: 0x01 Command is a duplicate that has already been accepted.

Control: 0x02 UAS is not in a suitable Control mode to accept the request.

Invalid State: 0x03 UAS is in an invalid state to accept the command.

Invalid Content: 0x04 Command is properly formatted but the content is invalid.

Invalid Format: 0x05 Command is improperly formatted.

Geofence Violation: 0x06 UAS is outside of the defined range boundary.

No Zones: 0x07 No zones have been loaded.

Comms Error: 0x08 A local communications error occurred.

Unexpected Error: 0x09 An unexpected error occurred processing the command.

2.7.4 Command Messages

Command messages are transmitted by the control system to UAS in either a point-to-point or point-to-multipoint fashion. All commands except those involved with safety (such as Land

Now) are sent point-to-point. Safety related commands may be sent either point-to-point or point-to-multipoint.

2.7.4.1 UAS Rejoin Request

This command shall instruct the UAS to send a Join message to the control system. This request shall be sent in instances where the UAS sends status to the control system but the control system has not yet received a Join message from the UAS (i.e., an unknown UAS). This message shall be sent point-to-point via the same UAS communications channel as the status that was received. The UAS shall respond with a Join message upon receipt of this request.

Rejoin Request

Message ID: 0x2A05

Origin: Control System

Transmission Mode: point-to-point

Acknowledgement Required: No

Length: 8 bytes

Message Header Data Structure Message Header defined in Table 3

2.7.4.2 Control Request

This command shall request a change in control status for the UAS. The UAS shall respond with a negative acknowledgement if it is unable to honor the request for central control due to operational constraints.

Control Request

Message ID: 0x2A06

Origin: Control System

Transmission Mode: point-to-point

Acknowledgement Required: Yes

Length: 9 bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Control enum Release Control: 0x00 Request to release centralized control of the UAS by the control system. If accepted, the UAS shall enter a Control state of No Control. UAS shall not accept if it is in flight.

Request Control: 0x01 Request to take centralized control of the UAS for the purposes of

Path execution. If accepted, the UAS shall enter a

Control state of Central Control. UAS shall not accept if it is in flight.

Pilot Control: 0x02 Request to establish pilot control of the UAS. If accepted, the UAS shall enter a Control state of Pilot Control. The UAS shall allow pilot control to override Central

Control when operational conditions call for manual pilot control.

2.7.4.3 Rotor Control Request

This command shall request that the UAS turn its rotors on or off. The UAS shall only accept and execute this command if it is not in flight. If the UAS receives this command in flight, it shall send a negative acknowledgement.

Rotor Control Request

Message ID: 0x2A07

Origin: Control System

Transmission Mode: point-to-point

Acknowledgement Required: Yes

Length: 9 bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Turn On boolean False: 0x00 UAS shall turn rotors off if they are currently on and send a positive acknowledgement. If rotors are currently off, UAS shall send a positive acknowledgement.

True: 0x01 Turn rotors on if they are not already on and send a positive acknowledgement. If rotors are currently on, the UAS shall send a positive acknowledgement.

2.7.4.4 Land Now Request

Upon receipt, the UAS shall descend and land at its current location. UAS shall only execute this command if it is currently in flight. If the UAS is not in flight, it shall send a positive acknowledgement. If a path is being executed when the command is received, path execution shall immediately be canceled and superseded by this command. Rotary wing UAS only.

Land Now Command

Message ID: 0x2A08

Origin: Control System

Transmission Mode: point-to-point, point-to-multipoint

Acknowledgement Required: Yes, for point-to-point

Length: 11 bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Address unsigned short Address to which the command is being directed.

See Section 2.6

Emergency boolean 0x00: False. Controlled landing at the current location.

0x01: True. Expedited landing at the current location. UAS shall land as quickly as possible.

2.7.4.5 Land Here Request

Upon receipt, the UAS shall travel to the specified location, descend and land. UAS shall only accept and execute this command if it is currently in flight. If not in flight, the UAS shall return a negative acknowledgement. If a path is being executed when the command is received, path execution shall immediately be canceled and superseded by this command. Rotary wing UAS only.

Land Here Command

Message ID: 0x2A09

Origin: Control System

Transmission Mode: point-to-point, point-to-multipoint

Acknowledgement Required: Yes

Length: 16 bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Latitude (degrees) int -90° - 90° scaled by 1E7

Longitude

(degrees) int -180° - 180° scaled by 1E7

2.7.4.6 Go To Location Request

Upon receipt, the UAS shall travel from its current location to the specified location. If the UAS is not in flight when the command is received, it shall first turn on its rotors (if not already on) and transit to the specified location and hover until commanded otherwise. If the UAS is in flight when the command is received but not executing a path, the UAS shall transit to the specified location and hover until commanded otherwise. If a path is being executed when the command is received, path execution shall immediately be canceled and superseded by this command. Rotary wing UAS only.

Go To Location Command

Message ID: 0x2A0A

Origin: Control System

Transmission Mode: point-to-point

Acknowledgement Required: Yes

Length: 23 bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Latitude (degrees) int -90° - 90° scaled by 1E7

Longitude

(degrees) int -180° - 180° scaled by 1E7

AGL Altitude (cm) int Altitude above ground level in centimeters.

Ground Speed

(mph) unsigned char Ground speed in miles per hour. The UAS shall travel at the specified speed until it reaches the location and hover in place.

Yaw (cdeg) short Rotation of the UAS body parallel to the ground plane in centigrads (1 centigrad = .009 degrees) when the UAS reaches the specified location. A value of 0 indicates the UAS is pointed northward. Values from - 20000 to 20000.

2.7.4.7 Zone Load Request

Upon receipt, the UAS shall clear all stored zones/boundaries and begin storing incoming zones/boundaries until a Zone Load End command is received. The UAS shall respond with an

Acknowledgement message to indicate command receipt and acceptance. Rotary Wing UAS only.

Zone Load Command

Message ID: 0x2A0B

Origin: Control System

Transmission Mode: point-to-point

Acknowledgement Required: Yes

Length: 10 Bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Zone Load Type enum Start: 0x00. Clear cache and begin loading zones from control system

End: 0x01. The control system has finished sending zones

Zone or Boundary

Number unsigned char The number of zones or boundaries expected to be sent from control system

2.7.4.8 Zone Definition

Upon receipt, the UAS shall store the specified zone data. Used to define “geofences” around the training area and around areas of special interest. Zones shall be comprised of at least 3 boundary points arranged in order to define a simple polygon (no sides cross). The first and last boundary point shall be connected to complete the polygon. No two points in the polygon shall have identical values. The UAS shall respond with an Acknowledgement message to indicate command receipt and acceptance.

Zone Definition Command

Message ID: 0x2A0C

Origin: Control System

Transmission Mode: point-to-point

Acknowledgement Required: Yes

Length: Variable, 20 + (Num-Points * 8)

Message Header Data Structure Message Header defined in Table 3

Feature Type enum Boundary: 0x00. A geographic range boundary.

The UAS shall operate only when within this boundary.

No-Go Zone: 0x01. Zone located inside the range boundary where the UAS is prohibited from entering.

Speed Zone: 0x02. UAS shall not exceed the specified speed.

Altitude Zone: 0x03. UAS shall not operate outside the specified floor and ceiling altitudes.

Max Speed (mph) unsigned char Maximum ground speed in miles per hour.

Ignored for all feature types except Speed Zone.

Floor (AGL cm) int Minimum operating altitude for the zone. Ignored for all feature types except Altitude Zone.

Ceiling (AGL cm) int Maximum operating altitude for the zone. Ignored for all feature types except Altitude Zone.

Number of Points unsigned char The number of points in the boundary or zone.

This is primarily used to validate point array message length. 3 - 128

Zone Identifier unsigned char Used to provide status to the control system related to ingress/egress zone/boundary crossings

Boundary Points Data Structure(s) One or more Boundary Point structures listed in the order of connected points.

Boundary Point Length: 8 Bytes

A geographic latitude and longitude point for defining boundaries.

Field Name Datatype Description

Latitude (degrees) int -90° - 90° scaled by 1E7

Longitude (degrees) int -180° - 180° scaled by 1E7

2.7.4.9 Path Load Request

Upon receipt, the UAS shall store the specified path data and report in status when the path is loaded and ready to be executed. Rotary Wing UAS only. The UAS shall respond with an

Acknowledgement message to indicate command receipt and acceptance.

Path Load Command

Message ID: 0x2A0D

Origin: Control System

Transmission Mode: point-to-point

Acknowledgement Required: Yes

Length: Variable 12 + [(NumPoints * 18) + [(NumPoints-1) * 2]]

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Address unsigned short Address to which the command is being directed.

Group addresses are not allowed. See Section 2.6

Number of waypoints unsigned char The number of path points. This is primarily used to validate point array and segment message length

Path Identifier unsigned char Used to provide status to control system related to path execution

Path Points Data Structure(s) Two or more Path Point structures listed in the order of connected points.

Segment

Payload(s)

Data Structure(s) One or more segment payload structures listed in the order of connected segments.

Path Point Length: 18 Bytes

A geographic latitude and longitude point used for path definitions. In addition to lat/long/altitude, additional metadata is provided to describe the point and how it shall be used in the path definition.

Field Name Datatype Description

Latitude (degrees) int -90° - 90° scaled by 1E7

Longitude (degrees) int -180° - 180° scaled by 1E7

AGL Altitude (cm) int Altitude above ground level. 1 - 100000

Yaw (cdeg) short Rotation of the UAS body parallel to the ground plane in centigrads (1 centigrad = .009 degrees). A value of 0 indicates the UAS is pointed northward. Values from -20000 to

20000.

Point Type enum Waypoint: 0x00 – Simple waypoint

Action Point: 0x01 – Perform specified action when the point is reached.

Start Rally Point: 0x02 – Starting point for the path. There shall be a single Start Rally Point at the beginning of every path definition.

End Rally Point: 0x03 – Ending point for the path. There shall be a single End Rally Point at the end of every path definition. Once the last non-rally path point action has completed, the

UAS shall return to the End Rally Point

Action enum None: 0x00 – No action

Hover: 0x01 – Hover at the specified location for the specified number of seconds (1 – 300 see

Duration field)

Drop Payload: 0x02 – (Future) Drop payload

(if any)

Swarm: 0x03 – (Future) Perform swarm maneuvers around the current location. UAS participating in the swarm shall remain with a radius in meters, specified by the Point Data field. Details of swarming behavior shall be vendor-specific and involve collective maneuvering of swarm members.

Duration unsigned char For actions requiring a time duration, this field specifies the time in seconds for the action.

Default 0.

Point Data char For actions requiring data, this field specifies.

The action determines the content/format of the data. Default 0.

Segment Payload Length: 2 Bytes

Segment between 2 points

Field Name Datatype Description

Default Speed unsigned char The default segment movement speed in mph

Maximum Speed unsigned char The maximum segment movement speed in mph. Must be greater than or equal to Default

Speed.

2.7.4.10 Path Execution Request

This command shall be issued by the central control system. The UAS control mode must be

Central Control for the command to be accepted. The UAS shall respond with an

Acknowledgement message to indicate command receipt and acceptance. Upon receipt and acceptance, the UAS shall begin executing the specified path and begin traveling along the specified path until all path segments have been completed. Rotary Wing UAS only.

Path Execution Command

Message ID: 0x2A0E

Origin: Control System

Transmission Mode: point-to-point

Acknowledgement Required: Yes

Length: 10 bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Path Identifier unsigned char Used to provide status to control system related to path execution

Path Action enum Prepare: 0x00. UAS shall start its rotors (if not already started), transit to the Start Rally point and hover in place until commanded to begin executing the path. A path must be prepared before it can be executed.

Execute: 0x01. UAS shall begin executing the prepared path. Once the path is complete, the

UAS shall land at the End Rally Point and turn off its rotors.

Pause: 0x02. UAS shall pause execution the current path. Upon receipt and acceptance, the

UAS shall stop and hover at its current location and altitude.

Resume: 0x03. UAS shall resume execution the current path. Upon receipt and acceptance, the

UAS shall continue along the path.

Abort: 0x04. UAS shall terminate path execution and return to the Start Rally point specified in the path to land.

2.7.5 Status

UAS status is reported as a telemetry stream, with status messages being reported continuously at the rates given in the Range Init message.

2.7.5.1 General Status

General status contains the operational status of the UAS. It is typically reported at lower rates that positional status, as the data is less critical than position.

UAS General Status

Message ID: 0x2A0F

Origin: UAS

Transmission Mode: point-to-point

Acknowledgement Required: No

Length: 20 Bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Path Identifier unsigned short Currently loaded path. Zero specifies no path is loaded.

Control Mode enum No Controller: 0x00 UAS is not currently being controlled. UAS shall not be in flight when in this mode. Control may be requested by a pilot or central control system.

Pilot Control: 0x01 UAS is under exclusive control by an operator/pilot using a joystick or some other mechanism. Telemetry streams will be active but commands from the control system shall not be honored with the exception of the

Land Now Command and Land Here Command.

Central Control: 0x02 UAS is under exclusive control by the centralized control system. UAS shall accept commands and attempt to execute them.

Hive ID unsigned char If the UAS is part of a hive (Future), this UAS assigned ID shall identify the hive to which the

UAS belongs. A value of 0 indicates no hive membership.

Operational Status enum Nominal: 0x00 UAS is operating nominally with no known issues.

Degraded: 0x01 UAS is operating in a degraded mode and should be recalled for maintenance and troubleshooting.

Inoperable: 0x02 UAS is reporting status but is physically inoperable. The unit should be retrieved from its current or last reported location and brought in for repairs.

Path Status enum No Path: 0x00 No path is loaded

Standby: 0x01 A path is loaded (non-zero Path

Identifier) and is ready to be prepared for execution

Preparing: 0x02 The UAS is preparing to execute the path specified by the Path Identifier.

This involves among other things transiting from its start location to the Start Rally Point defined in the path.

Prepared: 0x03 The path specified by the Path

Identifier is loaded, prepared, and ready to begin execution.

Executing: 0x04 The path specified by the Path

Identifier is currently executing.

Paused: 0x05 The path specified by the Path

Identifier is currently executing.

Aborted: 0x06 The path specified by the Path

Identifier has been aborted and the UAS is in transit to the Start Rally point to land.

TESS Player ID short TESS Player ID. UAS shall set Player ID to -1 if no TESS is present.

Casualty Status enum Nominal: 0x00

Catastrophic Kill: 0x01

Mobility Kill: 0x02

Communications Kill: 0x03

Firepower Kill: 0x04

Wounded: 0x05

UAS equipped with TESS shall report casualty values based on the most recent TESS engagement (if any). UAS with the ability to detect ballistic engagements shall report Nominal or Catastrophic Kill only. All other UAS shall report Nominal only

Battery Level unsigned char Battery level. 1 - 100

Fault Status unsigned char UAS Fault status. 0 for no faults. Non-zero if there is a fault. See Table 4: UAS Fault Codes

OEM Fault unsigned char OEM fault status. 0 for no faults. Provides additional vendor-specific fault context specific to the UAS implementation. UAS vendor shall provide fault values and meaning for control system processing.

2.7.5.2 Positional Status

Positional status contains data that is required for tracking the location of a UAS. It is typically reported at a higher frequency than general status in order to facilitate display of UAS motion smoothly. Reporting rates will be set by the control system in a manner that balances bandwidth utilization and optimal display.

UAS Positional Status

Message ID: 0x2A10

Origin: UAS

Transmission Mode: point-to-point

Acknowledgement Required: No

Length: 29 Bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Latitude (degrees) int -90° - 90° scaled by 1E7. Values between

- 900000000 and 900000000. If Quality is None, UAS shall set this value to zero.

Longitude

(degrees) int -180° - 180° scaled by 1E7. Values between

- 1800000000 and 1800000000. If Quality is

None, UAS shall set this value to zero.

AGL Altitude (cm) int Altitude above ground level. If Quality is None, UAS shall set this value to zero.

Pitch (cdeg) short Rotation around the left-right axis in centigrads (1 centigrad = .009 degrees). A value of zero indicates the UAS is perfectly level relative to the horizon. Positive values are tilted upwards and negative values tilted downwards. Centidegree values between – 10000 to 10000 (-90 to 90 degrees). Values greater than 5000 or less than

- 5000 (±45 degrees) represent unsafe values that are likely to result in a crash.

Roll (cdeg) short Rotation around the longitudinal axis in centigrads (1 centigrad = .009 degrees). A value of zero indicates the UAS is perfectly level relative to the horizon. Positive values are tilted to the right and negative values tilted to the left.

Values between - 20000 to 20000 (-180 to 180 degrees).

Yaw (cdeg) short Rotation of the UAS body parallel to the ground plane in centigrads (1 centigrad = .009 degrees). A value of 0 indicates the UAS is pointed northward. Values from - 20000 to 20000

(-180 to 180 degrees).

Ground Speed

(cm/s) unsigned short Ground speed in centimeters per second.

Quality enum None: 0x00

Good: 0x01

UAS shall utilize NMEA GGA or GSA sentences to determine quality.

GGA: Fix Quality = 0 (None) Fix Quality > 0

Good

GSA: 3D Fix = 0 (None) 3D Fix > 0 Good

2.7.5.3 TESS Engagements

If equipped with TESS hardware, the UAS shall report engagement events when an engagement is detected coming from a TESS equipped player unit, an administrative “god gun” or some other virtual engagement mechanism. The engagement event shall be acknowledged by the control system and the UAS shall retain and retransmit the event up to 3 times if no acknowledgement is received.

UAS TESS Engagement

Message ID: 0x2A11

Origin: UAS

Transmission Mode: point-to-point

Acknowledgement Required: Yes

Length: 20 Bytes

Field Datatype Description

Message Header Data Structure Message Header defined in Table 3

Engagement Time long Timestamp for the engagement. Milliseconds from the standard Unix epoch (Jan 1, 1970

00:00:00 UTC)

Player ID short Player ID that initiated the engagement

Weapon Code unsigned char Weapon Code for the engagement

Casualty Result enum Nominal: 0x00

Catastrophic Kill: 0x01

Mobility Kill: 0x02

Communications Kill: 0x03

Firepower Kill: 0x04

Wounded: 0x05

2.7.6 UAS Fault Codes

UAS fault codes are intended to describe serious hardware issues that may render a UAS unable to be used in a training scenario. The values dictated in this ICD are intended to be a minimum set of supported fault codes while still allowing for additional fault code values to be added in the future without requiring an ICD update if it is deemed necessary. The Control System shall be responsible for mapping fault code values to descriptive text for the users.

Table 4: UAS Fault Codes

Name Value Description

No Fault Present 0x00 No faults detected

Already Controlled 0x01 The UAS is already controlled by another process and control cannot be established

Critically Low

Battery

0x02 Battery value is critically low. UAS cannot be used unless the battery is charged or replaced.

Lost GPS 0x04 UAS is unable to establish valid or reliable GPS position and is landing as a result.

Comms Failure 0x05 UAS has stopped/landed due to unreliable communication with control system.

Maintenance

Required

0x06 UAS needs service or maintenance

Off Course 0x07 UAS is off course or not following the intended route

Approaching No-Go

Zone

0x08 UAS stopped/landed because it is either close to or entering a no-go zone

Leaving Range

Boundary

0x09 UAS has stopped/landed because it is either close to or leaving the range boundary

2.8 General UAS Behavior

This section gives general guidance on UAS behavior in order to minimize any ambiguity regarding how UAS are expected to behave.

2.8.1 Acknowledgements

All point-to-point commands except UAS Rejoin require that the UAS send an Acknowledgment indicating whether the command was received and accepted. In the event of a lost command or lost Acknowlegement, the control system shall retransmit a duplicate command (same sequence number) and wait for an Acknowlegement. The number of command retries shall be driven by configuration of the control system. The control system shall queue any additional commands until it has received an Acknowledgement or the configured number of command retries has been exceeded. The Land Now and Land Here commands are the only exceptions and will be sent immediately, canceling any active timeout/retransmission sequence. TESS Engagement events from the UAS shall be acknowledged by the control system. If no acknowledgement is received, the UAS shall retransmit the event up to 3 times until an acknowledgement is received.

2.8.2 Rotor Control

Rotary-wing UAS shall automatically activate its rotors prior to executing any command requiring flight if they are not already active.

2.8.3 Pilot Control

UAS may be controlled by a pilot or it may be centrally controlled. When piloted, the central control system is in a passive mode, receiving UAS telemetry with control primarily delegated to the pilot other than the Land Now Command and Land Here Command that might be issued in circumstances where safety issues have arisen. When being piloted, the operator/pilot shall utilize vendor-specific software and hardware to control the UAS. Use cases for piloted control include but are not limited to:

• Staging UAS in preparation for centralized control

• Configuring vendor-specific UAS parameters

• Aerial Video

• Pilot-driven UAS training maneuvers

The UAS shall allow a “Pilot Override” of Central Control mode to initiate manual pilot control in emergency circumstances and when the training requires a pilot to take manual control of the

UAS. Once a pilot override is performed, the UAS shall remain under manual control until the pilot lands the UAS at the location of their choosing. Once overridden, the UAS shall terminate any currently executing path and set its status accordingly.

2.8.4 Centralized Control

UAS may also be centrally controlled by software. In this case, the UAS is commanded with a path to follow, with waypoints that may have associated behaviors. When operating as a Hive, one or more UAS coordinators belonging to the hive will communicate with other hive members and peer coordinators also belonging to the hive to follow the general objectives given in a commanded path. Only UAS hive coordinators shall communicate with the control system.

When a waypoint action is specified as “Swarm”, the members shall cooperatively execute a vendor-defined behavior that best represents the desired training objectives. The behavior may be orchestrated or appear to be non-deterministic depending on the vendor implementation.

Details of swarming behavior are outside the scope of this document.

2.8.5 Payload Control

Certain types of onboard UAS devices such as cameras that are not involved in flight dynamics may be controlled by software and/or hardware that is external to the control system even when operating under centralized control. These device interfaces are specific to the UAS implementation and as such will be handled by an alternate communications channel and vendor-provided software/hardware. The UAS vendor shall expose standardized data streams for content such as video so that it may be displayed by elements of the central control system.

2.8.6 GPS Reporting

UAS shall be operated in range locations having an unobstructed sky view in order to obtain

GPS fix and minimize the effects of GPS drift. Positional status shall be reported in the UAS telemetry stream. UAS shall land at their current location if GPS signal is lost for more than 10 seconds.

2.9 Diagrams

The following section contains diagrams illustrating the expected behavior of the UAS. These diagrams are not intended to be a comprehensive representation of all possible states and control flows related to UAS operations. These are intended to serve as an aid to control system and

UAS developers in guiding their implementations such that they behave predictably in the most critical functional areas. The diagrams are a supplement to explanatory text given earlier in this document.

2.9.1 Control States

Figure 2: UAS Control States

2.9.2 Command Flows

Figure 3: UAS Join

Figure 4: UAS Rejoin

Figure 5: UAS Nominal Command

Figure 6: UAS Control Command Reject – Control Request

Figure 7: UAS Command Retry

Figure 8: UAS Command Retry Fail

Figure 9: UAS Command Ack Lost

2.9.3 TESS Engagements

Figure 10: TESS Engagement

File details come from the government source that posted it. Updated .