164. Empleo de mala calidad, el legado del crecimiento inercial
4. Proceso de calibraci n.doc) - Servidor de la...
Transcript of 4. Proceso de calibraci n.doc) - Servidor de la...
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
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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 =
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.
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).
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.
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
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.
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.
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.
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.