Dies ist eine alte Version des Dokuments!


6DOF Motion Tracking mit Polhemus G4

Beitrag von Daniel Fütterer

Abstract: Beschreibung des elektromagnetischen Motion Tracking Systems G4 des Herstellers Polhemus und dessen Software.


Das Polhemus G4 System erlaubt das Tracking von Positions- und Orientierungsdaten über magnetisch arbeitende Sensoren. Sender werden im Raum platziert und eingemessen/kalibriert, die Sensoren am zu messenden Objekt befestigt und an kabellose und tragbare Hubs angeschlossen. Diese übertragen die Daten an den PC, der wiederum diese Daten auswerten oder (wie in unserem Anwendungsfall) ins Netzwerk streamt, was beispielsweise mit der Befehlszeilenanwendung „g4export“ von einem Linux-System möglich ist. Eine Beschreibung und Bedienungsanweisung dieser Anwendung kann dem zugehörigen Abschnitt dieses Artikels entnommen werden.

Die Software des Herstellers läuft auf Windows und Linux, ist via kodiertem UDP-Export kompatibel mit der Spiele-Engine Unity und besteht jeweils aus mehreren Komponenten für Registrierung, Kalibrierung, Monitoring und Übertragung (z.B. mit Named Pipe oder UDP). Darüber hinaus sind große Teile der Software Open Source, was die Entwicklung individueller Tools ermöglicht.

Unter Linux gibt es eine Suite aus mehreren Programmen:

g4devcfg: Proprietäres Tool zur Konfiguration der Polhemus-Hardware (Dongle und Hub)
g4track_lib: Bibliotheken zur Verwendung mit den anderen Programmen
createcfgfile: Programm zur Erstellung der Config-Files (Aufstellung der Hardware)
g4display: Grafische Anzeige der Sensor-Position und -Orientierung
g4term: Textuelle Ausgabe der Sensor-Daten
g4export (Entwicklung von Janis Streib): Kommandozeilenprogramm zur Übertragung der Sensordaten via OSC


Angewendet wird die Software in Kombination mit Programmen wie Max/MSP oder PureData, die in der Lage sind, den OSC-Stream der Sensordaten auszulesen und zu verarbeiten.

Eine Beispielanwendung wird im Projekt des Studenten Lukas Körfer realisiert: Speaking Objects.

Eigene Software Entwicklungen: Max-Patches

Weitere Entwicklungen von Janis Streib (inkl. Anleitungen):


Für weiterführende Ressourcen, siehe Menüeintrag zu Polhemus unter „Ressourcen“ (Nextcloud)


Vergleich verschiedener Motion Tracking Systeme

Link (extern)


Demo Videos

Pilot-Test zur Verwendung der G4export Software (Janis Streib) auf einem Raspberry PI zur Kontrolle eines Virtuellen Mixers über OpenSoundControl.

Proof-of-Concept: Verwendung des G4 Systems zur Kontrolle des Avatars (Headtracking) für die Applikation Binauralix.


Offizielle Videos des Herstellers

Hinweis: externe Links zu YouTube







g4export

Beschreibung

Hierbei handelt es sich um eine Befehlszeilenanwendung für Linux, mit welcher es möglich ist, die Tracking-Daten, die von einem Linux-Computer durch einen G4 Hub empfangen werden, direkt in ein Netzwerk zu streamen. Diese Anwendung kann beispielsweise dann essenziell sein, wenn die Tracking-Daten auf einem MacOS-System Verarbeitet werden sollen (wie zuvor beschrieben wurde, läuft die Polhemus G4 Software nur auf Windows und Linux). Ein Projekt, bei welchem aus diesem Grund die Anwendung g4export zum Einsatz gekommen ist: Speaking Objects.

Bedienungsanweisung

Nach der erfolgreichen Installation auf ein Linux-System, wird man dazu aufgefordert, die Anwendung in folgendem Format in der Befehlszeile auszuführen:

./g4export <g4c configuration file> <osc sink address> <osc sink port> <polling period>

g4c configuration file beschreibt die Polhemus „Source Configuration File“, welche die Endung „.g4c“ besitzt. Diese File sollte für jeden neuen Aufbau individuell erstellt werden, weil hier unter anderem Angaben zu den verwendeten Transmittern und deren Positionierung und Orientierung zueinander gemacht werden muss. Diese File kann mit der zuvor erwähnten Anwendung „CreateCfgFile“ erstellt werden.

Bei der osc sink address handelt es sich um die IP-Adresse des Computers an welchen die Nachrichten mit der g4export-Anwendung übermittelt werden sollen. Für die Übertragung müssen sich beide Computer im selben Netzwerk befinden (also entweder kabelgebunden oder kabellos mit dem selben Router verbunden sein). Die IP-Adresse, die dem Empfänger-Computer in diesem Netzwert zugewiesen wurde, muss also hier beim Sender-Computer angegeben werden.

Für den osc sink port kann eine Zahl frei gewählt werden (empfehlenswert über 1000, da viele Zahlen darunter für andere Kommunikationen im System reserviert sein können). Wenn nun beispielsweise bei g4export als Port 1100 angegeben wird und die Nachrichten auf dem Empfänger-Computer in der Anwendung Max/MSP empfangen werden soll, so müsste bei der Verwendung des „udpreceive“-Objekt ganau dieser Port (also in diesem Fall 1100) als Argument angegeben werden.

Bei der polling period handelt es sich um die Zeitintervall in Millisekunden, in welchem g4export die Tracking-Daten vom G4 Hub aktualisiert. Empfehlenswert wäre hier beispielsweise 16 ms.