Autor Tema: Diseño y construccion de un Sistema de Navegación Inercial  (Leído 9240 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jlopez

  • PIC10
  • *
  • Mensajes: 12
Diseño y construccion de un Sistema de Navegación Inercial
« en: 04 de Octubre de 2010, 16:32:34 »
Buenas, soy estudiante de ingeniería técnica de telecomunicaciones y para el proyecto final de carrera voy a tener que usar un sistema de navegación inercial ayudado con un GPS.
Tengo más o menos claro como debería (en teoría) construir la Unidad de Medida Inercial, un acelerometro de 3 ejes (para ahorrar peso y componentes) y 3 giróscopos. El problema es que con las integrales que hay que realizar y los cálculos los errores se acumulan y al cabo de cierto tiempo son inaceptables.

Y aquí viene mi problema: habría que aplicar un filtro kalman que fuese corrigiendo esos errores y luego unirlos a los datos provenientes del GPS.

Concretamente:

1.- No tengo ni idea de como implementar un filtro kalman en un microcontrolador. Cuando leo sobre el filtro kalman todo me suena a royo macabeo y solo alcanzo a entender a muy grandes rasgos y por encima que es lo que hace.

2.- Tampoco se como juntar los datos del UMI con los datos del GPS. El propio GPS tiene errores de medida ni me da los datos con la misma frecuencia que la UMI.

Si tenéis alguna idea al respecto os lo agradecería enormemente. No hace falta que sean instrucciones precisas. Simplemente alguna guía, diagrama de bloques general o algo, estoy más perdido que la dignidad de un político   :cry:

Todavía no he elegido ni componentes y nada. Estoy pensando que es lo que quiero hacer concretamente y cómo lo voy a hacer para decidirme por unos u otros componentes. Conforme vaya avanzando con el diseño ire poniendo información aquí para que todos os podais beneficiar, criticar   :roll: o aconsejar; como mejor gusteis.

1Saludo!

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #1 en: 04 de Octubre de 2010, 17:12:04 »
Bienvenido JLopez, es un proyecto muy interesante y una buena elección como proyecto de fin de carrera.

Te recomiendo que eches un vistazo a esto, que es justo lo que tienes que hacer: http://diydrones.com/profiles/blogs/ardupilot-main-page

Allí encontrarás toda la información sobre el hardware y el firmware porque es un proyecto de código abierto.

Si me permites un consejillo (de buen rollo): como casi-ingeniero no conviene que vayas aireando mucho por ahí que la teoría del filtro de kalman te suena a rollo macabeo.

Mucha suerte con tu proyecto.

Desconectado Jlopez

  • PIC10
  • *
  • Mensajes: 12
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #2 en: 05 de Octubre de 2010, 07:42:24 »
jajajajaaja Muchas gracias jfmateos2!!
Creo que el link me va a ser bastante util. Almenos ya tengo una idea de partida sobre el UMI para desarroyar el mio propio.

En cuanto a lo del filtro de Kalman, jejeje gracias por el consejo, es bien recivido. Pero es la verdad, nunca antes lo había oido y cuando he empezado a estudiarlo me ha saturado  :shock: Cuando lo estudie un poco más y con tranquilidad supongo que lo entenderé mucho mejor.

Ahora mismo ya tengo una bonita tabla comparativa de modulos GPS, otra para los acelerometros y otra más para los giroscopos. Solo falta elejir los componentes y el micro que hara funcionar mi sistema de navegacion GPS/INS.

Despues a diseñar!!!

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #3 en: 05 de Octubre de 2010, 07:46:38 »
Ánimo, de verdad me parece un sistema super-interesante.

En ingeniería aeronáutica (UPM de Madrid), uno de los proyectos de fin de carrera clásicos ha sido desde tiempo inmemorial "Piloto automático"... quizás puedas pedir en la biblioteca de tu escuela acceso a alguno de estos proyectos (los más actuales), en los que también encontrarás información (aunque muy dura... más que Kalman).

Desconectado Jlopez

  • PIC10
  • *
  • Mensajes: 12
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #4 en: 18 de Octubre de 2010, 15:27:25 »
Ya estoy por aquí de nuevo. Después de mucho leer y buscar información, ya tengo bastante más claro como funciona el filtro de kalman (la teoria) y la Unida de Medidas Inerciales (de ahora en adelante UMI).

Pero aun tengo unas pequeñas dudas básicas. La que más me esta impidiendo avanzar es la siguiente:

Mi UMI esta formada por 3 acelerometros y 3 giróscopos, ¿el filtro Kalman debe recibir directamente las medidas de estos o se debe colocar al final cuando se han calculado la posición, velocidad y actitud del móvil?

Mi lógica me dice que el filtro de Kalman debe trabajar directamente con los datos que me dan los sensores. Una vez los "corrija" ya podré emplearlos para realizar los cálculos y obtener la posición, velocidad y actitud del móvil. Pero si es así, ¿cómo integro esos datos finales con el GPS?

Intentando expresarlo "gráficamente":

Datos de los sensores ===> Filtro de Kalman ===> Calculo posición, velocidad, actitud + GPS

o sería:

Datos de los sensores ===> Calculo posición,velocidad, actitud ===> Filtro Kalman (añadiendo GPS)


Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #5 en: 19 de Octubre de 2010, 03:20:13 »
Los datos de los sensores tienes que integrarlos para que al suministrárselos al Kalman, éste pueda compararlos entre sí. Integras las ecuaciones del movimiento con las aceleraciones y las velocidades angulares, y comparas la posición obtenida con la que te proporciona el GPS.
Échale un ojo a esto: http://www.iit.upcomillas.es/pfc/resumenes/467846605247c.pdf

Desconectado Jlopez

  • PIC10
  • *
  • Mensajes: 12
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #6 en: 26 de Octubre de 2010, 14:13:12 »
Parece mentira, pero esto del Sistema de Navegación Inercial lleva su historia detras!!
No se si os pasará a vosotros pero al principio, cuando empecé a buscar información al respecto, no me enteraba de nada. Así que, poco a poco y en diferentes comentarios voy a ir poniendo la teoria que se necesita para implementar el SNI desde cero (que es lo que yo intento hacer).

Porfavor, si teneis alguna duda o creeis que algún dato es erroneo, comentadlo.

Aquí va la primera entrega:

El movimiento de cualquier objeto en el espacio se puede clasificar en 2 partes: Traslación y Orientación.

Conociendo ambas y el punto de partida (u origen del movimiento) se puede conocer en todo momento la localización del objeto.

Traslación.

Es el cambio de posición de un objeto con respecto a ellos mismos o a otro cuerpo que se toma como referencia. Las ecuaciones que determinan la traslación (cambio de coordenadas) realizada por un móvil son:

x(n)=x(n−1) + vx(n−1)·[t(n)−t(n−1)] + (ax(n)·[t(n)−t(n−1)]^2) / 2
y(n)=y(n−1) + vy(n−1)·[t(n)−t(n−1)] + (ay(n)·[t(n)−t(n−1)]^2) / 2
z(n)=z(n−1) + vz(n−1)·[t(n)−t(n−1)] + (az(n)·[t(n)−t(n−1)]^2) / 2

Donde: x(n), y(n), z(n) son las coordenadas que buscamos. Vx, vy y vz son velocidades y ax, ay, az son las aceleraciones de cada eje medidas con los acelerometros.

Las coordenadas actuales dependen de su propio valor en el instante anterior (n-1), a la velocidad que tenia el cuerpo y a la aceleración que tiene en este instante actual.

Lo que nosotros medimos es la aceleración que sufre el cuerpo en cada instante mediante los acelerómetros. Por eso, lo que realmente estamos haciendo es:

vector(posicion) = vector(posicion_anterior) + integral(vector_aceleración_anterior, respecto-tiempo) +dobleintegral(vector_aceleracion-actual, respecto-tiempo)

De esta forma tenemos en cuenta la posición anterior para ir modificandola y la velocidad que ya tenia el cuerpo. Así en el caso de que la velocidad sea constante durante cierto periodo de tiempo (y por tanto la aceleración medida nula) podremos seguir conociendo la posición actualizada del móvil.

En la proxima entrega, pondré como se calcula la orientación.

1Saludo a to2!!
PD. Cualquier comentario será muy bienvenido.

Desconectado Jlopez

  • PIC10
  • *
  • Mensajes: 12
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #7 en: 27 de Octubre de 2010, 05:57:59 »
Orientación

Como dije en el comentario anterior, hoy trato un poco el tema de la orientación. Considerando el caso ideal. Más adelante se considerará el tema de los errores que existe en todo el proceso para tenerlos en cuenta y crear un sistema práctico.



Nos indica las rotaciones que ha efectuado el móvil respecto a sus 3 ejes (x, y, z).
Esto nos puede servir para saber hacia donde se dirige el móvil, si ha volcado, o está realizando una maniobra de giro. Esta información la obtenemos a partir de los giroscopios que nos dan la velocidad angular y los acelerómetros. Pero principalmente de los giroscopios.

Los tres ángulos son la dirección (heading o yaw), elevación (pitch) y ángulo de guiñada (roll).

Como los giroscopios toman como marco de referencia su posición local, hay que hacer una conversión, o traslado, al marco de referencia de la tierra para que podamos “entender” o comprender en qué posición está realmente el objeto. Para ello se emplea la matriz de rotación R (notación tipica que se utiliza):



La matriz de rotacion R, resulta de multiplicar las 3 matrices que vemos en la figura anterior, que corresponden a la rotación sobre cada uno de los ejes.  [Mirar imagen del final (donde: c = coseno y s = seno)]

Para pasar de un marco de referencia a otro, multiplicamos el vector de posición del marco de referencia móvil (o local de los sensores) por la matriz de rotación para obtener el vector de posición en el marco de referencia fijo (el de la Tierra):
vector_posicion_tierra = vector_posicion_local * matriz_R

Con esto ya sabemos la localización que nos da la Unidad de Medidas Inerciales.


1Saludo a to2!!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #8 en: 27 de Octubre de 2010, 06:10:42 »
Cuando dices que los giroscopios toman como referencia su posición local, ¿te refieres a la que tenían en el momento de encenderlos, o es una referencia que va cambiando?

Magnífica tu explicación. Gracias

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #9 en: 27 de Octubre de 2010, 06:41:19 »
Citar
Esto nos puede servir para saber hacia donde se dirige el móvil
Esto no es preciso. La orientación del sólido no tiene nada que ver con su trayectoria. En el ejemplo del avión, éste puede estar orientado hacia el norte y, sin embargo dirigirse hacia el noroeste por el efecto combinado de un viento de procedencia este.

Otra pequeña puntualización respecto a la traducción de los ángulos: yaw es guiñada, roll es alabeo y pitch es cabeceo

Desconectado Jlopez

  • PIC10
  • *
  • Mensajes: 12
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #10 en: 27 de Octubre de 2010, 07:21:18 »
Nocturno:



En la UMI los giroscopios forman un sistema ortogonal y toman este como punto de refencia. Si la UMI cambia de posición su sistema de referencia también va cambiando. Ejemplo: si tomas un ladrillo y lo mueves de sitio, sin inclinarlo lo más minimo en ninguno de sus ejes, los giroscopios ni se enteran que los has movido de sitio. Si en la nueva posición, inclinas el ladrillo, los giroscopios veran la nueva inclinación (respecto a la que tenia antes) pero nunca la posición respecto al punto de origen.

Cuando tu ves los dos sistemas de referencia en todo momento, desde el principio al final del movimiento, es muy facil saber y ver el cambio de orientación y posición. Pero, cuando no ves los dos sistemas de refencia. Uno de ellos esta muy lejos o simplemente detras de ti. Como no conviertas los datos que te lleguen a tu propio sistema de referencia nunca sabrás qué orientacion tiene.

jfmateos2:

Cierto, la orientación del solido no tiene nada que ver con su trayectoria en la realidad. Pero deja que de momento trabajemos en condiciones "ideales". El GPS que incorporemos ya corrigirá la trayectoria.

Mi idea es exponer la teoria, en condiciones ideales. Luego añadir los errores que se producen en las medidas. Sacar el algoritmo que programaremos en el microcontrolador, simularlo en MATLAB y finalmente llevarlo a la práctica. Poco a poco y paso a paso.

Para tener en cuenta todas las perturbaciones reales, hay que juntar o unir los datos del giroscopio con los acelerometros y el GPS. En la realidad además se unen más sensores, como brujulas, sensores de presión, tubos de pitot, odometría y demás para tener en cuenta todas las perturbaciones externas. (Dependiendo de la plataforma que usemos). Pero de momento, vamos a hacerlo en plan sencillo: giroscopios, acelerometos y GPS.

En lo de la traducción: muchas gracias.

1Saludo a to2!!

Desconectado PCCM

  • PIC16
  • ***
  • Mensajes: 109
Re: Diseño y construccion de un Sistema de Navegación Inercial
« Respuesta #11 en: 11 de Julio de 2012, 12:23:28 »
Alguien sabe si llego a publicar su proyecto de fin de carrera.


 

anything