Paso 14: IMU parte 1: sensores
El acelerómetro:
El acelerómetro no medir aceleración. Mide la fuerza por unidad de masa a lo largo de cada eje. Puede utilizar esta medida para determinar la dirección de la gravedad, que ejerce una fuerza hacia abajo, como el cuadrotor no está acelerando.
El Polulu minIMU-9 es mucho menos problemas que el sensor analógico original porque es la puesta a cero y reporta un valor digital con un factor de escala conocido. El factor de escala es incluso un buen número simple: 1 mg/dígito con el rango más sensible. Es decir, 1/1000 la aceleración debido a la gravedad por dígitos. Tengo este valor directamente en la hoja de datos del acelerómetro. Si señalas con el sensor eje X directamente hacia abajo, debe informar un valor de 1.000.
Conversión de una medida de la aceleración a un ángulo requiere un montón de trigonometría o una linearización. Puesto que el cuadrotor pasa la mayor parte de su tiempo horizontalmente y se desvía por más de 30 º en cualquier dirección, elegí la linearización. La primera imagen muestra cómo alinear sobre 0 º. La pendiente de la línea que es tangente a la salida del sensor vs curva de ángulo a 0 º es de 1000digit/rad. El inverso es lo que se llama A_GAIN en el código:
A_GAIN = 0.001 rad/dígito = 0.0573º / dígitos.
Este es el número por el que multiplicar el valor bruto acelerómetro para conseguir un ángulo aproximado en grados.
El giro:
El giroscopio no es realmente un giroscopio; no hay volantes de giro dentro de la viruta. Se llama más exactamente un sensor de velocidad angular y utiliza una estructura de horquilla de MEMS a medida tasa de rotación basado en la fuerza de Coriolis. Como el acelerómetro, hay uno para cada eje.
Ya que este es un bonito IMU digital, el valor reportado es directamente en unidades físicas, aunque el factor de escala es un poco extraño. Se da en la hoja de datos para el giro como 8.75mdps /, o 0.00875(º/s)/dígitos. Utilizar este valor directamente como G_GAIN en el código.
G_GAIN = 0.00875(º/s)/digit.
Este es el número por el que multiplicar el valor del crudo giro para obtener una velocidad angular en grados por segundo.
Motivación a la fusión de sensores para calcular el ángulo:
El giróscopo mide directamente velocidad angular, por lo que la información sobre el ritmo es atendido por los giroscopios solo. De hecho debería ser posible volar el cuadrotor sólo información sobre el ritmo, pero necesitaría una estructura de control diferente y no autonivela. Para obtener el control de buena actitud, comentarios de ángulo también son necesario.
Desafortunadamente, la estimación de acelerómetro de ángulo no es perfecta. Aceleración horizontal alterará el cálculo de ángulo, ya que el acelerómetro no puede distinguir la diferencia entre aceleración hacia delante y que se inclina hacia atrás. El cuadrotor no pasa mucho tiempo acelerando horizontalmente, pero cuando lo hace, puede fácilmente tirar grandes fracciones de 1g, que alterará sustancialmente la estimación del ángulo.
El giro también puede producir una estimación del ángulo, por Integración numérica: si sabes qué tan rápido está girando, puede predecir qué ángulo le estará en el paso del tiempo multiplicando la velocidad por el tiempo de la muestra. Esta estimación del ángulo puede trabajar por períodos cortos de tiempo, pero durante mucho tiempo una se deriva del ángulo verdadero. No importa lo buena y bien cero el giro es, Integración numérica siempre hará que la estimación del ángulo producida por el giro solo a la deriva con el tiempo.
Así, el acelerómetro es malo para la estimación de ángulo a corto plazo, pero proporciona a un equivalente promedio a largo plazo estable al vector gravedad. El giroscopio es bueno para los cálculos de ángulo a corto plazo, pero se deriva durante largos períodos de tiempo. El filtro complementario, en el siguiente paso, se combina los sensores juntos suavemente en diferentes escalas de tiempo para obtener una mejor estimación del ángulo de cada sensor solo podría producir.