Before we Begin

While we will try to keep the information on this page up to date, it is also possible that at times some of these instructions will be slightly modified, so try to understand what is going on as you work this out, and hopefully compiling isn't too big of a hassle.


Setting up the Build Environment

Building the TiLAR Interface has several options. It is possible to build only the raw and basic interface with mouse based control, and to add to that support for the Kinect, support for the Wiimote, and support for driving the physical Troy robot. I'll start with the basic environment, and then explain how to add on the other features.

TiLAR Interface

  1. Download the GLRepository and RobotPose project folders from SVN (svn+ssh://
  2. Set the following environment variables to modify the build, and locate includes and directories:
  • ROBOT_POSE_INCLUDE - Include path for the RobotPose library
  • ROBOT_POSE_LIB - Path to directory of the RobotPose library
  • KINECT - If not empty, enables building with Kinect support
    • KINECT_INCLUDE - Include path for Qt Kinect library
    • KINECT_LIB - Path to directory of Kinect library
    • OPEN_NI_INCLUDE - Include path for OpenNI (usually set by OpenNI installer)
    • OPEN_NI_LIB - Library path for OpenNI (usually set by installer)
    • NITE_INCLUDE - Include path for NITE. Ex: C:/Program Files/PrimeSense/NITE/Include
    • NITE_LIB - Path to NITE library. Ex: C:/Program Files/PrimeSense/NITE/Lib
    • NITE_LIB_NAME - Name of NITE library file (version number is in the name, so this must be specified). Ex: XnVNITE_1_4_1.lib
  • WIIMOTE - If not empty, enables building with Wiimote support
    • WIIMOTE_INCLUDE - Path to qWiimote includes
    • WIIMOTE_LIB - Path to qWiimote library
    • WINDOWSSDKDIR - Path to Windows SDK 7.1. On my machine, the default path is to the 6.0A version of the SDK, but for the Wiimote to work, you must use version 7.1, so make sure to change it. Ex: C:/Program Files/Microsoft SDKs/Windows/v7.1
    • VCINSTALLDIR - Path to the Visual C 9.0 installation. Ex: C:/Program Files/Microsoft Visual Studio 9.0/VC
    • WINDDK_DIR - Path to the root installation of the Windows Driver Development Kit. Ex: C:/WinDDK/7600.16385.1
  • TROY_DRIVER - If not empty, enables building with support for driving Troy
    • TROY_DRIVER_INCLUDE - Path to include files for TroyDriver/TroyInterface
    • TROY_DRIVER_LIB - Path to TroyDriver/TroyInterface library
    • QEXTSERIALPORT_INCLUDE - Path to QExtSerialPort includes
    • QEXTSERIALPORT_LIB - Path to QExtSerialPort library
    • QTSOURCE_DIR - Path to the source of Qt4.7. This is required for QExtSerialPort, as it accesses some private structures in Qt's interals.

One Source of Major Errors

With the Windows DDK installed alongside Visual Studio 10, depending on the order the headers are included you might see hundreds of strange compile errors. Things in stddef.h, stdio.h, etc. Here's a site explaining what to do:

In short, go to WinDDK/<version number>/inc/api/ and rename sal.h to sal.disabled or something similar. This will force the compiler to use the correct version of the file, which is in Visual Studio's include path, not the Win DDK.

Other Components


  1. Download and install the latest versions of OpenNI and NITE from
  2. Download and install the latest (probably unstable) version of SensorKinect that is compatible with the version of OpenNI and NITE you installed from
  3. Download the Kinect source folder from the TAI_Repository.
  4. Configure the paths in the .pro file to find NITE (some settings might be modifiable via build environment variables I think. Double check the .pro to make sure)
  5. Build the Kinect libraries and link them to the interface


  1. Download and install the Windows SDK 7.1 and WinDDK (latest version)
  2. Download the qWiimote source folder from the TAI_Repository
  3. Configure the paths in the .pro to find the WinDDK and the right version of the Windows SDK (on my machine the default was pointing to 7.0A, which wouldn't work for some reason on mine)
  4. Build the qWiimote libraries and link them to the interface

Troy Driver

  1. Download the source for Qt (you need the file qwineventnotifier_p.h)
  2. Copy the qwineventnotifier_p.h file from \QtSource4.7\src\corelib\kernel to \QtSDK\Desktop\Qt\4.7.3\msvc2008\include\QtCore\private folder (or similar, if using a different compiler toolchain, etc.)
  3. Download the TroyDriver source folder from the TAI_Repository
  4. Build the TroyDriver libraries and link them to the interface



These files must be present in the .exe directory, or somewhere where the deployed demo can find them from the PATH for deployment to work.

  • QtCore (QtCore4.dll)
  • QtGui (QtGui4.dll)
  • QtOpenGL (QtOpenGL4.dll)
  • Phonon (phonon4.dll)
  • *.intermediate.manifest (Not sure exactly why or what this is, but it must be in the same directory as the .exe for a deployed demo to work)

Optional Dependencies for Kinect

Note that the versions of OpenNI, NITE, and the SensorKinect driver must all be compatable, which when downloading new copies sometimes means that the required versions of OpenNI and NITE are stable, while SensorKinect requires the unstable. If there aren't any that look compatible, Tanglefoot has a copy of the installers that I used to develop in the '\nobackup\Kinect - OpenNI' folder.

See also: Tyler - Design Documentation

ar/compiling-the-tilar-interface-legacy.txt · Last modified: 2014/08/13 14:51 by tmburdge
Back to top
CC Attribution-Share Alike 4.0 International = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0