The opentrack interface
|Written in||C, C++|
|License||Most all code is under the ICS license|
opentrack is a head-tracking program with built-in support for the FlightGear interface, allowing head tracking data to be sent directly as input data to FlightGear. Licensed as open-source software, opentrack has its roots in the FaceTrackNoIR project, and maintains many of the projects ideas.
Compiling for Linux
Linux users may be disappointed to know that no binaries are provided for opentrack. Luckily, compiling opentrack is a fairly mild process.
The following dependencies are for Debian-based systems, however it should give users of other distros a rough idea of what they will need to hunt for in their own package manager. Users of other distributions are encouraged to expand upon this guide.
|Note While opentrack will build without OpenCV, it will only compile with a very minimal subset of its functionality, making it of little use to the average user who does not have very specific usage requirements.|
Compiling the project is the same as with any cmake project:
git clone https://github.com/opentrack/opentrack cd opentrack/ cmake . make make install
|Note The resulting build output will be placed in the install/ directory. It will not 'install' itself anywhere outside of the current directory.|
FlightGear will not automatically start accepting input from opentrack just because you have it running, because it has not been told to listen for input from opentrack, or what to do with it. In order to remedy this, FlightGear must be configured as follows.
FlightGear must be told how to interpret the data from opentrack and what to do with it. This is done by providing FlightGear with an XML document containing this information. Add the following XML to a file called opentrack.xml in the Protocol/ subdirectory in your $FG_ROOT directory. "If you use ubuntu PPA it should be located in /usr/share/games/flightgear/Protocol/opentrack.xml"
<?xml version="1.0" encoding="UTF-8"?> <PropertyList> <comment> <![CDATA[ Usage: fgfs --generic=socket,in,52,,5542,udp,opentrack ]]> </comment> <generic> <input> <binary_mode>true</binary_mode> <byte_order>host</byte_order> <chunk> <type>double</type> <node>/sim/current-view/x-offset-m</node> </chunk> <chunk> <type>double</type> <node>/sim/current-view/y-offset-m</node> </chunk> <chunk> <type>double</type> <node>/sim/current-view/z-offset-m</node> </chunk> <chunk> <type>double</type> <node>/sim/current-view/heading-offset-deg</node> </chunk> <chunk> <type>double</type> <node>/sim/current-view/pitch-offset-deg</node> </chunk> <chunk> <type>double</type> <node>/sim/current-view/roll-offset-deg</node> </chunk> <chunk> <type>int</type> <node>/sim/current-view/status</node> </chunk> </input> </generic> </PropertyList>
Changing startup options
|Note Proper calibration of your head-tracking setup is crucial for success, it may require lots of experimenting. Also ensure that no other software is trying to use your webcam, that FlightGear is selected as the "Output", and that your tracking is running before launching FlightGear|
A generic quickstart video demonstrating the usage of opentrack can be found below.