Infrared Stereotracking with Arduino


This project implements a cheap and simple infrared stereo tracking system with consumer hardware. The Nintendo Wii Remote Controller contains a high framerate (200Hz, possibly more) infrared camera. The camera is connected via I2C and already has a four point blob-tracking implemented on its chip. That makes it an ideal device for cheap and simple ir-tracking applications. For a stereo tracking system, two cameras are needed. The straightforward way is to take them out of the Wiimotes by hand. The camera module resides in a small metallic case. One way is to break that case open and resolder the module to new wires. Another way is to remove the whole case.

Two Pixart ir camera modules from Nintendo Wiimotes
Two Pixart ir-camera modules from Nintendo Wiimotes

Connecting such a camera to an Arduino board is pretty straightforward. A ~25MHz Oscillator is needed as clock input for the camera. Connecting multiple cameras at the same time requires additional hardware. All cameras use the same I2C hardware address. There are IIC multiplexers available to drive a larger number of I2C devices. For this project a CD4053BCN analog multiplexer is sufficient.

Arduino Mega with wiring to the cameras
Arduino Mega with wiring to the cameras

For a convenient setup the two camera modules are connected with long flexible wires and stored inside some small pvc pipes. Caps for the pipes can be used to hold the original ir-filter from the Wiimote. The camera housings are mounted with pipe brackets to another pvc pipe so they can be rotated to change the covered area.

So far the Arduino board is used to switch between the cameras and read the position of the up to four blobs that have been detected. The data is transfered via serial interface to a Java application where the camera calibration and tracking calculation is done.  For the calibration the calculation of the epipolar geometry via 8 known correspondences between camera images is sufficient.

This project has been put on hold when Microsoft released its Kinect Camera System. At a future time the hardware and software will be upgraded and reused in a new project. Current plans are to create a larger camera array and handle calibration and tracking completely in hardware.