Re: [embeb32] Medidor de velocidad con acelerómetro (STM32F4Discovery)

717 views
Skip to first unread message

David Vilaseca

unread,
Jan 27, 2014, 8:30:34 AM1/27/14
to embeb...@googlegroups.com
Hola Gustavo,

No me queda claro qué es lo que querés hacer, pero para el acelerómetro una aceleración es indistinguible de un campo gravivitatorio. Lo que mide es la fuerza específica [1] a la que es sometido.

Sin otro sensor (por ej, un giróscopo) va a ser complicado separar aceleración de gravedad. Vas a tener que generar un movimiento sin rotación para poder probar lo que estás haciendo y conocer bien las condiciones iniciales.

Por otro lado, tené en cuenta que al integrar dos veces la medición del acelerómetro vas a estar sumando a tu posición un error con forma de random walk cuadrático que viene del sesgo o factor de escala que tiene el sensor. Con lo cual tu estimación de la posición se va a ir deteriorando con el tiempo de manera importante si no lo vas corrigiendo de alguna forma

Saludos,
David.




2014-01-26 Gustavo <nacio...@gmail.com>
Hola embebidos32, estoy haciendo un medidor de velocidad con un acelerómetro implementado en un kit de desarrollo STM32F4Discovery que contiene un acelerómetro LIS302DL de 3 ejes y un uC STM32F407VG. La medición de la aceleración la hago en el sentido del eje X y de ahí calculo por integración la velocidad, todo esto a una frecuencia de 100Hz. El tema es que cuando el dispositivo se inclina, una de las componentes de la gravedad me aparece en el eje X produciendo un aumento de la velocidad, cuando en realidad el dispositivo está quieto. Mi pregunta es: ¿cómo puedo eliminar esa componente de g, para que no interfiera en el cálculo de la velocidad? Imaginen que los ejes X e Y son paralelos al globo y el eje Z perpendicular.

Gracias, Gustavo.

--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a embebidos32...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Gustavo

unread,
Jan 27, 2014, 12:03:47 PM1/27/14
to embeb...@googlegroups.com
Hola David, gracias por responder. La idea es hacer un medidor de velocidad, para lo cual integro una vez la aceleracion dada por el acelerómetro, o sea que en definitiva mido aceleración y calculo velocidad. Es cierto lo que decis sobre la fuerza especifica, por tanto no puedo librarme de un error de lectura cuando el acelerómetro se inclina ya que la gravedad aparece sobre el eje en que estoy midiendo la aceleracion (X). Asi que la solucion mas viable que veo es la de usar el giróscopo, para lo cual me tengo que poner a investigar :)
Gracias por tu respuesta, saludos :)

Fernando Lichtschein

unread,
Jan 27, 2014, 12:32:30 PM1/27/14
to embeb...@googlegroups.com
La otra es atornillar la placa a algo que creas que va a quedar siempre horizontal....

Ahora en serio, los primeros navegadores inerciales usaban una plataforma estabilizada por giróscopos donde iban los integradores. Después se empezaron a usar los navegadores "strap down", donde los acelerómetros estaban fijos al cuerpo del vehículo y mediante giróscopos se va actualizando cuál es la orientación de la plataforma. Esto creo que es lo que sugiere David, si no te va a ser imposible eliminar la componente de la gravedad terrestre o saber en qué dirección son las aceleraciones.

Si buscás "strapdown inertial navigation" o "strapdown inertial systems" hay un montón de información, qué te pueda ser útil depende de lo que estés necesitando. Acá hay una nota bastante conceptual: http://aerostudents.com/files/avionics/InertialNavigationSystems.pdf

Saludos,

Fernando


David Vilaseca

unread,
Jan 27, 2014, 12:53:49 PM1/27/14
to embeb...@googlegroups.com
En tu primer mail mencionás un globo. Es un globo aerostático? Si lo que querés medir es velocidad de ascenso, lo que podes hacer es medir presión atmosférica y a partir de ahí calcular la velocidad. Esa es una medición que podés hacer sin drift y más confiable que la del acelerómetro.

O usar un gps!

Saludos,
David.


2014-01-27 Fernando Lichtschein <flicht...@ort.edu.ar>

Gustavo

unread,
Jan 27, 2014, 9:09:26 PM1/27/14
to embeb...@googlegroups.com
Disculpen por la baga explicación sobre la aplicación del proyecto, pero es porque nació como un proyecto de facultad, entonces el campo de aplicación quedó abierto a cualquier cosa. De todas formas había pensado en implementarlo en un rodado, como ser un auto, bici o moto. Cuando mencioné el globo me refería a la Tierra.
En el camino por el que el rodado iría me puedo encontrar con subidas/bajadas y hasta pequeños desperfectos (piedras, lomadas, badenes, y hasta peraltes) que hacen que el acelerómetro se incline y ahí surge el problema.
El acelerómetro va montado sobre el rodado de tal forma que su aceleración (andando sobre una superficie paralela a la Tierra) es siempre en el sentido del eje X, ya sea acelerando o frenando (aceleración negativa ;) ). Asi que no está mala la idea del giróscopo porque por lo que entiendo podría medir la inclinación y calcular la componente de gravedad que me aparece en el eje X y restarla.

Gustavo

unread,
Jan 27, 2014, 9:20:47 PM1/27/14
to embeb...@googlegroups.com
PD: gracias por la información! Saludos, Gustavo :)

Sebastian E. Garcia

unread,
Jan 28, 2014, 10:31:17 PM1/28/14
to embeb...@googlegroups.com
Gustavo, sólo agrego un libro [1] y algunos trabajos de Tesis de grado relacionados [2] (entre los cuales está la Tesis de David, quien participó de este hilo de discusión) que pueden ser de utilidad en este tema.

Saludos,
Sebastián.

[1] http://psic.fi.uba.ar/Publicaciones/books/Fundamentos_INS_-MEspania-2010.pdf
[2] http://psic.fi.uba.ar/index.php/publication/theses



On 01/27/2014 11:20 PM, Gustavo wrote:
> PD: gracias por la información! Saludos, Gustavo :)
>

gerardo gimenez

unread,
Jan 29, 2014, 1:03:47 AM1/29/14
to embeb...@googlegroups.com
Che muy buenos los tabajos!!! Felicito a David!!!

El trabajo de Claus Rosito es magnifico!!! Un nivel de la ostia!!!
Intuyo que el tipo debe ser matemático o tiene un matemático amigo o
de ciencias de la computación, me saco el sombrero!!!

Cuando a los Algebristas les mostrás esas cosas "aplicadas" se sacan
mal. jaja!!!

Al tema...

Me parece qe en el caso de Gustavo solo necesita el acelerómetro y
horas "silla". Yo ya hice algo para sacar posiciones relativas, osea,
integré dos veces. Para esto usé todo el vector, las 3 componentes, y
un método numérico bueno para controlar el error. Pero si lo que
querés hacer no tiene que ser muy exacto con un trapecios o un simpson
te alcanza O(h^2), O(h^4), sino Gauss o adaptativa. Y cuando se te
piante el error empezar de cero.

También tené en cuenta las velocidades constantes, aceleración cero, y
que el vector G no es igual en todos lados, varía muy poquito pero
varía, osea, calibrar antes de medir.

Y tené en cuenta que acelerómetro usas, a mi ya me descontinuaron dos
y es un %#%?¡ tener que hacer el rediseño del PCB.

Exitos!!!



2014-01-29 Sebastian E. Garcia <sg-l...@slabs.com.ar>:
--
Giménez Gerardo Daniel.
Reply all
Reply to author
Forward
0 new messages