December 27th, 2008


A hybrid RF/Ultrasonic TDOA object tracker for virtual reality.


You want to track an object in 3D space, wirelessly, with high precision both temporally and spatially. Detection envelop is approx 2m x 2m x 2m.


The object to track contains a tracker transmitter, composed of an RF PSK transmitter and a ultrasonic transmitter, both powered by batteries. When the tracker is on, it continually emits a steady RF signal. The signal phase-shifts every 10ms. At the exact same time the phase shift occurs, the ultrasonic transmitter on the tracker emits an ultrasonic burst of approx 1ms duration.

The receiver is composed of 1 RF receiver and 3 ultrasonic receivers. It first listens for RF carrier from the tracker's RF transmitter. When carrier is present, it listens for phase changes in the RF carrier. On the rising edge of a phase change, it starts three timers (resolution: 1 microsecond) running, and then waits to hear the ultrasonic pulse at each ultrasonic receiver. When the ultrasonic pulse is heard at each ultrasonic receiver, the corresponding counter is stopped. This gives the time of flight from the tracker to each receiver.

The distance from transmitter to each receiver can be calculated from the speed of sound and the time of flight. Sound propagates at approx 340 m/s at standard temp/pressure. This is about 34 cm per millisecond, or 0.34 mm per microsecond. So the spatial resolution should be 1mm no problem. It is worth noting that a 1 MHz crystal hooked up to a 14 bit binary counter (such as the off-the-shelf C4020 or C4060) will, at .34mm per µS, provide a spatial range of 5.5m. A 12 bit counter will only give a spatial range of 1.3m, however the center point of that 1.3m sphere may be moved farther from the receiver by delaying the start of the counter after the phase shift is seen. Each ms of delay will move the center of the sphere 34cm farther away.

Ultrasonic receivers should be arranged in a triangle, pref 1m apart exactly. Once transmitter distance from all three receivers is known, spherical coordinates can be calculated for tracker transmitter. Consider sending only timer values from receiver to host computer, and letting host computer perform math. Computer can also perform spatial averaging to improve precision, compute velocity from consecutive measurements, etc. Receiver units may be placed on the ground in front of the transmitter, or on the wall in front of transmitter. Either should minimize ultrasonic echos, and interference from whatever the tracker is mounted on.

Extension of system to multiple tracker transmitters is left as an exercise to the reader. Ultrasonic TDM, Ultrasonic FDM, or RF id tagging may all be employed.

Reference implementation:

Intended application: A lightsaber video game THAT DOESN'T CHOKE ON A WHOLE BUCKET OF COCKS. (Glares at Nintendo.)