VR920 Headtracking-Treiber für Linux
Wie ich in versprach VR920 Headtracking Treiber-Entwicklung kommt hier eine brauchbare Version meiner Headtracking-Treiber für die Vuzix iWear VR920 für Linux. Auch hier möchte ich danken MalMal von Vuzix Forums, aus dessen Code konnte ich lernen, wie die Sensor ausgelesenen Daten des Geräts über USB. Für allgemeine Informationen, wie Sie das Gerät mit Linux zu verwenden siehe: Vuzix VR920 mit Linux und aktiven 3D-Stereo .
Es gelang mir, Gieren, Stampfen und Rollen aus dem Beschleunigungsmesser und Magnetometer-Daten (Das Gerät hat drei von jeder bekam) zu berechnen. Dies macht eine 3DOF Tracking möglich und erlaubt es dir, um sich umzusehen in einer 3D-Szene.
Der Treiber sendet die Tracking-Daten über das Netzwerk als UDP -Multicast , so viele Clients können die Daten, die Parallelisierung mehr möglich macht, dh man könnte eine Maschine für die Darstellung und einer weiteren Maschine für die Berechnung verwendet zu lesen. Darüber hinaus macht die Annäherung an die Daten über Netzwerk senden die Sprache zum Schreiben von der Anwendung unabhängig von der Sprache für die Entwicklung des Fahrers verwendet.
Verbrauch:
./vr920-H VR920 [-h] [-] [-m Multicast-IP] [-p-Multicast-Port] [-c calibrationfile]
Auf der Kommandozeile können Sie angeben, eine Multicast-Adresse und einen Port, um die Daten zu senden. Wenn Sie sich nicht, diese Werte zu definieren, wählen Sie die Fahrer wird die Tracking-Daten auf einen vernünftigen Standard (224.0.0.42:4242) zu senden. In jedem Fall hat der Client, der die Tracking-Daten auf die gleiche Adresse mit dem gleichen Port kommen. Sie können beschließen, die realen Netzwerk zu verwenden, wenn Sie nur wollen, um die Daten auf dem gleichen Rechner zu nutzen. In diesem Fall können Sie verwenden, Loopback-Networking.
Fügen Sie die Route für die Multicast-Adresse mit der Loopback-Schnittstelle: route add-host 224.0.0.42 lo
Löschen Sie die Route: route del-host 224.0.0.42 lo
Nach dem Ausführen der Fahrer es sofort beginnt, den trackingdata senden. Zunächst beginnt es in der "stillen" Modus. Sie können aktivieren / deaktivieren Sie den Monitor-Modus durch Drücken der Taste M. Im Monitor-Modus der Treiber zeigt die Winkel für Gier-, Nick-und Wankbewegungen. Durch Drücken der Taste C können Sie aktivieren / deaktivieren Sie den Kalibrierungs-Modus.
In der Betriebsart Kalibrierung der Fahrer zeigt die meisten Menge an Informationen, die Winkel für Gieren, Stampfen und Rollen über den normalisierten Sensordaten. Unterhalb der Minima / Maxima der Sensoren sein werden displayed.The Kalibrierung funktioniert ähnlich wie der Windows-Treiber muss man sich rund um die HMD drehen (mit der Seite-Stücke offen), bis keine Minima / Maxima Änderungen mehr. Danach schalten Sie das Gerät nach vorne (die Richtung, wo Sie wollen, um die Mitte Ihrer Ansicht nach haben) und drücken Sie die Z-Taste, um die Null-Richtung festgelegt. Nachdem Sie die Kalibrierung abgeschlossen drücken Sie S, um die Kalibrierung für die zukünftige Verwendung zu speichern. Schließlich drücken Sie die C-Taste wieder, um die Kalibrierung zu beenden.
Als Vorgabe wird der Kalibrierung wird in der Datei gespeichert. VR920 in der Anwender nach Hause. Sie können einen anderen Dateinamen mit der Option-c. Wenn Sie dies tun wird diese Datei auch in der Anwender zu Hause sein. Um also einer globalen Kalibrierung Datei zu verwenden, müssen Sie den vollständigen Pfad mit einem Schrägstrich beginnen soll.
Wichtiger Hinweis: Während der Kalibrierung stellen Sie sicher, dass das Display des Gerätes wird die Anzeige etwas Da die Displays nicht nur zeigt einen blauen Bildschirm beeinflusst die Sensor-Daten (zumindest bei meinem Gerät) Sie werden mit falschen Kalibrierung sonst enden.. Sie können also nvidia-settings, um dies sicherzustellen.
Ich beschloss, die Fahrer unter der Creative Common Lizenz nichtkommerziellen veröffentlichen. Du kannst den kompletten Source von hier: VR920-Fahrer (Quelle) (666) , ein x86_64 binary from here: VR920-Fahrer (x86_64 binary) (462) , oder ein i686 binary from here: VR920-Treiber (i686 Binary) (407) . Mehr binären Formaten verfügbar sein in der Zukunft. Sie müssen libusb haben, libconfig + + und libcurses auf Ihrem System installiert. Libconfig + + verwendet wird, um die Kalibrierungsdaten und libcurses für die Benutzeroberfläche zu speichern. Die x86_64 binary wurde auf einer bis zu Gentoo-System, das i686 binary auf Ubuntu Hardy Bisher wurde zu bauen. Für die i686 binary müssen Sie installieren libconfig + + + +6 dh libconfig _1.3.1-1 from here: libconfig + + Wenn keine der Binärdateien für Sie arbeitet, müssen Sie unter Umständen aus dem Quelltext bauen ...
Aufbauend aus der Quelle:
Für den Bau von Quelle entpacken Sie die ZIP-und CD-VR920 auf und führen zu machen. Wenn Sie eine binäre basierte Distribution verwenden, stellen Sie sicher, dass die Ent-Version der benötigten Bibliotheken auf Ihrem System installiert.
Pläne für die Zukunft:
In Zukunft werde ich den Betrachter jps ich in veröffentlichten verlängern planen SIV - eine stereoskopische JPS-Viewer für Linux , um die Tracking-Daten aus dem Treiber zu verwenden, so kann man rund um die Szene durch den Kopf zu drehen suchen.
Update: Neue Version von SIV mit Headtracking Unterstützung ist verfügbar unter: SIV-1.0 freigegeben
Fußnote:
Wenn Sie den Treiber möchte, dann zögern Sie verweisen www.mygnu.de . Wenn Sie eine Applikation entwickelt, mit Hilfe der Tracking-Daten durch den Fahrer bitte einen Kommentar hinterlassen, vorausgesetzt, weil ich dann den Antrag prüfen und kann letztendlich darüber zu schreiben. So fordern kommerzielle Lizenzen kontaktieren Sie uns unter info (at) mygnu.de. Nun, wenn Sie nur wollen, um unsere Arbeit zu unterstützen, verwenden Sie den MyGNU.de Donate Button ![]()
Mit freundlichen Grüßen
Jürgen








![Bestätigen meinen RSS-Feed [Valid RSS]](http://validator.w3.org/feed/images/valid-rss.png)



































23. März 2009 um 15.13 Uhr
Very cool! Ich werde müssen diese heute Abend versuchen.
Du bist SIV jps Betrachter auch klingt sehr interessant.
Ich benutze ein einfaches Stereo-Paar-Viewer zur Ansicht für mich braucht. Es unterstützt nur. Ppm Dateien though. Ich wurde in der JPS-Format suchen und finden Ihre Website durch Zufall. Das ist mein Glückstag.
http://www-users.cs.umn.edu/ ~ wburdick / Geowall / viewer.html
23. März 2009 um 11.40 Uhr
Ich habe auch stolperte über den Betrachter Sie erwähnt haben, aber da die meisten Stereo-Bilder im JPS-Format sind es nicht statisfy mich. Die einzige jps Viever für Linux Ich fand es gqview (mit Patch), aber es bietet keine Unterstützung für Vierfach gepuffertes Stereo (benötigt für die VR920). Tja, und mit Anzeigen aus dem Quelle schien es nicht so einfach, Headtracking in den Viewer (was ich bin derzeit auf für SIV) zu integrieren. Also beschloss ich, SIV zu schreiben ...
Auf der anderen Seite SIV hat weit mehr zu Bibliotheksabhängigkeiten statisfy ...
Ich hoffe, dass der Fahrer für Sie arbeitet. Es wäre schön, wenn Sie ein Feedback hinterlassen könnte, nachdem Sie den Treiber ausprobiert, da ich nur testen kann es mit meinem Gerät und "mein" Erdmagnetfeld.
Danke,
Jürgen
24. März 2009 um 16.04 Uhr
Ich habe versucht, Ihr Fahrer letzte Nacht, und es scheint zu funktionieren.
Ich benutze Debian Sid x86-64 und baute es aus Ihrer Quelle.
Ich bin froh, Feedback zu geben. Welche Art von Informationen ist nützlich für Sie? Ich glaube nicht, derzeit viel über Magnetometer oder accellerometers aber ich werde das prüfen.
Letzte Nacht, ich glaube, ich sah Bewegung auf allen Achsen.
Ich habe eine win2k Maschine zur Verfügung, die zum Vergleich mit dem Vuzix Treiber verwendet werden können.
Ich habe nicht das VR920 viel auf Windows benutzt, aber ich war nie in der Lage, eine perfekte Kalibrierung für die Head-Tracking erhalten. Im Spiel Doom3, wenn ich gerade nach oben schauen, dann wäre der Blick ein wenig auf die Seite als auch zu bewegen. Ich denke, das Fadenkreuz war auch ein wenig zittrig. Vielleicht sind andere Programme besser oder vielleicht bin ich einfach nur schlecht bei der Kalibrierung
.
Ich denke, ich habe irgendwo gelesen, dass teurer HMD Audiofeedback einen anderen Sensor zusätzlich die accellerometers und Magnetometer haben. Gyroskope?
Ich weiß ein wenig C. Ich mag lernen, wie man den Treiber verwenden würde.
Vielen Dank für Ihre harte Arbeit!
24. März 2009 um 23.12 Uhr
Ich bin froh zu hören, der Fahrer für Sie arbeitet. Danke für das Feedback. Am interessantesten wäre zu wissen, wie gute Kalibrierung funktioniert und wie leichtgängig und präzise die Bewegung ist. Wenn Sie Anregungen, wie man den Treiber zu verbessern haben, werden sie auch willkommen
Nun, für die Beurteilung, wie gut Kalibrierung funktioniert und wie leichtgängig und präzise die Bewegung ist, wird es wahrscheinlich nicht ausreichen, um die Daten aus der Ausgabe zu sehen. Am besten für diese wäre eine Anwendung, die die Tracking-Daten für Sicht Manipulation verwendet werden. Vielleicht können Sie versuchen, bauen auf Ihrem Rechner SIV. Wenn die aktuelle Version auf Ihrem System läuft (Abhängigkeiten), wird die zukünftige Version mit Headtracking Unterstützung auch. Also, wenn die neue Version fertig ist, könnten Sie überprüfen die Bewegung, dann.
Für das Lernen, wie Sie mit dem Fahrer einen Blick auf die Quelldatei democlient.cpp. Es sollte ganz einfach zu lesen.
Kurz gesagt:
- Erstellen Sie ein Multicast-Socket
- In der Hauptschleife lesen Sie die struct TrackingData aus der Steckdose
- Schließen Sie die Steckdose, wenn Sie fertig
Das Lesen der Daten aus anderen Programmiersprachen sollte auch funktionieren, aber kann ein wenig problematisch (dh wenig vs Big-Endian-in Java). Vielleicht sollte ich auch eine Java democlient ...
Jürgen
5. April 2009 um 16.36 Uhr
[...] Update: Mein VR920 Headtracking-Treiber ist ab sofort hier: VR920 Headtracking-Treiber für Linux [...]
5. April 2009 um 11.08 Uhr
Die neue Version des SIV ist ab sofort verfügbar, so dass, wenn Sie möchten, können Sie den Treiber mit, es auszuprobieren.
Jürgen
6. April 2009 um 08.48 Uhr
[...] HMD. Dafür benötigen Sie (zusätzlich zu dem Gerät) die Headtracking Fahrer, veröffentlichte ich in VR920 Headtracking-Treiber für Linux. Sie können ein Video anschauen (demo_siv_headtracking_vr920) von mir mit dem Betrachter mit aktiviertem [...]
24. April 2009 um 04.57 Uhr
Hallo, Jürgen, ich Ihrem Linux-Treiber ausprobieren wollen, sondern verlinken auf sorce zurzeit nicht berufstätig ist, apeared einige PHP-Fehler statt Fahrer Quelle.
24. April 2009 um 9:24 Uhr
Es tut mir leid für die Unannehmlichkeiten. Download funktioniert wieder.
16. Juli 2009 um 11:53 Uhr
wow wie cool, dass Sie hier schrieb, wie ein VR920 videoeywear auf Linux acess. Respekt ...
17. Juli 2010 um 23.13 Uhr
Sie machte Lust auf eine dieser Brillen zu kaufen.
Danke
30. August 2010 um 08.31 Uhr
Nizza, hat der Fahrer für Sie arbeiten? Bauen Sie einige spezielle Anwendung mit dem VR920 auf Linux?
6. September 2010 um 08.35 Uhr
Herzlichen Glückwunsch für die Initiative und gute Arbeit!
Ich freue mich über, wie man flightgear und VR920 einer Vereinbarung (mindestens Kompromiss) zu kommen, zu denken:
- 3D-Stereo (Ich habe keine Ahnung darüber, wo soll ich anfangen Flight Gear selbst openscenegraph nvidia Treiber xorg?????)
- Head-Tracking (dafür vielleicht das Schreiben ein »falsches Joystick"-Treiber, um die Daten Ihrer Fahrer sendet empfangen ...)
6. September 2010 um 22.33 Uhr
Export OSG_STEREO_MODE = Anaglyphen; Export OSG_STEREO = ON
7. September 2010 um 11.21 Uhr
Ich habe versucht, in FlightGear Quad bufferred Stereo-Modus mit openscenegraph-2.8.2. Dies hat nicht funktioniert (kein Stereo-Display und falsche Grafiken). (Siehe Kommentar 2 von http://www.mygnu.de/index.php/2010/03/flightgear-2-0-0-on-gentoo/ ). Anaglyphen-Stereo funktioniert, aber ist nicht der richtige Weg für mich, mit einem Gerät wie dem VR920 sollte es wahr sein, Stereo (Export OSG_STEREO_MODE = QUAD_BUFFER FGFs), welche nicht mit FlightGear. Von meinen Erfahrungen sollte der Bug in openscenegraph oder flightgear sein. Ich habe keine Ahnung, wo man anfangen, danach zu suchen hätte. Ich glaube nicht, vermute der Fahrer dafür verantwortlich sein, da ich Quad bufferred Stereo verwendet in einigen Linux-Projekte (mit und ohne openscenegraph) und hatte nie dieses Problem. Wie ich schon schrieb, wenn flightgear arbeitet in Stereo möchte ich die Headtracking-Funktion für FlightGear zu implementieren. Es sollte einfach sein, das gleiche Ansatz, den ich in SIV, meine JPS-Viewer verwendet. Mit den Daten von dem Fahrer über die Multicast-Buchse und verwenden, um die Kamera zu drehen osg. Wenn Sie daran interessiert sind, wie es funktioniert, an der SIV-Quelle (VR920TrackingManipulator.cpp) zu suchen. Eine gefälschte Joystick-Treiber kann nur die Hälfte der Erfahrung. Meiner Meinung nach das größte Problem der Tracking-Technologie ist, dass es keinen Hersteller unabhängige Schnittstelle (wie wir für Joysticks haben) für sie, so dass eine Anwendung muss jeden Tracking-Gerät separat zu unterstützen. Aber ich habe auch nicht eine Idee haben, wo Sie anfangen, eine solche Norm auf den Weg zu bringen. Vielleicht, wenn andere in Verfolgung Treiber-Entwicklung beteiligt dies lesen und stimmen zu, gemeinsam auf sie, könnte dies der richtige Weg, um zu starten.
5. November 2010 um 2:30 Uhr
[...] Jahre veröffentlichte ich die erste Version von meinem Linux-Treiber für die Headtracking VR920 HMD hier. Momentan arbeite ich an einer neuen Treiberversion arbeiten, welche zusätzlich die folgenden haben [...]
8. Mai 2012 um 17.41 Uhr
Ich habe Probleme, um die Quelle auf meinem Ubuntu 11,10 Entsprechendes gibt. Ich installierte alle benötigten Pakete, aber bekomme immer diese Fehlermeldung: http://nopaste.info/d816553a72.html
Können Sie mir sagen was das Problem ist?
8. Mai 2012 um 06.02 Uhr
Hallo fabske,
Ich bin nicht in der Lage dies ausprobieren, da meine einzige Ubuntu-System noch läuft 10.04 LTS. Mit dem 10,04-Version der Treiber kompiliert, aber auch mit einem aktuellen Gentoo Linux. Nun, in der Ventura schlug einen Patch für das Makefile. Ich nehme an, er hat den gleichen Fehler wie du bekommen. So schlage ich vor, um seinen Weg zu versuchen, und melden Sie danach, ob es für Ubuntu 11,10 gearbeitet. Könnten Sie sich auch nach der Ausgabe von pkg-config-Sicherungs-CFLAGS-libs, bitte (es gibt zwei Minus-Zeichen vor der CFLAGS und libs, Ausschneiden und Einfügen aus dem Web-Browser wird nicht funktionieren)?
Jürgen
9. Mai 2012 um 11:35 Uhr
Hallo Jürgen!
Ich weiß nicht genau, wie man flicken, aber wie ich sehe, der Unterschied ist nur:
g + +-Wall `pkg-config-Sicherungseinsätze` CFLAGS-O2-o vrtrack vrtrack.cpp `pkg-config-Sicherungs-libs`-lpthread-LConfig + +-lusb
Wenn ich dies in meinem bash eingeben Ich bekomme immer noch die gleiche Fehlermeldung ..
pkg-config-Sicherungs-CFLAGS-libs:
-D_FILE_OFFSET_BITS = 64 -I/usr/include/fuse-pthread-lfuse-LRT-LDL
Alle: http://nopaste.info/0a7d74e5e8.html
9. Mai 2012 um 12.01 Uhr
Hallo fabske,
versuchen Sie bitte stddef.h gehören. Es scheint die offsetof Makro fehlt, was es wird, definiert werden. Wahrscheinlich wird sie als eine Abhängigkeit auf meinen Systemen enthalten ist oder irgendwo anders, auch definiert. Funktioniert das?
Jürgen
9. Mai 2012 um 01.43 Uhr
In der Tat! Ich musste include # include und das Makefile ändern und jetzt funktioniert es!
Mehr oder weniger .. Ich habe andere Brille, ist mir rief Wrap 920!
Ich wechselte nun die Produkt-ID in der vrtrack.cpp 0x014b sondern erhalte eine Fehlermeldung:
USB-Fehler: konnte nicht gesetzt Config 1: Device or resource busy
Vermutlich die usb_interrupt_read () wird Schwierigkeiten machen?
9. Mai 2012 um 01.44 Uhr
In der Tat! Ich musste einzubeziehen und ändern Sie den Makefile und jetzt funktioniert es!
Mehr oder weniger .. Ich habe andere Brille, ist mir rief Wrap 920!
Ich wechselte nun die Produkt-ID in der vrtrack.cpp 0x014b sondern erhalte eine Fehlermeldung:
USB-Fehler: konnte nicht gesetzt Config 1: Device or resource busy
Vermutlich die usb_interrupt_read () wird Schwierigkeiten machen?
9. Mai 2012 um 13.53 Uhr
Gut zu wissen, dass das funktioniert. Es tut mir leid, aber die Wrap 920 wird nicht vom Treiber unterstützt, noch nicht. Da ich nicht einer dieser Punkte, es gibt nichts, was ich über diese derzeit tun können. Vielleicht kann ich etwas in naher Zukunft zu tun, aber das ist noch nicht sicher. Einmal mehr kann ich es sagen wird, Nachrichten auf dem Blog zu sein.
Jürgen
9. Mai 2012 um 16.48 Uhr
Die Wrap 920 sollte funktionieren, aber es scheint ein Bug zu sein. Alle 3 Sek. die Brille aus-und einschalten
http://micolous.id.au/archives/2011/04/17/vuzix-wrap-920-vga-linux/~~V
Scheint mit der HID-Treiber verwandt werden.