Actualmente estoy trabajando en un dispositivo que usa acelerómetro 3D siempre encendido (usando escala + -2g) y giroscopio 3D (usando escala + -250g) -sensor.
Puedo leer todos los vectores posibles (X, Y, Z) y su aceleración (g) y velocidad angular (dps) y también el ángulo donde está actualmente el dispositivo. Pero mi problema es que cuando el dispositivo está en inclinación (0g cuando no hay inclinación) la aceleración es entre (hacia abajo) 0g -> - 1g o entre (hacia arriba) 0g-> 1g dependiendo de qué ángulo esté el dispositivo actualmente. A continuación se muestra una imagen que con suerte aclara la idea.
El dispositivo se ubicará en un automóvil y debe medir la aceleración cuando el automóvil se desacelera (frena). Sin embargo, si el dispositivo ya está inclinado, el acelerómetro medirá cierta aceleración que causa la inclinación, lo que hace que sea difícil saber si el dispositivo tiene realmente alguna aceleración o es solo la inclinación la que causa la aceleración.
Los ejes X e Y producen 0 gy el eje Z es de 1 g cuando el dispositivo no tiene inclinación y está en una superficie plana. La inclinación hace que la lectura del eje X vaya hacia 1g si la inclinación es hacia arriba y hacia -1g cuando se baja. Se alcanza el + -1g cuando el dispositivo está en 90 * grados desde la posición original
He estado pensando cómo eliminar esa aceleración que causa la inclinación y solo medir la aceleración real del dispositivo, pero no puedo pensar en salir de este problema con los siguientes datos que puedo producir.
Básicamente, creo que si solo pudiera medir la aceleración del eje X (imagen) incluso si el sensor está inclinado como en la imagen.
Espero que este mensaje no sea demasiado difícil de entender debido a mis conocimientos de inglés y la forma en que estoy tratando de explicar mi problema.
fuente
Respuestas:
Solo un boceto de una solución.
Tenga en cuenta los 3 ejes.
La aceleración debida a la gravedad, independientemente de la inclinación, siempre será 1G, como una suma vectorial de X, Y, Z, sin importar la inclinación. Puede imaginar la aceleración en reposo o el movimiento constante como un punto en una esfera con radio 1G. (Si está perfectamente horizontal, ese punto será (0, 0, -1), es decir, directamente debajo de usted).
La aceleración debido al frenado distorsionará la esfera misma; la suma vectorial de X, Y, Z ya no será 1G.
Entonces
A menos que también esté girando o deslizándose, por lo que necesita entradas del volante y del ABS para estar seguro; eso se convierte en un problema de fusión de datos. Este enfoque proporcionará una estimación de la aceleración. Para verificar y refinar esa estimación, combínela con otras fuentes de datos (también poco confiables), como en la respuesta de Phil Frost, usando un filtro de Kalman.
fuente
Su principal error es no tratar la aceleración como un solo vector. Cuando el automóvil está en reposo, ese vector siempre estará 1 g hacia arriba. No mire solo el componente X de los datos sin procesar del acelerómetro. Haz las matemáticas del vector real.
No. Este es el punto. Lo que está diciendo puede ser cierto para el componente X de la salida del acelerómetro, pero no es cierto para la aceleración cuando el automóvil está en reposo.
La aceleración medida ideal siempre será la aceleración real del automóvil (en relación con la tierra), más la aceleración de 1 g debido a la gravedad. Este último siempre está en la dirección ascendente. Si conoce la orientación del automóvil, puede restar este 1 g debido a la gravedad para encontrar la aceleración que realmente está buscando.
Tenga en cuenta que existe un error considerable en tales lecturas, especialmente de sensores MEMS baratos. Si bien debería poder tener una buena idea sobre los eventos a corto plazo, como la aceleración o el frenado bruscos, estos datos no son lo suficientemente buenos como para hacer una navegación inercial durante más de unos pocos segundos.
fuente
Como han dicho otras respuestas, el acelerómetro proporciona un vector tridimensional que es la suma de la gravedad y otras aceleraciones en el automóvil debido al motor, los frenos u otras fuerzas que actúan en el automóvil. Su objetivo es restar la aceleración gravitacional de la salida del acelerómetro para encontrar las otras fuerzas restantes.
Para obtener la mejor precisión, no puede suponer que la gravedad siempre está "abajo" en relación con el acelerómetro. Por ejemplo, el auto puede estar en una colina. Todos sus cálculos deben hacerse con matemática de vectores tridimensionales, y debe tener alguna estimación de la orientación del automóvil para que sepa la dirección del vector de gravedad a restar.
Un filtro de Kalman es un enfoque común aquí. La idea es tomar todos los datos que tenga que puedan alterar la orientación del automóvil, luego realizar un promedio ponderado de las mediciones, combinarlo con lo que sabe sobre la física que actúa en el automóvil, para llegar a una estimación probabilística de la nueva orientación del automóvil y en qué dirección está "abajo".
Cuantos más datos tenga y más exactamente pueda modelar la física del automóvil, más precisa será esta estimación.
Por ejemplo, si tiene un giroscopio y mide la inclinación del automóvil, puede predecir que el vector de gravedad girará hacia la parte trasera del automóvil. A corto plazo, digamos que cuando el automóvil acaba de comenzar a subir una colina, esto puede ayudar al vector de gravedad a asumir rápidamente la orientación correcta.
También puede suponer que, en promedio, el automóvil no estará frenando o acelerando. Por lo tanto, una salida filtrada de paso bajo del acelerómetro podría alimentar la estimación de la dirección "hacia abajo". Esto proporciona una medición a largo plazo no sujeta a deriva inercial.
La combinación de datos del acelerómetro y el giroscopio para estimar la dirección de la gravedad proporciona una estimación más precisa que cualquiera de las mediciones por sí sola.
Puede incorporar aún más lo que sabe del posible sobre operativo del vehículo. Por ejemplo, el automóvil no puede subir o bajar cuestas que son demasiado empinadas, por lo que cuando el acelerómetro indica ángulos tan extremos, podría pesarlo menos, suponiendo que la mayor parte de su salida se deba a frenos o motor, no a la gravedad.
Sabes que si el conductor pisa los frenos, esto va a mover el vector de aceleración, y puedes restar esto del componente estimado "hacia abajo".
O si tiene GPS y datos de mapas, puede incorporar una estimación de la pendiente del automóvil según la ubicación. Si tiene datos de alta precisión, puede saber con precisión en qué colina se encuentra el vehículo. Si solo tiene datos de baja precisión, esto puede ser útil. Por ejemplo, si el automóvil está en Kansas, es poco probable que haya colinas. Si el automóvil se encuentra en San Francisco, es más probable que haya pendientes y podría darle menos peso al acelerómetro.
Si tiene datos sobre el consumo de combustible y la velocidad, sabiendo que se consume más combustible al subir una cuesta, puede usar esto para estimar que el automóvil se sube o baja según la eficiencia del combustible.
Y así. Cuanto más sepa, mejor será su estimación.
fuente
Necesitaría un algoritmo de fusión y utilizaría un acelerómetro 3D, un giroscopio 3D y sensores magnéticos 3D. Con este algoritmo de fusión obtienes la actitud, la gravedad terrestre ayuda como referencia para detectar el horizonte: ángulos de cabeceo / guiñada / balanceo. Los otros dos sensores mag / gyro ayudan a filtrar el movimiento dinámico. Como su automóvil también girará a la izquierda / derecha, ... se agregará la fuerza centrífuga. Una vez que tenga la actitud, puede restar el vector gravitacional y desmontar la aceleración resultante en los tres ejes.
fuente
Como enfoque muy básico, puede usar 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 automóvil. Supongamos que
raw
es un vector que contiene sus medidas X, Y y Z, yacc
es la aceleración del automóvil sin gravedad. LuegoLos componentes individuales de
acc
todavía están afectados por la inclinación, pero la norma del vector no lo es:Por supuesto, este método no es muy preciso, especialmente si la inclinación cambia a una velocidad alta. Esto es lo más lejos que te llegan las ingenuas matemáticas. Si necesita una mayor precisión, aprenda a usar un filtro Kalman.
fuente
La respuesta se encuentra en la definición precisa de "desaceleración" .
De tu pregunta:
Sin embargo, reducir la velocidad no equivale a frenar . Hay dos definiciones posibles:
Esta diferencia es significativa en subidas y bajadas. En bajadas, la velocidad del automóvil aumentará si no se aplican los frenos. Y en las subidas, la velocidad puede disminuir incluso cuando no se frena.
Resulta que detectar 1. es significativamente más difícil que 2. Definamos los ejes en relación con la orientación del automóvil: X: dirección de adelante hacia atrás, Y: dirección de izquierda a derecha, Z: dirección de arriba hacia abajo. Todos los ejes alineados al automóvil.
Soluciones:
Para la definición 1., el mejor enfoque es asumir que la velocidad del automóvil solo puede cambiar en la dirección X. Entonces la aceleración medida a = g + v donde g es la aceleración debido a las fuerzas que contrarrestan la gravedad, y v es la aceleración debido al cambio de velocidad. Puede suponer que la longitud de g siempre es igual a 9.8 m / s², y que v siempre está en dirección X. Entonces (g_x + v_x, g_y, g_z) = (a_x, a_y, a_z) , lo que da v_x = a_x - sqrt ((9.8m / s²) ² - g_y² - g_z²) . Esto solo funcionará mientras | v | es menor que | g |o, en otras palabras, la aceleración debida al motor o los frenos es inferior a 1G. Debería ser una suposición bastante segura a menos que su automóvil tenga un cohete propulsor.
Para la definición 2., puede tomar la lectura del eje x directamente. Si el automóvil no está acelerando o frenando, la única fuerza contraria a la gravedad que actúa sobre él es la fuerza normal de la superficie de la carretera. Esta fuerza siempre está en la dirección z en relación con el automóvil, por lo que no cambia la lectura del eje x. Los frenos y el motor actúan solo en la dirección x, y serán directamente visibles en esta lectura.
fuente
Parece que está utilizando un dispositivo "excesivo" para su aplicación. Debe usar un dispositivo que solo mida la aceleración x & y, de esta manera, la inclinación no tendrá un efecto medible. Aunque la aceleración total puede ser menor o mayor, debido a la inclinación, el dispositivo medirá solo los componentes x & y de la aceleración en el avión en el que se encuentra el vehículo.
fuente