View on GitHub

Hedrot

Open-Source Head Tracker

Download the current mac distribution Download the current win distribution

What is hedrot?

Hedrot (for "head rotation tracker") is a low-cost (around 25 euros with a teensy LC) and efficient open-source hardware/software solution for head tracking. Hedrot is especially suitable for binaural rendering (3D-Audio on headphones), and has been initially designed for use with the binaural renderer Bipan as part of the Bili Project.

Hedrot provides an estimation of the rotation of the sensor (thus of the head if the sensor is attached to headphones) for the most usual x-y-z coordinate systems, either as a quaternion, or as a set of 3 orientation angles yaw, pitch and roll with two different orders (yaw-pitch-roll or roll-pitch-yaw). The main application provided with the distribution, hedrotReceiver, sends this information as OSC streams, with the extra possibility to scale each stream independently.

Contrary to several generic open-source head tracking solutions, hedrot relies on and has been optimized for specific widely spread and efficient hardware parts, i.e. a Teensy 3 board (optimized Arduino-like board) combined to a IMU/MARG daughter board with 3 common sensors (Analog Devices ADXL345 accelerometer, Honeywell HMC5883L magnetometer and Invensense ITG-3200 gyroscope).

The estimation algorithm is based on a modified version of the precise and efficient open-source gradient descent algorithm from Sebastian Madgwick. The technology was dramatically optimized for speed: the head tracker can deliver data at a rates up to 2 kHz. The hardware latency of the Teensy board and USB communication relies below 2 ms. The overall latency (including sensor latency and time constant of the algorithm) relies between 25 and 45 ms.

The Bipan binaural renderer with the Head Tracker Hedrot on top of the headphone

How to use hedrot?

Hedrot can be used with any renderer or plugin that accepts OSC input for the rotation information (either yaw/pitch/roll or quaternion).

The free binaural VST plugin Mybino, developed by the Ecole Polytechnique's Center for Applied Mathematics (CMAP), is strongly recommended (for Mac and PC). It offers an efficient and precise binaural rendering and works perfectly with hedrot. The user manual from hedrot explains how to connect it to mybino, and a corresponding preset is provided.

hedrot has been also succesfully tested with:

Correspondings tutorials are included in the user manual from hedrot.

Download hedrot distribution

Current version: 1.2.2

Previous versions

See here to access all versions of hedrot

Further Developments

The next developments and research include among others: Contributions to help developing this collaborative project further are warmly welcome. Please contact Alexis Baskind for proposals and questions.

Licensing and Credits

The first development phase of Hedrot has achieved in collaboration with the Conservatoire National Supérieur de Musique et de Danse de Paris (http://www.conservatoiredeparis.fr/) as part of the "Bili" project (http://www.bili-project.org/).

Hedrot is licensed under the terms of the GNU General Public License (version 3) as published by the Free Software Foundation.

Matthieu Aussal (CMAP - Ecole Polytechnique / CNRS) contributed to new calibration routines (version > 1.2)

Part of code is derived from Sebastian Madgwick's open-source gradient descent angle estimation algorithm (http://x-io.co.uk/open-source-imu-and-ahrs-algorithms/)

Developers and Contributors

Hardware Requirements

Head tracker parts:

Software Requirements

Extra Requirements for building from sources: