Arduino + gyro / accelerometer == controlador de vuelo ...?

7

¿Puedo usar la combinación de un módulo de giro / acelerador Mega + MPU-6050 de Arduino en lugar de un controlador de vuelo? ¿Se necesita algo más?

Se dice que el giro / aceleración se puede usar para mantener el equilibrio del vehículo volador. ¿Cómo se logra esto?

¿Es imprescindible que un módulo de giro / aceleración se lea a mayor velocidad, casi de forma continua?

    
pregunta David

1 respuesta

3

Bueno,

Suena un poco limitado.

Supongo que un controlador de vuelo realiza un cálculo de cuentas muerto al integrar dos veces las aceleraciones medidas. Y debido a que este cálculo es relativo y no absoluto, los errores se resumen y usted tendrá una deriva. Así tienes que reducir todas las fuentes de errores. Uno de ellos es el ruido de cuantificación debido a la matemática de punto fijo. Por supuesto que podrías usar matemática de punto flotante de alta precisión. Pero si piensa en la cantidad de cálculos requeridos y el hecho de que ATMega no tiene soporte de punto flotante, parece difícil. Y si desea agregar un GPS e implementar algunos filtros de Kalman para la fusión de sensores, definitivamente será demasiado exigente para esa MCU.

Para ser más específicos:

  • Para mantener el equilibrio de un vehículo volador, debe determinar los ángulos relativos de su vehículo. Esto no se puede lograr con una simple lectura de la salida de un acelerómetro, ya que el acelerómetro medirá el vector de gravedad Y las aceleraciones de su vehículo. En sistemas reales, se utilizan giroscopios de alta precisión. Pero es caro, voluminoso y no práctico. Una forma más económica de hacer esto es usar un sensor giroscópico de frecuencia. Es pequeño, fácil de conectar y barato. La salida de un giroscopio de frecuencia es una señal que es proporcional a la velocidad angular medida por el chip. Si integras esta señal (suma) tienes la posición angular del chip. Suena bien. Pero el problema es la deriva. Tienes que añadir continuamente valores medidos. Pero en sistemas reales el valor medido se define por: $$ measuringValue = measuringEffects + errors $$ Después de algunas veces, incluso si el vehículo no se mueve en absoluto, los ángulos devueltos por su algoritmo serán significativamente diferentes de la posición real del vehículo debido al hecho de que los errores también se resumen. Para evitar eso, debe muestrear su sensor a una velocidad alta, reducir las fuentes de ruido (especialmente en el cálculo mediante el uso de precisiones altas) y utilizar el hecho de que su vehículo debe estar plano la mayor parte del tiempo y usarlo para probar para cancelar las derivas.

  • Y sí, tienes que leer continuamente la velocidad del giro del giro y sumar el valor de lectura. Pero las cosas continuas no existen en un mundo discreto ... Por lo tanto, tienes que hacerlo a un ritmo elevado. Tengo en mente valores como 100Hz o 1kHz. Esto tiene que ser verificado.

  • Para el control del propio vehículo: una vez que tenga una medición de la actitud, puede aplicar el control PID estándar. Pero no es fácil porque los ejes no son independientes ...

respondido por el Blup1980

Lea otras preguntas en las etiquetas