Our INS engine software is based on Greensea's openSEA framework and supporting openSEA software modules, including multiple device interfaces, openDEVICE (a sensor fusion and management system), and openINS (a multistate Kalman inertial navigation engine). All applications and software modules link to the openSEA library.
The software in this system is composed of multiple independent software applications. The applications communicate over a UDP-based publish/subscribe messaging model implemented through the Lightweight Communications and Marshalling (LCM) framework. The advantages of this architecture are numerous. Particularly, it allows us to manage the software as small discrete applications that are used throughout our product line. Thus, this development continuously leverages the strengths of our other developments and products, and the developments in this program are instantly realized throughout our other technologies. Importantly as well, this architecture allows us to manage new code separately from proven and mature code, easily isolating bugs and forcing a well-defined software design.
Illustration 1: openSEA INS engine software overview, example configuration.
This architecture provides a comprehensive data logging capability implemented by the openSEA framework. The software allows logging of all raw sensor data and internal UDP traffic. The openSEA post-processing tools enable data playback and synchronize all data so that playback is accurate to real time performance. openSEA's logging capability provides a power development tool as well as a customer support tool because it allows in-depth logging, playback, and post-processing of all system data.
We have designed the architecture utilizing generic message definitions to "normalize" the data passing between each module. Each software module is required to both generate and receive generic message types. This allows the architecture to work with any type of sensor and any type of IMU. It is completely agnostic to the sensor type, manufacturer, or protocol.
All software derives from and links to the openSEA library, libopensea.