Headtracking mit Freetrack/FSX

Freetrack ist ein unter der GPL stehendes Programm mit dessen Hilfe sich leicht optische Headtracking Systeme aufbauen lassen. Mithilfe einer oder mehrerer Lichtquellen und einer handelsüblichen Webcam lässt sich so die Position eines Gegenstandes (in den meisten Fällen ein Kopf) in Koordinaten umwandeln. Diese Koordinaten gibt das Programm über verschiedene Schnittstellen (etwa TrackIR, SimConnect oder FSUIPC) an andere Programme weiter. Besonders spannend wird das in Kombination mit Computerspielen wie etwa dem Flight Simulator X von Microsoft.

Prinzip

Das Prinzip des Programmes ist sehr einfach: Die Lichtquellen werden von der Webcam aufgenommen, als Punkte im Videostream von der Software erkannt und anschließend mathematisch in 3-dimensionale Koordinaten umgewandelt. Dabei erhält man je nach Anzahl an Lichtpunkten immer mehr Bewegungsfreiraum. Die Köngigsklasse ist die Bewegung in 6 verschiedenen Richtungen (6DOF – 6 degrees of freedom): Gieren (yaw), Höhenwinkel (pitch), Rollen (roll), links/rechts, oben/unten, vorwärts/rückwärts. Damit die Lichtpunkte möglichst gut von der restlichen Umgebung getrennt erkannt werden können, verwendet man meist Infrarot LEDs. Diese Dioden senden Lichtstrahlen auf der für Menschen nicht erkennbaren Frequenz von 880 nm. Mithilfe eines einfachen Filters (siehe unten) lässt sich das für den Menschen sichtbare Licht filtern, während das Infrarot Licht von der Kamera erkannt wird.

Freetrack unterstützt verschiedene Marker-Modi für die man entweder 1 (Single Point mode), 3 (3 Points Clip mode, 3 Points Cap) oder 4 (4 Points Cap mode) Lichtmarker benötigt. Die besten Ergebnisse erzielt man laut Website und Foren mit 3 Leuchtpunkten.

Durch die Kombination aus LEDs und einer handelsüblichen Kamera lässt sich mit Freetrack ein äußert kostengünstiges Headtracking System aufbauen.

Kappe

Die besten Ergebnisse erhält man mit 3 Lichtpunkten. Diese müssen allerdings irgendwie auf dem Kopf montiert werden und da wir Menschen leider weder über passende LED Einschübe noch über eine Gleichstromquelle verfügen, habe ich eine einfache Kappe in ein „LED-Sende-Kappe“ umgebaut. Zugegeben ich bin kein großer Bastler, aber mit der von mir gebauten Kappe erhält man schon sehr gute Ergebnisse.

Die Kappe habe ich mit zwei Eisenstäben (ich hab einen Metallkleiderbügel genommen) verstärkt. Diese werden wie ein Kreuz auf der Kappe befestigt, wobei der aus der Kappe hervorstehende Stab nach oben gebogen wird. Zwei der drei LEDs liegen nämlich auf einer Ebene, während die dritte Diode etwas nach hinten und oben versetzt wird. Die Stäbe habe ich am Ende etwas umgebogen und anschließend mit einem Zwirn und einer dicken Nadel auf der Kappe festgenäht (AUA!). Damit das ganze auch wirklich bombenfest hält, habe ich die Konstruktion an einigen Stellen mit Superkleber verstärkt.

Für die auf der Kappe liegenden LEDs habe ich zwei Sperrholzblättchen ausgeschnitten und mit Kerben versehen. Die Blättchen habe ich unter die Metallstäbe geschoben (wo sie mit den Kerben gehalten werden). Eine zusätzliche Vertiefung dient zur Halterung der LEDs. Die nach oben verschobene LED wird hauptsächlich mit Isolierband und Superkleber gehalten. Eventuell fällt mir hier noch etwas besseres ein.

Die LEDs sind Standard Infrarot LEDs wie man sie etwa bei Conrad günstig bekommt. Mit einem passenden Vorwiederstand versehen hängen sie bei mir nun an einem 9V Netzteil. Leider kenn ich mich auf diesem Gebiet auch nicht gut genug aus um irgendwelche Tips weiterzugeben, die dann möglicherweise falsch sind. Ein paar Informationen finden sich im Handbuch von Freetrack, ansonsten sollte das Internet weiterhelfen!

Damit ich die Kappe leicht ein und ausstecken kann, hab ich die Anschlüsse in Form von Bananenstecker nach außen geführt.

Webcam

Auf der Projektseite von Freetrack findet sich eine Liste mit kompatiblen Webcams, wobe aber eigentlich beinahe jede Kamera funktionieren sollte. Wichtig ist nur, dass die Webcam genügend Bilder pro Sekunde liefert (30 FPS) und der automatische Helligkeitsensor abgestellt werden kann. Da viele Webcams mit einem Infrarot-Filter ausgestattet sind, für Freetrack aber genau diese Infrarotquellen benötigt werden, empfiehlt es sich laut Dokumentation den Filter zu entfernen. Ich hab bei meiner Logitech Webcam allerdings keinen Filter gefunden und da es auch ohne Filterentfernung problemlos funktioniert, auch nicht länger nach einem gesucht. Wer Probleme hat findet im Internet genügend Anleitungen zum Entfernen dieser Filter.

Was ich allerdings schon gemacht habe, ist ein Filter für das vom Menschen wahrnehmbare Licht vorne auf die Kamera zu kleben. Für einen derartigen Filter gibt es verschiedene Möglichkeiten: Hat man den Infrarotfilter entfernt empfiehlt es sich, eine alte 3,5″ Diskette zu zerlegen und ein Stück aus der Datenträgersicht herauszuschneiden. Falls man den Infrarotfilter allerdings nicht entfernt hat, ist es besser 4-6 Lagen Filmnegative zusammenzukleben und vorne zu montieren. Glücklicherweise konnte ich noch ein paar dieser Negative bei alten Fotoschachteln zusammenkratzen, mit beidseitigem Klebeband zusammenkleben und anschließend vorne auf die Webcam kleben.

Freetrack

Hat man die Hardware fertiggestellt, ist es an der Zeit Freetrack von der Projektseite herunterzuladen und zu installieren. Leider gibt es das Programm nur für Microsoft Windows, unter Linux oder Mac würde es mangels anderer, auf Freetrack aufbauender Software, aber wohl auch weniger Sinn machen. Das Programm läuft bei mir anstandslos unter Windows 7 64-bit, obwohl ich in einigen Foren von Problemen mit dieser Windows-Version gelesen habe.

Nach dem Start der Software muss man im Reiter „Model“ die Daten der Kappe (oder der jeweiligen anderen Konstruktion) bekanntgeben. Danach wählt man im Reiter „Cam“ die richtige „Source“ aus (in meinem Fall „USB Video Device“). Unter Screen muss man sicherstellen, dass die Kamera als Rohdaten Bilder im YUY oder YUY2 (nicht MJPG) liefert und das bei einer Auflösung von 320×240 (obwohl prinzipiell auch höhere/geringer Auflösungen funktionieren). Anschließend kann man einen Test starten, in dem man die Schaltfläche „Start“ betätigt. Nun sollte man ein Graustufenbild von sich selbst erhalten. Den Regler „Treshold“ stellt man so, dass man möglichst nur noch die LED-Marker erkennen kann. Diese sollte min einem Kreuz als solche automatisch markiert werden. Rechts unten findet man einen Balken mit farbigen Punkten. Jeder dieser Punkte repräsentiert einen gefunden Marker. Damit Freetrack funktioniert müssen immer genau gleich viele Marker gefunden werden, wie eingestellt wurden. Es dürfen nicht mehr und nicht weniger sein! Weitere Einstellungen, etwa Helligkeit und dergleichen, finden sich hinter dem Button „Camera“. Am besten schaltet man alle Automatiken ab, um nicht plötzlich andere Helligkeitseinstellungen bekommt.

Unter „Profile“ findet man bereits einige Profile für verschiedenste Spiele und kann diese nach belieben noch nachjustieren. Über die Regler unter dem jeweiligen Profil lässt sich etwa eine Verstärkung der Bewegung aktivieren. Das ist dann praktisch, wenn man mit kleinen Bewegungen größere Bewegungen in der 3d-Simulation erreichen möchte.

Alle weiteren Einstellungen findet man im Benutzerhandbuch von Freetrack erklärt.

Wer sich wundert, warum Freetrack immer Abstürzt und danach mit der Meldung „FreeTrack is already running“ aufhorchen lässt, der sollte einen Blick in die Trayliste werfen. Die Anwendung hat die unangenehme Angewohnheit sich nach einigen Sekunden selbst zu minimieren und nur noch mit einem Runden Icon aufzuscheinen.

Flight Simulator X

Der Flight Simulator X verwendet im Gegensatz zu den früheren Versionen nun standardmäßig 3D-Cockpits. Diese sind zwar recht schön anzusehen, allerdings eher nicht so toll zum handhaben. Man kann zwar mittels des Kopfschalters, den man auf vielen Joysticks findet, im Cockpit umherblicken, auf die Dauer kann man sicher aber nicht auf Blicken und Steuern gleichzeitig konzentrieren. Headtracking schafft hier Abhilfe, da man ziemlich natürlich umherblicken kann, ohne irgendwelche Tasten bedienen zu müssen. FreeTrack bringt ein eigenes FSX-Profil mit, dass ich allerdings noch etwas angepasst habe, insbesondere hab ich die Verstärkung vergrößert um leichter das ganze Cockpit überblicken zu können.

Wichtig ist, dass man zuerst FSX startet und anschließend im FreeTrack Reiter „Output“ die Option „SimConnect – Flight Simulator X“ aktiviert. Schon kann der Flugspaß losgehen!

 

  1. dieta sagt:

    Unter “Profile” findet man bereits einige Profile für verschiedenste Spiele und kann diese nach belieben noch nachjustieren. Über die Regler unter dem jeweiligen Profil lässt sich etwa eine Verstärkung der Bewegung aktivieren. Das ist dann praktisch, wenn man mit kleinen Bewegungen größere Bewegungen in der 3d-Simulation erreichen möchte.

  1. Es gibt noch keine Trackbacks für diesen Post!