Free Track

Plugins » Free Track

Free Track protocol is used by a few different tracking devices. Now BAM supports it. This protocol has one important flaw. Every time you start tracking, a new coord system is set. It means, that when you start tracking program second time point (0,0,0) reported with this protocol may be in a different place than after first start of tracking program. So for example, after restart of computer BAM calibration previously done in "3 point" setup is no longer valid.
To avoid repetition of calibration BAM  uses a different approach to setup.
Here is an example how to set it up with FaceTrackNoIR and FaceAPI.

1. Setup of FaceTrackNoIR.

  • Go to this site, download program and install it: http://sourceforge.net/projects/facetracknoir/
  • Select Tracker Source : FaceAPI;
  • Click "Curves" (left/bottom), switch tab to "Translations" and press Reset buttons for all 3 axis. It is required, because FaceAPI returns coords in cm and BAM don't need to scale it.
  • Select Game protocol to "FreeTrack 2.0";
  • Press Start and test how it works;
  • Look at "Shortcut keys", here are 2 important keys: Center (default set to "Home" key) and Start/Stop (default set to END key). During setup in BAM, you will have to use "Center" key.

NOTICE. You will have to start tracking before you start BAM/FP.

[optional] You can disable cam move filtering in BAM and use filtering in this program.

  • In BAM menu go to [Config] - [Player Tracking] and under Cam move smoothing set mode to "none";
  • In FaceTrackNoIR: In Global Setting select Smoothing samples number: from 1 to 4;
  • In FaceTrackNoIR: Select Filter: Accela filter mk2. You can modify filter settings;

 

2. Start BAM/FP and configure [Reality] menu.

  • Set display size;
  • Select units: inch or cm;
  • Select mode: Cab or Desktop;
  • Set Cab dimmensions or display angle in Desktop mode (angle =0 is good easy choice).


3. Select Free Track plugins.

  •  Set base camera position. You will have to put your head exactly in this place and press "Center" key for FaceTrackNoIR. Easy way for Cab is to set "X=0, Z=0, and Y=know distance above CAM edge" of cab. For desktop do somthing similiary: X=0, Z=known distance from display, Y=half of display height if you sit exactly at front of display;
  • If you don't forget to start tracking in FaceTrackNoIR, put your have on "base cam position" and press "Center" key;


Tracking should work now.

4. Set filtering in BAM.

Go to [Config]->[Player Tracking] and try to find right filtering 

NOTICE.
I tested this method with my "apple in-sight" cam in my notebook and with unmodded PS3Eye cam on my "pseudo" cab. Results are very close to Kinect. Please note, that different cams have different FOV. My PS3Eye cam works perfect in "narrow" lens setting. With "wide" lens setting my move in real world was ~20% bigger in game. To eliminate this, you can change "curves" for translations in FaceTrackNoIR.

5. In Free Track plugin, you can set rotation of tracked axis.

For example in my "cab" test, I put camera few inches below my head level and camera "looks" a little UP. To compensate it, I set X axis rotation to: -10 deg.

This was an example of Free Track for FaceAPI (face detection). You can use this plugin to trace IR leds same way as any Free Track game.
Also there is a way to use Augment Reality (AR) marker (see open track project: https://github.com/opentrack/opentrack ).

Because Free Track works really well, old Simple Cam/PS3Eye, Desktop Cam/PS3Eye plugins are no longer in Plugins directory of recent Bam releases. They still work.

I did not test OpenTrack. But it can trace AR marker. It may work better than face detection.

------------------------------------
CONGRATULATIONS. You are almost at end of this looong post
------------------------------------

Please rememeber, FaceTrackNoIR and OpenTrack are really good useful projects. They have their own authors. You can find "donate" buttons on these two sites:

http://sourceforge.net/projects/facetracknoir/
https://github.com/opentrack/opentrack/