VR920 headtracking controladors per a Linux
Com vaig prometre en el desenvolupament de controladors VR920 Headtracking aquí ve una versió utilitzable del meu conductor headtracking per al Vuzix iWear VR920 per a Linux. Una vegada més vull donar les gràcies a MalMal dels fòrums de Vuzix, del codi vaig tenir l'oportunitat d'aprendre a llegir les dades del sensor del dispositiu a través d'USB. Per obtenir informació general sobre la utilització del dispositiu amb Linux, mireu: Vuzix VR920 amb Linux i en 3D estèreo actiu .
Me les vaig arreglar per calcular la guinyada, capcineig i balanceig de l'acceleròmetre i magnetòmetre de dades (el dispositiu té tres de cada un). Això fa un seguiment de 3DOF possible i que li permeten mirar al seu voltant en una escena 3D.
El controlador envia les dades de seguiment a través de la xarxa com UDP multicast , per tant, molts clients poden llegir les dades, el que fa més possible la paral · lelització, és a dir, es podria utilitzar una màquina per a la representació i una altra màquina per als càlculs. A més d'això, l'enfocament per enviar les dades a terme a través de la xarxa fa que el llenguatge utilitzat per escriure l'aplicació independent de la llengua utilitzada per desenvolupar el conductor.
Ús:
./vr920 h-VR920 [-h] [-] [-m de multidifusió IP] [-p port de multidifusió] [-c calibrationfile]
En la línia d'ordres es pot especificar una adreça de multidifusió i un port per enviar les dades a. Si opta per no definir aquests valors que el conductor li enviarà les dades de seguiment a un valor predeterminat sana (224.0.0.42:4242). En qualsevol cas, el client mitjançant les dades de seguiment ha de unir-se a la mateixa direcció amb el mateix port. Vostè pot decidir no utilitzar la xarxa real, si només voleu utilitzar les dades a la mateixa màquina. En aquest cas, vostè pot utilitzar les xarxes de bucle invertit.
Afegeix la ruta de la direcció de multidifusió de la interfície de loopback: route add-host 224.0.0.42 heus aquí
Eliminar la ruta: la ruta de l'hoste 224.0.0.42 he aquí
Després d'executar el conductor a l'instant comença a enviar el TrackingData. Inicialment s'inicia en mode "silenciós". Vostè pot activar / desactivar el mode de monitor prement la tecla M. En el mode de pantalla del controlador mostra els angle de guinyada, capcineig i balanceig. En prémer la tecla C es pot activar / desactivar el mode de calibratge.
Des del mode de calibratge del conductor mostra la major quantitat d'informació, els angle de guinyada, capcineig i balanceig per sobre de les dades dels sensors normalitzats. Per sota dels mínims / màxims dels sensors està sent calibrat displayed.The funciona de forma semblant a la de controladors de Windows, un ha de girar al voltant de la HMD (amb les peces laterals oberts) fins que no hi hagi canvis mínims / màxims més. Després girar el dispositiu cap endavant (l'adreça on vol que el centre de la vista) i premeu la tecla Z per establir la direcció zero. Un cop hagueu completat la calibració premeu S per guardar la calibratge per al seu ús futur. Finalment, premeu la tecla C per sortir del mode de calibratge.
Per defecte, el calibratge es guarden a l'arxiu. VR920 a la llar dels usuaris. Podeu especificar un nom de fitxer diferent, utilitzant l'opció-c. Si ho fa aquest arxiu també estarà a la casa dels usuaris. Per utilitzar per exemple un arxiu de calibratge mundial ha d'especificar el camí complet a partir d'una barra.
Nota important: Durant el calibratge, assegureu-vos que la pantalla del dispositiu es mostra una mica ja que les pantalles no només mostren una pantalla blava influeix en les dades dels sensors (almenys amb el meu dispositiu) es va a acabar amb el calibratge correctes altra cosa .. Vostè pot utilitzar per exemple nvidia-settings per assegurar això.
He decidit publicar el conductor sota la Llicència Creative comercial comuna. Vostè pot descarregar el codi font complet des d'aquí: VR920-conductor (font) (666) , un binari x86_64 des d'aquí: VR920-controlador (binari x86_64) (462) , o un binari i686 des d'aquí: VR920-driver (i686 binari) (407) . Més formats binaris poden estar disponibles en el futur. Vostè necessita tenir libusb, libconfig + + i libcurses en el vostre sistema. Libconfig + + s'utilitza per emmagatzemar les dades de calibratge i libcurses per a la interfície d'usuari. El binari x86_64 s'ha construït en una actualització del sistema Gentoo, el binari i686 en Ubuntu Hardy. Per al binari i686 haurà d'instal lar libconfig + + + 6, és a dir libconfig _1.3.1-1 des d'aquí: libconfig + + Si cap dels arxius binaris que funciona per a vostè, vostè pot haver de construir des de la font ...
La construcció de la font:
Per a la construcció de la font de descomprimir l'arxiu zip i cd de VR920 i executar make. Si s'utilitza una distribució basada en binaris, segur de tindre la versió de desenvolupament de les llibreries necessàries instal · lades al sistema.
Plans futurs:
En el futur tinc la intenció d'estendre el visor de JPS que vaig publicar en el SIV - un visor estereoscòpic de JPS per a Linux per utilitzar les dades de seguiment des del controlador, de manera que un pot mirar al voltant de l'escena, girant el cap.
Actualització: Nova versió de SIV amb el suport headtracking disponible en: SIV-1.0 llançat
Nota al peu:
Si t'agrada el conductor, si fóssiu lliure d'enllaçar a www.mygnu.de . Si ha desenvolupat una aplicació que utilitza les dades de seguiment proporcionades pel conductor si us plau deixi un comentari, perquè llavors puc revisar la sol · licitud i, finalment, escriure sobre això. Per sol · licitar les llicències comercials contactar amb nosaltres a info (arrova) mygnu.de. Bé, si només vols recolzar el nostre treball en MyGNU.de utilitzar el botó de donar ![]()
salutacions cordials
Jürgen







![Validar la meva feed RSS [Valid RSS]](http://validator.w3.org/feed/images/valid-rss.png)



































23 març 2009 a les 03:13 pm
Molt bo! Vaig a haver de provar això aquesta nit.
Ets SIV visor JPS també sona molt interessant.
He estat utilitzant un visor estereoscòpic simple parell per als meus necessitats de visualització. Només és compatible amb els arxius. Ppm però. Jo estava buscant en el format de la JPS i trobat el seu lloc per accident. Aquest és el meu dia de sort.
http://www-users.cs.umn.edu/ ~ wburdick / geowall / viewer.html
23 març 2009 a les 11:40 pm
També em vaig ensopegar amb l'espectador que vostè ha esmentat, però com la majoria de les imatges estèreo estan en format JPS no em statisfy. El viever només JPS per a linux que he trobat és gqview (amb el pegat), però no és compatible amb estèreo de quatre buffers (necessari per a la VR920). Bé, i de veure la font que no semblava tan fàcil d'integrar headtracking al visualitzador (el que estic treballant actualment en la SIV). Així que em vaig decidir a escriure SIV ...
A l'altra banda de SIV té molt més dependències de la biblioteca per statisfy ...
Espero que el controlador funciona per a vostè. Seria agradable si vostè podria deixar alguns comentaris després que va intentar el conductor, ja que només es pot provar amb el meu equip i "el meu" camp magnètic terrestre.
Gràcies,
Jürgen
24 març 2009 a les 16:04
Vaig tractar de conduir ahir a la nit i sembla que funciona.
Jo faig servir Debian Sid X86-64 i la va construir des del seu origen.
Estic content de donar informació. Quin tipus d'informació és útil per a vostè? Jo no sé molt sobre l'actualitat magnetòmetres o accellerometers però vaig a fer-li un cop d'ull.
Ahir a la nit, crec que vaig veure el moviment en tots els eixos.
Tinc una màquina Win2K disponibles que poden ser utilitzats per a la comparació amb el controlador de Vuzix.
No he utilitzat molt el VR920 a les finestres, però mai va ser capaç d'obtenir un calibratge perfecta per al seguiment del cap. En el joc Doom 3, si hagués de mirar cap amunt, la vista es mou una mica al costat també. Crec que el punt de mira era també una mica de Shakey. Potser altres programes són millors o potser només sóc dolenta en el calibratge
.
Crec que he llegit en algun lloc que headtrackers HMD més cars tenen un altre sensor, a més dels accellerometers i magnetòmetre. Els giroscopis?
Conec una mica de C. M'agradaria aprendre a utilitzar el controlador.
Gràcies pel seu treball dur!
24 març 2009 a les 23:12
M'alegro de sentir que el conductor treballi per a vostè. Gràcies pels comentaris. El més interessant seria saber el bé que funciona el calibratge i la forma suau i precisa que el moviment és. Si teniu suggeriments sobre com millorar el conductor, que també són benvinguts
Bé, per a jutjar les coses bones que les obres de calibratge i com suau i precís del moviment és, que probablement no serà suficient per veure les dades de la sortida. El millor per això seria una aplicació que utilitza les dades de seguiment per a la manipulació de la vista. Potser vostè pot tractar de construir VIS al sistema. Si la versió actual s'executa en el sistema (dependències), la futura versió amb el suport headtracking també ho farà. Així que quan la nova versió estigui llista es pot comprovar el moviment, llavors.
Per aprendre a utilitzar el controlador de fer una ullada a la democlient.cpp fitxer d'origen. Ha de ser bastant fàcil de llegir.
En poques paraules:
- Crear un sòcol de multidifusió
- En el bucle principal llegir l'estructura de la presa de TrackingData
- Tancar el socket quan hagi acabat
La lectura de les dades d'altres llenguatges de programació també haurien de funcionar, però pot ser una mica problemàtic (és a dir, little endian vs gran en java). Potser jo també hauria de proporcionar una democlient java ...
Jürgen
5 abril 2009 a les 16:36
[...] Actualització: El meu xofer headtracking VR920 està disponible aquí: VR920 headtracking controladors per a Linux [...]
5 abril 2009 a les 23:08
La nova versió de SIV ja està disponible, així que si t'agrada, pot provar el controlador de la mateixa.
Jürgen
6 abril 2009 a les 08:48 pm
[...] HMD. Per això es necessita (a més del dispositiu) el conductor headtracking, vaig publicar en el driver per Linux headtracking VR920. Vostè pot veure un vídeo (demo_siv_headtracking_vr920) de mi amb l'espectador habilitat [...]
24 abril 2009 a les 04:57
Hola, Jürgen, vull provar el controlador per a Linux, però l'enllaç de sorce no està funcionant ara, alguns errors del PHP motivava seu lloc d'origen del conductor.
24 abril 2009 a les 09:24
Ho sento per les molèsties. La descàrrega funciona de nou.
16 juliol 2009 a les 11:53
wow el guai que has escrit aquí com un ACESS videoeywear VR920 a linux. El respecte ...
17 juliol 2010 a les 23:13
Vostè em va fer voler comprar un d'aquests gots.
Gràcies
30 agost 2010 a les 08:31
Niça, la qual cosa el conductor treballi per a vostè? Esteu construint alguna aplicació especial amb el VR920 en linux?
6 set 2010 a les 08:35 pm
Felicitats per la iniciativa i bona feina!
Estic pensant en com fer que VR920 FlightGear i arribar a un acord (almenys compromís) a:
- Estèreo 3D (no tinc ni idea sobre això, per on començo vol en si mateix es preparen OpenSceneGraph controlador NVIDIA xorg??)
- Cap de seguiment (per això potser escriure un conductor 'joystick fals "per rebre les dades del controlador envia ...)
6 set 2010 a les 10:33 pm
exportació OSG_STEREO_MODE = anaglifos; exportació OSG_STEREO = ON
7 setembre 2010 a les 11:21 pm
Vaig provar de FlightGear en quad bufferred manera estèreo amb OpenSceneGraph-2.8.2. Això no va funcionar (no apareix res de música i els gràfics incorrectes). (Vegeu el comentari 2 de http://www.mygnu.de/index.php/2010/03/flightgear-2-0-0-on-gentoo/ ). Obres anaglifo estèreo, però no és el camí correcte per a mi, amb un dispositiu com el VR920 no ha d'haver estèreo real (exportacions OSG_STEREO_MODE = QUAD_BUFFER FGF), que falla amb FlightGear. Dels meus experiències l'error ha d'estar en OpenSceneGraph o FlightGear. No tinc ni idea d'on es podria començar a buscar. No sospita que el conductor a ser responsable de la mateixa, ja que utilitza música de quatre bufferred en alguns projectes del Linux (amb i sense OpenSceneGraph) i mai he tingut aquest problema. Com he escrit, quan FlightGear treballa en estèreo que m'agradaria posar en pràctica la funció de headtracking per FlightGear. Ha de ser senzill, el mateix enfocament que vaig utilitzar en el VIS, el meu visor de JPS. Obtenir les dades del conductor a través de la presa de multidifusió i el fan servir per rotar la càmera OSG. Si vostè està interessat en com funciona, veure el codi font SIV (VR920TrackingManipulator.cpp). Un controlador de joystick falsa només pot donar la meitat de l'experiència. Al meu entendre el principal problema de la tecnologia de seguiment és que no hi ha una interfície independent del fabricant (com el que tenim per joysticks) perquè, pel que una aplicació ha de donar suport a cada dispositiu de seguiment per separat. Però també no té una idea de per on començar a posar una norma en el seu camí. Potser si altres persones involucrades en el seguiment del desenvolupament driver, llegiu això i acorden treballar junts sobre el mateix, això podria ser el camí correcte per començar.
5 novembre 2010 a les 2:30 am
[...] L'any que vaig publicar la primera versió del meu conductor headtracking Linux per al HMD VR920 aquí. Actualment estic treballant en una nova versió del driver que tindrà el addicional següent [...]
8 maig 2012 a les 05:41 pm
Tinc problemes Per a compilar la font en la meva Ubuntu 11.10. He instal · lat tots els paquets necessaris, però sempre surt aquest error: http://nopaste.info/d816553a72.html
Em pot dir quin és el problema?
8 maig 2012 a les 18:02
Hola fabske,
No sóc capaç de provar això, ja que el meu sistema Ubuntu només s'està executant 10.04 LTS. Amb la versió 10.04 del conductor compila, així com amb un corrent de Gentoo Linux. Bé, en el Ventura proposa un pegat per al Makefile. Suposo que ha arribat el mateix error que tu. Per tant li suggereixo que tracti a la seva manera, i després, si us plau, informe si ha funcionat per a Ubuntu 11.10. Podria també publicar la sortida de pkg-config fusibles CFLAGS-libs, per favor (hi ha dos personatges menys abans de CFLAGS i biblioteques, tallar i enganxar des del navegador web no funciona)?
Jürgen
9 maig 2012 a les 11:35
Hola Jürgen!
No sé exactament com aplicar el pegat, però com veig la diferència és:
g + +-Wall `pkg-config fusibles` CFLAGS-O2-o vrtrack vrtrack.cpp `pkg-config-libs` fusibles-lpthread-lconfig + +-lusb
Si entro a la meva festa segueixo tenint el mateix error ..
pkg-config-fusible CFLAGS-libs:
De D_FILE_OFFSET_BITS = 64 -I/usr/include/fuse-pthread-lfuse-LRT-LDL
Tots: http://nopaste.info/0a7d74e5e8.html
9 maig 2012 a les 12:01
Hola fabske,
si us plau, tracti d'incloure stddef.h. No sembla ser el offsetof macro que falta, que es defineix allà. Probablement s'inclou com a dependència de les meves sistemes, o es defineix en aquest grup també. Això funciona?
Jürgen
9 maig 2012 a les 13:43
I tant! Necessitava include # include i per ajustar el Makefile i ara funciona!
Més o menys .. Tinc ulleres d'altres, el meu es diu 920 WRAP!
He canviat ara a la identificació del producte en el 0x014b vrtrack.cpp, però dóna un error:
Error de USB: no s'ha pogut establir una configuració: Dispositiu o recurs ocupat
Propably la usb_interrupt_read () està causant problemes?
9 maig 2012 a les 13:44
I tant! Que havia d'incloure i canviar el Makefile i ara funciona!
Més o menys .. Tinc ulleres d'altres, el meu es diu 920 WRAP!
He canviat ara a la identificació del producte en el 0x014b vrtrack.cpp, però dóna un error:
Error de USB: no s'ha pogut establir una configuració: Dispositiu o recurs ocupat
Propably la usb_interrupt_read () està causant problemes?
9 maig 2012 a les 13:53
És bo saber que funciona. Ho sento, però els 920 Wrap no és compatible amb el controlador, però. Com que no tinc cap d'aquests, no hi ha res que pugui fer sobre això en l'actualitat. Potser pugui fer alguna cosa en un futur pròxim, però això no és segur encara. Quan puc dir hi haurà més notícies al blog.
Jürgen
9 maig 2012 a les 16:48
Els 920 Wrap hauria de funcionar, però sembla que hi ha un error. Cada 3 segons les ulleres d'apagar i encendre
http://micolous.id.au/archives/2011/04/17/vuzix-wrap-920-vga-linux/ ~ ~ V
Sembla estar relacionat amb el controlador HID.