IMU Roll Angle - Correcto cuando se detiene, Error al mover

1

He estado usando un MPU6050 (giro de 3 ejes, aceleración de 3 ejes, filtro de movimiento incorporado llamado DMP) en el eje de un automóvil para medir el ángulo del eje al conducir. En una esquina larga (2 grados), el sensor lee 0 grados mientras se mueve (~ 40 km / h), pero cuando se detiene, se lee correctamente (2 grados). El ángulo del eje físico es el mismo, aunque en ambos escenarios.

Creo que la fuerza lateral que atraviesa la esquina está afectando a la interpretación de los sensores de cómo es la gravedad, y está ajustando los ángulos de giro en consecuencia. Ver imagen;

¿Alguienpuedecomentarsobrecómopodríaresolverseesto?

Porejemplo;

  1. ¿Usandounsensorconunmagnetómetro?
  2. ¿Estáutilizandounsensorconunfiltrodiferente?
  3. ¿EsestosolucionableosimplementeunfactorinherentedeMEMS?sensores?

Eltiempoesunfactorcríticoenestemomentoenmiproyecto.

Graciasdeantemanoportuaportación

Edición1:mehetopadocon este hilo donde el OP parecía tener el mismo problema con el MPU6050 y fue al BNO055 con algo de suerte pero tuvo problemas de calibración. Luego dijo que el problema se resolvió con MPU9250 y RTIMULib (filtro de código abierto) en la última publicación. Me pregunto si la adición de un magnetómetro ayudó, ya que proporciona un punto de referencia 3D fijo que no se ve afectado por las fuerzas de aceleración. O tal vez modificó los algoritmos en RTIMULib para obtener el resultado deseado. Todavía tengo que ahondar en los algoritmos de fusión / filtro de movimiento. Hasta la fecha, he estado dejando que el MPU6050 haga eso internamente en el DMP. ¿Alguna idea sobre estas soluciones potenciales?

    
pregunta Chrisau233

3 respuestas

1

Ciertamente es solucionable.

Mi conjetura es que el filtro no confía mucho en las lecturas del giroscopio y en los valores absolutos de los acelerómetros debido a los problemas de ruido y desplazamiento inherentes a los sensores MEMS y, por lo tanto, cuando alcanza un estado estable con la gravedad ligeramente más fuerte de lo esperado y a una velocidad de giro constante, se supone que son compensaciones y las cancela. Un filtro diferente combinado con un proceso de calibración al inicio podría ayudar con esto, pero puede que necesite mejores sensores.

Sin embargo, hacer que este tipo de cosas funcione correctamente y de manera confiable no suele ser fácil ni rápido. Si el tiempo es crítico, no puedo pensar en una solución rápida para esto que no implique gastar dinero en el problema y comprar una IMU de alta calidad y un software de motor de posicionamiento.

    
respondido por el Andrew
0

Creo que puedes resolver tu problema. Pero necesita usar su propio algoritmo de fusión de sensores en lugar de DMP (Digital Motion Processor). Debido a que no puede cambiar todos los valores de DMP, se parece más a Blackbox. Además, por lo que recuerdo, la velocidad de datos de DMP es de 200Hz o menos.

Puedes usar fácilmente el filtro complementario en tu sistema. Le brinda la posibilidad de cambiar la velocidad del efecto Acelerómetro y Giroscopio en su sistema y mucha más velocidad de datos (dependiendo de su MCU). Teniendo en cuenta su tiempo limitado, es probable que pueda encontrar códigos de filtro complementarios para su MPU6050 en Github.

    
respondido por el Batu92k
0

Algunas investigaciones adicionales me dan más información sobre cómo otros resuelven el problema. Principalmente, utilizando un método para calcular la aceleración centrífuga, y luego compensándolo.

Estas soluciones provienen de William Premerlani en la comunidad de UAV de ala fija.

Uso de GPS; enlace

Usando solo Accel y Gyro; enlace

    
respondido por el Chrisau233

Lea otras preguntas en las etiquetas