4. proceso de calibraci n.doc) - servidor de la...

23
Aplicación para el control de un robot móvil utilizando un sensor inercial ______________________________________________________________________ - 1 - 4. Proceso de calibración. 4.1 Introducción. Una vez que hubimos establecido los fundamentos teóricos y se entendió el funcionamiento del MT9 se pasó al proceso de calibración. Nuestro objetivo era la corrección de medidas erróneas de los magnetómetros de la unidad inercial y para esto debíamos encontrar el mejor método. Leyendo un artículo sobre calibración de brújulas, llamado “Experimentals Results with the KVH C-100 Fluxgate Compass in Mobile Robots” [7] pudimos observar uno de los procesos más habituales para llevar a cabo una calibración considerando los campos magnéticos internos de un robot. Este documento habla de todo lo que se refiere a la influencia de de los campos magnéticos tanto variables como constantes y la manera de contrarestarlos . En un punto de este documento se habla de cómo corregir los campos magnéticos constantes producidos por la plataforma robótica. El método que se sigue es el siguiente: - Encontrar un lugar libre de campos magnéticos. - Situar la brújula sobre un robot de tal manera que apunte al norte magnético. - Coger las medidas de la brújula, en primer lugar con la brújula apuntando al norte magnético. - Ir repitiendo las medidas para 45º, 90º, 135º, 180º, 225º y 270º. De esta manera y con un posterior tratamiento de los datos se consigue corregir el efecto negativo de los campos magnéticos no deseados producidos por el robot. Pensamos en realizar un proceso similar pero cogiendo medidas en muchas más posiciones. En nuestro proceso de calibración introducimos algunos aspectos no contemplados en el proceso descrito en le mencionado artículo. Estas diferencias respecto a éste son: - No es necesario alinear los 0º de la plataforma con el norte magnético. Los 0º de nuestro sistema serán independientes de la posición con que se sitúe el robot. - En vez de coger orientaciones cada 45º, nosotros las cogeremos cada 5º. - Se hizo un análisis previo de la distribución de los campos magnéticos producidos por el robot con el objetivo de determinar la mejor posición del M/) sobre el robot. Una vez definido como seria el proceso de calibración lo que hicimos pues, fue crear una plataforma giratoria (descrita en la sección 2.2.4) con el objetivo de situar el robot con el MT9 encima y poder ir cogiendo medidas. La plataforma de calibración jugó un papel muy importante en el desarrollo de esta parte del proyecto. Encima del robot, pusimos una plantilla graduada la cual tenia divisiones de 5º desde 0º hasta 360º. Así, y con la unidad inercial situada en el centro de esta plantilla apuntando a los 0º, podríamos tener una medida de orientación de referencia la cual la compararíamos con las medidas proporcionadas por los magnetómetros de una unidad inercial. Una vez aquí tuvimos que determinar en que punto sobre el robot teníamos que colocar el MT9, y en consecuencia donde tendríamos que colocar la plantilla (si en la punta, o en medio del robot, etc…). Esta es una de las mejoras propuestas respecto del método original. El proceso de determinación de la colocación del sensor sobre el robot se

Upload: others

Post on 22-Apr-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 1 -

4. Proceso de calibración.

4.1 Introducción.

Una vez que hubimos establecido los fundamentos teóricos y se entendió el

funcionamiento del MT9 se pasó al proceso de calibración.

Nuestro objetivo era la corrección de medidas erróneas de los magnetómetros de la

unidad inercial y para esto debíamos encontrar el mejor método.

Leyendo un artículo sobre calibración de brújulas, llamado “Experimentals Results with

the KVH C-100 Fluxgate Compass in Mobile Robots” [7] pudimos observar uno de los

procesos más habituales para llevar a cabo una calibración considerando los campos

magnéticos internos de un robot. Este documento habla de todo lo que se refiere a la

influencia de de los campos magnéticos tanto variables como constantes y la manera de

contrarestarlos . En un punto de este documento se habla de cómo corregir los campos

magnéticos constantes producidos por la plataforma robótica.

El método que se sigue es el siguiente:

- Encontrar un lugar libre de campos magnéticos.

- Situar la brújula sobre un robot de tal manera que apunte al norte magnético.

- Coger las medidas de la brújula, en primer lugar con la brújula apuntando al

norte magnético.

- Ir repitiendo las medidas para 45º, 90º, 135º, 180º, 225º y 270º.

De esta manera y con un posterior tratamiento de los datos se consigue corregir el efecto

negativo de los campos magnéticos no deseados producidos por el robot.

Pensamos en realizar un proceso similar pero cogiendo medidas en muchas más

posiciones. En nuestro proceso de calibración introducimos algunos aspectos no

contemplados en el proceso descrito en le mencionado artículo. Estas diferencias

respecto a éste son:

- No es necesario alinear los 0º de la plataforma con el norte magnético. Los 0º

de nuestro sistema serán independientes de la posición con que se sitúe el robot.

- En vez de coger orientaciones cada 45º, nosotros las cogeremos cada 5º.

- Se hizo un análisis previo de la distribución de los campos magnéticos

producidos por el robot con el objetivo de determinar la mejor posición del M/)

sobre el robot.

Una vez definido como seria el proceso de calibración lo que hicimos pues, fue crear

una plataforma giratoria (descrita en la sección 2.2.4) con el objetivo de situar el robot

con el MT9 encima y poder ir cogiendo medidas. La plataforma de calibración jugó un

papel muy importante en el desarrollo de esta parte del proyecto.

Encima del robot, pusimos una plantilla graduada la cual tenia divisiones de 5º desde 0º

hasta 360º. Así, y con la unidad inercial situada en el centro de esta plantilla apuntando

a los 0º, podríamos tener una medida de orientación de referencia la cual la

compararíamos con las medidas proporcionadas por los magnetómetros de una unidad

inercial.

Una vez aquí tuvimos que determinar en que punto sobre el robot teníamos que colocar

el MT9, y en consecuencia donde tendríamos que colocar la plantilla (si en la punta, o

en medio del robot, etc…). Esta es una de las mejoras propuestas respecto del método

original. El proceso de determinación de la colocación del sensor sobre el robot se

Page 2: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 2 -

detalla en la sección 4.2. Cabe decir que este proceso se hizo con el objetivo de tener

situado el MT9 en un punto donde las interferencias creadas por el robot fueran

mínimas, facilitando así la calibración.

Además de esto teníamos que buscar un lugar libre de campos magnéticos ya que la

calibración se hace únicamente intentando contrastar los campos magnéticos producidos

por el robot en cada una de sus configuraciones posibles. Esto es debido a que los

campos magnéticos que producirá tendrán una posición fija respecto al sensor. Como

consecuencia de esto, dentro de un edificio no se podía llevar a cabo el proceso de

calibración ya que cualquier tipo de estructura metálica o conductora como por ejemplo

tuberías, cables de corriente eléctrica, etc.. podrían ser una fuente de interferencias en

las medidas de los magnetómetros.

Así, a primera vista pensamos en ubicar la plataforma de calibración delante del edificio

Jovellanos (no hay nada cercano como se observa en la figura 4.2). Este podría ser un

buen sitio ya que las interferencias que se pudieran producir no llegarían hasta el MT9,

o en todo caso serían muy débiles. De esta manera decidimos hacer una primera prueba,

la cual resultaba bastante aparatosa ya que teníamos que transportar muchos elementos,

algunos de ellos muy pesados. A parte de esto nos teníamos que asegurar que la

plataforma estuviera bien nivelada, ya que de no ser así las medidas obtenidas podrían

ser incorrectas. El desnivel del terreno y su poca uniformidad, dificultaba mucho el

nivelaje del robot. En fin, tomar medidas en aquel lugar era posible, pero resultaba muy

incómodo.

Como que no sabíamos exactamente hasta que punto podían afectar los campos

magnéticos externos decidimos que se podría hacer una prueba cerca del edificio

Anselm Turmeda, de manera que si salía bien, sería mucho más cómodo para nosotros.

Se hizo exactamente la misma prueba anterior y los resultados obtenidos se asemejaban

mucho a los resultados obtenidos en el edificio Jovellanos. La figura 4.1 nos muestra los

resultados obtenidos. Esta gráfica nos muestra la orientación proporcionada por el MT9

en función de la orientación real.

figura 4.1. Resultados obtenidoss en el edificio Jovellanos.

Page 3: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 3 -

figura 4.2. Primera prueba en el Jovellanos

La figura 4.2 muestra la configuración del entorno de trabajo en el edificio Jovellanos.

4.2 Ubicación.

En este apartado intentaremos explicar el proceso que se llevó a cabo para

determinar la mejor posición del MT9 sobre el robot.

Teníamos que encontrar el punto donde las interferencias producidas por el robot

sobre el MT9 fueran mínimas. Con el objetivo de conseguir esto, pusimos sobre el robot

una plantilla con quince posiciones distintas. Las posiciones diferenciadas sobre el robot

se presentan en la figura 4.3.

figura 4.3. Diferentes posiciones posibles sobre el robot.

El proceso sería:

Page 4: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 4 -

- Coger primero medidas del campo magnético en cada una de las posiciones

sobre el robot.

- Coger medidas en las mismas posiciones, peor sin el robot.

La diferencia entre las medidas cogidas sobre el robot y las cogidas sin él nos daría la

información suficiente sobre el campo magnético provocado por el robot en cada uno de

los magnetómetros, en cada posición considerada sobre el robot. Esta diferencia se

debe a que cuando situamos el MT9 sin el robot, éste se ve afectado únicamente por los

campos magnéticos externos, mientras que cuando lo situamos con el robot aparecen los

campos magnéticos externos más los producidos internamente por el robot. Los

resultados obtenidos dan a información sobre los campos magnéticos producidos por el

robot. Los resultados que se obtuvieron son los mostrados en la tabla 4.1.

Posición X

[a.u]

Y

[a.u]

Z

[a.u]

Módulo

[a.u]

1 -0,65514 -0,62098 -0,65614 1,6211

2 -0,88543 -0,037634 -1,1399 1,5579

3 -0,72922 0,65599 -0,8484 0,99491

4 -0,15998 -0,79465 -0,99616 1,2941

5 -0,10597 -0,079142 -0,23847 0,2726

6 -0,18433 -0,75814 -1,3485 0,88524

7 0,50767 -0,52459 -0,67597 0,86443

8 0,64695 -0,25627 -1,0911 0,63387

9 0,43301 0,90655 -1,0241 0,65906

10 0,86056 0,650752 -0,20126 1,0975

11 0,64889 -0,20657 -0,53245 0,36484

12 0,51073 0,53889 -0,78961 1,0838

13 -0,335 0,56246 0,576 0,87198

14 0,418 -0,76148 -0,61249 1,0628

15 0,76403 -0,19669 -1,15718 1,2289

tabla 4.1. Campos magnéticos en cada eje e intensidad del campo.

Esta tabla muestra una estimación del campo magnético en cada eje así como la

intensidad de éste. Las unidades que da el fabricante son auxiliar unit, es decir, una

unidad auxiliar de la que no nos es proporcionada ninguna información ya que el MT9

no está pensado para que sea accedido a tan bajo nivel. De esta unidad proporcionada

por el fabricante, lo único que sabemos es que en el caso de hacer el módulo obtenemos

un vector que representa la intensidad del campo magnético. Pero de todas maneras este

valor solo nos sirve para comparar los campos magnéticos en cada posición, ya que un

valor presentado solo no nos daría ninguna información. La figura 4.4 muestra la

intensidad del campo magnético para cada una de las posiciones diferenciadas sobre el

robot.

Page 5: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 5 -

figura 4.4. Intensidad del campo magnético cada una de las posiciones diferenciadas sobre el robot.

Creímos que la mejor colocación del MT9 sobre el robot era la posición 5, de manera

que se podía observar como tanto el campo magnético en los tres ejes como el módulo

de éste eran mínimos. Observando tanto la tabla 4.1 como el gráfico de la figura 4.4

vemos que esta posición es la que menos se ve influenciada por los campos magnéticos

internos del robot.

Llegados aquí, parecía que ya teníamos la posición idónea para poder comenzar ha

hacer la recogida de datos. Ero pensamos que podríamos hacer otro experimento igual

que este anterior, con la única diferencia que levantaríamos el MT9 sobre una pequeña

base de madera a unos 10 cm de la superficie del robot. En este caso se observó una

notable disminución de la influencia del campo magnético. Esta mejora es debida a que

levantando el MT9, le alejamos de la fuente de interferencias. Ya que la intensidad del

campo magnético varia de forma inversamente proporcional al cuadrado de la distancia,

la influencia del campo magnético disminuye notablemente. Los resultados se observan

en la tabla 4.2.

Solamente observando la tabla 4.2 se ve una notable mejora. Entonces se puede ver que

efectivamente, un pequeño alejamiento del MT9 de la superficie de robot ya provoca

una gran disminución de las interferencias hacia el aparato. Podríamos pensar que si

levantásemos el MT9 sobre una plataforma más grande la interferencias disminuirían

todavía más, lo cual es cierto, pero provocaría que el sensor estuviera más inestable ya

que a mayor altura más se mueve la plataforma y en consecuencia el MT9. Las medidas

pues, serían incorrectas debido a la vibración que experimentaría el MT9 sobre la

plataforma.

Page 6: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 6 -

Posición X

[a.u.]

Y

[a.u.]

Z

[a.u.]

Módulo

[a.u.]

1 -0.25822 -0.12502 -0.2533 0,3827

2 -0.14797 -0,05719 -0,24235 0,2896

3 -0.1223 0,078353 -0,21982 0,2635

4 -0.080964 -0,12524 -0,20287 0,2518

5 -0.064859 -0,021933 -0,2814 0,2896

6 -0.05282 -0,095094 -0,25397 0,2763

7 -0.0116547 -0,10646 -0,18941 0,2176

8 0.031965 -0,02124 -0,16242 0,1668

9 0.031319 0,090677 -0,23243 0,2515

10 0.045689 0,078189 0,26814 0,2830

11 0.075896 -0,0202 -0,28746 0,2979

12 0.067978 0,068061 -0,17656 0,2016

13 0.041521 -0.051054 -0.285103 0,2205

14 0.071276 0,013479 -0,21609 0,2279

15 0.063461 0,059812 -0,2549 0,2694

Tabla 4.2. Campos magnéticos en cada eje e intensidad del campo

magnético cuando lo alejamos de la fuente de interferencias.

A continuación, en la figura 4.5 se muestra la intensidad de campo magnético

en cada una de las posiciones escogidas del robot. Se observa que la intensidad del

campo magnético ha disminuido mucho respecto del presentado en la figura 4.4. Cabe

notar que la escala utilizada en el eje Z del gráfico no es la misma que la utilizada en la

gráfica de la figura 4.4.

figura 4.5. Intensidad del campo magnético para cada una de las posiciones diferenciadas sobre el robot.

Page 7: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 7 -

En conclusión, podemos ver como a mayor altura menor serán las interferencias pero

mayor será la inestabilidad. Tuvimos que llegar a un compromiso entre la altura y la

influencia de las interferencias y pensamos que 10 cm sería la mejor opción.

El simple hecho de levantarlo un poco ha hecho que entren más posiciones en juego, ya

que ahora al ser las interferencias mucho más pequeñas resulta más complicado elegir

donde vamos a ubicar el MT9. Finalmente decidimos que la posición número 8 sería la

idónea, una posición mas atrás que la que habíamos elegido para el caso en que el MT9

estaba sobre la superficie del robot.

Ahora que ya teníamos ubicado el MT9 y teníamos el lugar donde hacer las pruebas de

recaudación de datos, era hora de pasar a los experimentos de recogida de datos.

4.3 Obtención de los datos de calibración.

Como se ha dicho, una vez ubicado el MT9 sobre el robot, era hora de ver que

experimentos se harían. El lugar donde se hicieron definitivamente fue el exterior del

edificio Anselm Turmeda. Se llevaron a cabo varios experimentos. En cada uno se hacía

lo mismo (recogida de datos cada 5º de rotación) pero se consideraban las distintas

configuraciones en que se podía encontrar el robot. Estas configuraciones eran:

- Robot parado y placa parada.

- Robot en marcha y placa parada.

- Robot en marcha y placa en marcha. Dentro de ésta:

· Ruedas adelante, velocidad de cada rueda 0.625 rad/s.

· Ruedas adelante, velocidad de cada rueda 1.25 rad/s.

· Ruedas atrás, velocidad de cada rueda 0.625 rad/s.

· Ruedas atrás, velocidad de cada rueda 1.25 rad/s.

· Giro a la derecha (rueda izquierda adelante), velocidad rueda izquierda

0.625 rad/s, rueda derecha parada.

· Giro a la derecha (rueda izquierda adelante), velocidad rueda izquierda

1.25 rad/s, rueda derecha parada.

· Giro a la izquierda (rueda derecha adelante), velocidad rueda derecha

0.625 rad/s, rueda izquierda parada.

· Giro a la izquierda (rueda derecha adelante), velocidad rueda derecha

1.25 rad/s, rueda izquierda parada.

· Giro a la izquierda sobre él (rueda izquierda atrás y derecha adelante),

velocidad rueda derecha 0.625 rad/s. Velocidad rueda izquierda -0.625

rad/s.

· Giro a la izquierda sobre él (rueda izquierda atrás y derecha adelante),

velocidad rueda derecha 1.25 rad/s. Velocidad rueda izquierda -1.25

rad/s.

· Giro a la derecha sobre él (rueda derecha atrás y izquierda adelante),

velocidad rueda derecha -0.625 rad/s. Velocidad rueda izquierda 0.625

rad/s.

· Giro a la derecha sobre él (rueda derecha atrás y izquierda adelante),

velocidad rueda derecha -1.25 rad/s. Velocidad rueda izquierda 1.25

rad/s.

La velocidad que se señala, tal y como se ve, corresponden a las velocidades angulares

de cada rueda y no a la velocidad de giro del robot.

Page 8: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 8 -

Cabe decir que el Pioneer 3-DX en su estado normal de funcionamiento siempre estará

con la placa en marcha, pero hemos considerado los casos en que esta todo parado y la

paca parado para tener información adicional y así poder comparar las interferencias

producidas por el motor.

El hecho de considerar cada una de estas configuraciones es porque no todas producirán

el mismo nivel de perturbación en el MT9, sino que cada configuración producirá unas

interferencias determinadas. Por ejemplo, los campos magnéticos producidos por la

acción del movimiento de una rueda (acción únicamente de un motor), no serán los

mismos que los producidos cuando el robot gire sobre él mismo ya que en este último

caso estarán activos los dos motores. Por este motivo teníamos que tener en cuenta

todas y cada una de las configuraciones posibles del robot. Cabe decir que la recogida

de datos se hizo a través de un ordenador portátil y no a través de la placa interna del

robot, ya que esta recogida de datos se tenía que hacer con el MT9 Software y de éste

solo existe versión para Windows (la placa lleva Linux).

El proceso que seguíamos para la recogida de datos era el siguiente:

- Nivelar la plataforma de calibración.

- Situar el robot encima y mirar que siguiese nivelado.

- Encontrar el centro de rotación de la plataforma y alinearlo con el centro del

círculo graduado.

- Situar el MT9 sobre el robot en la posición de ubicación determinada en el

apartado 2.4.

- Conectar el MT9 al portátil a través de un puerto serie.

- Ir cogiendo datos con el MT9 Software cada 5º.

En la figura 4.6 se ve como quedaba a punto para hacer la recogida de datos:

figura 4.6. Plataforma preparada para la recogida de datos.

Una vez teníamos todo conectado, accedíamos al robot inalámbricamente y

ejecutábamos un pequeño programa en C mediante la línea de comandos que indicaba al

robot cada uno de los movimientos que debía realizar. El programa mostraba por la

pantalla las diferentes configuraciones más típicas en que podíamos encontrar al robot.

Según la opción escogida el robot realizaba un movimiento u otro. Este movimiento del

robot se producía gracias a las librerías ARIA.

Page 9: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 9 -

Cabe decir que en todos los experimentos en que el robot y la placa estaban en marcha,

los ultrasonidos del robot también estaban encendidos considerando que en un caso real

siempre lo estarían, ya que son su mecanismo de percepción del entorno. De esta

manera, para todos los experimentos hemos tenido en cuenta el efecto de los

ultrasonidos.

4.4 Resultados.

Después de días de recogida de datos, finalmente llegó el momento de tratarlas para

obtener la función de calibración.

Para cada posición de cada configuración del robot, cogíamos un conjunto grande de

datos indefinidos de orientación. En total 73 posiciones para cada configuración del

robot (y en cada posición múltiples datos). Mediante programación, para cada

configuración cargábamos 100 lecturas de cada posición dentro de una matriz. Esta

matriz corresponde a la intensidad de campo magnético que afecta a los ejes X, Y y Z

respectivamente. Para encontrar la orientación en grados dada por el sensor debíamos

hacer el arcotangente del eje Y entre el eje X. El hecho de hacer el arcotangente es

porque la orientación representa la orientación sobre el eje Z, y esta rotación se

consigue haciendo esta rotación. La figura 4.7 puede ayudar a aclarar como se obtiene la

orientación.

figura 4.7. Obtención de la orientación a partir

de la información de cada eje.

Hemos de destacar que a partir de este punto, cuando hablemos de orientación real

estaremos hablando de la orientación de referencia dada por la plataforma de

calibración. En cambio cuando hablemos de orientación del MT9 estaremos hablando

de la orientación que nos proporcionen los magnetómetros de la unidad inercial.

Si graficamos estos puntos con el eje de ordenadas que sea la orientación real y el eje de

abcisas la orientación dada por el MT9, obtenemos lo que se puede ver en la figura 4.8.

Page 10: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 10 -

figura 4.8. 100 puntos de cada orientación.

Si ampliamos uno de los puntos, observamos lo que se ve en la figura 4.9.

figura 4.9. Ampliación para el caso de 20º reales

En cada orientación que tenemos graficamos las 100 lecturas consideradas con la

finalidad de ver en que medida varían las lecturas proporcionadas por el MT9 cuando

éste está quieto. Esta variación puede ser debida a:

- Vibraciones del MT9.

- Campos magnéticos del robot.

- Efecto de los ultrasonidos.

- La propia repetibilidad del MT9.

Page 11: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 11 -

La gráfica adopta valores positivos y valores negativos porque el MT9 realiza medidas

de -180º a 180º. Podemos observar también que la orientación que nos da el sensor no

coincide con la orientación real (por ejemplo a 0º reales, el MT9 nos da lecturas

cercanas a 53º) y presenta una discontinuidad. El motivo es porque en la posición en

que se calibró, el robot n tenía alineados sus cero grados con el norte magnético. Si

hubieran coincidido hubiéramos visto la grafica continua desde -180º hasta 180º.

Esto no será un problema ya que no nos interesa la orientación absoluta respecto del

norte magnético. Simplemente supondremos la primera lectura (realmente la media de

los 100 primeros valores correspondientes al primer valor de orientación del MT9)

como los 0º, independientemente de la posición en que situemos el robot. Estos 0º los

obtendremos simplemente restando el primer valor de orientación que proporciona el

MT9 a todos los valores de orientación obtenidos con el MT9. Además también se

pueden hacer cambios necesarios para que la gráfica sea continua entre 0º y 360º. Des

esta última manera será como vamos a tratar los datos. Una vez hechas estas

modificaciones obtenemos el resultado que se presenta en la figura 4.10.

figura 4.10. Datos obtenidos por el MT9 modificados por software

Si acercamos la imagen podemos ver las desviaciones típicas. En la figura 4.11

podemos observarlas con mucha claridad.

Page 12: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 12 -

figura 4.11. Desviaciones típicas

de los resultados obtenidos

Vemos como ahora solo se grafica un punto en cada posición. Esto es debido a que se

ha hecho una media de los 100 puntos de cada posición ya que la función de

calibración se tendrá que hacer sobre un punto de cada posición. Lo que hicimos fue una

media de los 100 puntos que graficamos anteriormente en la figura 4.8 para cada una de

las orientaciones consideradas.

Una vez visto como tratamos los datos vamos a ver los resultados obtenidos para las

distintas configuraciones. Los resultados fueron los representados en las figuras desde la

4.12 hasta la 4.25 correspondientes a cada una de las configuraciones consideradas en la

sección 4.3.

figura 4.12. Robot apagado y placa apagada. Figura 4.13. Robot en marcha y placa en marcha

Page 13: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 13 -

Con el robot y la placa en marcha vamos a ver las distintas configuraciones

figura 4.14. Alante velocidad de las figura 4.15. Adelante velocidad de las dos ruedas 0,625 rad/s. dos ruedas 1,25 rad/s.

figura 4.16. Atrás velocidad de les figura 4.17. Atrás velocidad de las

dos ruedas - 0,625 rad/s. dos ruedas -1,25 rad/s.

figura 4.18. Giro a la derecha velocidad figura 4.19. Giro a la derecha velocidad rueda izquierda 0,625 rad/s. rueda izquierda -1,25 rad/s.

Page 14: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 14 -

figura 4.20. Giro sobre el a la derecha figura 4.21. Giro sobre el a la derecha.

rueda izquierda velocidad 0,625 rad/s. rueda izquierda velocidad 1,25 rad/s. rueda derecha velocidad -0,625 rad/s. rueda derecha velocidad -1,25 rad/s.

figura 4.22. Giro a la izquierda velocidad figura 4.23. Giro a la izquierda velocidad

rueda derecha 0,625rad/s. rueda derecha 1,25 rad/s.

figura 4.24. Giro a l’esquerra sobre el figura 4.25. Giro a la izquierda sobre él. velocidad rueda derecha 0,625 rad/s. velocidad rueda derecha 1,25 rad/s.

velocidad rueda izquierda 0,625 rd/s. velocidad rueda izquierda 1,25 rd/s.

Que las gráficas se asemejen mucho es debido a que el hecho de elevar el MT9 sobre el

robot hace que la influencia de los campos magnéticos sea muy pequeña.

Page 15: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 15 -

4.5 Aproximaciones.

En este apartado se intentará ver los métodos utilizados para la calibración. La idea de

una función de calibración es interpolar todos los puntos que tenemos con el objetivo de

obtener una función continua. Esto hará que en las zonas donde nosotros no tenemos

información del MT9, podamos obtener medidas de orientación real.

Una vez normalizados los datos ya se podía pasar a sacar una función de calibración que

relacionase todos y cada una de estos datos proporcionados por el sensor y nos

proporcione un dato de orientación real. El hecho de tener una función continua hará

que como que solo hemos cogido medidas cada cinco grados, en los espacios vacíos

podremos obtener una medida de orientación real aproximada a partir de la orientación

que nos proporciona el MT9. Con la gráfica de la figura 4.26 podemos aclarar lo

anteriormente explicado.

figura 4.26. Interpolación de las medidas obtenidas.

Se observa en la figura 4.26 que el hecho de haber interpolado nos produce una

continuidad a la hora de obtener las medidas de orientación real a partir de la

orientación proporcionada por el MT9.

Se pensó en dos maneras de llevar a cabo esta interpolación:

- Mediante un polinomio.

- Mediante líneas rectas.

Interpolación polinómica.

La primera aproximación que se hizo fue la del polinomio interpolador. Mediante la

función polyfit de Matlab, se obtiene la ecuación de un polinomio interpolador del grad

que nosotros le asignemos. La función es la siguiente:

) , ,( nyxpolyfitpolinomi =

Page 16: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 16 -

Donde x e y son los valores de los datos que queremos aproximar y n es el grado del

polinomio. Lo que hace esta función es una búsqueda del polinomio que más se ajusta a

un registro de puntos minimizando el error. Este error será la suma de las diferencias al

cuadrado entre los puntos a aproximar y los valores proporcionados por el polinomio.

Además como mayor sea el grado de este polinomio mejor se ajustará y por lo tat

menos será el error producido.

Finalmente, gráficamente podemos observar el resultado de aplicar este polinomio

interpolador. La figura 4.27 muestra un conjunto de datos, concretamente los de la

configuración adelante velocidad de las ruedas 0.625 rad/seg y el polinomio de grado

cuatro que aproxima estos datos.

figura 4.27. Polinomio interpolador

Podemos observar como el polinomio interpolador toma una forma similar a la de los

puntos obtenidos en el experimento. Aparecen zonas donde el polinomio se ajusta más a

los puntos y otras donde el error que se introduce es mayor. Si acercamos dos zonas tal

y como se muestran en las figuras 4.28 y 4.29, podemos observar cada una de estas con

más claridad.

figura 4.28. Zoom del polinomio interpolador.

Page 17: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 17 -

figura 4.29. Zoom del polinomio interpolador.

Podemos ver como en la figura 4.29 el polinomio aproxima bastante bien, de manera

que éste pasa prácticamente por encima de los puntos. En cambio, en las zonas del final

(figura 4.28), el polinomio pasa por debajo llegándose a introducir un error de hasta 5º.

Es la parte en que se introduce más error.

En las figuras 4.30 y 4.31 se presentan una serie de imágenes correspondientes a la

misma configuración pero con distintas grados de polinomio interpolador.

figura 4.30. Aproximación mediante un polinomio de grado 1 (línea recta).

Page 18: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 18 -

figura 4.31. Aproximación mediante polinomio de grado 10.

Podemos observar con claridad que el hecho de aumentar el grado del polinomio

disminuye mucho el error que se pueda producir. Pero visualmente, a parir de grado 5,

no se observa diferencia entre polinomios. En la figura 4.30 se muestra la interpolación

mediante un polinomio de grado 1 (una recta). En este caso el polinomio no ajusta nada

bien el conjunto de puntos. Todo lo contrario pasa con el polinomio de grado 10

mostrado en la figura 4.31. En este caso vemos como el polinomio ajusta bastante bien

los puntos que deseamos interpolar. Si siguiéramos aumentando el grado del polinomio,

aunque no se pudiera la mejora, si contabilizásemos el error veríamos como éste iría

disminuyendo.

Una vez que hemos obtenido el polinomio interpolador de grado ‘n’, con el objetivo de

obtener los datos de orientación real a partir de las lecturas proporcionadas por el MT9

durante la ejecución de una tarea, tenemos que sacar las raíces del polinomio obtenido.

El proceso es el siguiente:

- Obtener el polinomio de grado ‘n’, tal como:

gxbxay nn +++= − ...·· 1

Donde x se corresponde a las medidas de orientación real e y

corresponden a las medidas proporcionadas por el MT9.

- Sacar las raíces del polinomio.

- En el caso de obtener una gráfica tan recta como las representadas

hasta ahora coger, de todas las raíces obtenidas la real positiva. En

este caso será sencillo ya que solo habrá una raíz real positiva para

cada orientación proporcionada por el MT9. Pero en el caso en que

las interferencias hayan afectado mucho al MT9 podremos obtener

una gráfica tal y como se puede observar en la figura 4,32.

Page 19: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 19 -

figura 4.32. Gráfica de orientaciones muy influenciada por los campos magnéticos.

Lo que se muestra en la figura 4.32 corresponde a u giro del robot sobre él pero con el

MT9 pegada a la carcasa. Ya habíamos comentado que as interferencias magnéticas

eran mucho mayores.

En este segundo caso para cada orientación del MT9 encontraremos dos raíces reales

positivas. Tenemos que suponer que el robot hará giros suaves, y los cambios de sentido

también serán suaves. Por ejemplo no cambiará de 0º a 90º en 100ms. Entonces, y

teniendo en cuenta que el robot hace tiempo que está en movimiento, para conocer la

raíz que tendríamos que escoger tendríamos que tener las dos últimas orientaciones para

conocer el sentido de giro

A partir de aquí de las dos raíces posibles tendríamos que coger la raíz más cercana las

dos anteriores en el sentido de giro del robot.

En el caso en que el robot empiece del reposo, tendremos que obtener orientación de

otros sensores, como por ejemplo de la odometria, para conocer el sentido de giro. En

caso contrario, no lo podremos conocer.

Interpolación por lineas rectas.

La segunda aproximación que se llevó a cabo fue mediante líneas rectas. El objetivo era

unir cada dos puntos con una recta con el objetivo de obtener la ecuación de la recta en

cada tramo. Así, podríamos obtener una estimación de la orientación real a partir de la

orientación del MT9 teniendo en cuenta la ecuación a utilizar. Cada una de estas rectas

va desde un punto origen a un punto destino. Por ejemplo, unimos mediante una recta

Page 20: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 20 -

los p untos 0 y 1 (correspondientes a 0º y 5º reales), después mediante otra recta los

puntos 1 y 2, etc… y así sucesivamente hasta tener 72 rectas para los 73 puntos de los

que disponemos.

Para tener información sobre la recta que unirán dos puntos lo que se tenia que hacer era

encontrar la ecuación de cada una de las rectas. Lo que hicimos fue:

· Coger dos puntos, uno origen y uno destino.

· Como la ecuación de una recta es y=a·x+ b y nosotros disponemos de dos

puntos (inicial y final), en cada iteración podemos encontrar la ecuación de

cada recta planteando el siguiente sistema de ecuaciones:

+=

+=

bxay

bxay

22

11

·

·

Donde x1 e y1 corresponden a la orientación real y orientación proporcionada por el

MT9 del punto inicial respectivamente y x2 e y2 corresponden a la orientación real y a

orientación proporcionada por el MT9 del punto final respectivamente.

· Repetimos el proceso para todos los puntos.

Una vez encontradas todas y cada una de las ecuaciones de las rectas, si las dibujamos

obtenemos lo que se representa en la figura 4.33.

figura 4.33. Interpolación mediante rectas.

Page 21: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 21 -

Si acercamos la imagen y nos centramos en los primeros puntos:

figura 4.34. Zoom de la aproximación por líneas rectas

Podemos apreciar en la figura 4.34 las rectas que unen cada par de puntos. Cada una de

éstas tendrá una pendiente diferente que calcularemos para obtener la orientación real a

partir de la orientación del MT9. La orientación real a partir de la orientación del MT9

en este caso se obtiene haciendo:

- En primer lugar identificamos en que intervalo se encuentra la medida

proporcionada por el MT9. Por ejemplo tendremos que ver si ésta se

encuentra entre 0º y 5º, entre 5º y 10º, etc…

- Una vez identificado esto último aplicamos la ecuación de la recta con

pendiente y la ordenada al origen que determinamos en ese intervalo.

a

byx

−=

Donde a y b representan la pendiente de la recta y la ordenada al origen

en ese intervalo respectivamente. x e y representan la orientación real y la

orientación dada por el MT9 en ese intervalo respectivamente.

4.6 Evaluación de las aproximaciones.

Una vez estuvieron hechas las aproximaciones tanto polinómica como con líneas rectas

teníamos que ver cual de ellas nos convenía más para nuestra aplicación. El caso era

elegir bien si usar el ajuste mediante líneas rectas o el ajuste polinómico y, en el caso de

éste último, de que grado:

Pensamos en dos criterios para poder ver el mejor método a utilizar:

- Cálculo del error.

- Observación del tiempo de cálculo.

Para contabilizar el error producido, lo que hicimos fue la suma del cuadrado de las

diferencias entre el valor que nos dio directamente el MT9 y el valor que obtuvimos

bien aplicando el polinomio de grado ‘n’, bien resolviendo la ecuación de la recta

correspondiente.

Page 22: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 22 -

La suma de las diferencias al cuadrado se hace para una vuelta completa al robot. Por tal

de observar el error producido, cogimos uno puntos intermedios, es decir, que volvimos

a montar la plataforma de calibración para realizar estas medidas.

En este caso cogimos valores desde 2’5º de cinco en cinco hasta 357’5º.

Teníamos que coger estas medidas porque en el caso de la aproximación por líneas

rectas, si evaluábamos los puntos que ya teníamos (0º, 5º, 10º, etc…) el error producido

nos daría cero, ya que el punto que calcularía sería el mismo que el proporcionado por

el sensor debido a que las rectas pasan por encima de estos puntos.

Un cada uno de los casos tuvimos que estimar el error producido y a partir de aquí, ver

que aproximación no convenía más.

Pero la medida del error no era suficiente y teníamos que fijarnos también en el tiempo

de cálculo, ya que en un caso real el cálculo de la orientación real a partir de la

orientación proporcionada por el MT9 puede ser muy costoso en tiempo y el proceso

puede llegar a hacerse muy lento.

De esta manera una aplicación como el caso de acoplar el MT9 sobre el robot podría no

funcionar en tiempo real.

El tiempo de cálculo medido se corresponde al cálculo de 100 orientaciones reales a

partir de los datos del MT9. Este tiempo no es significativo en términos absolutos, ya

que los tiempos de ejecución de Matlab difieren mucho a los de una implementación en

C. Esto sí, tiene interés para poder compararlos entre ellos.

Para el caso del polinomio, vemos como va variando el tiempo de cálculo y el

error en función del grado que tenga. Nosotros hemos hecho los casos de grado 2 hasta

grado 10. Los resultados son los que se representan en las figuras 4.35 y 4.36 que

representan el error y el tiempo de cálculo respectivamente en función del grado del

polinomio.

figura 4.35. Error absoluto en función del grado del polinomio.

Page 23: 4. Proceso de calibraci n.doc) - Servidor de la …bibing.us.es/proyectos/abreproy/50046/fichero/4.+Proceso...Aplicación para el control de un robot móvil utilizando un sensor inercial

Aplicación para el control de un robot

móvil utilizando un sensor inercial

______________________________________________________________________

- 23 -

En la figura 4.35 podemos ver que en el paso del polinomio de grado 3 a grado 4, el

error disminuye muchísimo. A partir de grado 4 la disminución no es muy grande. En

cuanto al tiempo de cálculo se muestra a continuación en la figura 4.36.

figura 4.36. Tiempo de cálculo en función del la raíz del polinomio.

El tiempo de cálculo va aumentando a medida que el grado del polinomio aumenta.

Vemos que más o menos el tiempo de cálculo es lineal en función del grado que tenga

el polinomio.

El error en el aso de la aproximación con líneas rectas es de 27.36 con un tiempo de

cálculo de 22.078s.