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.
Compiling
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
Download the GLRepository and RobotPose project folders from SVN (svn+ssh://tanglefoot.cs.byu.edu/TAI_Repository).
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:
http://stackoverflow.com/questions/1356653/multiple-compiling-errors-with-basic-c-application-on-vs2010-beta-1
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
Kinect
Download and install the latest versions of OpenNI and NITE from openni.org
Download and install the latest (probably unstable) version of SensorKinect that is compatible with the version of OpenNI and NITE you installed from
https://github.com/avin2/SensorKinect
Download the Kinect source folder from the TAI_Repository.
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)
Build the Kinect libraries and link them to the interface
Wiimote
Download and install the Windows SDK 7.1 and WinDDK (latest version)
Download the qWiimote source folder from the TAI_Repository
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)
Build the qWiimote libraries and link them to the interface
Troy Driver
Download the source for Qt (you need the file qwineventnotifier_p.h)
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.)
Download the TroyDriver source folder from the TAI_Repository
Build the TroyDriver libraries and link them to the interface
Deployment
Dependencies
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.
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
Back to top