OpenJAUS is a Free Open Source Software implementation of the Joint Architecture for Unmanned Systems. It includes all of the software and sample code that you need to JAUS enable a robot immediately.

Frequently Asked Questions

1. About OpenJAUS

1.1 What does OpenJAUS do?
1.2 Why should I use OpenJAUS?
1.3 How is OpenJAUS licensed?
1.4
What happen to support for Java in OpenJAUS?
1.5 Does OpenJAUS have an Operator Control Unit (OCU) capability?

2. JAUS & Messaging

2.1 In the JAUS Message header fields, why is dataSize an unsigned integer and not an unsigned short as in the specification?
2.2 I noticed in version 3.3 of the JAUS Reference Architecture that Service Connections are deprecated; this seems like necessary functionality. Why is it being removed?
2.3 I don't see a message which contains the kind of data I need in my JAUS system. How can I add a message or capability?
2.4 How do I create my own JAUS components?

3. Node Manager

3.1 Do I have to have a Node Manager?
3.2 Can I run more than one Node Manager on one computer at the same time?
3.3 Do I have to use the OpenJAUS Node Manager?

4. Help / Support

4.1 How can I get more help / support?
4.2 Can I purchase OpenJAUS support for my specific problem / need / feature?
4.3 How do I report a bug?
4.4 How do I request a new feature?
4.5 Why can't I... create a bug ticket or post in the forums?

1. About OpenJAUS

1.1 What does OpenJAUS do?
A: OpenJAUS provides a library of functions which provide the ability to parse JAUS messages, the capability to easily create JAUS components and an off-the-shelf implementation of the JAUS Node Manager and JAUS Communicator components which provide robust JAUS message routing and system management.

1.2 Why should I use OpenJAUS?
A: OpenJAUS is a proven code base which serves as a reference implementation among a large variety of JAUS developers. It has been used by many organization, both commercial and academic, to save thousands of man hours in JAUS system development and integration time.

1.3 How is OpenJAUS licensed?
A: OpenJAUS is licensed under a BSD-style license. The full text of the license can be found here.

1.4 What happen to support for Java in OpenJAUS?
A: OpenJAUS v. 3.3.0 does not have support for the JAVA programming language. While this marks a departure from the previous release, it was done in the interest of streamlining the code base and maximizing development efforts. The previous code base's JAVA support was a subset of the complete JAUS picture and only that which was necessary to make the Node Manager operational. Since the Node Manager has been completely redesigned and rewritten in C++, it was no longer necessary to maintain the JAVA branch. If a developer, or group of developers, wished to continue development of OpenJAUS in JAVA, the OpenJAUS development team would welcome their help and be willing to assist in any way possible. Contact the development team via the OpenJAUS forums if you are interested.

1.5 Does OpenJAUS have an Operator Control Unit (OCU) capability?
A: No. The OpenJAUS development team is currently seeking professionals working on control station software tools that would be interested in contributing to the OpenJAUS OCU. Contact the developers in the OpenJAUS forums for more details.

2. JAUS & Messaging

2.1 In the JAUS Message header fields, why is dataSize an unsigned integer and not an unsigned short as in the specification?
A: The JAUS standard defines a 12-bit data field for message size. This limits messages to 4096 bytes in length. To overcome this limitation, there exists a mechanism to fragment a large JAUS message into a series of smaller JAUS messages and reassemble them upon receipt at the end of the transport medium. In the OpenJAUS code base, this functionality is encapsulated within the libopenJaus package. In order to support these larger messages, it was required to increase the maximum value of the dataSize field within the JAUS message structures. This allows the representation, in memory, of complete JAUS messages with a data size greater than 4080 bytes.

2.2 I noticed in version 3.3 of the JAUS Reference Architecture that Service Connections are deprecated; this seems like necessary functionality. Why is it being removed?
A: Through experimentation and use, it was determined by the JAUS standards development group that the Service Connection mechanism was insufficient in handling a variety of situations. Therefore, the JAUS Event messages were developed and tested to handle conditional events as well as periodic events. As the events messages represent a larger variety of possible scenarios, the "Periodic Event" has superseded the Service Connection message set. However, OpenJAUS v3.3.0 does not currently implement support for using periodic events. Rather support for Service Connections is maintained and recommended for use if this kind of functionality is required. More details about using Service Connections can be found in the OpenJAUS tutorials.

2.3 I don't see a message which contains the kind of data I need in my JAUS system. How can I add a message or capability?
A: Functionality outside the current scope of the JAUS message set can be added through the use of a experimental message or set of messages. OpenJAUS provides a template message called skeletonMessage.c/.h in the libjaus package which can be used by a developer to create custom messages. More details on creating an experimental message can be found in the OpenJAUS tutorials.

2.4 How do I create my own JAUS components?
A: See the OpenJAUS tutorial on Creating a JAUS component.

3. Node Manager

3.1 Do I have to have a Node Manager?
A: Yes. The JAUS standard specifies that the Node Manager component exists on every JAUS node to provide routing and discovery capabilities to the system. However, a non-JAUS compliant system may still take advantage of the JAUS messages and data structures to transport information without the use of the JAUS system architecture.

3.2 Can I run more than one Node Manager on one computer at the same time?
A: No. A JAUS compliant system will have one and only one instance of a JAUS Node Manager component on a single node. While this capability is often desired for simulation and testing, it is not practical in fielded systems.

3.3 Do I have to use the OpenJAUS Node Manager?
A: No. The OpenJAUS code base provides both the libjaus and libopenJaus libraries as separate entities. The libjaus library can be used without the libopenJaus to provide basic JAUS messaging capabilities.

4. Help / Support

4.1 How can I get more help / support?
A: Additional support for using OpenJAUS in your system is available on a case-by-case basis. Please contact the development team via the OpenJAUS forums for more details!

4.2 Can I purchase OpenJAUS support for my specific problem / need / feature?
A: Yes. The OpenJAUS development team can provide professional support for a variety of robotics systems and projects. Contact the team for more information.

4.3 How do I report a bug?
A: If you have identified a bug or flaw in the OpenJAUS code base, it is important to inform the development team via the OpenJAUS ticket system. Be sure to check that you have the latest version of the OpenJAUS code base as minor releases are continually posted as issues are found and resolved.

4.4 How do I request a new feature?
A: The OpenJAUS development team is excited to hear about ideas, concepts and requests for addition functionality from the JAUS development community. If you have an exciting idea for JAUS and OpenJAUS, please let the development team know via the forums and/or a feature request ticket.

4.5 Why can't I... create a bug ticket or post in the forums?
A: To use the ticket system or post in the OpenJAUS forums, a user is required to register for an account in the Trac system. You can register here.