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
- i.e. sending a query or set message still causes the same report or response message to be sent
- 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 |