Para rastrear la posición de cualquier cosa, existe el reino absoluto y el reino relativo. La posición absoluta es la medida de la orientación exacta en el espacio. La posición relativa es la medida de la diferencia de posición con respecto a la orientación anterior.
Para medir la posición absoluta de los auriculares VR, suponiendo que el usuario de los auriculares no se mueva a una aceleración alta, puede usar un acelerómetro. El acelerómetro de 3 ejes en MPU6050 le dará los valores absolutos de aceleraciones lineales en tres direcciones. Como sabe que su usuario solo está experimentando la gravedad de la tierra, que actúa perpendicularmente a la superficie de la tierra. Puede calcular la orientación de los auriculares midiendo la aceleración resultante a partir de los datos del acelerómetro. También puede usar un magnetómetro para mejorar la precisión.
La parte más importante para cualquier auricular VR es capturar el movimiento relativo de la cabeza. Un giroscopio hace precisamente eso. El giroscopio de 3 ejes en MPU6050 le brinda la velocidad angular a lo largo de tres ejes. Básicamente es el movimiento rotacional relativo a lo largo de tres ejes. Por lo tanto, debe usar estos valores para calcular los movimientos realizados por el usuario y cambiar la vista del auricular en consecuencia.
- ¿Pueden los sensores volverse intuitivos y viceversa?
- ¿El sensor ultrasónico puede detectar seres humanos?
- ¿Cómo perciben los inodoros automáticos cuándo descargar?
- ¿Cómo funciona el sensor de gravedad en dispositivos móviles (soporte de hardware)?
- ¿Cómo se trata con los sensores?
Todos estos sensores tienen problemas con sesgos y son propensos a errores. Pero la ventaja de usarlos todos juntos es que puede usar algoritmos y filtros para obtener lecturas precisas. Los algoritmos de fusión de sensores aseguran que obtenga lecturas verdaderamente confiables de su acelerómetro giroscópico +. Puede comenzar usando un Arduino, pero es posible que necesite mejores microcontroladores (como un ARM Cortex M) si sus algoritmos se vuelven complejos. Como ha mencionado que está usando un Arduino, consulte los enlaces en la parte inferior de la respuesta, casi todos tienen ejemplos específicos de Arduino.
Y una última cosa …
Permítanme aclarar que estos sensores dependen de las propiedades de nuestra Tierra. (El cálculo de la orientación utilizando acelerómetros depende del campo de gravedad de la Tierra y los magnetómetros dependen del campo magnético incorporado en la Tierra, solo el giroscopio es independiente ya que le proporciona una velocidad de rotación relativa). Entonces, su implementación de seguimiento de la cabeza no funcionaría en la ISS, la Luna, Marte o cualquier otro cuerpo celeste que no sea la Tierra.
Referencias y lecturas adicionales
- Para la fusión de sensores en el MPU6050 en particular, aquí hay una fuente concreta de información con código
- kriswiner / MPU-6050
- Guías prácticas realmente geniales sobre cómo funcionan un acelerómetro y un giroscopio
- Conceptos básicos del acelerómetro
- Giroscopio – learn.sparkfun.com
- Algunos enlaces con ejemplos de código y aplicaciones
- Orientación estable – IMU digital 6DOF + Arduino
- Orientación de detección con el ADXL335 + Arduino
- L3G4200D Giroscopio de eje triple + Arduino
Espero que esto ayude … 🙂