WiiciTrackLib

WiiciTrackLib is a companion library for WiimoteLib, that facilitates Three Degree of Freedom (3DOF) infrared (IR) point tracking, for up to four points via  use of two Nintendo Wii Controllers.

How WiiciTrackLib Works

Inspired by the works of both nebulus and Ghannoum, WiiciTrackLib performs ray intersection calculations to approximate the position of IR points within 3D space.

During calibration two planes are defined which represent the front and back faces of a cube in 3D space. Planar Homography is then used to find the correspondence between the Wiimote(s) camera pixels and the defined cube, by utilizing a similar method as demonstrated by Johnny Lee within his Whiteboad application.

Once both planes have been defined, they can then be used to determine the start and end points of a viewing ray from the Wiimote(s) to the IR source via the intersection of each plane:

Ray One: P1 -> P2 (Front Left Point -> Back Left Point)
Ray Two: P3 ->P4 (Front Right Point -> Back Right Point)

With these two rays,  an intersection calculation to determine the location of the point in 3D space is then performed. For more information on ray intersection check out this link as detailed by nebulus.

For an additional and great explanation of the approximate method used for the implementation of WiiciTrackLib check out Nick Bridle’s demo of 3D IR Point Tracking. It’s well worth a look.

Why Use This Method?

The library has been implemented to be environmentally sensitive so that robust and accurate tracking performance can be achieved without the need for “clinical” preparation and calibration, by catering for common issues such as physical measuring inaccuracies, errors and distortion.

Other advantages include both affordability and availability.

Where Can I Get WiiciTrackLib

Version 2.o of WiiciTrackLib is available here. Included with the download is an example application file that demonstrates all the 3DOF functionality that the library provides.

Please note that the download for WiiciTrackLib is awaiting supervisor approval.

How Do I Calibrate And Use WiiciTrackLib

The following videos detail the primary operations and functionality of the library:

  1. Defining and testing the Viewing Area.
  2. Calibrating the System.
  3. Accessing the Data

The full play-list of WiiciTrackLib related videos can be found here.

Is There Anything Else I Need

I would highly recommend use of a calibration cube to set up the system. Details of the cube(s) which I currently use for setting up the system can be found here.

You might also want to think of building your own IRO-USB-R Glove or some Finger-Mice for full on hand tracking applications ;) However any old source of IR should surfice.