You are on page 1of 19

PLATAFORMA DE CALIBRACIÓN AUTOMATICA DE IMU’S

ENTREGA FINAL

CAMILO ANDRES BOTINA TRUJILLO


FABIAN ANDRES VERGARA BUSTOS

UNIVERSIDAD DEL CAUCA


FACULTAD DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES
POPAYÁN, CAUCA
2016
Contenido
INTRODUCCIÓN ...................................................................................................................................3
FORMULACIÓN MATEMÁTICA DEL ACELEROMETRO ....................................................4
FORMULACIÓN MATEMÁTICA DEL GIROSCOPO. ..............................................................5
DESARROLLO DEL EXPERIMENTO PARA LA CALIBRACIÓN. .......................................6
DESARROLLO DEL EXPERIMENTO PARA EL GIROSCOPO. ......................................... 11
RESULTADOS DE LA CALIBRACION DEL ACELEROMETRO....................................... 14
RESULTADOS DE LA CALIRBACION DEL GIROSCOPO. ................................................ 15
VALIDACIÓN DE LOS RESULTADOS DEL ACELEROMETRO....................................... 15
VALIDACIÓN DE LOS RESULTADOS DEL GIROSCOPO. ................................................ 17
Figura 1 conexión IMU 6050 con Arduino
MEGA2560………………………………………………………………………………….7
Figura 2 Conexión IMU con Arduino UNO ............................................................................ 8
Figura 3 Plataforma física para el posicionamiento estático del módulo MPU 6050 durante la
adquisición de datos................................................................................................................. 9
Figura 4 Pociones con Base para soldar .................................................................................. 9
Figura 5 Pociones con base para soldar ................................................................................. 10
Figura 6 Posiciones con base para soldar. ............................................................................. 10
Figura 7 Base PTZ 2DOF ...................................................................................................... 11
Figura 8 Estructura para el desarrollo de la calibración del giróscopo. ................................. 12
Figura 9 Prototipo 3D base triaxial. ....................................................................................... 13
Figura 10 Prototipo vista 2 .................................................................................................... 13
Figura 11 Resultado Calibración de Acelerómetro. .............................................................. 14
Figura 12 Magnitud de los datos brutos en las triadas de la MPU, en las 9 diferentes posiciones
estáticas. ................................................................................................................................. 16
Figura 13 Simulación de las magnitudes de las triadas del MPU optimizadas mediante código
en MATLAB, representando las medidas calibradas en las 9 diferentes posiciones estáticas.
............................................................................................................................................... 17
Figura 14 Datos brutos para un experimento. ........................................................................ 17
Figura 15 Medición de las velocidades angulares en las triadas del giróscopo durante los 9
experimentos. ......................................................................................................................... 18
Figura 16 comparación entre cada uno de los componentes del vector de gravedad final .... 19
INTRODUCCIÓN

Las IMU (Inertial Measurement Units) son sensores utilizados en diversas aplicaciones
tecnológicas, en sectores de la robótica, automática, control, entre otras. Son utilizados en
los llamados Smartphone, en apps en donde se encuentran inmersas las mediciones de altitud,
gravedad, posición, inclinación, etc. Han sido extendidos a aplicaciones que contribuyen con
la automatización en otros enfoques como investigaciones en ciencias de la salud.

La calibración de un acelerómetro y del giróscopo es de vital importancia en la toma de datos


que se realiza, pues independientemente del objetivo que se procure realizar, se requiere de
exactitud y precisión. Usualmente la industria ofrece sensores que realizan la misma función
y difieren en su costo, la principal razón de este suceso se debe a la calibración, por tanto un
sensor de un costo más elevado tendrá inmerso desde fábrica el proceso de calibración. Sin
embargo es posible calibrar uno de estos dispositivos de bajo costo y así encontrar los
parámetros que permiten un mejor desempeño.

Como los ejes de referencia X, Y, y Z del acelerómetro y del giroscopio están desalineados
con los ejes de referencia del chasis del dispositivo estos dan lugar a la baja precisión y alta
sensibilidad en su medición. Por lo tanto el objetivo de la calibración de los sensores de la
IMU 6050, es estimar los parámetros del acelerómetro y del giróscopo con el fin de establecer
el factor de corrección y así disminuir las condiciones anteriormente descritas.
FORMULACIÓN MATEMÁTICA DEL ACELEROMETRO

𝑎𝑂 = 𝑇𝑎 ∗ 𝑎𝑆 (1)
En (1) 𝒂𝑶 representa las medidas de la aceleración específica ideal en la estructura de ejes
ortogonales del chasis de la MPU 6050 y 𝒂𝑺 son las medidas de la aceleración específica en
los ejes ortogonales del acelerómetro, los cuales están desalineados respecto a la estructura
de ejes del chasis.

En (2) Ta es la matriz de rotación, donde 𝛼𝑖𝑗 es la rotación del i-ésimo eje del acelerómetro
alrededor del j-ésimo eje del chasis. En este caso el número de ejes del chasis y del
acelerómetro es igual a 3: X, Y y Z.

En (3) Ka representa la matriz de error de escala.

En (4) 𝒃𝒂 representa el vector de error sistemático.

En (5) se representa finalmente el modelo general acogiendo los elementos que generan
imprecisión en las medidas del acelerómetro tales como el error sistemático, el error de escala
y la desalineación entre ejes (chasis-acelerómetro) representados por los ángulos de la matriz
𝑇𝑎.
En (6) 𝜽𝒂𝒄𝒄 es el vector de parámetros desconocidos para calibrar la triada de ejes del
acelerómetro.

En (7) M representa el número de rotaciones distintas y temporalmente estables y Es la


magnitud de la gravedad local donde se llevó a cabo el experimento.

Esta es la ecuación que se utiliza en MatLab para hallar los parámetros que minimizan el
error, determinando el factor de corrección que permite la calibración de las medidas
tomadas.

FORMULACIÓN MATEMÁTICA DEL GIROSCOPO.

𝑤𝑂 = 𝑇𝑔 ∗ 𝑤𝑆 (8)

En (8) 𝑤𝑆 son las velocidades angulares específicas en los ejes de la estructura no ortogonal
medida en el giróscopo y 𝑤𝑂 son las velocidades angulares específicas en una estructura del
giroscopio ideal y ortogonal, con respecto a la estructura de los ejes del chasis.

(9)

En (9) 𝑻𝒈 es la matriz de rotación, donde 𝛼𝑖𝑗 es la rotación del i-ésimo eje del giróscopo
alrededor del j-ésimo eje del chasis. En este caso el número de ejes del chasis y del giróscopo
es igual a 3: X, Y, Z.

(10)
En (10) 𝑲𝒈 representa la matriz de error de escalado.

(11)
En (11) 𝒃𝒈 representa el vector de error sistemático (bias). La calibración del giróscopo se
considerará libre de error sistemático (bias), por lo tanto, este vector no se tendrá en cuenta
puesto que las señales del giróscopo se promediarán alrededor de un periodo inicial
conveniente sin movimiento (intervalo estático).

𝑤𝑂 = 𝑇𝑔 ∗ 𝐾𝑔 ∗ 𝑤𝑆 (12)

Con el fin de calibrar el giróscopo en (12) se representa finalmente el modelo general,


acogiendo los elementos que generan imprecisión en las medidas del giróscopo tales como
el error de escalado y la desalineación entre ejes (chasis-giróscopo) representados por los
ángulos de la matriz 𝑻𝒈.

(13)

En (13) 𝜃𝑔𝑦𝑟𝑜 es el vector de parámetros desconocidos para calibrar la triada de ejes del
giróscopo.

(14)

En (14) se presenta el problema de mínimos cuadrados, 𝑢𝑎, es el vector de aceleración medido


promediando las lecturas calibradas en el k- ésimo intervalo estático (en cada intervalo final).
𝑢𝑔, es el vector de gravedad final predicho gracias al algoritmo de Runge-Kutta. “M”
representa el número de experimentos, para este caso M=9.
Donde 𝑢𝑔,𝑘 = 𝜑[𝑤𝑖𝑠, 𝑢𝑎,𝑘−1] y es un operador que recibe como entradas una secuencia de
lecturas descalibradas del giróscopo y un vector inicial de gravedad, es decir un vector
unitario que representa la dirección de la gravedad dado por el acelerómetro calibrado y
retorna el vector de gravedad final, calculado utilizando las medidas del giróscopo.
En este caso es un método de integración numérico para llevar a cabo la integración de las
velocidades angulares del giróscopo en tiempo discreto, en este caso es el método normalizado
de cuarto orden de Runge-Kutta.

DESARROLLO DEL EXPERIMENTO PARA LA CALIBRACIÓN.

Se establece un procedimiento de múltiples posiciones estáticas para la calibración de la triada


del acelerómetro, mientras que la calibración del giróscopo se realiza mediante la integración
de las velocidades angulares entre dos posiciones estáticas consecutivas, de esta forma se
logra estimar las posiciones de la gravedad en la nueva orientación.
La calibración de los giroscopios se obtiene finalmente minimizando los errores entre
estas estimaciones y las referencias dadas por la gravedad del acelerómetro calibrado.

Para el objetivo de la calibración del acelerómetro se debió investigar inicialmente las


características de la referencia de la IMU con la que se trabajó, posteriormente se procedió a
implementar el código en lenguaje C, en la plataforma Arduino. Algunas de las características
relevantes de la MPU 6050 que se debieron tener en cuenta fueron:

• La MPU 6050 tiene la particularidad de que se comunica con la placa de Arduino


mediante un protocolo llamado I2C, que permite la adición de 2 sensores más con la
posibilidad de comunicarse con este mismo protocolo, además del giróscopo que está
integrado a la MPU.
• Los valores brutos (raw) arrojados por el sensor-Acelerómetro están a un tamaño de
16 bits. Estos se encuentran entre - 2−15 y 215, los cuales representan -2G y 2G
respectivamente.
Para la adquisición de datos se procedió a conectar adecuadamente los pines del módulo a
la placa de acuerdo a los requerimientos del protocolo I2C. Utilizando una placa Arduino
mega 2560, las principales conexiones físicas son:

Figura 1 conexión IMU 6050 con Arduino MEGA2560


En caso de utilizar Arduino Uno las conexiones son:
Figura 2 Conexión IMU con Arduino UNO

Después se procedió a buscar la plataforma física sobre la cual el sensor debió mantenerse en
una posición estática mientras se realizaba la adquisición de datos. Se debió idear una
estructura que se mantuviese rígida y libre de vibraciones en el periodo de adquisición de
datos, debido a la sensibilidad en la lectura de los ejes de acelerómetro. Para una adquisición
de datos efectiva se decidió situar el montaje directamente en la superficie del suelo, de esta
forma se evitaba el desnivel que pudo haber estado en una superficie elevada.

Gracias a la graduación que proporcionaba el compás se lograron nueve posiciones


totalmente estáticas. El código de adquisición de datos en la plataforma arduino se realizó de
tal manera que se tomaran 599 muestras por cada rotación, cada muestra se tomó en un tiempo
de 10ms, es decir que por cada posición se tuvo un tiempo de espera de aproximadamente 6
segundos, (específicamente 5.391 segundos), hasta finalmente completar las 9 posiciones.
Figura 3 Plataforma física para el posicionamiento estático del módulo MPU 6050 durante
la adquisición de datos.

Observando que la estabilidad y vibración son factores que afectan notablemente la


estimación de parámetros se estudian otras opciones que permitan generar las posiciones
estáticas. Un elemento de gran firmeza y que permite realizar desplazamientos en diferentes
sentidos es idóneo para dicha tarea, por tanto se piensa en una base para soldar conocida
comúnmente como “tercer brazo”.

Figura 4 Pociones con Base para soldar


Figura 5 Pociones con base para soldar

Figura 6 Posiciones con base para soldar.


La repetitividad y dispersión de las muestras han llevado a pensar en implementar una
solución, que brinde la facilidad de generar trayectorias automáticamente haciendo del ajuste
de parámetros de IMU’S un proceso compacto, en el cual se eviten errores por parte de la
manipulación manual y tediosa toma de muestras manuales.
Se utilizó una base de dos grados de libertas PTZ, la cual posee una estructura básica y
sencilla en pasta la cual es accionada por dos micro-servomotores SG90 con un rango de
operatividad de 180°, con pasos de 1°.

Figura 7 Base PTZ 2DOF

Las principales falencias observadas utilizando la base PTZ es el ruido inducido por la
dinámica del motor, ya que su control se realiza mediante la medición analógica de un
potenciómetro interno, por tanto, la lectura varía haciendo accionar el servomotor, lo que
induce errores en la muestra de los datos. Por otra parte, los pasos de control de los actuadores
dejan un margen de error bastante considerables.

DESARROLLO DEL EXPERIMENTO PARA EL GIROSCOPO.

Para la adquisición de datos se procedió a conectar adecuadamente los pines del módulo a la
placa de acuerdo a los requerimientos del protocolo I2C. Después se procedió a buscar la
plataforma física sobre la cual el sensor debía mantenerse en sus periodos estáticos mientras
se realizaba la adquisición de datos.
Durante los intervalos de movimiento, se sometía la IMU y la estructura a rotaciones. Es
decir, rotaba toda la estructura incluyendo la base de icopor y el compás, esto gracias al
movimiento que se realizaba con las manos. En el experimento los intervalos estáticos fueron
de 10 segundos aproximadamente y los intervalos dinámicos de 10 segundos. Se realizaron
9 experimentos, cada intervalo dinámico estuvo acompañado de un intervalo estático inicial
y uno final.
En la figura 8 se presenta la estructura anteriormente descrita, la cual permitía la obtención
de datos tanto para los intervalos estáticos como los dinámicos.
Figura 8 Estructura para el desarrollo de la calibración del giróscopo.

En las muestras obtenidas por el giróscopo se utilizaron las mismas bases que experimentales
que para el acelerómetro, es en esta etapa donde se evidencia un problema con el rango de
operabilidad de la base PTZ, ya que las trayectorias se ven limitadas y su funcionamiento
solo se realiza en dos ejes, teniendo en cuenta las falencias de los experimentos y limitaciones
asociadas, se determina realizar una base triaxial. La base tiene como características:
 Base con rotación libre de 360° en tres ejes.
 Actuadores con comunicación half-duplex, con paso de 0,6°, operabilidad de 360°
continuos.
 Base de plomo con soportes anti vibratorios.
 Comunicación RF, eliminando la limitación de cableado.
Con el diseño y la implementación de la plataforma 3 DOF se pretende eliminar todos los
errores presentes en las calibraciones manuales, en el ajuste de parámetros pequeñas
variaciones físicas generan una gran desviación en la calibración de cada dispositivo.
Se realiza un prototipo en 3D, con el fin de hacer estudios de movimiento y verificar que
cumpla con los requerimientos mínimos (medidas).
Figura 9 Prototipo 3D base triaxial.

Figura 10 Prototipo vista 2


RESULTADOS DE LA CALIBRACION DEL ACELEROMETRO

En la ficha técnica suministrada por el fabricante se establece que a un cierto ángulo de


desalineación de los ejes del chasis de la IMU con los del acelerómetro (𝛼𝑦𝑧, 𝛼𝑧𝑦, 𝛼𝑧𝑥), se
presenta un cierto porcentaje de sensibilidad en la medición realizada por los ejes.

Lo que se llevó a cabo en este experimento fue encontrar el vector de parámetros, dentro el
cual se encuentra los ángulos 𝛼𝑦𝑧, 𝛼𝑧𝑦 𝑦 𝛼𝑧𝑥, y que pretendió disminuir estos valores de
ángulos de desalineación, con lo cual se disminuye la sensibilidad de medición en los ejes
del acelerómetro y se garantizan unas medidas más precisas. Dentro del vector de parámetro
establecido en (6) se han hallado los parámetros de error de escala representados por
, y los parámetros de error sistemático representados por .

A continuación se presentan los parámetros de calibración del acelerómetro hallados al


aplicar el principio de los mínimos cuadrados.

𝜃𝑎𝑐𝑐
= [−0.2742, 0.0215, −0.0705, 0.9330, 0.9329, 0.9905, −0,4210, −0.3422, 1.3291]

Figura 11 Resultado Calibración de Acelerómetro.


RESULTADOS DE LA CALIRBACION DEL GIROSCOPO.
Retomando el vector de parámetros mostrado en (13), se presenta finalmente la obtención
de los parámetros de calibración del giróscopo obtenidos a partir del procedimiento que se
describirá a continuación.

Lo primero que se debió hacer fue obtener el vector unitario de gravedad a partir de los datos
medidos por el acelerómetro en el primer intervalo estático de cada experimento, el cual fue
obtenido al promediar los primeros 200 datos, posteriormente se debieron procesar con el
vector de calibración de parámetros obtenido en la anterior práctica.

Este vector unitario de gravedad fue utilizado para obtener el cuaternión inicial necesario
para ejecutar el algoritmo de Runge-Kuta, el cual fue el encargado de integrar las lecturas de
las velocidades angulares del giróscopo, y así se obtuvieron los cuaterniones finales que
permitieron hallar el vector unitario de gravedad final dado por el giróscopo, el cual fue
comparado con el vector unitario de gravedad dado por el acelerómetro en el intervalo
estático final y así se logró resolver el problema de mínimos cuadrados y hallar los parámetros
de calibración del giróscopo.

Con el algoritmo de mínimos cuadrados realizado implementado en MatLab se obtuvo el


siguiente vector de parámetros, que minimiza el error entre cada componente del vector
unitario final de gravedad (utilizando el intervalo estático final de cada experimento) dado
por el acelerómetro calibrado en cada experimento, y los componentes del vector unitario de
gravedad dado por la integración de las velocidades angulares del giróscopo.
𝜃𝑔𝑦𝑟𝑜 = [𝛾𝑦𝑧, 𝛾𝑧𝑦, 𝛾𝑥𝑧, 𝛾𝑧𝑥, 𝛾𝑥𝑦, 𝛾𝑦𝑥, 𝑆𝑥𝑔, 𝑆𝑦𝑔, 𝑆𝑧 ] (13)

𝜃𝑔𝑦𝑟𝑜 = [0.0041551, 0.0441231, −8.6575120𝑒 − 05, −3.6339510𝑒 − 04, 0.8501673,


−3.7298258𝑒 − 07, 1.4506114𝑒 − 07, 2.9914668𝑒 − 06, 2.0499741𝑒 − 07]

VALIDACIÓN DE LOS RESULTADOS DEL ACELEROMETRO

En el proceso de adquisición de datos se obtuvieron 599 muestras brutas por cada intervalo
estático de tiempo. Al aplicar el código en MATLAB se obtiene una gráfica de los datos antes
y después de la calibración.
En el eje de abscisas se encuentran el número total de datos y en el eje de ordenadas, la
magnitud de la gravedad.
El número de posiciones o rotaciones a las que se sometió el acelerómetro durante el
experimento fueron 9, estos están representados en la Figura 12 por color azul, se observan
por tanto 9 anchos de igual longitud, 599 datos brutos que incluyen por cada uno, las
magnitudes de las mediciones de la aceleración en los ejes X, Y, y Z.

Figura 12 Magnitud de los datos brutos en las triadas de la MPU, en las 9 diferentes posiciones estáticas.

En la Figura 12 se puede apreciar que las mediciones del acelerómetro en las diferentes
posiciones estáticas no es la misma, aun cuando es el mismo acelerómetro el que realiza las
medidas, esto se debe porque la referencia de los 3 ejes del chasis de la IMU presenta una
estructura ortogonal fija, y la medición de aceleración realizada en cada eje variará en el
sentido, dirección y altura que se perciba desde este, es decir que un cambio en el sentido del
chasis representará un cambio en las orientaciones de los ejes, y por lo tanto en las
magnitudes de las medidas de los 3 ejes. También se fundamenta en el hecho de que existe
una alta sensibilidad en los ejes, lo cual representa un cambio en la magnitud de la medida
de las triadas. Por lo anterior se evidencia en la Figura 12, las diferentes desviaciones del
valor de la magnitud de la gravedad con respecto al valor 9.775767 𝑚⁄𝑠2 .

En la figura 13 se visualiza en rojo la simulación de la medición de la gravedad, en donde se


ha implementado en el sensor el principio de mínimos cuadrados, garantizando un factor de
corrección representado por el vector de parámetros 𝜃𝑎𝑐 ,que aproxima al máximo los valores
muestreados al valor de la gravedad del lugar en el que se llevó a cabo el experimento:
9.775767 𝑚⁄𝑠2 .
Así se reduce al mínimo la diferencia entre la gravedad real y la magnitud de la gravedad
obtenida mediante el acelerómetro.

Figura 13 Simulación de las magnitudes de las triadas del MPU optimizadas mediante código en MATLAB,
representando las medidas calibradas en las 9 diferentes posiciones estáticas.

VALIDACIÓN DE LOS RESULTADOS DEL GIROSCOPO.


En el proceso de adquisición de datos se obtuvieron entre 700 y 800 muestras brutas por cada
experimento, en estas se incluyen datos de un intervalo estático inicial, uno final y un
intervalo dinámico.
En la figura 14 (los dos estáticos y el dinámico) tienen una duración de 10 segundos durante
los que se obtiene aproximadamente 200 datos. En el eje de abscisas se encuentran el número
de datos y en el eje de las ordenadas las velocidades angulares en los ejes X, Y y Z del
giróscopo. Se puede observar que donde se presenta variación de las velocidades angulares
medidas en los ejes X, Y y Z en el giróscopo, representa el intervalo dinámico.

4
x 10
4
x
2
y
0 z
-2
-4
0 100 200 300 400 500 600 700 800
Figura 14 Datos brutos para un experimento.
Numero Datos

En la figura 15 se observan 9 intervalos dinámicos y 18 intervalos estáticos. Entre cada


intervalo dinámico existen 2 intervalos estáticos (un intervalo estático final correspondiente
al anterior intervalo dinámico y un intervalo estático inicial correspondiente al próximo
intervalo dinámico) En el eje de ordenadas se encuentran las mediciones de las velocidades
angulares en las triadas del giróscopo y en el eje de abscisas.

4
x 10
4
x
2
y

0 z

-2

-4
0 1000 2000 3000 4000 5000 6000 7000
Figura 15 Medición de las velocidades angulares en las triadas del giróscopo durante los 9
experimentos.
Numero Datos

La calibración del giróscopo es necesaria debido a que la referencia de los 3 ejes del chasis
de la IMU presenta una estructura ortogonal fija que esta desalineada con respecto a las
triadas del sensor, por lo tanto la medición de las velocidades angulares realizada en cada eje
variará en el sentido, dirección y altura que se perciba desde este, es decir que un cambio en
el sentido del chasis representará un cambio en las orientaciones de los ejes, y por lo tanto en
las magnitudes de las medidas de los 3 ejes. Además existe una alta sensibilidad en los ejes,
lo cual representa un cambio en la magnitud de las medidas de las triadas.

Ahora para comparar las velocidades angulares brutas entregadas por el giróscopo con las
aceleraciones brutas entregadas por el acelerómetro se debe tener en cuenta que las
velocidades angulares entregadas por el giróscopo durante el intervalo dinámico debieron ser
integradas a través del algoritmo de integración de Runge-Kutta. El cual recibía como
condición inicial un vector que representaba el promedio de las aceleraciones en los
intervalos estáticos iniciales. Y retornaba un vector de aceleración final el cual permitía la
comparación de las aceleraciones finales medidas por el acelerómetro calibrado. La figura 16
representa la comparación entre cada uno de los componentes del vector de gravedad final
𝑈𝑎 entregado por el acelerómetro calibrado y el vector de gravedad final
𝑈𝑔 entregado gracias a la integración de las velocidades angulares. En la figura 16 𝑈𝑎𝑥, 𝑈𝑎𝑦
y 𝑈𝑎𝑧 representa las componentes de 𝑈𝑎 en los ejes X, Y y Z respectivamente, y
análogamente sucede esto mismo con 𝑈𝑔. En este experimento no se compara la gravedad
con su magnitud, sino en términos de un vector de gravedad normalizado equivalente a
suponer una aceleración gravitacional de 1𝑚/𝑠^2. En la figura 16 se visualiza que son
entregadas aproximadamente las mismas magnitudes en cada una de los componentes tanto
de Ua como de Ug, esto gracias al proceso de minimización por mínimos cuadrados y la
determinación de los parámetros de calibración que realizan el ajuste entre estos dos vectores.

Figura 16 comparación entre cada uno de los componentes del vector de gravedad final

You might also like