Main Page | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

arlib.jpg

The Augmented Reality Toolkit

Version 1.0

Introduction

The ARLib toolkit is a collection of classes that aid in the production of augmented reality applications.

The toolkit has been designed so that it is easy to use and implement. The toolkit uses OpenGL and Glut, but the functionality of these libraries has been encapsulated within the ARLib routines. This means the developer can concentrate on writing the AR code without worrying about setting up the display and graphic environment.

The toolkit also manages the video sources, whether from a single image, a sequence of images or a DV/Web camera. (Note, the LINUX version of the ARLib does not currently support IEEE1394/firewire devices).

The functionality of the AR applications are totally configurable through configuration files. All custom AR applications developed will automatically use the many available options. Custom AR applications can easily extend the available options with very little code.

Features of the ARLib...

Installation

LINUX

The ARLib library has the following dependencies. These should be installed (if not already) prior to building ARLib.

There is a Makefile in the root of the ARLib folder. Type 'Make' to compile.

After a successful compilation, 'libAR.so' can be found in the lib folder. For other application to see this file, it should be moved to a folder that is in the path or in the LD_LIBRARY_PATH system variable. Alternately, the LD_LIBRARY_PATH can be updated to include the ARLib/lib folder.

WINDOWS

The ARLib library has the following dependencies. These should be installed (if not already) prior to building ARLib.

Within the ARLib folder, there is a vcc folder which contains a c++ Visual Studio .Net project and solution files. Once loaded into Visual Studio, select the build option. This will create the file 'AR.lib' in the ARLib/lib folder.

Getting Started

The simplest way to get started is to create an AR application that just uses all the built in functionality of the ARLib.

The following code shows the bare minimum code needed to create a full blown AR application.

        #include <arlib.h>
        #include <arapplication.h>
        #include <arappbase.h>

        using namespace ARLib::Application;

        int main(int argc, char *argv[])
        {
                ARApplication<ARAppBase> app(&argc, argv);
                app.Run();

                return 1;
        }

The main classes used in ARLib, are the ARApplication template class and the ARAppBase class. It is the ARAppBase class (or class derived from ARAppBase) that controls the functionality of the application. To create custom functionality, a class should be derived from the ARAppBase class. The new class name should then be used in the ARApplication<yourclassname> app definition. See the examples Clock and Pong for custom implementation code.

IMPORTANT - All ARLib derived applications require a config folder that contains the configuration options. ARLib comes with a config folder containing preset options, this folder can be copied to the location of the relevant AR application executable.

There are three supplied configuration files...

default.conf
This contains all configurable options for the application including display parameters, startup options, segmentation and pose parameters. The supplied config file contains upto date comments for each option.

markers.conf
This contains the identification parameters for each marker. This file will rarely be modified unless new marker definitions are created.

models.conf
This file contains the Obj/Marker associated parameter. This file enables an Obj file to be assigned to a marker Id. The default functionality of ARLib will replace the detected marker with the Obj model.

All ARLib applications have a base set of interface function keys. To view the available keys and command-line switches, use the -? or -help switch e.g.

        progname -help

Examples

Three examples are provided to show how ARLib can be used. The source for the examples can be found in the examples folder.

BasicApp.jpg

BasicApp

The BasicApp uses no custom AR code and therefore uses the ARLib's ARAppBase implementation.

Clock.jpg

Clock

The Clock uses custom implementation to augment a ticking clock.

Pong.jpg

Pong

The Pong uses custom implementation to augment the classic game of Pong.
Generated on Wed Aug 31 18:01:39 2005 for ARLib by  doxygen 1.3.9.1