5

Mi pregunta es similar a Changing sensor coordinate system in androiddispositivo Android Convertir sistema de "usuario" sistema de coordenadas

Quiero ser capaz de comparar los movimientos de un usuario entre sí independientemente de la orientación del dispositivo de coordenadas. De modo que cuando los usuarios sostienen el teléfono en orientación vertical y doblan el brazo, las lecturas de aceleración son las mismas que cuando sostiene su teléfono en el paisaje y luego dobla el brazo en la misma dirección.

Esto es lo que yo llamo el sistema de coordenadas "usuario". Es diferente del sistema de coordenadas del mundo, ya que no debería importar la dirección del viento que el usuario esté enfrentando. Es diferente de las coordenadas del dispositivo, ya que no debería importar cómo el usuario sostiene su dispositivo.

En mi aplicación, es aceptable realizar un paso de calibración antes de cada movimiento para poder determinar las matrices de orientación base/reposo. ¿Es quizás solo una cuestión de multiplicar la matriz del primer movimiento con el inverso del segundo (y luego con los nuevos valores?)

La respuesta en la pregunta mencionada parece correcta, pero necesito una explicación más concreta , las muestras del código real serían ideales.

Nota remapCoordinateSystem no será suficiente, solo acepta ángulos rectos. Necesito poder trabajar con pequeñas desviaciones ya que el dispositivo está atado a la muñeca, lo que puede no estar siempre en ángulo recto con el brazo.

Respuesta

0

Actualmente estoy trabajando en este tema, y ​​creo que esto podría ayudar: convert device coordinate system to world corrdinate system

podemos suponer que para la mayoría de las veces, la gente utiliza el teléfono o de pie a pie o sentado, lo que significa la el sistema de coordenadas del usuario comparte el mismo eje z (gravedad), y una diferencia fija en el grado entre el eje y (coordenada del usuario, frente de la cara del usuario) y el eje y (coordenada mundial, dirección norte). La diferencia de grado se puede obtener a través del TYPE_MAGNETIC_FIELD sensor. Por lo tanto, podemos transformar la coordenada mundial a la coordinación del usuario.

¿Qué hay del usuario que usa el teléfono acostado en la cama? Creo que para ese tipo de casos, se necesita una pre-calibración definiendo el eje y de la coordinación del usuario, como un movimiento para decirle al teléfono qué dirección está frente a la cara del usuario.

Cuestiones relacionadas