Frequently Asked Questions (FAQs)

About OpenJAUS

What does OpenJAUS do?

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.

 

Why should I use OpenJAUS?

OpenJAUS is a proven code base which serves as a reference implementation among a variety of developers. It has been used by many organizations, both commercial and academic, to save thousands of man hours in system development and integration.

 

How is OpenJAUS licensed?

OpenJAUS is licensed under the New BSD License. The full text of the license is shown below:

Copyright (c) 2009, OpenJAUS.com
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of OpenJAUS.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 

What happen to support for Java in OpenJAUS?

OpenJAUS v3.3.x 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.

 

Does OpenJAUS have an Operator Control Unit (OCU) capability?

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.

 

JAUS & Messaging

In the JAUS Message header fields, why is dataSize an unsigned integer and not an unsigned short as in the specification?

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.

 

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?

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.

 

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?

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.

 

How do I create my own JAUS components?

See the OpenJAUS tutorial on Creating a JAUS component.

 

Node Manager

Do I have to have a Node Manager?

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.

 

Do I have to use the OpenJAUS Node Manager?

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.

 

Can I run more than one Node Manager on one computer at the same time?

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.

 

Help / Support

How can I get more help / support?

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!

 

Can I purchase OpenJAUS support for my specific problem / need / feature?

Yes. The OpenJAUS development team can provide professional support for a variety of robotics systems and projects. Contact the team for more information.

 

How do I request a new feature?

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.

 

How do I report a bug?

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.

 

Copyright © 2010 OpenJAUS. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.