OpenTracker
Tracking is an indispensable requirement for all kinds of virtual reality (VR) and augmented reality (AR) systems. While the quality of tracking, in particular the need for high performance and fidelity have led to a large body of past and current research, little attention is typically paid to software engineering aspects of tracking software.
What current tracker software provides
- Device Abstraction - Interfaces are defined to provide the same interface for different devices
- Linear Extensibility - It is typically very simple to provide new implementations of the same interfaces to support new devices.
What current tracker software lacks
- support for complex or experimental configurations - non-trivial setups, e.g. requiring combination of data from different sources, have to be coded
- non-trivial geometric modifications - e.g. interpreting the data of one device relative to another
- transparent network access - simple reconfiguration of server devices
- filters for data transformations
- geometric - relocate tracker origin
- semantic - fuse data from two sources
- object-oriented hierarchical extensibility - allowing to add stuff on every level
- simple end user reconfiguration - specification of configuration via graphical tools
Solution - OpenTracker provides ...
OpenTracker is developed to be generic solution to the different tasks involved in tracking input devices and processing tracking data for virtual environments. It provides an open software architecture based on a highly modular design and a configuration syntax based on XML, thus taking full advantage of this new technology. OpenTracker is a first attempt towards a "write once, track anywhere" approach to virtual reality application development. Some features of OpenTracker include :
- a generic data flow network - to describe complex manipulations of data as a series of simple transformations
- based on an object-oriented graph structure
- an extensible C++ class library
- transparent network access
- XML-based configuration
- Flexible event model
- event based : event data is passed through a graph of nodes
- time based : continous functions in time can be configurated and evaluated
Why XML ?
- XML is a meta language for any kind of hierarchical ( graph like ) information
- OpenTracker is based on a regular XML document type definition
- XML standard tools are available for :
- Editing : end users employ a visual editor for creating tracker configurations
- Parsing & Type Checking : a standard XML parser reads the configuration file, checks its consistency, and builds a runtime data structure.
- Documentation : Automatic generation of graphical documentation is easily possible.

A large data flow graph. This figure was automatically created from the XML
configuration file.
Applications
We use OpenTracker in several different setups as our main software for dealing with tracking data. Some Examples (click on the pictures for larger versions).


