VR920 headtracking controlador para Linux
Como prometí en el desarrollo de controladores VR920 Headtracking aquí viene una versión utilizable de mi conductor headtracking para el Vuzix iWear VR920 para Linux. Una vez más quiero dar las gracias a MalMal de los foros de Vuzix, de cuyo código tuve la oportunidad de aprender a leer los datos del sensor del dispositivo a través de USB. Para obtener información general sobre cómo utilizar el dispositivo con Linux, véase: Vuzix VR920 con Linux y en 3D estéreo activo .
Me las arreglé para calcular la guiñada, cabeceo y balanceo del acelerómetro y magnetómetro de datos (el dispositivo tiene tres de cada uno). Esto hace un seguimiento de 3DOF posible y que le permiten mirar a su alrededor en una escena 3D.
El controlador envía los datos de seguimiento a través de la red como UDP multicast , por lo tanto, muchos clientes pueden leer los datos, lo que hace más posible la paralelización, es decir, se podría utilizar una máquina para la representación y otra máquina para los cálculos. Además de esto, el enfoque para enviar los datos a cabo a través de la red hace que el lenguaje utilizado para escribir la aplicación independiente de la lengua utilizada para desarrollar el conductor.
Uso:
./vr920 h-VR920 [-h] [-] [-m de multidifusión IP] [-p puerto de multidifusión] [-c calibrationfile]
En la línea de comandos se puede especificar una dirección de multidifusión y un puerto para enviar los datos a. Si usted opta por no definir estos valores que el conductor le enviará los datos de seguimiento a un valor predeterminado sana (224.0.0.42:4242). En cualquier caso, el cliente mediante los datos de seguimiento tiene que unirse a la misma dirección con el mismo puerto. Usted puede decidir no utilizar la red real, si sólo desea utilizar los datos en la misma máquina. En este caso, usted puede usar las redes de bucle invertido.
Agregar la ruta de la dirección de multidifusión de la interfaz de loopback: route add-host 224.0.0.42 he aquí
Eliminar la ruta: la ruta del huésped 224.0.0.42 he aquí
Después de ejecutar al conductor al instante comienza a enviar el TrackingData. Inicialmente se inicia en modo "silencioso". Usted puede activar / desactivar el modo de monitor pulsando la tecla M. En el modo de pantalla del controlador muestra los ángulos de guiñada, cabeceo y balanceo. Al pulsar la tecla C se puede activar / desactivar el modo de calibración.
En el modo de calibración del conductor muestra la mayor cantidad de información, los ángulos de guiñada, cabeceo y balanceo por encima de los datos de los sensores normalizados. Por debajo de los mínimos / máximos de los sensores está siendo calibrado displayed.The funciona de forma similar a la de controladores de Windows, uno tiene que girar en torno a la HMD (con las piezas laterales abiertos) hasta que no haya cambios mínimos / máximos más. Luego girar el dispositivo hacia adelante (la dirección donde desea que el centro de la vista) y pulse la tecla Z para establecer la dirección cero. Una vez que haya completado la calibración presione S para guardar la calibración para su uso futuro. Finalmente, presione la tecla C para salir del modo de calibración.
Por defecto, la calibración se guardan en el archivo. VR920 en el hogar los usuarios. Usted puede especificar un nombre de archivo diferente, utilizando la opción-c. Si lo hace este archivo también estará en la casa de los usuarios. Para utilizar por ejemplo un archivo de calibración mundial tiene que especificar la ruta completa a partir de una barra.
Nota importante: Durante la calibración, asegúrese de que la pantalla del dispositivo se muestra algo ya que las pantallas no sólo muestran una pantalla azul influye en los datos de los sensores (por lo menos con mi dispositivo) se va a terminar con la calibración incorrecta otra cosa.. Usted puede utilizar por ejemplo nvidia-settings para asegurar esto.
He decidido publicar el conductor bajo la Licencia Creative comercial común. Usted puede descargar el código fuente completo desde aquí: VR920-conductor (fuente) (662) , un binario x86_64 desde aquí: VR920-controlador (binario x86_64) (460) , o un binario i686 desde aquí: VR920-driver (i686 binario) (403) . Más formatos binarios pueden estar disponibles en el futuro. Usted necesita tener libusb, libconfig + + y libcurses instalado en su sistema. Libconfig + + se utiliza para almacenar los datos de calibración y libcurses para la interfaz de usuario. El binario x86_64 se ha construido en una puesta al día del sistema Gentoo, el binario i686 en Ubuntu Hardy. Para el binario i686 tendrá que instalar libconfig + + + 6, es decir libconfig _1.3.1-1 desde aquí: libconfig + + Si ninguno de los archivos binarios que funciona para usted, usted puede tener que construir desde la fuente ...
Nueva versión disponible aquí.
La construcción de la fuente:
Para la construcción de la fuente de descomprimir el archivo zip y cd de VR920 y ejecutar make. Si se utiliza una distribución basada en binarios, asegúrese de que tiene la versión de desarrollo de las librerías necesarias instaladas en el sistema.
Planes futuros:
En el futuro tengo la intención de extender el visor de JPS que publiqué en el SIV - un visor estereoscópico de JPS para Linux para usar los datos de seguimiento desde el controlador, por lo que uno puede mirar alrededor de la escena, girando la cabeza.
Actualización: Nueva versión de SIV con el apoyo headtracking está disponible en: SIV-1.0 lanzado
Nota al pie:
Si te gusta el conductor, siéntase libre de enlazar a www.mygnu.de . Si ha desarrollado una aplicación que utiliza los datos de seguimiento proporcionados por el conductor por favor deje un comentario, porque entonces puedo revisar la solicitud y, finalmente, escribir acerca de ello. Para solicitar las licencias comerciales contactar con nosotros en info (arroba) mygnu.de. Bueno, si sólo quieres apoyar nuestro trabajo en MyGNU.de utilizar el botón de donar ![]()
saludos cordiales
Jürgen







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



































23 de marzo 2009 a las 3:13 pm
Muy bueno! Voy a tener que probar esto esta noche.
Eres SIV visor JPS también suena muy interesante.
He estado usando un visor estereoscópico simple par para mis necesidades de visualización. Sólo es compatible con los archivos. Ppm sin embargo. Yo estaba buscando en el formato de la JPS y encontrado su sitio por accidente. Este es mi día de suerte.
http://www-users.cs.umn.edu/ ~ wburdick / geowall / viewer.html
23 de marzo 2009 a las 11:40 pm
También me tropecé con el espectador que usted ha mencionado, pero como la mayoría de las imágenes estéreo están en formato JPS no me statisfy. El viever sólo JPS para linux que he encontrado es gqview (con el parche), pero no es compatible con estéreo de cuatro buffers (necesario para la VR920). Bueno, y de ver la fuente que no parecía tan fácil de integrar headtracking en el visor (el que estoy trabajando actualmente en la SIV). Así que me decidí a escribir SIV ...
En el otro lado de SIV tiene mucho más dependencias de la biblioteca para statisfy ...
Espero que el controlador funciona para usted. Sería agradable si usted podría dejar algunos comentarios después de que intentó el conductor, ya que sólo se puede probar con mi equipo y "mi" campo magnético terrestre.
Gracias,
Jürgen
24 de marzo 2009 a las 16:04
Traté de conducir anoche y parece que funciona.
Yo uso Debian Sid X86-64 y la construyó desde su origen.
Estoy feliz de dar información. ¿Qué tipo de información es útil para usted? Yo no sé mucho acerca de la actualidad magnetómetros o accellerometers pero voy a echarle un vistazo.
Ayer por la noche, creo que vi el movimiento en todos los ejes.
Tengo una máquina win2k disponibles que pueden ser utilizados para la comparación con el controlador de Vuzix.
No he utilizado mucho el VR920 en las ventanas, pero nunca fue capaz de obtener una calibración perfecta para el seguimiento de la cabeza. En el juego Doom 3, si tuviera que mirar hacia arriba, la vista se mueve un poco al lado también. Creo que el punto de mira era también un poco de Shakey. Tal vez otros programas son mejores o tal vez sólo soy mala en la calibración
.
Creo que he leído en alguna parte que headtrackers HMD más caros tienen otro sensor, además de los accellerometers y magnetómetro. Los giroscopios?
Conozco un poco de C. Me gustaría aprender a utilizar el controlador.
Gracias por su trabajo duro!
24 de marzo 2009 a las 23:12
Me alegro de oír que el conductor trabaje para usted. Gracias por los comentarios. Lo más interesante sería saber lo bien que funciona la calibración y la forma suave y precisa que el movimiento es. Si tiene sugerencias sobre cómo mejorar el conductor, que también son bienvenidos
Bueno, para juzgar lo bueno que las obras de calibración y cómo suave y preciso del movimiento es, que probablemente no será suficiente para ver los datos de la salida. Lo mejor para esto sería una aplicación que utiliza los datos de seguimiento para la manipulación de la vista. Tal vez usted puede tratar de construir VIS en su máquina. Si la versión actual se ejecuta en su sistema (dependencias), la futura versión con el apoyo headtracking también lo hará. Así que cuando la nueva versión esté lista se puede comprobar el movimiento, entonces.
Para aprender a utilizar el controlador de echar un vistazo a la democlient.cpp archivo de origen. Debe ser bastante fácil de leer.
En pocas palabras:
- Crear un socket de multidifusión
- En el bucle principal leer la estructura de la toma de TrackingData
- Cerrar el socket cuando haya terminado
La lectura de los datos de otros lenguajes de programación también deberían funcionar, pero puede ser un poco problemático (es decir, little endian vs grande en java). Tal vez yo también debería proporcionar una democlient java ...
Jürgen
05 de abril 2009 a las 16:36
[...] Actualización: Mi chofer headtracking VR920 está disponible aquí: VR920 headtracking controlador para Linux [...]
05 de abril 2009 a las 23:08
La nueva versión de SIV ya está disponible, así que si te gusta, puede probar el controlador de la misma.
Jürgen
06 de abril 2009 a las 8:48 pm
[...] HMD. Para esto se necesita (además de en el dispositivo) el conductor headtracking, publiqué en el driver para Linux headtracking VR920. Usted puede ver un video (demo_siv_headtracking_vr920) de mí con el espectador habilitado [...]
24 de abril 2009 a las 4:57 am
Hola, Jürgen, quiero probar el controlador de Linux, pero el enlace de sorce no está funcionando ahora, algunos errores de php motivaba su lugar de origen del conductor.
24 de abril 2009 a las 9:24 am
Lo siento por las molestias. La descarga funciona de nuevo.
16 de julio 2009 a las 11:53 am
wow lo guay que has escrito aquí cómo un acess videoeywear VR920 en linux. El respeto ...
17 de julio 2010 a las 23:13
Usted me hizo querer comprar uno de esos vasos.
Gracias
30 de agosto 2010 a las 8:31 am
Niza, lo que el conductor trabaje para usted? ¿Estáis construyendo alguna aplicación especial con el VR920 en linux?
06 de septiembre 2010 a las 8:35 pm
Felicidades por la iniciativa y buen trabajo!
Estoy pensando en cómo hacer que VR920 flightgear y llegar a un acuerdo (por lo menos compromiso) en:
- Estéreo 3D (no tengo ni idea sobre esto, ¿por dónde empiezo vuelo en sí mismo se preparan OpenSceneGraph controlador NVIDIA xorg??)
- Jefe de seguimiento (para esto tal vez escribir un conductor 'joystick falso "para recibir los datos del controlador envía ...)
06 de septiembre 2010 a las 10:33 pm
exportación OSG_STEREO_MODE = anaglifos; exportación OSG_STEREO = ON
07 de septiembre 2010 a las 11:21 pm
Traté de flightgear en quad bufferred modo estéreo con OpenSceneGraph-2.8.2. Esto no funcionó (no aparece nada de música y los gráficos incorrectos). (Véase el comentario 2 de http://www.mygnu.de/index.php/2010/03/flightgear-2-0-0-on-gentoo/ ). Obras anaglifo estéreo, pero no es el camino correcto para mí, con un dispositivo como el VR920 no debe haber estéreo real (exportaciones OSG_STEREO_MODE = QUAD_BUFFER FGF), que falla con FlightGear. De mis experiencias el error debe estar en OpenSceneGraph o flightgear. No tengo ni idea de dónde se podría empezar a buscarlo. No sospecha que el conductor a ser responsable de la misma, ya que utiliza música de cuatro bufferred en algunos proyectos de Linux (con y sin OpenSceneGraph) y nunca he tenido este problema. Como he escrito, cuando flightgear trabaja en estéreo que me gustaría poner en práctica la función de headtracking para FlightGear. Debe ser sencillo, el mismo enfoque que utilicé en el VIS, mi visor de JPS. Obtener los datos del conductor a través de la toma de multidifusión y lo utilizan para rotar la cámara OSG. Si usted está interesado en cómo funciona, ver el código fuente SIV (VR920TrackingManipulator.cpp). Un controlador de joystick falsa sólo puede dar la mitad de la experiencia. En mi opinión el principal problema de la tecnología de seguimiento es que no hay una interfaz independiente del fabricante (como el que tenemos para joysticks) para que, por lo que una aplicación tiene que apoyar a cada dispositivo de seguimiento por separado. Pero también no tiene una idea de por dónde empezar a poner una norma en su camino. Tal vez si otras personas involucradas en el seguimiento del desarrollo driver, lea esto y acuerdan trabajar juntos sobre el mismo, esto podría ser el camino correcto para empezar.
05 de noviembre 2010 a las 2:30 am
[...] El año que publiqué la primera versión de mi conductor headtracking Linux para el HMD VR920 aquí. Actualmente estoy trabajando en una nueva versión del driver que tendrá el adicional siguiente [...]
08 de mayo 2012 a las 5:41 pm
Tengo problemas Para compilar la fuente en mi Ubuntu 11.10. He instalado todos los paquetes necesarios, pero siempre sale este error: http://nopaste.info/d816553a72.html
¿Me puede decir cuál es el problema?
08 de mayo 2012 a las 18:02
Hola fabske,
No soy capaz de probar esto, ya que mi sistema Ubuntu sólo se está ejecutando 10.04 LTS. Con la versión 10.04 del conductor compila, así como con una corriente de Gentoo Linux. Bueno, en el Ventura propone un parche para el Makefile. Supongo que ha llegado el mismo error que tú. Por lo tanto le sugiero que trate a su manera, y después, por favor, informe si ha funcionado para Ubuntu 11.10. ¿Podría también publicar la salida de pkg-config fusibles cflags-libs, por favor (hay dos personajes menos antes de CFLAGS y bibliotecas, cortar y pegar desde el navegador web no funciona)?
Jürgen