VR920 pilote headtracking pour Linux
Comme je l'ai promis dans le développement de pilote VR920 Headtracking voici une version utilisable de mon chauffeur headtracking pour l'iWear Vuzix VR920 pour Linux. Encore une fois je tiens à remercier MalMal des Forums Vuzix, dont le code à partir, j'ai pu apprendre à lire les données du capteur de l'appareil via le port USB. Pour des informations générales sur la façon d'utiliser l'appareil avec Linux, on trouve: Vuzix VR920 avec un son stéréo 3D sous Linux et active .
J'ai réussi à calculer lacet, roulis et tangage à partir des données de l'accéléromètre et magnétomètre (Le dispositif a eu trois de chaque). Ce qui fait un suivi 3DOF possible et vous permettra de regarder autour d'une scène 3D.
Le pilote envoie les données de suivi via le réseau comme UDP multicast , donc de nombreux clients peuvent lire les données, ce qui rend la parallélisation plus possible, c'est à dire, on pourrait utiliser une machine pour le rendu et une autre machine pour les calculs. En plus de cela, l'approche d'envoyer les données via le réseau à fait le langage utilisé pour écrire l'application indépendante de la langue utilisée pour le développement du pilote.
Utilisation:
./vr920-VR920 h [-h] [-?] [-m multidiffusion IP] [-p port de multidiffusion] [-c calibrationfile]
Sur la ligne de commande, vous pouvez spécifier une adresse multicast et un port pour envoyer les données. Si vous choisissez de ne pas définir ces valeurs, le pilote va envoyer les données de suivi à un défaut sane (224.0.0.42:4242). En tout cas, le client en utilisant les données de suivi a pour rejoindre la même adresse avec le même port. Vous pouvez décider de ne pas utiliser le réseau réel, si vous souhaitez utiliser uniquement les données sur la même machine. Dans ce cas, vous pouvez utiliser un réseau de bouclage.
Ajouter l'itinéraire pour l'adresse multicast de l'interface loopback: route add-host 224.0.0.42 lo
Supprimer la route: route del-hôte 224.0.0.42 lo
Après l'exécution du pilote qu'il commence immédiatement à envoyer le trackingdata. Initialement, il commence en mode «silencieux». Vous pouvez activer / désactiver le mode moniteur en appuyant sur la touche M. En mode moniteur du pilote affiche les angles pour lacet, de tangage et de roulis. En appuyant sur la touche C, vous pouvez activer / désactiver le mode de calibrage.
En mode d'étalonnage du pilote affiche la plus grande quantité d'informations, les angles de lacet, roulis et tangage au-dessus des données du capteur normalisé. Ci-dessous des minima / maxima des capteurs sont en cours de calibrage displayed.The travaux similaires pour le conducteur fenêtres, on doit tourner autour de la HMD (avec les pièces latérales ouvertes) jusqu'à ce qu'aucune modification des minima / maxima plus. Ensuite tournez l'appareil vers l'avant (la direction où vous voulez avoir le centre de la vue) et appuyez sur la touche Z pour définir la direction à zéro. Lorsque vous avez terminé de presse de calibrage S pour stocker l'étalonnage pour une utilisation future. Enfin, appuyez sur la touche C pour quitter le mode étalonnage.
Par défaut, l'étalonnage est sauvegardé dans le fichier. VR920 dans la maison des utilisateurs. Vous pouvez spécifier un nom différent en utilisant l'option-c. Si vous le faites ce fichier sera également dans l'accueil des utilisateurs. Pour utiliser soit un fichier de calibration globale, vous devez spécifier le chemin complet commençant par un slash.
Note importante: Lors de l'étalonnage de s'assurer que l'affichage de l'appareil est quelque chose d'affichage Puisque les affichages montrant non seulement un écran bleu influences les données du capteur (au moins avec mon appareil) vous finirez avec un étalonnage erroné d'autre.. Vous pouvez utiliser soit nvidia-settings pour garantir cela.
J'ai décidé de publier le conducteur sous la licence creative non commerciale commune. Vous pouvez télécharger le source complet d'ici: VR920-pilote (source) (625) , un binaire x86_64 partir d'ici: VR920-pilote (binaire x86_64) (435) , ou un binaire i686 partir d'ici: VR920-pilote (i686 binaire) (380) . Plus les formats binaires peuvent être disponibles dans le futur. Vous avez besoin d'libusb, libconfig + + et libcurses installé sur votre système. Libconfig + + est utilisé pour stocker les données d'étalonnage et libcurses pour l'interface utilisateur. Le binaire x86_64 a été construit sur une mise à jour système Gentoo, le binaire i686 sur Ubuntu Hardy. Pour les binaires i686, vous aurez besoin d'installer libconfig + + + ie libconfig 6 _1.3.1-1 d'ici: libconfig + + Si aucun des binaires fonctionne pour vous, vous pourriez avoir à compiler depuis les sources ...
Nouvelle version disponible ici.
Compilation des sources:
Pour la construction du déballage source du zip et cd pour VR920 et exécutez make. Si vous utilisez une distribution binaire basée, assurez-vous d'avoir la version développement des bibliothèques nécessaires installées sur votre système.
Plans d'avenir:
Dans l'avenir, je projette d'étendre le spectateur JPS j'ai publié dans SIV - une visionneuse stéréoscopique jps pour Linux d'utiliser les données de suivi à partir du pilote, donc on peut regarder autour de la scène en tournant la tête.
Mise à jour: Nouvelle version de SIV avec le soutien headtracking est disponible à: SIV-1.0 est sorti
Note:
Si vous aimez le pilote, n'hésitez pas à lier à la www.mygnu.de . Si vous avez développé une application en utilisant les données de suivi fournies par le conducteur s'il vous plaît laissez un commentaire, car alors je ne peux examiner la demande et éventuellement écrire à ce sujet. Pour demander des licences commerciales à nous contacter à info (at) mygnu.de. Eh bien, si vous voulez juste de soutenir notre travail sur MyGNU.de utiliser le bouton Faire un don ![]()
Cordialement
Jürgen






![Valider mon flux RSS [Valid RSS]](http://validator.w3.org/feed/images/valid-rss.png)



































23 mars 2009 à 15:13
Très cool! Je vais devoir essayer ce soir à.
Vous êtes SIV jps spectateur sonne également très intéressant.
J'ai été en utilisant un visualiseur stéréo simple paire pour mes besoins de visualisation. Il ne supporte que les fichiers. Ppm cependant. Je cherchais dans le format jps et trouvé votre site par hasard. C'est mon jour de chance.
http://www-users.cs.umn.edu/ ~ wburdick / geowall / viewer.html
23 mars 2009 à 23:40
J'ai aussi trébuché sur le spectateur que vous avez mentionné, mais puisque la plupart des images stéréo sont au format jps il ne m'a pas statisfy. La seule viever jps pour linux que j'ai trouvé est gqview (avec le patch), mais ce n'est pas un support stéréo quad buffered (nécessaire pour le VR920). Eh bien, et de visualiser la source il ne semblait pas si facile à intégrer dans la visionneuse headtracking (qui je travaille actuellement sur des SIV). Alors j'ai décidé d'écrire SIV ...
De l'autre côté du SIV a des dépendances des bibliothèques beaucoup plus à statisfy ...
J'espère que le pilote fonctionne pour vous. Ce serait bien si vous pouviez laisser quelques commentaires après avoir essayé le pilote, car je ne peux le tester avec mon appareil et «mon» champ magnétique terrestre.
Merci,
Jürgen
Mars 24th, 2009 at 16:04
J'ai essayé le pilote de votre nuit dernière et il semble fonctionner.
J'utilise Debian Sid X86-64 et il construit à partir de votre source.
Je suis heureux de donner une rétroaction. Quel type d'information est utile pour vous? Je ne suis pas actuellement en savoir beaucoup sur magnétomètres ou accellerometers mais je vais regarder.
La nuit dernière, je crois que j'ai vu le mouvement sur tous les axes.
J'ai une machine win2k disponibles qui peuvent être utilisés pour la comparaison avec le pilote Vuzix.
Je n'ai pas utilisé le bien VR920 sur les fenêtres, mais je n'ai jamais été en mesure d'obtenir un calibrage parfait pour le head tracking. Dans le jeu Doom3, si je regarde vers le haut, la vue serait aller un peu à côté aussi. Je pense que le réticule est aussi un shakey peu. Peut-être que d'autres programmes sont mieux ou peut-être je suis juste mauvais à l'étalonnage
.
Je crois avoir lu quelque part que plus coûteux headtrackers HMD ont un autre capteur en plus l'accellerometers et magnétomètre. Gyroscopes?
Je connais un peu C. Je voudrais apprendre à utiliser votre pilote.
Merci pour votre dur travail!
Mars 24th, 2009 at 23:12
Je suis heureux d'entendre le pilote qui fonctionne pour vous. Merci pour les commentaires. Le plus intéressant serait de savoir comment une bonne calibration fonctionne et comment précis et en douceur du mouvement est. Si vous avez des suggestions pour améliorer le conducteur, ils sont également les bienvenus
Eh bien, pour juger de la bonne calibration et comment fonctionne en douceur et précis du mouvement est, il ne sera probablement pas suffisant pour voir les données de la sortie. Meilleur car ce serait une application qui utilise les données de suivi pour la manipulation de vue. Peut-être vous pouvez essayer de construire SIV sur votre machine. Si la version actuelle fonctionne sur votre système (dépendances), la future version avec le support headtracking également. Ainsi, lorsque la nouvelle version est prête, vous pouvez vérifier le mouvement, alors.
Pour apprendre à utiliser le pilote jeter un oeil à l'democlient.cpp fichier source. Il devrait être assez facile à lire.
En bref:
- Créer une socket multicast
- Dans la boucle principale lire la struct TrackingData de la prise
- Fermer la socket lorsque vous avez terminé
La lecture des données à partir d'autres langages de programmation devraient également fonctionner, mais peut être un peu problématique (ie little endian vs big en java). Je devrais peut également fournir un democlient java ...
Jürgen
Avril 5th, 2009 at 16:36
[...] Mise à jour: Mon chauffeur headtracking VR920 est maintenant disponible ici: VR920 pilote headtracking pour Linux [...]
Avril 5th, 2009 at 23:08
La nouvelle version du SIV est disponible dès maintenant, si vous le souhaitez, vous pouvez essayer le pilote avec elle.
Jürgen
Avril 6th, 2009 at 20:48
[...] HMD. Pour cela vous aurez besoin (en plus de l'appareil), le conducteur headtracking, j'ai publié dans VR920 pilote headtracking pour Linux. Vous pouvez regarder une vidéo (demo_siv_headtracking_vr920) de moi en utilisant le spectateur avec permis [...]
Avril 24th, 2009 at 04:57
Salut, Jürgen, je veux essayer votre pilote Linux, mais un lien vers Sorce ne travaille pas aujourd'hui, certaines erreurs php apeared lieu source du pilote.
Avril 24th, 2009 at 09:24
Je suis désolé pour le dérangement. Téléchargement fonctionne à nouveau.
Juillet 16th, 2009 at 11:53
wow comment cool que vous avez écrit ici comment une acess videoeywear VR920 sur linux. Respect ...
Juillet 17th, 2010 at 23:13
Tu m'as fait envie d'acheter un de ces verres.
Merci
30 août 2010 à 08:31
Nice, le conducteur n'a travailler pour vous? Etes-vous construire une application particulière avec le VR920 sur linux?
6 septembre 2010 à 20h35
Bravo pour l'initiative et bon travail!
Je pense à comment faire flightgear et VR920 arriver à un accord (au moins compromis) sur:
- 3D stéréo (je n'ai aucune idée à ce sujet, où dois-je commencer à Flight Gear se openscenegraph nvidia pilote xorg????)
Chef de suivi (pour cela peut-être l'écriture du pilote un "joystick faux» pour recevoir les données de votre pilote envoie ...) -
6 septembre 2010 à 22h33
l'exportation OSG_STEREO_MODE = anaglyphe; l'exportation OSG_STEREO = ON
Septembre 7th, 2010 at 23:21
J'ai essayé flightgear en quad mode stéréo bufferred avec OpenSceneGraph-2.8.2. Cela n'a pas fonctionné (pas d'affichage stéréo et graphiques tort). (Voir le commentaire 2 de http://www.mygnu.de/index.php/2010/03/flightgear-2-0-0-on-gentoo/ ). Travaille stéréo anaglyphes, mais n'est pas la bonne façon pour moi, avec un dispositif comme le VR920 il devrait y avoir un véritable effet stéréo (export = OSG_STEREO_MODE QUAD_BUFFER FGF), qui échoue avec FlightGear. De mes expériences le bug devrait être en OpenSceneGraph ou FlightGear. Je n'ai aucune idée où l'on pouvait commencer à chercher. Je ne soupçonne le conducteur d'être responsable de lui, depuis que j'ai utilisé quad stéréo bufferred dans certains projets de linux (avec et sans OpenSceneGraph) et n'a jamais eu ce problème. Comme je l'écrivais, quand flightgear fonctionne en stéréo Je tiens à mettre en œuvre la fonctionnalité de headtracking pour FlightGear. Il devrait être simple, la même approche que j'ai utilisé dans le SIV, mon spectateur JPS. Obtenir les données à partir du pilote via le socket multicast et l'utiliser pour faire pivoter la caméra osg. Si vous êtes intéressé à la façon dont il fonctionne, regardez la source SIV (VR920TrackingManipulator.cpp). Un pilote de joystick fausse ne peut donner la moitié de l'expérience. A mon avis le problème majeur de la technologie de suivi est qu'il n'ya pas d'interface fabricant indépendant (comme nous avons pour manettes de jeu) pour ça, donc une application doit supporter chaque appareil de suivi séparément. Mais j'ai aussi ne pas avoir une idée par où commencer pour mettre une telle norme sur son chemin. Peut-être si d'autres impliqués dans le développement de pilote de suivi et de lire ce conviennent de travailler ensemble sur elle, cela pourrait être la bonne façon de commencer.
Novembre 5th, 2010 at 02:30
Années [...] Je publié la première version de mon driver linux pour la headtracking HMD VR920 ici. Actuellement je travaille sur une nouvelle version du pilote qui aura le additionnels suivants [...]