13 votos

Aceleración cuando el dispositivo está en inclinación

Actualmente estoy trabajando en el dispositivo que se utiliza siempre en el acelerómetro 3D(usando la escala +-2g) y giroscopio 3D(usando la escala +-250g) -sensor.

Puedo leer todos los posibles vectores (X,Y,Z) y su aceleración (g) y la velocidad angular (dps) y también el ángulo donde el dispositivo que actualmente es. Pero mi problema es que cuando el dispositivo está en la inclinación (0g cuando ninguna inclinación) la aceleración es entre (a la baja) 0 g->-1g o entre (hacia arriba) 0 g-> 1g dependiendo de qué ángulo el dispositivo que actualmente es. Abajo es la foto que es de esperar que borra la idea.

Hopefully this helps

El dispositivo se encuentra en un coche y se debe medir la aceleración cuando el coche se está desacelerando (freno) . Sin embargo, si el dispositivo ya está en la inclinación con el acelerómetro de medir algunos de aceleración que la inclinación de las causas que hace que sea difícil saber si el dispositivo tiene realmente algunas de aceleración o es sólo la inclinación que la causante de la aceleración.

Los Ejes X e y producir 0g, y el eje Z es 1 g cuando el dispositivo no tiene la inclinación y es sobre una superficie plana. La inclinación hace que la lectura del eje X para ir hacia 1g si la inclinación es hacia arriba y a -1g cuando hacia abajo. El +-1g es alcanzado cuando el dispositivo está en 90* título de la posición original

He estado pensando en mi cabeza ¿cómo eliminar la que la aceleración que la inclinación de las causas y sólo medir la aceleración real del dispositivo, pero sólo puedo pensar en forma de salir de este problema, con los siguientes datos que puedo producir.

Básicamente creo que si sólo pudiera medir el eje X de la aceleración (en la foto), incluso si el sensor está en inclinación como en la foto.

Espero que este mensaje no es demasiado duro demasiado entender el porque de mis conocimientos de inglés y la forma en que estoy tratando de explicar mi problema.

18voto

Brian Drummond Puntos 27798

Sólo un boceto de una solución.

Tomar todos los 3 ejes en consideración.

La aceleración debida a la gravedad, independientemente de la inclinación, siempre será 1G, como una suma vectorial de X,Y,Z, no importa lo que la inclinación. Usted puede imagen de la aceleración en reposo o en movimiento constante, como un punto en una esfera con un radio de 1 g. (Si usted es perfectamente horizontal, que será un punto (0, 0, -1), es decir, directamente debajo de usted).

Aceleración debida a la frenada va a distorsionar la esfera en sí misma; la suma vectorial de X,Y,Z dejará de ser de 1G.

Así

$$A = \sqrt{X^2 + Y^2 + Z^2}$$

le da el total de la aceleración. Si es igual a G está en reposo; en caso contrario se están acelerando, y \$A\$ es la suma vectorial de la G y la verdad aceleración.

Ahora tiene que encontrar la verdadera aceleración que normalmente será un vector en adelante (o hacia atrás) dirección en la que se explica la diferencia entre \$A\$ y G. deberá restar algún momento en el G esfera de \$A\$, para encontrar un (esperemos solución única) vector con sólo una X (adelante/atrás) de los componentes. Que es su aceleración. (Voy a salir de la trigonometría como un rompecabezas simple, espero que la idea es clara).

A menos que usted está girando o derrape, por lo que necesita entradas de volante y ABS para estar seguro; que se convierte en una fusión de datos de problema. Este enfoque proporciona una estimación de la aceleración. A la cordura a comprobar y refinar la estimación, que se combinan con otros (también poco fiable) fuentes de datos, como en Phil Frost respuesta, utilizando un filtro de Kalman.

9voto

RelaXNow Puntos 1164

Su principal error está en no tratar de aceleración como un único vector. Cuando el coche está en reposo, que el vector siempre será 1 g hacia arriba. No hay que mirar sólo la componente X de la prima de los datos del acelerómetro. Hacer el verdadero vector de matemáticas.

Pero mi problema es que cuando el dispositivo está en la inclinación (0g cuando ninguna inclinación) la aceleración es entre (a la baja) 0 g->-1g o entre (hacia arriba) 0 g-> 1g.

No. Este es el punto. Lo que usted dice puede ser cierto para la componente X del acelerómetro de salida, pero no es cierto para la aceleración cuando el coche está en reposo.

El ideal de medir la aceleración siempre será la aceleración real del coche (en relación a la tierra), además de la de 1 g la aceleración debida a la gravedad. El último es siempre en la dirección vertical. Si conoce la orientación del coche, entonces usted puede restar fuera de este 1 g debido a la gravedad para encontrar la aceleración que realmente están buscando.

Tenga en cuenta que hay un considerable error en estas lecturas, especialmente de hoteles de sensores MEMS. Mientras que usted debería ser capaz de obtener una buena idea sobre eventos de corta duración como duro de aceleración o frenada brusca, este dato no es en absoluto lo suficientemente bueno para hacer de navegación inercial para más de un par de segundos en el mejor.

5voto

Kip Diskin Puntos 11

Como otras respuestas han dicho, el acelerómetro proporciona una tridimensional, vector, que es la suma de la gravedad y otras aceleración en el coche debido a que el motor, los frenos, o de otras fuerzas que actúan sobre el coche. Su objetivo es restar la aceleración de la gravedad desde el acelerómetro de salida para hallar el resto de otras fuerzas.

Para una mejor precisión que no se puede asumir que la gravedad siempre es "hacia abajo" en relación con el acelerómetro. Por ejemplo, el coche puede estar en una colina. Todos los cálculos deben hacerse con las tres dimensiones del vector de matemáticas, y usted debe tener alguna estimación de la orientación de el coche, así que usted sabe la dirección del vector de gravedad para restar.

Un filtro de Kalman es un enfoque común aquí. La idea es tomar todos los datos que podrían alterar la orientación del coche, a continuación, realizar un promedio ponderado de las mediciones, que se combinan con lo que usted sabe acerca de la física actúen sobre el vehículo, para llegar a una estimación probabilística de la nueva orientación del coche y de qué manera es "abajo".

El más datos, y con más precisión se puede modelar la física de los coches, la mayor precisión de esta estimación puede llegar a ser.

Por ejemplo, si usted tiene un giróscopo y medir el coche se incline hacia arriba, se puede predecir el vector de gravedad va a girar hacia la parte trasera del coche. En el corto plazo, dicen que cuando el coche ha empezado subiendo una colina, esto puede ayudar a que el vector de gravedad rápidamente asumir la orientación correcta.

Usted podría también asumir el coche en promedio, a no ser frenado o la aceleración. Por lo tanto, un paso bajo de filtrado de salida del acelerómetro podría alimentar a la estimación de lo que la dirección "abajo". Esto proporciona a largo plazo de la medición no se sujeta a la deriva inercial.

La combinación de los datos del acelerómetro y el giroscopio para la estimación de la dirección de la gravedad, por tanto, proporciona una estimación más precisa que cualquiera de medición solo.

Además, usted puede incorporar lo que se sabe de la posible operacional de la envolvente del vehículo. Por ejemplo, el coche no se puede conducir hacia arriba o hacia abajo de las colinas que son demasiado empinadas, así que cuando el acelerómetro indica tal ángulos extremos que podrían peso menos, suponiendo la mayor parte de su producción se debe a los frenos y el motor, no de gravedad.

Sabe usted si el conductor golpea los frenos, esto se va a mover el vector de aceleración, y se puede restar este de la estimación de los de "abajo" del componente.

O si tiene GPS y los datos de mapa, puede incorporar una estimación de la pendiente del coche basado en la ubicación. Si usted tiene datos de alta precisión, usted puede saber exactamente lo que hill el vehículo está encendido. Si usted sólo tiene la baja precisión de los datos todavía puede ser útil. Por ejemplo, si el coche está en Kansas, colinas, es raro. Si el coche está en San Francisco, colinas son más probables y que podría dar la acelerómetro menos peso.

Si usted tiene datos sobre consumo de combustible y la velocidad, sabiendo que más se consume el combustible cuando se va cuesta arriba, puede usar esta opción para estimar el coche es lanzado hacia arriba o hacia abajo basado en la eficiencia del combustible.

Y así sucesivamente. Cuanto más sepa, mejor será la estimación puede ser.

3voto

Marko Buršič Puntos 1524

Sería necesario un algoritmo de fusión y el uso de 3D-acelerómetro 3D-Gyro y 3D-sensores Magnéticos. Con este algoritmo de fusión de obtener la actitud, la tierra, la gravedad ayuda como referencia para detectar el horizonte - tono/guiñada/ángulos de roll. Los otros dos sensores mag/gyro y ayuda a filtrar el movimiento dinámico. A medida que el coche también va a girar a la izquierda/derecha, ... la fuerza centrífuga será añadido. Una vez que tienes la actitud, entonces puede restar el vector gravitacional y desmontar la resultante de la aceleración en los tres ejes.

3voto

Mark0978 Puntos 495

Como un enfoque básico, puede utilizar un filtro de paso alto para eliminar la parte constante de la aceleración (que corresponde a la gravedad) y mantener la parte variable de la cual se debe a la dinámica del vehículo. Supongamos raw es un vector que contiene su X, Y y Z de las mediciones, y acc es el coche de aceleración sin gravedad. Entonces

void correct_for_gravity(float *raw, float *acc)
{
   const float k = 0.9;
   static float gravity[3];

   gravity[0] = k * gravity[0] + (1 - k) * raw[0];
   gravity[1] = k * gravity[1] + (1 - k) * raw[1];
   gravity[2] = k * gravity[2] + (1 - k) * raw[2];

   acc[0] = raw[0] - gravity[0];
   acc[1] = raw[1] - gravity[1];
   acc[2] = raw[2] - gravity[2];
}

Los componentes individuales de acc están siendo afectadas por la inclinación, sino el vector de norma no es:

norm_acc = sqrt(acc[0]*acc[0] + acc[1]*acc[1] + acc[2]*acc[2]);

Por supuesto, este método no es muy preciso, especialmente si la inclinación de los cambios a un ritmo alto. Esto es casi tan lejos como ingenuo de matemáticas que recibe. Si usted necesita una mejor precisión, aprender a utilizar un filtro de Kalman.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X