Skip to content
schwoere edited this page Feb 19, 2014 · 9 revisions

##1. Startup and overview

This wiki-page will give you a general overview about the submodules of Ubitrack, the required tools and libraries. Afterwards, it is explained how to download, compile and configure the libraries. You can compile Ubitrack for the following target platforms:

  • Windows

  • Linux

  • Android

However, the cross-compilation for Android is only possible on Linux. Because the steps to setup Ubitrack are different for each target platforms, the platform specific details are explained in seperate wiki pages.

##2. Components of Ubitrack as submodules

There are several components represented by repositories which can be added as submodules to ubitrack. These components have to be placed in the <ubitrack>/modules folder. Usually you will need utcore, utvision, utdataflow, utfacade, utcomponents and utvisioncomponents:

Component Description Repository
utvisualization contains a standalone 3D rendering module. Mostly for quick visualizations and debugging https://github.com/Ubitrack/utvisualization.git
utvisioncomponents contains algorithms working on (mostly) camera images. https://github.com/Ubitrack/utvisioncomponents.git
utfacade contains frontend adapters for ubitrack dataflow networks. Also contains the utConsole. https://github.com/Ubitrack/utfacade.git
utdataflow contains the dataflow network and related graph methods. https://github.com/Ubitrack/utdataflow.git
utcore contains fundamental datastructures and algorithms. Needed by all other modules. https://github.com/Ubitrack/utcore.git
utcomponents contains basic dataflow modules. These cover most common tracking and registration cases. https://github.com/Ubitrack/utvisioncomponents.git
directshow contains MS Windows specific directshow framegrabber https://github.com/Ubitrack/directshow.git
buildenvironment contains general build scripts https://github.com/Ubitrack/utvisualization.git

To build Ubitrack from the source code, clone the buildenvironment repository which provides the basic buildenvironment. Afterwards, you can pick the submodules manually or alternatively add all existing components at once by executing a script. The target specific instrustuctions will be explained in the appropriate platform section.

##3. Required tools

In order to build ubitrack the following tools have to be installed:

  • Git

  • C++ Compiler like gcc or MSVC

  • Python (at least Version 2.7, e.g. PythonXY )

  • Scons

  • cmake (only required for building OpenCV for Android)

##4. Required libraries

Ubitrack is based on the following libraries:

Mandatory

Optional

These libraries have to be downloaded and configured. In order to configure them, there exist three possible ways, the first uses the Ubitrack library finder which needs all the libraries in one specific folder and represents the fastest way. The second, configures the libraries by the command line and gives you the ability to set different paths for each library. In the third method, each possible configuration and path is manually set by editing a textfile which is automatically generated if you have chosen the first or second method.

###4.1 Ubitrack library finder

Ubitrack is able to find the libraries and set the paths to the header and lib-files automatically. Therefore, the libraries have to be placed in a specific folder structure that looks like this:

<LibrariesDirectory>/[linux|windows|android]_[x64|x86]/LibraryName/[bin|include|lib|lib_debug]. 

An example for windows would be:

external_libraries\windows_x64\boost
external_libraries\windows_x64\boost\include
external_libraries\windows_x64\boost\lib
external_libraries\windows_x64\boost\lib_debug

As already mentioned, the steps to be taken in order to compile Ubitrack differ for each target platform. Therefore, have a look at platform specific description for the target platform of your choice:

Ubitrack Compilation for Windows

Ubitrack Compilation for Linux on Linux

Ubitrack Compilation for Android on Linux

Clone this wiki locally