Giroestabilizador De Videocámara - USBCali

31
1 Giroestabilizador De Videocámara AUTORES: DUVIAN DARIO PEÑATA GIRALDO JHORDAN GREIF TORRECILLA VASQUEZ EDDISON ANDRES MOLINA DEL RIO ASESOR: GUSTAVO A. MENESES B. UNIVERSIDAD DE SAN BUENANETURA SECCIONAL MEDELLIN FACULTAD DE INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA MEDELLIN 29 DE SEPTIEMBRE DE 2011

Transcript of Giroestabilizador De Videocámara - USBCali

Page 1: Giroestabilizador De Videocámara - USBCali

1

Giroestabilizador De Videocámara

AUTORES:

DUVIAN DARIO PEÑATA GIRALDO

JHORDAN GREIF TORRECILLA VASQUEZ EDDISON ANDRES MOLINA DEL RIO

ASESOR:

GUSTAVO A. MENESES B.

UNIVERSIDAD DE SAN BUENANETURA SECCIONAL MEDELLIN

FACULTAD DE INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA

MEDELLIN

29 DE SEPTIEMBRE DE 2011

Page 2: Giroestabilizador De Videocámara - USBCali

2

INTRODUCCION Las nuevas características tecnológicas, como las Transducer Electronic Datasheets: TEDs y los Micro-Electromechanical Systems: MEMs, que se han incorporado a la construcción de los circuitos integrados modernos, nos permiten tener en la actualidad sensores con prestaciones que difícilmente eran posibles en el pasado. Los acelerómetros y los giróscopos on-chip hacen parte de esta clase de dispositivos pertenecientes a la nueva generación de la electrónica. Es así como, a partir de las funciones incorporadas ya sea en unidades separadas o conjuntas, se han logrado desarrollos novedosos como las Unidades de Medición Inercial (IMU por sus siglas en inglés) que hoy en día se encuentran en aplicaciones de diversas áreas como el entretenimiento, la investigación biomédica, la robótica, entre otras. Un área de gran dinamismo investigativo y tecnológico que saca provecho de dispositivos como los IMUs es la de los vehículos autónomos, terrestres y aéreos. En este trabajo se presenta el diseño e implementación de una plataforma prototipo que servirá de base para el desarrollo de un giroestabilizador que pueda ser utilizado para el registro de fotografías aéreas. En este contexto y en particular al poner una cámara apuntando fijamente hacia abajo desde la parte inferior de un avión; es normal que las imágenes que esta nos ofrezca se vean afectadas por la posición en la que se encuentre el avión en un momento determinado ya que si esta se encuentra en un soporte rígido, obviamente el ángulo de visión dependerá de la posición misma del avión. De acuerdo a esto, se pretende implementar una plataforma móvil giroestabilizada por medio de la IMU, que permita hacer correcciones automáticas de tal forma que se mantenga en todo momento horizontalmente y sin vibraciones ante cualquier tipo de perturbaciones del medio. Para lograr este cometido se ha elegido una IMU de seis grados de libertad que se apoya en un giróscopo y un acelerómetro de tres ejes cada uno, para sensar la posición del avión en un momento determinado. Si bien, teóricamente, para detectar el vector de posición del avión son suficiente las lecturas del acelerómetro; otras experiencias con este tipo de dispositivos indican que tales dispositivos son sensibles a los desplazamientos y al ruido y por tanto se hace necesario la integración de los datos arrojados por el giróscopo para determinar con mayor precisión el vector “corregido” de posición que corresponde a la inclinación del cuerpo sensado con un mayor grado de certeza; además, los controles basados en giróscopos son de vital importancia en lo referente a instrumentos de navegación y mucho más en el caso de los aviones y de otros vehículos aéreos, tripulados y no tripulados, ya que se usan para detectar y controlar los movimientos en los tres ángulos de orientación típicos de estas aeronaves. Estos movimientos se denominan técnicamente “pitch”(cabeceo), “yaw”(guiño) y “roll” (alabeo). Los datos complementarios entregados por los acelerómetros permiten hacer seguimiento a la ubicación respecto al sistema de tres ejes coordenados pero para efectos de nuestra investigación, se va a utilizar la fusión de datos del giróscopo y acelerómetro, para controlar la plataforma que después será acondicionada especialmente para la aplicación antes mencionada. En el presente trabajo se mostraran también los detalles de acondicionamiento de señal, adquisición de datos, programación del microcontrolador/instrumento virtual y control de los dispositivos de salida. En esta fase del proyecto se ha trabajado con un microcontrolador de ocho bits y se ha aprovechado la potencia computacional de Labview para realizar los cálculos ligados a las señales entregadas por el sensor.

Page 3: Giroestabilizador De Videocámara - USBCali

3

OBJETIVOS GENERAL

Diseñar e implementar una plataforma Giroestabilizada por IMU (Giróscopo + Acelerómetro); utilizando microservos como actuadores para el control de estabilidad ante perturbaciones provenientes del medio.

OBJETIVOS ESPECÍFICOS

Desarrollo de un Instrumento Virtual en Labview para la lectura y visualización de las seis variables entregadas por el sensor IMU (Giróscopo + Acelerómetro).

Desarrollo del código para un microcontrolador pic que se encarga de la adquisición de las señales y de la transmisión de los valores de las variables al computador.

Elaboración de un Prototipo base para verificar la giroestabilización. Esta plataforma estará integrada por 3 cuadros concéntricos que emulan los ejes coordenados y serán controlados de manera independiente por micro servos mediante un control PID.

Enviar señales de control PWM a los microservos supeditadas a las lecturas del IMU que permitan desarrollar el control PID.

Page 4: Giroestabilizador De Videocámara - USBCali

4

ACONDICIONAMIENTO DE SEÑAL

Acelerómetro: El acelerómetro utilizado entrega una variación de voltaje proporcional a la intensidad de campo gravitatorio, las variaciones de las salidas del acelerómetro; x, y, z, dependen de la ubicación respecto a los tres ejes coordinados. En nuestro caso el conversor Análogo/Digital utilizado corresponde al incorporado en el microcontrolador PIC16F876 y se ha tomado el modo de operación a ocho bits con un voltaje de referencia de cero a cinco voltios, de este modo tendremos: Valores de 0 a 255 = # de combinaciones = = 256

Según la hoja de datos de nuestra IMU tenemos que el voltaje de referencia de 0 g para el acelerómetro: Volts @ 0 g = 1.5 v Definimos: También de acuerdo a las especificaciones técnicas del dispositivo sabemos que la sensibilidad del acelerómetro = Sensb = 300 mV/g, de acuerdo con esto:

Page 5: Giroestabilizador De Videocámara - USBCali

5

Fig. 1. Primeros ángulos y vector derivado de las lecturas arrojadas por el acelerómetro. Así podemos proceder a calcular los ángulos del vector de posición derivado de las lecturas del acelerómetro:

Fig. 2. Vector y ángulos finales derivado de las lecturas arrojadas por el acelerómetro. Giróscopo El giróscopo electrónico entrega una variación de voltaje que es proporcional a la variación de velocidad angular respecto al tiempo. Esta cantidad usualmente se caracteriza por un valor de (milivoltios)/(grados/segundo).

Page 6: Giroestabilizador De Videocámara - USBCali

6

Si se necesita invertir el valor, dependiendo de la posición relativa entre el acelerómetro y el giróscopos entonces se usa un factor de corrección denominado InvertAxz que puede tomar un valor de 1 o -1. VzeroRate es el voltaje para variación cero, en otras palabras, es el voltaje que entregan los giróscopos cuando no están sujetos a ninguna rotación.

(

)

El proyecto actualmente se encuentra en este punto en cuanto al trabajo con las señales de los sensores. Actualmente se están evaluando las estrategias a seguir para la fusión de los datos provenientes del giróscopo con los datos del acelerómetro para la estimación más precisa de la posición del cuerpo sobre el que se ubicará la Unidad de Medición Inercial. A continuación se presentan los cálculos que se cree corresponden a la forma matemática de obtener los datos provenientes del giróscopo aunque esto no se ha probado: Rgyro = [RxGyro,RyGyro,RzGyro]

Entonces Axz = Atan2(Rx,Rz)

RxEst(n-1) , RzEst(n-1) : Axz(n-1) = atan2( RxEst(n-1) , RzEst(n-1) ). Recuérdese que el giróscopo mide es la variación de los ángulos de Axz, entonces necesitamos calcular el nuevo angulo Axz(n) de la siguiente manera: Axz(n) = Axz(n-1) + RateAxz(n) * T donde RateAxz puede obtenerse de las lecturas de ADC del giróscopo. Una fórmula más precisa de calcular este promedio de rotación es la siguiente:

De la misma forma podemos encontrar: Ayz(n) = Ayz(n-1) + RateAyz(n) * T

√ x =RxGyro , y=RyGyro, z=RzGyro

Page 7: Giroestabilizador De Videocámara - USBCali

7

Usando las relaciones anteriores podemos escribir:

Note que

√ , entonces reemplazamos esto para finalmente multiplicar numerador y

denominador de la fracción dentro de la raíz por :

La expresión anterior la podemos simplificar sabiendo que:

Regresando a nuestra notación tenemos:

Ahora finalmente podemos encontrar:

√ Donde Sign(RzGyro) = 1 cuando RzGyro>=0 , y Sign(RzGyro) = -1 cuando RzGyro<0. Una manera simple de estimar esto es tomando Sign (RzGyro) = Sign (RzEst(n-1)). En la práctica, se debe tener cuidado cuando RzEst (n-1) es cercano a 0. Usted puede saltarse la fase de giro completo, en este caso y asignar: Rgyro = Resto (n-1). Rz se utiliza como referencia para el cálculo de los ángulos Axz y Ayz cuando está cerca de 0, pero los valores pueden desbordarse y provocar malos resultados. Así mismo, cuando los cálculos implican a números grandes o de coma flotante los resultados de las funciones “Tan () y Atan ()” pueden carecer de precisión. Hasta ahora hemos calculado los siguientes valores: Racc – lecturas actuales de nuestro acelerómetro Rgyro – obtenidos a partir de Rest(n-1) y las lecturas actuales del giroscopio Y para calcular la estimación actualizada de Rest(n) vamos a utilizar los dos resultados anteriores mediante una medida ponderada de ellos, de modo que:

Page 8: Giroestabilizador De Videocámara - USBCali

8

Podemos simplificar esta fórmula dividiendo numerador y denominador de la fracción por w1 y después

sustituyendo

tenemos:

En la fórmula anterior wGyro nos dice mucho acerca de la confianza de los datos de nuestro giróscopo en comparación con nuestro acelerómetro. Este valor puede ser elegido experimentalmente y por lo general con valores de entre 5 hasta 20 darán lugar a buenos resultados. La principal diferencia de este algoritmo al de uno por filtro de Kalman es que en este los pesos son relativamente fijos, mientras que en uno por filtro de Kalman los pesos están permanentemente actualizados en función del ruido medido de las lecturas del acelerómetro. El filtro de Kalman se centra en darle "el mejor" resultado teórico, mientras que este algoritmo puede dar resultados "suficientemente buenos" para su aplicación práctica. También se puede implementar un algoritmo que ajusta wGyro en función de algunos factores de ruido que se miden, pero los valores fijos funcionan bien para la mayoría de las aplicaciones. En este punto estamos a un paso de conseguir nuestros nuevos valores estimados:

Ahora vamos a normalizar el vector nuevamente:

;

Y ya estamos listos para repetir nuestro bucle de nuevo.

Page 9: Giroestabilizador De Videocámara - USBCali

9

Adquisición de datos La etapa de adquisición de datos se realizó en un microcontrolador de ocho bits, sin embargo en un dispositivo de estos se dificultan los cálculos matemáticos que involucran números con parte decimal, números negativos y funciones trigonométricas, por tal razón, se optó por subir los datos al computador para realizar las operaciones de cálculo, procesamiento y visualización de los datos en un instrumento virtual como lo es Labview. Mediante esta herramienta se soluciona el problema de la capacidad limitada de memoria del microcontrolador y además se facilitan las labores de depuración que deben realizarse a nivel de software así como los ajustes a nivel de hardware.

Fig. 3. Esquema circuital con interface de conexión hacia el computador.

Page 10: Giroestabilizador De Videocámara - USBCali

10

Instrumento Virtual Como ya se mencionó, la mayor parte del procesamiento de los datos se hace utilizando el software Labview. Este software cuenta con una gran cantidad de comandos propios y funciones de todo tipo; matemáticas, gráficas, alfanuméricas, etc., que garantizan que los datos provenientes del microcontrolador sean procesados de una manera más eficiente, además cuenta con la ventaja de trabajar números de coma flotante y también, una serie de dispositivos de visualización que además permiten hacer un seguimiento de las etapas del proceso en tal forma que genera más confianza hacia los resultados obtenidos.

Fig. 4. Panel frontal del Instrumento Virtual (VI) con datos derivados de las lecturas obtenidas con el acelerómetro.

Una de las herramientas de visualización de Labview que se utilizó, nos permitió seguir de manera continua la evolución de los datos que llegaban al computador mediante un vector en tres dimensiones, de esta forma se hizo un seguimiento “instantáneo” a las variaciones de posición experimentadas por el acelerómetro, en una referencia espacial apropiada para ello. En el siguiente grafico que se realizó en un sub-VI ligado al VI principal con el objetivo de no recargar a este de gráficos; se observa, la proyección de un vector que se obtuvo después de tener las componentes x, y, z del vector de fuerza inercial y los ángulos xr, yr y zr. En este cubo que además se puede rotar en todas las direcciones es posible hacer monitoreo del movimiento, referenciado a un sistema de tres ejes y basándose en el vector de fuerza inercial. En el grafico también se observa otro vector estático que se puso para efectos de referencia ya que dicho vector es fijo en una posición cero.

Fig. 5. Vector de fuerza inercial observado con un sub-VI ligado al VI principal. Resultados previos en Proteus

Page 11: Giroestabilizador De Videocámara - USBCali

11

Para realizar la depuración del programa de una manera más óptima y también para no estar programando el microcontrolador en cada ocasión que se realizara un cambio al programa o código, se implementó también un montaje virtual de todo el esquema físico en Proteus, en el que se incluyen tanto los actuadores (servomotores) como los dispositivos de salida al PC (Max 232) y de visualización (LCD de 16 caracteres-dos líneas) junto a los elementos de entrada y salida del montaje de tal forma que se pudieran aprovechar las herramientas de compilación de Proteus, la capacidad de simulación y especialmente de visualización de los registros internos de microcontrolador y de los resultados de las operaciones finales e intermedias. Estas herramientas nos resultaron bastante útiles para ajustar el funcionamiento conjunto de la aplicación, pero cabe anotar que para efectos de pruebas previas, las señales provenientes del acelerómetro y del giróscopo están emuladas por potenciómetros que varían la intensidad de voltaje que ingresa al PIC a los puertos en que entran dichas señales como se observa en el esquema.

Fig. 6. Circuito implementado para simulación y ajuste de la programación sobre el microcontrolador. Esquema General de la Aplicación En la siguiente grafica se puede observar una visión general del desarrollo propuesto realizada con PovRay 3D y otras herramientas gráficas, en la que se observan todos los elementos del montaje que básicamente intervienen en las tareas de sensado, procesamiento, visualización y control. En el centro de la gráfica se observa el microcontrolador que es el elemento central de la aplicación ya que sirve como elemento mediador entre el sensor y el computador en el que se corre el instrumento virtual. También se pueden observar los actuadores materializados en los servomotores. Cabe anotar que la transmisión de los datos hacia el PC se realiza vía MAX232 (a la izquierda de la gráfica) para la visualización, procesamiento, entre otras en el instrumento virtual, aunque en la parte superior se observa un LCD de 16 caracteres y dos líneas en el que se muestran algunos datos críticos. En la parte inferior se observa nuestro sensor, que básicamente es una Unidad de Medición Inercial de 6 grados de libertad y por ultimo a la derecha se observan los actuadores o servomotores.

Page 12: Giroestabilizador De Videocámara - USBCali

12

Fig. 7. Vista general de la aplicación integrando todos los elementos constituyentes.

Algoritmo de control para la estabilización En la fotografía aérea es normal que se presenten problemas para obtener imágenes con buena definición; particularmente cuando se piensa simplemente en poner una cámara en un soporte fijo e inmóvil debajo de un vehículo aéreo. Nuestra plataforma en cambio; debe moverse para mantener la cámara con una orientación “fija” ante las perturbaciones del medio de tal forma que se mantenga apuntando siempre verticalmente hacia abajo. En el diagrama de flujo mostrado se describe el proceso a llevar a cabo para lograr la giroestabilización. Cada uno de los subprocesos se desarrolla en el microcontrolador o en Labview. El objetivo es poder estabilizar dinámicamente la posición de la cámara frente a los movimientos del vehículo aéreo ya sea tripulado o no tripulado a una posición de referencia o posición deseada, que para nuestro caso constituye el estado de nivelación frente al plano de tierra, la plataforma debe ajustar entonces la rotación de sus ejes automáticamente en respuesta a las desviaciones originadas durante el desarrollo del vuelo. De acuerdo con los resultados obtenidos en cuanto a la corrección de posición se ajustarán los parámetros de control, partiendo desde una primera aproximación Proporcional (P) hasta llegar, si es necesario, a una implementación clásica Proporcional, Integral y Derivativa (PID). También se ha considerado una aproximación más heurística, basada en control difuso para la estabilización de la posición o en matrices homogéneas, entre otras. Toda opción u alternativa, está de

Page 13: Giroestabilizador De Videocámara - USBCali

13

todas formas sujeta en primer lugar a las consideraciones derivadas de la huella de memoria de programa (memory footprint) requerida sobre el microcontrolador.

Fig. 8. Diagrama de flujo que indica el conjunto general de tareas a realizar en el microcontrolador y en el

instrumento virtual para coordinar la estabilización de la plataforma. Para el diseño del prototipo del giroestabilizador, se implementaron 2 cuadros concéntricos en madera; en cada uno de los cuadros se ha ubicado un microservo, el cual va a recibir la señal de corrección de posición proveniente del microcontrolador en forma de una señal de modulación por ancho de pulso (PWM por sus siglas en inglés).

Fig. 9. Vista de prototipo en madera de la plataforma para realizar pruebas de control sobre dos ejes

acoplados a servomotores.

Page 14: Giroestabilizador De Videocámara - USBCali

14

Programación.

La implementación de la programación se desarrolló principalmente en microcode studio, este versátil editor permite a través una sintaxis completa de código reducido aprovechar y ejecutar palabras claves sensibles al contexto, que permiten declarar variables, constantes, implementar matrices entre otras cosas. Esto permite tener un mayor espacio en memoria, lo que permite una implementación más adecuada; también permite minimizar las líneas de código facilitando su lectura, ayudando de esta manera que personas con un mínimo de conocimientos, interesadas en continuar con el desarrollo del prototipo entiendan las líneas de código. Prueba Nro1. El primer programa implementado, tiene como fin adquirir los datos provenientes del acelerómetro, cabe recordar que este dispositivo permite identificar el cambio de posición respecto a un eje, estos datos arrojados vienen en el orden de mili-voltios. Para poder leer los datos adecuadamente se requiere tener una codificación adecuada de los mismos, por ello al momento de censarlos se requirió una codificación análoga-digital de 255 caracteres debido a que el pic utilizado va a ser de 8 bits y hacer los respectivos cálculos aritméticos para la obtención de la lectura real del sensor; una vez identificados se realizaron varias pruebas en un lcd para verificar que la información obtenida correspondía con el cambio de inclinación de dicho elemento. La línea de código utilizada para este fin es la siguiente:

Page 15: Giroestabilizador De Videocámara - USBCali

15

Fig. 10. Código implementado para obtener los datos provenientes del acelerómetro.

Después de hacer varias pruebas, se encontró que el pic redondeaba los valores obtenidos por lo que un dato de 0.02 lo aproxima a cero, un dato de 1.2 lo aproxima a 1 etc; por este motivo se debió multiplicar los datos obtenidos por un factor de 1000, la línea de código que se utilizó fue la siguiente:

Fig. 11. Lectura Final De Acelerómetro

Page 16: Giroestabilizador De Videocámara - USBCali

16

Una vez ejecutado, se corroboro que al multiplicar por el factor de 1000, los datos visualizados en el lcd eran muy imprecisos, las lecturas oscilaban considerablemente por lo que arrojaban errores considerablemente altas, lo que confirmo que dichas lecturas no se podrían tener en cuenta; debido a este enorme problema, se optó por utilizar Labview, el cual informaremos más adelante. Prueba Nro2. El siguiente código, al igual que en el anterior inicialmente se definieron las entradas, las salidas, la pantalla LCD pero adicionalmente se empleó una conversión análoga-digital de las señales de entrada para que se pudieran trabajar en el PIC a 8 bits; es decir a un máximo valor de 256 bits, por tanto se debieron comprobar también los valores máximos y mínimos que podía arrojar el giróscopo debido a que el voltaje expresado está en función de ; es necesario por ello resolver una integral para hallar el ángulo correspondiente:

Page 17: Giroestabilizador De Videocámara - USBCali

17

Fig. 12. Implementación de Regla de Simpson.

Prueba Nro3 Debido al problema encontrado en la precisión que se podía tener con los resultados de la fórmula para calcular la integral requerida, se optó por hacer todos estos tipos de cálculos en el software Labview de National Instruments. Para poder enviar los datos vía RS232, se implementó el siguiente código, en el cual en primera medida se etiquetan todos los datos que arroja el IMU al pic con el comando HSEROUT para poder reconocerlos después; una vez hecho este procedimiento se enviaron vía RS232 utilizando la siguiente línea de código:

Page 18: Giroestabilizador De Videocámara - USBCali

18

Page 19: Giroestabilizador De Videocámara - USBCali

19

Fig. 13. Código implementado para recibir, etiquetar y enviar los datos provenientes

del giróscopo Via RS-232.

El funcionamiento del código es simple, todos los datos que lleguen provenientes del giróscopo y el acelerómetro necesitan ser etiquetados, esta tarea resulta muy simple para el caso del acelerómetro sin embargo para el giróscopo es necesario etiquetar varias lecturas por cada eje, con el fin de hacer la integral por el método de Simpson que permita calcular los ángulos, cabe recordar también que estos ángulos obtenidos son realmente las proyecciones sobre los ejes coordenados. Una vez realizado los diferentes cálculos en Labview, el control del sistema de posicionamiento enviara una señal de control en forma de modulación por ancho de pulso (PWM) que posicione los microservos. En la posición deseada. Para ello el código de PWM que se empleó como prueba fue el siguiente:

Fig. 14. Código implementado para un PWM

Este código se empleó inicialmente con el fin de verificar el funcionamiento de los microservos a través de la salida de PWM del PIC, pero a la hora de implementarlo se encontró un error debido a que nuestra frecuencia de operación se salía del rango permitido por el comando “PWM”, por lo cual se optó por

Page 20: Giroestabilizador De Videocámara - USBCali

20

modificar el programa y no utilizar dicha salida; en su defecto se utilizó la salida RB0 del PIC y por tanto el código de PWM se modificó por el siguiente utilizando el comando PULSOUT:

Fig. 15. Código implementado para un PWM con el comendo PULSOUT

Page 21: Giroestabilizador De Videocámara - USBCali

21

Una vez verificado la frecuencia de funcionamiento del micro servo, y los parámetros bajo los cuales funciona, se implementó el siguiente código, con el cual se puede controlar la posición del servomotor en cualquier instante de tiempo.

Fig. 16. Código implementado para PWM,

Se controla su posición en cualquier instante de tiempo

Page 22: Giroestabilizador De Videocámara - USBCali

22

DIAGRAMAS EN LABVIEW En este primer esquema en Labview se muestra la comunicación por el puerto RS-232 desde un circuito en la etapa de adquisición de datos.

Fig. 17. Vista del VI en Labview utilizado para la comunicación RS232. ACELEROMETRO Un acelerómetro de 3 ejes tiene la capacidad de medir la orientación de una plataforma fija respecto a la superficie terrestre. Si la plataforma se encuentra en caída libre, la aceleración se mostrará en cero. Si sólo se está acelerando en una dirección determinada la aceleración será indistinguible de la aceleración proporcionada por la fuerza gravitacional de la tierra.

Fig. 18.1 VI para la adquisición y cálculos derivados del acelerómetro.

Page 23: Giroestabilizador De Videocámara - USBCali

23

Fig. 18.2 VI para la adquisición y cálculos derivados del acelerómetro. Una vez adquiridos los datos del acelerómetro por medio del PIC y haberlos etiquetados y trasmitidos al PC; en este VI básicamente se procede inicialmente a reconocer los datos mediante las etiquetas que se le habían asignado en el PIC mediante las letras A, B y C luego se des etiquetan dichos datos y finalmente se resuelven las siguiente formulas. En ellas básicamente se realiza la conversión análoga digital de los datos y se procede a realizar los cálculos necesarios para determinar el respectivo ángulo:

La primera fórmula son los datos que se referenciaron como Rx, Ry y Rz y en ella está implícita la conversión análoga digital, la resta del voltaje de referencia del acelerómetro y la división entre la sensibilidad para después en la segunda fórmula hallar cada ángulo dividiendo estos resultados entre la raíz cuadrada de la suma de sus cuadrados, ósea entre el dato que se referencio como R. Finalmente se halla el arco coseno de este resultado que corresponde al ángulo final que necesitamos. Todos estos resultados se pueden observar mediante tres barras etiquetadas como Acel_ X, Acel_Y y Acel_Z; además de una gráfica de grados contra tiempo de las tres curvas del acelerómetro multiplexadas. GIROSCOPO Un giróscopo electrónico entrega una variación de voltaje que es proporcional a la variación de velocidad angular respecto al tiempo y usualmente se caracteriza por un valor de (milivoltios)/(grados/segundo), por tanto se necesita integrar este valor para poder hallar el respectivo ángulo de giro, además algunas veces y dependiendo de la posición relativa u orientación entre los ejes del acelerómetro y el giróscopo se usa un factor de corrección denominado InvertAxz que puede tomar un valor de 1 o -1 si se necesitase invertir el valor medido. Al igual que con el acelerómetro; una vez adquiridos los datos del giróscopo por

Page 24: Giroestabilizador De Videocámara - USBCali

24

medio del PIC y haberlos etiquetados y trasmitidos al PC; en este VI básicamente se procede inicialmente a reconocer los datos mediante las etiquetas que se le habían asignado en el PIC mediante las letras D, E y F luego se des etiquetan dichos datos y finalmente se resuelven la integral para cada lectura de manera independiente. Cabe anotar que para el caso del giróscopo después de reconocer y des etiquetar cada entrada; se toman 6 datos de dicha medida debido a que se realizó la integral en Labview con el módulo Numeric Integration VI y en dicho método se deben tomar diferentes valores (6 en nuestro caso) igualmente espaciados ya que se integra por el método de Simpson. En el VI, se puede observar que después de haber recibido las entradas etiquetadas como D, E y F; cada una de ellas se lleva a un módulo case donde nuevamente se etiquetan como A, B, C, D, E y F que corresponden a las 6 medidas como se observa a la derecha para la letra D. El módulo Numeric Integration VI básicamente llleva a cabo la integración numérica de la matriz de entrada con uno de los cuatro métodos populares de integración numérica indicándole cuál de ellos con una entrada específica (0= regla del trapecio; 1=Regla de Simpson; etc). Finalmente a la izquierda vemos los 6 datos en un array para cada entrada etiquetados como Gx, Gy y Gz además de un string read donde se observa lo que va llegando antes de des etiquetar y finalmente los valores de la integral final mediante los recuadros Integral_ Gx, Integral_ Gy y finalmente Integral_ Gz.

Fig. 19 VI para la adquisición y cálculos derivados del giróscopo. Alcance del proyecto, trabajo futuro y conclusiones Aún está pendiente por terminar el acondicionamiento de las señales provenientes de los giróscopos. Para esto se están valorando las alternativas para la fusión de los datos de los sensores que conforma la Unidad de Medición Inercial (IMU). Existen también dos opciones de trabajo que se van a investigar en este sentido con el fin de escoger la mejor de ellas. Estas son una aproximación matricial por medio de matrices homogéneas o una aproximación similar a la seguida con los acelerómetros, que combina aspectos geométricos con algoritmos iterativos que se apoyan en valores presentes y anteriores para

Page 25: Giroestabilizador De Videocámara - USBCali

25

obtener los valores de los ángulos y de las normas de los vectores. También se deberá implementar, filtros de Kalman para la fusión de los datos entre giróscopo y acelerómetro. A partir de análisis previos se ha considerado la opción de que se pueda lograr la estabilización automática de la cámara con solo dos servomotores. La forma geométrica de la plataforma giroscópica también está bajo prueba, la opción convencional de aros concéntricos está considerada con modelos 3D y se está pendiente de los resultados con prototipos derivados de impresión 3D para valorar su desempeño. Para la fase final de implementación y para efectos obvios de portabilidad de la solución diseñada, se contemplan opciones como la migración a un microcontrolador de 16 bits o soluciones como las basadas en los sistemas de desarrollo basados en Arduino o, eventualmente, la tarjeta Pingüino y su Entorno de Desarrollo Integrado (IDE). Se trabajará en actividades de prueba y puesta a punto de la plataforma que permitan validar el rendimiento de la solución al menos, en principio, en condiciones de laboratorio. Si bien las nuevas soluciones de sensado, como las tarjetas IMU, permiten el desarrollo de aplicaciones de gran utilidad en campos como la electrónica y la mecatrónica, muchas de estas unidades aún representan un reto especial en cuanto a las tareas de acondicionamiento de las señales. La susceptibilidad al ruido y las técnicas requeridas para realizar la fusión de los datos de los sensores, establecen la necesidad de recursos computacionales que no están disponibles en todos los dispositivos programables que se utilizan típicamente en aplicaciones embebidas. El trabajo con instrumentos virtuales y herramientas de simulación-depuración permiten ajustar el funcionamiento de los prototipos de una manera más ágil y menos demandante que si se estuviera trabajando siempre sobre el circuito y los elementos de entrada-salida del sistema. Son factores críticos a tener en cuenta en el desarrollo propuesto el factor de forma, el peso y la efectividad del control de estabilidad implementado. Adicionalmente deben establecerse métricas en cuanto al consumo de energía y la operación en diferentes escenarios de duración, corta y extendida, y bajo diversos niveles de dificultad. Teniendo en cuenta el enfoque o alcance que se pretende lograr con este proyecto y sabiendo que se orienta a en un futuro lograr el acople de un sistema de video en un vehículo aéreo, inicialmente se realizó un estudio de cómo estos se orientan con el fin de tratar de utilizar el mismo sistema de referencia para aplicarlo a la orientación de nuestro dispositivo. Esta idea se descartó debido a diferentes factores que la hacían inviable a nuestro propósito; entre estos factores cabe mencionar que no se sabía exactamente a qué tipo de vehículo seria adaptado el prototipo y por ende también el tipo de sistema de referencia que se tendría ya que estos varían significativamente de uno a otro de acuerdo al análisis mecánico del mismo; Sin embargo al estudiar respecto a esto, era común encontrar temas que se repetían una y otra vez como alternativas muy útiles para referenciar la posición y orientación de tales dispositivos como lo son el sistema de matrices homogéneas. Este sistema es una de las herramientas más útiles con las que se cuenta para modelar los movimientos de cualquier maquina indiferente de su complejidad, sin embargo requiere de ciertos cálculos computacionales con matrices que se escapan a nuestra capacidad de procesamiento, siendo esta una de las razones por las que se descartó dicha teoría. En el mismo orden de ideas se sabe que estos sistemas son muy útiles cuando se requiere analizar no solo la posición de un objeto sino también la orientación, traslación de sus ejes y demás movimientos que realmente excedían los que nosotros queríamos ya que nosotros creemos que es suficiente conocer las diferentes inclinaciones de la base respecto a cada uno de los ejes coordenados para lograr nuestro

Page 26: Giroestabilizador De Videocámara - USBCali

26

cometido. De todas formas es menester nombrar en este documento tareas que se están implementando pero que aún no se han acoplado al conjunto de trabajo ya que se adelantaron estas tareas o por que dependen de trabajos previos que aún no se han finalizado; entre ellas podemos nombrar el control PID que se va a realizar con los servomotores, el estudio de matrices homogéneos para la orientación y también la aplicación del filtro de Kalman a los resultados finales de los datos del IMU. MATRICES HOMOGENEAS Para definir la ubicación de un cuerpo en el espacio teniendo en cuenta su rotación y posición respecto a los ejes coordenados siempre son suficientes 6 grados de libertad divididos de maneras iguales en traslación y rotación, donde comúnmente para la posición se usa el sistema cartesiano y para la rotación se usan la convención de “pitch” (cabeceo), “yaw” (guiño) y “roll” (alabeo). Es menester saber que si existen menos grados de libertad la información sería insuficiente o mejor dicho las posiciones que se pudiesen alcanzar serian limitadas, así mismo si existiesen mas grados de libertad existiría una redundancia de las posiciones, es decir que se podría alcanzar una posición por distintas formas o rutas.

Fig. 20 Angulos pitch, yaw y roll en un sistema coordenado. Cuando se estudia el movimiento de robots es menester poder referenciar los diferentes movimientos de las articulaciones de un robot respecto a un sistema de referencia fijo a fin de homogenizar los cálculos necesarios. En este orden de ideas podemos hablar como ya se ha mencionado de la posición como (x,y,z) y de la rotación como (α,β,γ) ya sea por relaciones geométricas entre ellos como decidimos nosotros o mediante el uso de matrices de transformación homogénea como vamos a explicar a continuación. Una matriz de transformación homogénea completa relaciona dos sistemas de referencia S2 y S0 de tal forma que S1= T*S0 donde S0 es el sistema de referencia y s1 el móvil, la matriz T representa los diferentes cambios o movimientos del robot de tal forma que:

Sin embargo los movimientos de rotación y traslación suelen ser suficientes para la mayoría de máquinas móviles por lo que se suele simplificar el sistema a:

Representando esta ultima la posición y orientación de un sistema de coordenadas frente a otro que se considera fijo.

Page 27: Giroestabilizador De Videocámara - USBCali

27

Filtro de Kalman Debido a la deriva que acumulan las salidas del acelerómetro y a los efectos combinados de la aceleración, ocasionados por la rotación de los cuerpos y la fuerza gravitatoria sobre estos, es necesario realizar un ajuste dinámico sobre los datos del giróscopo para combinar estos con los datos del acelerómetro (fusión de datos) [9] y así establecer la orientación espacial de manera certera. El filtro de Kalman es una herramienta para el acondicionamiento de las señales que opera por medio de un procedimiento matemático, actúa como mecanismo de predicción y corrección. En esencia este algoritmo pronostica el nuevo estado a partir de su estimación previa añadiendo un término de corrección proporcional al error de predicción, de tal forma que este último es minimizado estadísticamente. El filtro de Kalman actúa como un estimador. En el VI para resolver el filtro de Kalman a manera de algoritmo y a partir de valores discretos, se deben tener las mediciones igualmente espaciadas Zk, desde un k=1 hasta n, y resolver la siguiente ecuación para dichos k:

Fig. 20 Ciclo para implementar el filtro de Kalman.

Xk 0.355 0.424 0.442 0.405 0.375 0.365 0.362 0.377 0.380

Pk 0.041 0.048 0.032 0.024 0.020 0.016 0.014 0.012 0.011

Page 28: Giroestabilizador De Videocámara - USBCali

28

Cabe anotar que esta es una prueba de escritorio donde se simulan diez datos de entrada provenientes del sensor mediante el Array que se observa a la izquierda. Estos datos se llevan a un ciclo FOR donde se realizan los pasos desde k=1 hasta n. finalmente por simplicidad se realizaron los cálculos en ciclos CASE independientes que aunque hacen al proceso poco recursivo, funcionan perfectamente.

Fig. 21 VI del filtro de Kalman. Finalmente se observa un VI de un control clásico PID que se realizó en caso de necesitarse. En este VI se observan las tres componentes clásicas proporcional, integral y derivativo en unos sub-VI identificados con las cajas azul, roja y verde. Estos se pueden detallar también en las tres graficas que se observan más abajo. La parte proporcional consiste en el producto entre la señal de error y la constante proporcional con el fin de minimizar el error en estado estacionario hasta volverlo casi nulo, pero en la mayoría de los casos, estos valores solo serán óptimos en una determinada porción del rango total de control, siendo distintos los valores óptimos para cada porción del rango. En la parte de control Integral se tiene como propósito disminuir y eliminar el error en estado estacionario, provocado por el modo proporcional. El control integral actúa cuando hay una desviación entre la variable y el punto de consigna, integrando esta desviación en el tiempo y sumándola a la acción proporcional; finalmente la acción derivativa se manifiesta cuando hay un cambio en el valor absoluto del error; (si el error es constante, solamente actúan los modos proporcional e integral). En general este VI muestra el mecanismo de control por realimentación que calcula la desviación o error entre un valor medido y el valor que se quiere obtener, para aplicar una acción correctora que ajuste el proceso.

Page 29: Giroestabilizador De Videocámara - USBCali

29

Fig. 22.1 VI del control PID.

Fig. 22.2 VI de los elementos del control PID separados, Proporcional, Integral y Derivativo.

Resultados obtenidos

Se han logrado implementar varios programas para el microcontrolador y diferentes VIs para Labview. En pruebas realizadas con movimientos de rotación e inclinación, se han obtenidos lecturas satisfactorias en cuanto a la ubicación angular, referida a los tres ejes coordenados, de la tarjeta de circuito con la IMU ubicada encima de esta.

Page 30: Giroestabilizador De Videocámara - USBCali

30

Fig. 3. Diagrama de flujo para nivelación automática basada en los valores entregados por la IMU, esquema general

y tareas necesarias para la adquisición de datos y el acondicionamiento de las señales

TRABAJO FUTURO Dado que se planea implementar la aplicación completa sobre un vehículo autónomo aéreo que haga registro fotográfico, es necesario migrar la implementación a un microcontrolador. Se consideran las opciones de utilizar procesadores de 16 o incluso 32 bits. Aún es necesario seguir trabajando sobre el lazo de control para verificar el funcionamiento de una aplicación en donde se realimente la señal de control y se pueda estimar la calidad de las imágenes captadas.

Referencias Y. Sun, M. A. Greminger y B. J. Nelson. “Nanopositioning of a multi-axis microactuator using visual servoing”. Journal of Micromechatronics, Vol. 2, No. 2, pp. 141–155 (2004) Li-Feng Wu, Zhen Peng y Fu-Xue Zhang. “Design and Implementation of a Digital Angular Rate Sensor”. Sensors 2010, 10, 9581-9589. D. Giansanti, G. Maccioni, F. Benvenuti, V. Macella. “Inertial measurement units furnish accurate trunk trajectory reconstruction of the sit-to-stand manoeuvre in healthy subjects”. Med Bio Eng Comput (2007) 45:969–976. A.Abedi, E. Chalmers, N. Malenczak, R. Fernando, J.Urness. Design of an Inertial Measurement Unit for use as a Gimbal Controller. Disponible en: www.ece.ualberta.ca/~ee401/projectdata/2009-10/14/14_final.pdf D. Karnopp. “Tilt Control for Gyro-Stabilized Two-Wheeled Vehicles”. Vehicle System Dynamics. 2002, Vol. 37, No. 2, pp. 145-156. J. Vergara, "Diseño e implementación de una unidad de medición inercial con conexión a bus can para la aviónica en un mini-helicóptero autónomo no tripulado x-cell graphite", Revista Ingenierías Universidad de Medellin, vol4, ED-7, pp 111-124, jul.2005. V. A. Pogorelov and S. A. Gusarin. “Determination of Parameters of the Model of Inherent Drifts for a Gyro-Stabilized Platform Using Information Criteria”. Cosmic Research, Vol. 41, No. 5, 2003, pp. 477–484.

Page 31: Giroestabilizador De Videocámara - USBCali

31

Sparkfun 6Dof Razor Datasheet. Disponible en: www.sparkfun.com/datasheets/Sensors/IMU/6DOF-Razor-v11.pdf C.C. Dharmani y J. Arthi. “Angular position measurement of a rotating platform using a solid-state gyroscope”. Journal of Instrum. Soc. of India Vol. 39 No. 1. N-C. Tsai y C-Y. Sue. “Integrated model reference adaptive control and time-varying angular rate estimation for micro-machined gyroscopes”. International Journal of Control Vol. 83, No. 2, February 2010, 246–256. J. Travis Jeffrey, J. Kring. Labview For Everyone: Graphical Programming Made Easy and Fun. Prentice Hall. 2006. R. Bitter et Al. Labview Advanced Programming Techniques. CRC Press. 2001 K. Watanabe, Y. Yoshihata, Y. Iwatani y K. Hashimoto. “Image-Based Visual PID Control of a Micro Helicopter Using a Stationary Camera”. Advanced Robotics 22 (2008) 381–393. S. K. Hong. “A fuzzy logic based performance augmentation of MEMS gyroscope”. Journal of Intelligent & Fuzzy Systems 19 (2008) 393–398. S. C. Sprya and A. R. Girard. “Gyroscopic stabilisation of unstable vehicles: configurations, dynamics, and control”. Vehicle System Dynamics. Vol. 46, Supplement, 2008, 247–260. T. Albrecht, T. Tany, G. A.W. Westz, y T. Ly. Omnidirectional Video Stabilisation On a Virtual Camera Using Sensor Fusion. Disponible en: www.computing.edu.au/~14133369/publications/TR-2010A.pdf J. Fei, C. Batur. “Robust adaptive control for a MEMS vibratory gyroscope”. Intermational Journal Adv Manuf Technol (2009) 42:293–300. W. Pisano, D. A. Lawrence and S. E. Palo. Low-Cost UAV Avionics for Autonomous Antenna Calibration. Disponible en: tom.poub.free.fr/blog/XUFO/Docs/lowcostuavs16.pdf By Shih –Jie Chou, Rui-Cian Weng, Tai-Shan Liao. “Circuit synchronizes sensors and cameras”. Design ideas, Oct 21, 2010, pp- 60-61. G. Meneses es ingeniero eléctrico, especialista en Automatización Industrial y actualmente cursa el segundo año de Msc. en Ingeniería. Labora en la facultad de ingeniería de la Universidad de San Buenaventura Sede Medellín para el programa de Ingeniería Electrónica desde el año 2005. ([email protected]) D. Peñata actualmente es estudiante de la Universidad de San Buenaventura Sede Medellín que opta por el título de Ingeniero Electrónico ([email protected]) J. Torrecilla actualmente es estudiante de la Universidad de San Buenaventura Sede Medellín que opta por el título de Ingeniero Electrónico ([email protected]) E. Molina actualmente es estudiante de la Universidad de San Buenaventura Sede Medellín que opta por el título de Ingeniero Electrónico ([email protected])