"Morpheox"... el posicionamiento se consigue con los acelerometros y como estos se desvian muy rapidamente, la camara entra en juego para corregir el drift
Al final es ese mismo método que he explicado bien en detalle, sin embargo, tengo mis razones para no verlo así. Admito que estaba un poco cerrado de miras y esto puede ser una forma de verlo también. Como si los acelerómetros ofreciesen el desplazamiento del hmd continuamente, y la cámara evitase que se fueran de madre al final es exactamente el mismo método. Sin embargo tengo mis razones para no pensar en ello de esa forma ya que aunque en la teoría los acelerómetros pueden ofrecer un posicionamiento relativo perfecto, en la práctica tienen muchos muchos casos de uso donde fallan y el drifting es de un orden muchisimo mayor que otros tipos de tracking.
Desde mi forma de verlo la cámara y leds (los cual puede perfectisimamente funcionar en tiempo real como ya cito más adelante) ofrecen siempre las posiciones absolutas y entre medias de estas mediciones es seguro utilizar los sensores inerciales para reducir la latencia y aumentar la precisión de la cámara.
En cualquiera de las 2 formas de entenderlo el funcionamiento del método es exactamente el mismo, y al final cada posición que obtienes del sistema es:
posición = posicion absoluta (de la última medida de la cámara) + N desplazamientos relativos (calculados por los sensores) desde la última posición absoluta.
"Morpheox"...La camara no es un sistema independiente como algunos por aqui han mencionado, ya que no tiene ni la suficiente precisión, ni la suficiente rapidez como para hacer esto de forma correcta...
No he dicho que la cámara funcione independientemente en el dk2. He dicho que la cámara y leds podrían ser independientes para el tracking de posicion, los IMU no y que por eso lo considero el método principal. Aunque realmente da igual quien supongamos como el principal por que en el dk2 funcionan en conjunción, pero puestos a elegir el principal considero más importante el de los led. Una cámara y leds ir pueden ofrecer tracking posicional en tiempo real por sí solos, los IMU no. (otra cosa es que con la fusión se saque lo mejor de las 2 partes y sea lo que se usa en el DK2)
La prueba de que se puede realizar tracking en tiempo real sólo con cámara y leds IR sin utilizar IMU: aquí una cita a un "paper" donde lo realizan [1], y aquí un video de demostración [2]. Aunque usa un wiimote, solo lo utiliza como cámara IR barata, los IMU del wiimote no se usan por que el wiimote esta quieto y se usa solo como cámara infrarroja (ya que el wiimote es muy barato y en la punta tiene una cámara infrarroja) para el track de unas gafas en las que en las que el tio monta un par de leds infrarrojos en los costados.
Mismamente otro ejemplo y hasta donde yo sé TrackIR o FreeTrack (que creo que hay mas de uno en este foro lo usa) son sistemas de posicionamiento absoluto en tiempo real solamente con una cámara y leds.
Ejemplos para demostrar que esto es posible no faltan.
"Morpheox"... podria hacerlo por si sola si fuera necesario, pero no seria tan eficaz como la otra manera en la que ambos sistemas ponen lo mejor de cada uno.
En eso estoy de acuerdo y ya lo he dicho y explicado antes lo mismo.
"Morpheox"Desconozco la magnitud del drift de los acelerometros, pero si que supongo que al mirar hacia atras se perderia precisión muy rapidamente, y esta volveria cuando miraramos al frente y la cámara corrigiera el error producido, lo que produciría un pequeño salto ( si se perdiera totalmente el posicionamiento, este salto seria mucho peor) , pero no es frame que la camera no capta, frame perdido, no es asi como funciona.
No es tan estricto como "frame que no capta la cámara frame que no funciona", Es algo más así como si te pierdes unos cuantos la cosa se puede descontrolar un poco hasta que vuelvas a obtener la siguiente posición absoluta las cuales solo da la cámara, por que el posicionamiento de los acelerómetros es relativo.
Si al mirar atrás la cámara dejase de ver los led y se dejase indefinidamente el tracking posicional por IMU, ese pequeño "saltito" no sería tan pequeño. De ahí que cuando la cámara deja de ver los led se "apaga" el tracking de posición y se pasa al "neck model" hasta que la cámara vuelve a ver algo.
-Sobre el drifting y que los acelerometros no pueden ofrecer tracking de posición por si solos.
La acumulación de error de los acelerómetros para la posición es muchísimo mayor que la de por ejemplo otros IMU comos los giroscopios para la orientación. Hay dispositivos con orientación en los que no se utilizan magnetómetros para corregir el drifting de los giroscopios (wimote plus por ejemplo) ya que estos pueden funcionar un poquito sin mucho drifting (y en el caso del wii plus se recalibran cuando la cámara del wiimote ve los led de la barra).
Sin embargo los acelerómetros para calcular la posición (como ya he dicho) necesitan integrar 2 veces su medición (aceleración->velocidad->desplazamiento) lo que implica que su acumulación de error es de un orden mucho mayor.
He sacado el siguiente extracto del "abstract" de un paper específico sobre esto mismo ("Motion tracking algorithms for inertial measurement")
"IMUs cannot be used in isolation for absolute position tracking, since an IMU calculates position utilising a square function of time (t) where the error is proportional to the sampling time, any errors in the output of the sensors are therefore also multiplied by t^2." [3]
------------------------------
[1] LEE, Johnny Chung. Head tracking for desktop VR displays using the Wii remote. Johnny Chung Lee> Projects> Wii [online].[cit. 28. 12. 2010] johnnylee.net/projects/wii, 2007.
[2] www.youtube.com/watch?v=Jd3-eiid-Uw
[3] TORRES, Javier, et al. Motion tracking algorithms for inertial measurement. En Proceedings of the ICST 2nd international conference on Body area networks. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2007. p. 18. dl.acm.org/citation.cfm?id=1460250
I7 6700K / MSI 1070 Gaming X / MSI Z170 Gaming M5 / 16GB RAM DDR4 3000Mhz / Aerocool X-Strike 800W Gold