Skip to content

Service Set Versioning

SAE Document Numbers

The JAUS standard is released as a set of SAE documents which are versioned using a letter suffix. The first release doesn't have a suffix (e.g. AS6009), while subsequent releases add a letter suffix (e.g AS6009A, AS6009B, etc). The document number is changed any time the document is updated.

The SAE document numbers only represent changes in the document and do not necessarily indicate changes to the JAUS services themselves. Simple updates, such as a typo, could cause a document to be revised while there would be no functional change to any of the service definitions.

Service Versioning

Every JAUS service has a URI to uniquely identify it and a version number that consists of a major and minor number. Services with the same URI are intended to be the same and must follow the compatibility rules outlined below. Since, the SAE document number only represent changes to the document, the service version number should be used to determine service compatibility across SAE documents.

JAUS services use a major/minor semantic versioning scheme such that versions with the same major number are backwards compatible. Versions of a service are backwards compatible if:

  • All the messages from the older version can be used with the new version
    • i.e. messages are not removed in the new version
  • All the messages from the older version can be made byte-identical on the wire
    • i.e. there are either no new fields or the new fields are optional and can be left out using an existing presence vector
  • Input messages from the older version elicit the same output message response
    • i.e. sending a query or set message still causes the same report or response message to be sent
      • Note: sending a new response message would be okay
  • No new messages are not required to make the service work as it did previously

Service Sets

The JAUS standard does not have an official mechanism for grouping services into a collection. However, among the JAUS community, services are often considered together as 'service sets'. This terminology is used informally and is primarily based on the title of the official SAE document that contains the services. For example, the 'manipulator service set' refers to all the services that are included in the SAE AS6057 family of documents.

In addition, there is often an informal version associated with the service set which indicates some level of compatibility of the services between the 'service sets'. This 'service set' version typically correlates to the highest version of any service in that document. For example, if the highest version of any service in document AS5710A is v1.1, the services specified in AS5710A will be informally referred as core service set v1.1 or simply as core v1.1.

This service set name and version number is the most common method for referencing a collection of services, even more so than the official SAE document number. As such, it can be difficult for new members to the community to understand which document is being referenced. For example, it is more common to talk about core v1.1 and manipulator v2.0 instead of AS5710A and AS6057A respectively.

SAE Document to Service Set Version

Below we provide a mapping of the SAE document numbers to the informal service set name and version primarily used by the community.

SAE Document JAUS Service Set Version
AS5710 Core v1.0
AS5710A Core v1.1
AS6009 Mobility v1.0
AS6009A Mobility v1.1
AS6040 HMI v1.0
AS6057 Manipulator v1.0
AS6057A Manipulator v2.0
AS6060 Environment v1.0
AS6060A Environment v2.0
AS6062 Mission Spooler v1.0
AS6062A Mission Spooler v2.0
AS6091 UGV v1.0
AS8024 Autonomous Capabilities v1.0