OpenJAUS

Getting Started with OpenJAUS

OpenJAUS is a complete C/C++ platform for robotic applications. Many robotics developers can benefit from OpenJAUS as both an educational tool and a platform for the development of their robotic applications. The latest release of OpenJAUS is version 3.3.0 and is based on version 3.3 of the Joint Architecture for Unmanned Systems' (JAUS) Reference Architecture document. It is highly recommended that new JAUS developers obtain a copy of the Reference Architecture and familiarize themselves with it. OpenJAUS is designed to be cross-platform and has been tested on both Windows and Linux and on a variety of computing platforms including x86 and ARM9 processors. The OpenJAUS code base is split into four major packages: libjaus, libopenJaus, ojNodeManager and ojVehicleSim.

libjaus

Libjaus is a library which contains all the defined JAUS data types, messages and entities. This library is written entirely in ANSI standard C99 to more easily facilitate the ability to compile the library for a large variety of targets and operating systems, including embedded systems. Most of the data structures an OpenJAUS developer uses will be found inside libjaus. More details on using JAUS messages from this library can be found in the Sending & Receiving Messages tutorial and in the Creating an Experimental Message tutorial.

libopenJaus

LibopenJaus is a compilation of advanced JAUS functionality. It is also divided into subsections of code:

nodeManager - The Node Manager is a special JAUS component (with component ID 1) which provides three primary services: message routing and JAUS entity discovery, and Node management. The OpenJAUS node manager is a collection of C++ classes which provide a well-defined interface through with a variety of transports are implemented and node and/or subsystem management is handled.

nodeManagerInterface - The OpenJAUS Node Manager Interface provides a set of functionality associated with JAUS components and the communication between a JAUS component and it's local Node Manager. This includes the inter-process communication interface, service connection management (see the Service Connection tutorials for more details on Service Connections [1, 2]) and large message management. The Node Manager interface is written in C.

componentLibrary - The OpenJAUS Component Library is a collection of functionality which comprises a framework for creating, maintaining and using JAUS components with the OpenJAUS code base. The Component Library accelerates development of components by abstracting operating level specific functionality. More details on the component library can be found in later tutorials including Creating a Component and Sending & Receiving Messages. The ojVehicleSim is built on using the component library and provided in the code base as an example.

ojNodeManager

ojNodeManager is an implementation of the OpenJAUS Node Manager class. ojNodeManager provides a console-based interface to the node manager. More details on using ojNodeManager can be found in the tutorial Running ojNodeManager.

ojVehicleSim

The ojVehicleSim is a complete simulated JAUS-compliant vehicle. It consists of the following JAUS components: Primitive Driver, Global Waypoint Driver, Global Position Sensor and Velocity State Sensor. These components are implemented using the OpenJAUS component library and communicate with each other by passing JAUS messages through the Node Manager. More details about running the ojVehicleSim can be found in the tutorial Running the ojVehicleSim.

 

© OpenJAUS.com 2008
All Rights Reserved