Bienvenido: Ingresar

Subir página de contenido

Puedes subir contenido para la página con el nombre abajo. Si cambias el nombre de la página, puedes subir contenido para otra página. Si el nombrede la página lo dejas en blanco, tomaremos el nombre del archivo

Archivo de contenido para la página
Nombre de la página
Comentario
En el juego de las bochas, como se llama la mas chiquita?

location: LabElectronica / ProyectoQuadricoptero / QA3Fase10InformeFinal

Tabla de Contenidos

  1. Construcción de un Quadricóptero de Arquitectura Abierta
    1. Introducción
    2. Ventajas de un QuadRotor
    3. Definición de la problemática
    4. Objetivo General
      1. Objetivos Particulares
    5. Financiamiento
    6. Miembros del grupo de trabajo
      1. Integrantes
      2. Director:
    7. Organización del trabajo
  2. Diseño del Cuadrotor
    1. Introducción al Funcionamiento
      1. Movimiento de guiñada (yaw)
      2. Movimiento de inclinación (pitch)
      3. Movimiento de bamboleo (roll)
      4. Movimiento Vertical
    2. Estructura
        1. Cálculo del peso total
    3. Motores
    4. Controladores ESC
    5. Baterías LiPo
      1. Cálculo de la autonomía de vuelo
    6. Hélices
    7. Protección
  3. Modelado del Quadrotor
        1. Descripción
          1. Fuerza de Arrastre del Cuerpo
          2. Empuje
          3. Fuerza de arrastre sobre los rotores debido a la velocidad horizontal
          4. Momento de arrastre sobre el eje de rotación de los rotores
          5. Momento de Roll generado en los rotores por la velocidad
          6. Fuerza de arrastre en los rotores debido a la velocidad
          7. Empuje Total
    1. Aproximación de la Fuerza y el Momento
        1. Fuerza
        2. Momento
      1. Referencias
    2. Medición de los parámetros de la Planta
      1. Empuje de los motores
        1. Motor 1
          1. RCTimer Normal
          2. Mystery Pusher
          3. RCTimer Pusher
          4. Mystery Normal
        2. Motor 2
          1. Mystery Normal
          2. RCTimer Pusher
          3. Mystery Pusher
          4. RCTimer Normal
        3. Motor1, RCTimer, Pusher y Motor2, Mystery y Normal
      2. Cálculo Aproximado de las constantes
        1. Cálculo de la constante de Inercia
        2. Cálculo de la constante del Motor
      3. Revisión del Cálculo de las constantes
        1. Inercias con respecto al eje X o Y
          1. Motor
          2. Batería
          3. Barra
          4. IMU, ARM
          5. Momento total de inercia para el eje x o y
    3. Diseño del controlador
      1. Controlador PID
        1. Ecuacion Diferencial
        2. Transformada de Laplace
        3. Transformada Z
        4. Tiempo Discreto
      2. Controlador del ángulo de roll
        1. Modelo Continuo
        2. Modelo Discreto
      3. Controlador del ángulo de pitch
    4. Simulaciones
    5. Simulación a lazo abierto
      1. Simulación a lazo cerrado
  4. Filtro Complementario para la Estimación del ángulo de roll y de pitch
    1. Ensayo individual de los sensores
      1. Acelerómetro
      2. Giróscopo
    2. Filtro Complementario
      1. Discretización de los filtros
      2. Algoritmo del microcontrolador
    3. Resultados de la implementación
    4. Conclusiones sobre las técnicas probadas para la estimación del ángulo
  5. Hardware de control
    1. Placa del Microcontrolador
    2. Sensores
      1. Giroscopio
      2. Acelerómetro
      3. Circuito de montaje de los sensores
    3. Driver de motores ESC
    4. Conexión inalámbrica
      1. Características
      2. Diagrama en bloques
      3. Circuito Esquemático
      4. Comunicación
    5. Placa Base
  6. Software
    1. Firmware ARM
      1. Código del filtro complementario
      2. Código del controlador PID
    2. Software de control de la PC
    3. Utilidades adicionales
  7. Conclusiones
    1. Análisis de Costos
      1. Costo detallado del Prototipo
    2. Desarrollos a Futuro

Construcción de un Quadricóptero de Arquitectura Abierta

Introducción

El siguiente Proyecto Final surge por la necesidad planteada por el Centro de Investigación en Informática para la Ingeniería de contar con una plataforma de hardware voladora para la realización de pruebas de algoritmos de navegación que surgen de diferentes trabajos doctorales de dicho centro.

Los vehículos voladores no tripulados, conocidos por sus siglas en inglés UAV (Unmanned Aerial Vehicle), pueden ser aeronaves de ala fija o rotante o incluso cohetes. Estos vehículos vuelan pilotados en forma remota o de manera autónoma. Aquellos UAV capaces de realizar vuelos estáticos como los helicópteros o los denominados cuatrirrotores, presentan particular interés para ciertas aplicaciones que requieren vuelos de baja altitud, entre obstáculos o incluso en espacios cerrados.

Los vuelos a baja altura en ambientes con obstáculos representan un alto riesgo para la vida de los pilotos, por esto que los vehículos no tripulados despiertan mucho interés en aplicaciones como inspección de edificios, inspección de líneas de distribución de energía eléctrica en alta tensión, tareas de rescate en zona de desastres o de alta montaña, filmación, etc. Otra razón por la que estos vehículos resultan atractivos es por su bajo costo de operación.

En el pasado, el uso de UAVs ha estado mayormente relacionado a aplicaciones militares. En la actualidad el interés por los sistemas UAV es creciente en la dirección de aplicaciones civiles; esto como consecuencia de la reducción de costos de las tecnologías involucradas.

En forma sintética se puede aseverar que la navegación de aeronaves implica la resolución eficiente y segura de cuatro tareas: toma de decisiones, percepción de obstáculos, estimación del estado de la aeronave (posición, velocidades y actitud) y control de la aeronave. En la actualidad, tanto en el ámbito militar como comercial, estas tareas se resuelven satisfactoriamente en tanto y en cuanto junto a los sistemas de automatización interactúan pilotos humanos complementando aquellos aspectos en que la técnica aún no está lo suficientemente avanzada, como ser la percepción y evasión de obstáculos. Aquí se encuentra el principal desafío para permitir la introducción de UAVs en espacios aéreos no restringidos.

Actualmente existen en el mercado pocos modelos comerciales de Quadricópteros, como pueden ser el Draganflyer X6, Parrot AR.Drone, Microdrones los cuales son usados en aplicaciones como: Fotografía Aerea y Video, Unidades de eliminación de explosivos, búsqueda y rescate, respuesta a desastres, asistencia, daños por fuego, ayuda a la construcción, inspección de lineas de transmisión, exploración geológica, control de cultivo, etc. Pero el costo de este tipo de artefactos y la poca flexibilidad que otorgan debido a sus arquitecturas cerradas dificultan su uso en la investigación universitaria.

Debido al creciente interés en este tipo de arquitecturas, son cada vez más las universidades y centros de investigación que están construyendo su propio cuadricóptero para realizar con ellos diferentes tipos de trabajos de investigación. Algunos ejemplos pueden ser MKTajamar, Mikrokopter. Estos últimos tienen la principal ventaja de ser más económicos que los anteriores, pero sin embargo su costo de ensamblado sigue siendo excesivo. Además estos tipos de proyectos aún no tienen la suficiente maduración para su uso en investigación y sólo son aplicables para usos hobbistas.

Ventajas de un QuadRotor

La elección de un quadrotor como plataforma experimental surge de un análisis de las ventajas que tiene este prototipo con respecto a otros UAV.

Un quadrotor es una aeronave del tipo PVTOL, esto significa que puede despegar y aterrizar en forma paralela el plano terrestre, lo cual nos da una gran ventaja para la navegación en ambientes interiores.

Desde el punto de vista mecánico en un QuadRotor las únicas partes móviles son las hélices. Dado que estas están acopladas directamente a los ejes de los motores no es necesario implementar ningún tipo de mecanismo. Esto es un punto a favor bastante grande ya que nuestro conociento en mecánica no es suficiente para encarar la construcción de un dispositivo con una estructura más sofisticada.

Otra ventaja interesante del QuadRotor en términos de simplicidad es la cancelación de torque total que se obtiene (ya que 2 motores giran hacia un lado y 2 hacia otro). Esto nos permite dejar de lado consideraciones respecto a la estabilización del dispositivo en el eje vertical.

También al tener cuatro hélices dispuestas el diseño del sistema de control se simplifica, permitiendo realizar un desacoplamiento de las variables.

Definición de la problemática

El principal problema de los modelos comerciales mencionados anteriormente es que al ser de arquitectura cerrada, no presentan la flexibilidad necesaria para su uso en la investigación. Para el caso de los modelos académicos analizados, que pueden ser de arquitectura abierta y brindar una mayor flexibilidad, aún no se encuentran en una etapa de desarrollo que brinde la confiabilidad necesaria para esta aplicación.

Objetivo General

Obtener un robot móvil volador autónomo (UAV) de dimensiones apropiadas para vuelos interiores a partir de componentes "off-the-shelf" capaz de realizar vuelo estático (hoovering) y desplazamientos con cambios de orientación y con los 3 grados de libertad estabilizados en intervalos cortos a partir de sensores inerciales on-board.

Objetivos Particulares

  • Estudio de la dinámica de la estructura del robot. Definición de los parámetros constructivos principales y plantas propulsoras. Construcción del prototipo.
  • Diseño y construcción del hardware para procesamiento de información obtenida de los sensores, control y drivers de potencia para motores.
  • Cálculo, codificación y validación de la estrategia de control de la planta.
  • Documentación del proyecto

Financiamiento

El financiamiento del proyecto es realizado por el Centro de Investigación de Informática para la Ingeniería como parte de un projecto de investigación.

Miembros del grupo de trabajo

Integrantes

Henze, Agustín Redolfi, Javier Andrés

Director:

Ing. David Gaydou, Ing. en Electrónica (UTN-FRC).

Organización del trabajo

El siguiente trabajo se organiza de la siguiente manera.

  • En el capítulo 2 se explica el funcionamiento básico y el diseño del QA3.
  • En el capítulo 3 se realiza el modelado de la planta, se diseña el controlador y se realizan las simulaciones correspondientes.
  • El capítulo 4 nos presenta el filtro utilizado para realizar la medición de los ángulos de orientación de la aeronave.
  • En el capítulo 5 se explican los diseños de los circuitos electrónicos y la construcción de las placas.
  • En el capítulo 6 se comenta el software desarrollado y se explican sus partes fundamentales.
  • En el capítulo 7 se realizan las conclusiones del trabajo realizado, junto con un análisis de costos.

Diseño del Cuadrotor

En esta sección se realiza una introducción al funcionamiento del Cuadrotor en general y se explica el diseño del QA3. En la sección del modelado matemático de la planta se amplía la información sobre el funciomiento.

El cuadricóptero, es una aeronave que se eleva y se desplaza por la acción cuatro rotores instalados al final de un marco en forma de cruz. El control se logra variando la velocidad angular de cada uno de los cuatro motores.

Introducción al Funcionamiento

Para controlar el QA3 es necesario generar cambios en la potencia entregada a cada motor. Para el siguiente análisis se asume que la plataforma esta volando estable con una potencia de motores PWMQ (en los cuatro motores).

Los cuadricópteros como todo vehículo volador tiene 3 grados de libertad angulares, estos son roll, pitch y yaw.

roll-pitch-yaw.png

Movimiento de guiñada (yaw)

Se refiere al movimiento cuando el vehículo gira sobre su eje vertical. El cuadricóptero logra este movimiento aumentando (o disminuyendo) por igual la potencia de giro de los rotores 1 y 3 y disminuyendo (o aumentando) en igual magnitud los motores 2 y 4. Al disminuir esta potencia aumenta el par motor creando un giro contrario a las hélices que están rotando con mayor potencia. Las potencias de giro deben variar equilibradas para mantener el vehículo estacionario en el aire, es decir, la fuerza total constante.

yaw-movimiento.png

Movimiento de inclinación (pitch)

Es el movimiento que permite el movimiento hacia adelante y atrás. El vehículo mantiene la potencia en el rotor 1 que es opuesto al sentido deseado, reduce al mínimo la del rotor 3 y deja los otros dos a potencia media, así la sustentación del rotor 1 hace que el vehículo se incline a favor del sentido deseado y se desplace.

pitch-movimiento.png

Movimiento de bamboleo (roll)

Es cuando el vehículo se mueve a la izquierda o derecha. Usa el mismo principio que el de inclinación, pero lateralmente. La combinación de los tres movimientos mencionados son los que hacen maniobrar al cuadricóptero libremente.

Los movimientos de roll y pitch son giros en torno a los ejes horizontales del QA3. Una inclinación en cualquiera de estos ejes produce un movimiento lineal en el plano horizontal cuya velocidad depende del ángulo (esto se denomina ángulo de ataque) y la dirección depende de la orientación del QA3. Yaw es un giro respecto a la vertical y no produce movimiento lineal.

roll-movimiento.png

Movimiento Vertical

Por último, se puede hacer ascender, descender o mentener en vuelo estacionario al QA3, haciendo que la fuerza de sustentación generada por los 4 pares motores-hélices sea mayor que la fuerza peso generada por la atracción gravitatoria. Este movimiento se logra variando la potencia de los cuatro motores en igual medida para no modificar los demás grados de libertad. De esta forma la plataforma puede ascender o descender.

elevación.png

Lo dicho anteriormente es para el caso ideal, donde los cuatro motores tiene exactamente las mismas constantes y giran a las mismas velocidades angulares. En el caso real, lo anterior no es posible, porque siempre existen ciertas variaciones en las fuerzas generadas por los motores, ya sea por que las constantes de los motores son diferentes o las velocidades angulares giran a distintas revoluciones. Estas diferencias causarían que el vehículo tuviera ciertas rotaciones en su centro de gravedad y llevaría a que se la fuerza de sustentación total tuviera una diferencia angular con el eje Z. Esta diferencia daría lugar a un desplazamiento de en el plano XY.

El control de los movimientos yaw, pitch y roll se realiza con el sistema de navegación. En secciones siguientes se encontrarán las expresiones matemáticas que permitan modelar el comportamiento del cuadricóptero en el espacio. Los modelos matemáticos desarrollados serán simulados para luego ser probados en la estructura real.

Estructura

La estructura del QA3 es de aluminio compuesta por dos tubos rectangulares (2mm de espesor, 60cm de largo) encastrados en sus centros, formando un ángulo de 90º. Sobre el centro se encuentra la placa madre montada sobre gomas de caucho para amortiguar las vibraciones producidas por los motores.

100_6094.JPG

Como se observa en la figura anterior, se realizaron ventanas sobre los tubos para no obstaculizar el flujo de aire generado por las hélices. Con esto se logra un aumento en el empuje generado por los propulsores.

Cálculo del peso total

En la siguiente tabla se especifican los pesos de los componentes utilizados, algunos fueron obtenidos del fabricante y otros a través de mediciones.

Motores

4

52g

208g

ESC

4

32g

128g

Baterías

2

160g

320g

Hélices

4

10g

40g

Estructura

1

300g

300g

Protección

1

150g

150g

Placa Madre

1

200g

200g

Montaje Placa

1

150g

150g

Total

1496g

Con el pesaje del prototipo completo con una balanza de presición se obtuvo un valor de 1482g, el cual es muy cercano al valor calculado anteriormente.

Motores

Se utiliza motores brushless para aeromodelismo con control electrónico. A diferencia de un motor DC convencional, en un motor brushless la armadura no tiene movimiento y el imán permanente es el que gira sobre su eje. Estos motores son conocidos como outrunners. Para lograr esto es necesario generar tres señales con valor eficaz variable en forma cuasi-senoidal, como se muestra en el siguiente gráfico.

motores-brushless.png

Un parámetro importante de éste tipo de motores es el

$$$kv$$

, constante que relaciona la velocidad en RPM del motor sin carga con el valor pico de tensión en las bobinas del motor. Los motores elegidos son los BL-2830-8 de la empresa RCTimer que tienen un

$$$ kv=\frac{1300RPM}{volt} $$

.

bl2830.jpg

Las características de estos motores son:

  • Modelo: 2830-8
  • Dimensiones: Ф28*30mm
  • Dimensión del eje: Ф3.17*45mm
  • Peso: 52g
  • KV(rpm/V): 1300
  • Potencia Máxima: 275W
  • Batería: 2-4Li-Po
  • Hélices recomendadas: 9x6/7x3
  • Ri(M Ω): 0.075
  • ESC(A): 30A

bl2830-dim.jpg

Controladores ESC

Los controladores de los motores (ESC, Electronic Speed Controller) permiten regular la potencia suministrada a cada motor. Se alimentan con una tensión formada con celdas NiMh o LiPo. En nuestro caso la tensión es 12v. La salida del ESC debe ser como la mostrada en la figura anterior.

En un primer momento se planeo la construcción de un controlador de velocidad, pero debido a varias razones se decidió la compra de un ESC comercial. La principal razón de esta decisión fue el costo de la construcción de un ESC. El precio de un controlador comercial esta en el orden de los 40, cuando la construcción del mismo ronda en el orden de los 200. Las razones de este costo elevado son la necesidad de usar transistores mosfet especiales que no se consiguen facilmente, los transistores deben manejar 30A de corriente continua y picos de 100A, también deben tener tensiones de disparo bajas compatibles con las de un microcontrolador para no complicar el circuito. También se necesita contar un microcontrolador con 6 salidas de PWM, lo que no es muy común en los microcontroladores normalmente usados.

Si agregamos a todo esto el tiempo de desarrollo y de prueba, llegamos a la conclusión de que carece de sentido construir el controlador en el ámbito de nuestro proyecto.

En la sección de hardware se amplía la información sobre los controladores comerciales usados.

Baterías LiPo

Actualmente las baterías de Litio-Polímero son usadas para este tipo de aplicaciones en donde se necesitan elevadas potencias y bajo peso. Estas baterías están formadas por celdas que se pueden agrupar en serie y paralelo para lograr los voltajes y corrientes necesarios.

Las baterías LiPo necesitan cargadores especiales. Sus celdas no deben ser sobrecargadas ni tampoco deben ser descargadas profundamente. Para mantener la diferencia entre las celdas al mínimo, se debe usar un balanceador. Este balanceador puede estar integrado al cargador o puede estar separado. Por esto las baterías no solamente tienen los bornes normales de una batería, sino que tienen otro conector que nos permite acceder a las celdas individuales para lograr una carga balanceada.

El manejo de estas baterías debe ser realizado con precaución, por lo tanto se deben tener en cuenta algunas reglas. El fabricante nos aconseja:

  • No exceder de 4.2V el voltaje de cada celda.
  • No exceder de 5C la tasa de carga
  • No exceder las tasas de descarga de corrientes especificadas
  • No descargar la batería a más de menos de entre un 10 a 20% de su capacidad energética. Usar 3.4V como tensión de corte de celda.
  • Siempre monitorear la carga de la batería
  • Nunca cortocircuitar, tampoco exponer al fuego o al agua
  • Nunca usar un pack estropeado

Se planteó el diseño del prototipo con una autonomía de vuelo de aproximadamente 10 minutos. El QA3 posee 2 baterias Hyperion G3 CX - 3S 2100mAh (25C).

Cálculo de la autonomía de vuelo

Se realizará un cálculo aproximado de este tiempo debido a que el mismo depende de los tipos de maniobras que realiza el dispositivo.

Primero vamos a suponer que trabajamos a potencia máxima:

4 Motores de 275W = 1100W Potencia total consumida, despreciando el resto de los componentes.

2 Baterías de 11.1V * 2100mAh = 46.62Wh

$$$Tiempo = \frac{Energía}{Potencia} = \frac{46.62}{1100} * 60 = 2.55minutos$$

Este tiempo está calculado a potencia máxima, como vemos el QA3 sin llevar carga y volando manteniéndose estático en un punto reduce esta energía consumida a aproximadamente un 25%.

baterías-lipo

Características:

  • Peso: 160g
  • Dimensiones: 109 x 36 x 24 mm
  • Tecnología Lipo
  • Velocidad de carga de hasta 5C

Hélices

Para el funcionamiento del QA3 se necesitan que 2 hélices giren en un sentido y las otras 2 en otro sentido, esto hace que si la sumatoria de las 2 velocidades de las que giran en un sentido es igual a la sumatoria de las que lo hacen en sentido contrario contrario, el torque resultante se cancela.

Las hélices más comunes son las que se usan en el morro del avión, están son conocidas como hélices normales. Hay otro tipo de hélices llamadas empujadoras o pusher en inglés que son las que se utilizan en aeronaves que tienen generan su empuje en la cola. Una posible solución a este problema sería girar 180º la hélice sobre su eje y colocarla en el motor. Pero esta solución tiene corto alcance debido a que el empuje generado por la misma hélice cuando gira en su sentido normal es distinto al generado cuando gira en el otro sentido.

Las hélices empujadoras están diseñadas para que el empuje generado por su rotación sea más efectivo cuando giran al revés que una hélice normal.

Las hélices en general tienen 2 parámetros que las caracterizan: el paso y el diámetro.

hélice.png

El paso se calcula como la distancia que recorrería la hélice en una vuelta si esta se moviese en un medio sólido (semejante a un tornillo) y el diámetro es el del círculo que generan cuando estás rotan. Este diámetro me indica el área del aire que entra en juego en el cálculo del empuje.

Las hélices definen el consumo de corriente de los motores, así como el empuje que se puede lograr.

Las hélices utilizadas en el QA3 son las recomendadas por el motor, con una medida de 9x6 pulgadas.

hélice.png

hélice.png

Protección

Para poder realizar pruebas seguras con el QA3 y evitar que el proyecto dure más que un solo vuelo, se decidió armar una estructura de telgopor, de manera que las hélices queden contenidas dentro del volumen formado. También se le añadió unos pies para proteger el conexionado de alimentación. Estos pies también permiten calibrar el "cero" fácilmente.

../../ProyectosLabWeb/QA3.JPG

Modelado del Quadrotor

En este capítulo se realiza la derivación del modelo matemético de la planta del QA3, también se realizan las simplificaciones necesarias para poder obtener un controlador simple, pero con una buena performance, luego se explican las mediciones realizadas para obtener las constantes reales de la planta y aplicarlas al modelo. Por último se diseña el controlador.

La derivación de la dinámica no lineal es realizada en coordenadas inerciales NED y de cuerpo fijo. Denotemos con {

$$$ e_N$$

,

$$$e_E$$

,

$$$e_D$$

} los ejes inerciales, y con {

$$$x_B$$

,

$$$y_B$$

,

$$$z_B$$

} a los ejes del cuerpo. Los ángulos de Euler de los ejes del cuerpo son {

$$$\phi$$

,

$$$\theta$$

,

$$$\psi$$

} con respecto a los ejes

$$$e_N$$

,

$$$e_E$$

y

$$$e_D$$

respectivamente, y son referidos como roll, pitch and yaw. Definamos a r como el vector de posición desde el origen inercial hacía el centro de gravedad del vehículo(CG), y dejemos que

$$$\omega_B$$

sea definido como la velocidad angular en con respecto al eje de referencia del cuerpo.

La dirección actual de la velocidad es referida como

$$$e_v$$

en coordenadas inerciales. Los rotores, numerados 1-4, están montados sobre los ejes

$$$x_B$$

,

$$$y_B$$

,

$$$-x_B$$

y

$$$-y_B$$

, respectivamente, con vectores de posición

$$$r_i$$

con respecto a CG. Cada rotor produce un torque aerodinámico

$$$Q_i$$

y un empuje

$$$T_i$$

, ambos paralelos al eje de rotación del rotor, y ambos usados para el control del vehículo.

Aquí,

$$$ T_i \cong \mu_i\frac{K_\tau}{1+0.1s}$$

, donde

$$$u_i$$

es el voltage aplicado a los motores. En vuelo,

$$$T_i$$

puede variar mucho con respecto a esta aproximación. Los torques,

$$$Q_i$$

, son proporcionales al empuje del rotor y están dados por

$$$Q_i=k_rT_i$$

.

Los rotores 1 y 3 giran en dirección opuesta a los rotores 2 y 4, por esto los torques aerodinámicos se contrarrestran y pueden ser usados independientemente para el control de yaw. La velocidad horizontal resulta en un momento en los rotores,

$$$R_i$$

, sobre

$$$-e_v$$

, y una fuerza de arrastre,

$$$D_i$$

, en la dirección

$$$-e_v$$

. La fuerza de arrastre de cuerpo está definida como

$$$D_B$$

, la masa del vehículo es

$$$m$$

, la aceleración debido a la gravedad es

$$$g$$

, y la matriz de inercia es

$$$I \in {R}^{3X3}$$

. Un diagrama de cuerpo libre se muestra en la figura siguiente.

diagrama_cuerpo_libre.png

La fuerza total,

$$$F$$

, y el momento,

$$$M$$

, puede ser sumado como

$$$ \mathbf{F} = -D_B\cdot\vec{e_V} + mg\cdot\vec{e_D} + \sum\limits^{4}_{i=1}(-T_i\cdot\vec{z_B}-D_i\cdot\vec{e_V})$$

$$$ \mathbf{M} = \sum\limits_{i=1}^4[Q_i\cdot\vec{z_B} - R_i\cdot\vec{e_V} - D_i(\vec{r_i}\times\vec{e_V}) + T_i(\vec{r_i}\times\vec{z_B})]$$

La dinámica no lineal completa puede ser expresada como:

$$$ \mathbf{F} = m\ddot{r} $$

$$$ \mathbf{M} = I \dot{\omega}_B + \omega_B \times I \omega_B $$

donde se asume que el momento angular total de los rotores está cerca de cero, porque están en contra rotación.

Descripción

Fuerza de Arrastre del Cuerpo

$$$ D_B = q_{\infty}SC_D $$

Empuje

$$$ T_i \cong \mu_i\frac{K_\tau}{1+0.1s}$$

Fuerza de arrastre sobre los rotores debido a la velocidad horizontal

$$$ D_i $$

Momento de arrastre sobre el eje de rotación de los rotores

$$$ Q_i = K_{\tau}T_i $$

Momento de Roll generado en los rotores por la velocidad

$$$ R_i $$

Fuerza de arrastre en los rotores debido a la velocidad

$$$ D_i $$

Empuje Total

$$$ T = \sum\limits_{i=1}^4{T_i} $$

Aproximación de la Fuerza y el Momento

Suponiendo que el Cuadricóptero está en vuelo estacionario podemos despreciar

$$$ D_B $$

y

$$$ D_i $$

. Con esto nos queda:

Fuerza

$$$ m\ddot{r} = \mathbf{F} = -R_{\psi}R_{\theta}R_{\phi}T\cdot\vec{z_B} + mg\cdot\vec{e_D}$$

Aproximando las matrices de rotación de los ángulos para ángulos pequeños, tenemos:

$$$ -R_{\psi}R_{\theta}R_{\phi} = \left[\matrix{ 1 & \psi & \theta \cr \psi & 1 & \phi \cr \theta & -\phi & 1 }\right] $$

$$$ m\ddot{r} = \left[\matrix{ 1 & \psi & \theta \cr \psi & 1 & \phi \cr \theta & -\phi & 1 }\right]\left[\matrix{ 0 \cr 0 \cr -T }\right] + \left[\matrix{ 0 \cr 0 \cr mg }\right] $$

$$$ m\ddot{r} = \left[\matrix{ 0 & -\bar{T} & 0 \cr \bar{T} & 0 & 0 \cr 0 & 0 & 1 }\right]\left[\matrix{ \phi \cr \theta \cr T }\right] + \left[\matrix{ 0 \cr 0 \cr mg }\right] $$

Momento

También podemos despreciar los momemtos de Rolling

$$$ R_i $$

y

$$$ \omega_B\times I\omega_B $$

. El Torque nos queda:

$$$ \mathbf{M} = I\dot{\omega}_B = \sum\limits_{i=1}^4[Q_i\cdot\vec{z_B} + T_i(\vec{r_i}\times\vec{z_B})] $$

$$$ \left[\matrix{ I_x\ddot{\phi} \cr I_y\ddot{\theta} \cr I_z\ddot{\psi} }\right] = \left[\matrix{ 0 & l & 0 & -l \cr l & 0 & -l & 0 \cr K_r & -K_r & K_r & -K_r }\right]\left[\matrix{ T_1 \cr T_2 \cr T_3 \cr T_4 }\right] $$

Referencias

[[ http://www.eecs.berkeley.edu/~tomlin/papers/conferences/whjt05_iros.pdf | Multi-Agent Quadrotor Testbed Control Design: Integral Sliding Mode vs. Reinforcement Learning ]]

Path Tracking Control for Quadrotor Helicopters

Medición de los parámetros de la Planta

Para el diseño del controlador del quadricóptero resulta necesario realizar la medición de los distintos parámetros del modelo real. Los parámetros fundamentales son el peso, el momento de inercia, los empujes de los motores.

Empuje de los motores

Al momento de realizar esta medición poseíamos 2 motores rctimer 2830, 1 ESC rctimer de 30A, 1 ESC mystery de 30A, 1 hélice con paso normal y una hélice con paso pusher.

Se realizó la medición del empuje de cada motor, con las distintas hélices y los dos controladores. Esta medición se hizo montando el motor sobre un peso de plomo, el cual se ponía sobre la balanza y luego se realizaron las curvas de transferencia entre PWM y fuerza de empuje. El montaje se muestra en la siguiente figura.

med_empuje_motor.png

En las siguientes tablas se muestran los resultados obtenidos, RCTimer y Mystery son los 2 controladores usados, Normal y Pusher son los 2 tipos de hélices. También se muestran los datos en forma gráfica.

Como se puede ver, podemos aproximar la función de transferencia entre el ciclo de trabajo y el empuje generado por una recta. Esta es una aproximación no tan real debido a que se desprecian todas las constantes de tiempo del motor y de la hélice. Obtener una función de transferencia real para el conjunto motor hélice representa un trabajo que sobrepasa nuestros conocimientos y objetivos, por lo tanto en adelante se supondrá que la transferencia entre ciclo de trabajo y empuje es una constante.

Motor 1

RCTimer Normal

Duty

2949

5898

8847

11796

14745

17694

20643

23592

26541

29491

32440

35389

38338

41287

Fuerza

0

55

100

145

185

230

270

320

360

400

440

490

540

600

$$$F = 0.0154 * D - 35.83$$

Mystery Pusher

Duty

2949

5898

8847

11796

14745

17694

20643

23592

26541

29491

32440

35389

38338

41287

Fuerza

20

20

95

165

245

325

410

480

575

670

770

855

855

845

$$$F = 0.0283 * D - 155$$

RCTimer Pusher

Duty

2949

5898

8847

11796

14745

17694

20643

23592

26541

29491

32440

35389

38338

41287

Fuerza

5

60

105

150

195

240

290

335

380

425

475

540

605

665

$$$F = 0.017 * D - 45.4$$

Mystery Normal

Duty

2949

5898

8847

11796

14745

17694

20643

23592

26541

29491

32440

35389

38338

41287

Fuerza

5

5

80

150

225

300

380

460

545

640

730

790

760

760

$$$F = 0.0267 * D - 156$$

Motor1

Motor 2

Mystery Normal

Duty

2949

5898

8847

11796

14745

17694

20643

23592

26541

29491

32440

35389

38338

Fuerza

15

15

80

160

235

320

395

475

570

665

765

840

840

$$$F = 0.028 * D - 167.7$$

RCTimer Pusher

Duty

2949

5898

8847

11796

14745

17694

20643

23592

26541

29491

32440

35389

38338

41287

Fuerza

10

65

110

155

200

245

295

345

395

435

490

560

605

660

$$$F = 0.0168 * D - 34.1$$

Mystery Pusher

Duty

2949

5898

8847

11796

14745

17694

20643

23592

26541

29491

32440

35389

38338

Fuerza

5

5

80

155

245

335

425

535

655

795

905

1015

1015

$$$F = 0.03523 * D - 231.7$$

RCTimer Normal

Duty

2949

5898

8847

11796

14745

17694

20643

23592

26541

29491

32440

35389

38338

41287

Fuerza

25

65

110

155

195

235

275

315

360

400

435

485

540

595

$$$F = 0.015 * D - 23.47$$

Motor2

Motor1, RCTimer, Pusher y Motor2, Mystery y Normal

Motor1vsMotor2

Cálculo Aproximado de las constantes

Cálculo de la constante de Inercia

$$$K_J = \frac{r}{J_T}$$

$$$J = \sum{m.r^2}$$

$$$J_T = 2(J_{motor} + J_{ESC} + J_{helice}) + J_{barra}$$

$$$J_{motor} = 52.{20,5}^2 [g.{cm}^2] = 21853 [g.{cm}^2]$$

$$$J_{ESC} = 32.{10}^2 [g.{cm}^2] = 3200 [g.{cm}^2]$$

$$$J_{helice} = 15.{20,5}^2 [g.{cm}^2] = 6303,75 [g.{cm}^2]$$

$$$J_{barra} = \frac{m.L^2}{12} = \frac{110.{51}^2}{12} [g.{cm}^2] = 23842,5 [g.{cm}^2]$$

$$$J_T = 86556 [g.{cm}^2] = 0.0086556 [Kg.{m}^2]$$

$$$\boxed{K_J = \frac{21}{86556}[\frac{1}{g.cm}]=  24.26174962[\frac{1}{Kg.m}]}$$

Cálculo de la constante del Motor

Según las mediciones realizadas podemos aproximar estas constantes.

$$$K_{MPusher} = \frac{\Delta_F}{\Delta_D} = \frac{40}{3000}\frac{g}{cuentas}$$

$$$K_{MNormal} = \frac{\Delta_F}{\Delta_D} = \frac{70}{3000}\frac{g}{cuentas}$$

Revisión del Cálculo de las constantes

Esta revisión se hace para adaptarla al nuevo modelo del QA3, que tiene 1 metro de largo en las barras y usa la imu 3DM-GX1.

Partes: las partes que vamos a usar para calcular el momento de inercia son el motor, las baterías, las barras, la IMU y la placa del ARM.

Inercias con respecto al eje X o Y

Motor

Para calcularlo suponemos que el motor es un cilindro

$$$ m_{motor} = 0.052kg $$

$$$ r_{motor} = 0.013850m $$

$$$ I_{cilindro} = \frac{mr^{2}}{2} = \frac{0.052 kg (0.013850 m)^2}{2} = 4.9874e^{-6} kg m^{2} $$

donde m es la masa total del motor y r es el radio del motor.

Usando el teorema de Steiner nos queda:

$$$ I_{motor} = I_{cilindro} + md^{2} = 4.9874e^{-6} kg.m^{2} + 0.052 kg(0.5 m)^{2} = 0.013005 kg.m^{2} $$

donde d es la distancia del motor al centro de gravedad, en este caso la mitad del largo de la barra.

$$$ d = 0.5m $$

Batería

Para calcularlo suponemos que la batería es un paralelepípedo rectangular.

$$$ I_{par} = \frac{1}{3}m(b^2+c^2) = \frac{0.167kg \cdot ((0.03m)^2 + (0.02m)^2)}{3} = 2.1710^e{-4} kg.m^{2} $$

En donde b y c son los lados del paralelepípedo perpendiculares al eje con respecto al que calculamos el momento de inercia.

En nuestro caso

$$$ b = 0.03m, c = 0.02m $$

y

$$$ m = 0.167kg $$

Otra vez por el teorema de Steiner nos queda que:

$$$ I_{bateria} = I_{par} + md^{2} = 2.1710^e{-4} kg.m^{2} + 0.167 kg(0.075 m)^{2} = 0.0011565 kg.m^{2} $$

en donde d representa la distancia del CG a la batería,

$$$ d = 0.075m $$

Barra

Supondremos que la barra es una línea perpendicular al eje sobre el que calculamos el momento de inercia. La masa de las barra es

$$$ m = 0.298kg $$

y

$$$ L = 1m$$

es el largo total de la barra.

$$$ I_{barra} = \frac{mL^2}{12} = \frac{0.298kg(1m)^2}{2} = 0.14900 kg.m^{2}$$

El peso de la barra sin fresar es de

$$$ m = 0.515kg $$

. El peso de las 2 barras fresadas es de

$$$ 581g $$

.

IMU, ARM

Supondremos que la placa central es un cubo de lado

$$$ l = 0.06m $$

y masa

$$$ m = 0.246kg $$

.

$$$ I_{cubo} = \frac{ml^2}{6} = \frac{0.246kg(0.06m)^2}{6} = 1.4760e^{-4} kg.m^{2} $$

Momento total de inercia para el eje x o y

$$$ I_x = 2I_{motor} + 2I_{bateria} + I_{barra} + I_{cubo}$$

$$$ I_x = 2 \cdot 0.013005 kg.m^{2} + 2 \cdot 0.0011565 kg.m^{2} + 0.14900 kg.m^{2} + 1.4760e^{-4} kg.m^{2} = 0.17747 kg.m^{2} $$

Diseño del controlador

El problema del diseño de un controlador de actitud para el QA3 no es un problema trivial debido a varias razones como son el acoplamiento entre las fuerzas y momentos generados por los motores y hélices, el rozamiento con el aire, la fuerza de empuje del viento, etc; por esto se ha optado por el uso de un controlador PID, el cual se puede ajustar para las mejores condiciones de funcionamiento y de la realización de varias simplificaciones.

La primera simplificación importante es suponer que el control de los distintos ángulos esta desacoplado. Con esta suposición obtenemos 3 plantas independientes a las cuales les agregamos un controlador PID distinto.

Otra simplificación es suponer que las fuerzas de rozamiento con el aire y la fuerza generada por corrientes de aire son despreciables. Estas corrientes de aire no solo se pueden deber al viento, sino también a rebotes del flujo de aire generado por la hélice con el entorno.

También despreciamos la dinámica del motor y suponemos que es lineal.

En esta sección se explica el controlador PID y los 3 controladores de los ángulos.

Controlador PID

Un controlador PID (Proporcional Integral Derivativo) es un 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.

El algoritmo de cálculo del control PID tiene tres parámetros distintos: el proporcional, el integral, y el derivativo. El valor Proporcional determina la reacción del error actual. El Integral genera una corrección proporcional a la integral del error, esto nos asegura que aplicando un esfuerzo de control suficiente, el error de seguimiento se reduce a cero. El Derivativo determina la reacción del tiempo en el que el error se produce. La suma de estas tres acciones es usada para ajustar al proceso vía un elemento de control, en este caso el PWM aplicado a los motores. Ajustando estas tres variables en el algoritmo de control del PID, el controlador puede proveer un control diseñado para lo que requiera el proceso a realizar.

La respuesta del controlador puede ser descrita en términos de respuesta del control ante un error, el grado el cual el controlador llega al "set point", y el grado de oscilación del sistema. Nótese que el uso del PID para control no garantiza control óptimo del sistema o la estabilidad del mismo. Algunas aplicaciones pueden solo requerir de uno o dos modos de los que provee este sistema de control.

PID.png

Ecuacion Diferencial

La ecuación diferencial de un controlador PID tiene la siguiente forma:

$$$ c(t) = k[e(t) + \frac{1}{T_i}\int_0^t \!  e(t) dt \ + T_d \frac{de(t)}{dt} ] $$

Transformada de Laplace

Aplicando la transformada de Laplace a la ecuanción diferencial anterior podemos encontrar la relación entre entrada y salida en el plano de Laplace:

$$$ C(s) = k( 1 + \frac{1}{T_i s} + T_d s ) E(s) $$

Transformada Z

Para realizar el análisis en tiempo discreto necesitamos pasar del plano de Laplace al plano Z. Esto se hace aplicando la transformada Z a la función obtenida anteriormente. Una vez obtenida la función en el plano Z, podemos realizar análisis de estabilidad, de respuesta y realizar el controlador para obtener la respuesta deseada.

$$$ C(z) = k[1-\frac{T}{2T_i} + \frac{T}{T_i}\frac{1}{1-z^{-1}} + \frac{T_d}{T}(1-z^{-1}) ]E(z) $$

a

Podemos definir 3 constantes,

$$$K_p$$

,

$$$K_i$$

,

$$$K_d$$

, y expresar la ecuación anterior como:

$$$ C(z) = [K_p + \frac{K_i}{1-z^{-1}} + K_d(1-z^{-1}) ]E(z) $$

Está última forma tiene una similitud con el controlador PID en tiempo continuo, pero aclaramos que las constantes no son las mismas.

Tiempo Discreto

Para poder codificar el algoritmo en un microcontrolador, debemos pasar la función de transferencia en el plano Z, a una ecuación en diferencias en el tiempo. En la ecuación siguiente se muestra el algoritmo del controlador PID en el tiempo.

$$$ c(k) = c(k-1) + K_p[e(k)-e(k-1)] + K_i e(k) + K_d[e(k)-2e(k-1)+e(k-2)] $$

A continuación se realiza el análisis de los controladores de los ángulos de roll y pitch.

Controlador del ángulo de roll

El ángulo de roll depende de la diferencia del empuje entre los motores laterales. A continuación se realiza el cálculo de la función de transferencia a lazo cerrado de la planta más el controlador PID. Suponemos primero un modelo continuo y luego un modelo discreto con un retenedor de orden cero, para tener en cuenta el retardo de fase introducido por el muestreo.

Modelo Continuo

planta_lc_continuo.png

$$$\sum{\tau_x} = \tau_2 - \tau_1 = J\frac{d^2\theta}{dt^2}$$

$$$s^2\theta_{(s)}= \frac{\tau_{(s)}}{J}$$

$$$G_{bal(s)} = \frac{1}{Js^2}$$

$$$G_{torque(s)} = k_\tau$$

$$$G_{PID(s)} = k_p\cdot(1 + \frac{1}{T_is} + T_ds})$$

$$$G_{LA(s)} = G_{bal(s)}G_{torque(s)}G_{PID(s)} = \frac{k_pk_{\tau}}{T_iJ}\frac{T_iT_ds^2 + T_is + 1}{s^3}$$

$$$G_{LC(s)} = \frac{G_{LA(s)}}{1+G_{LA(s)}} = k_p k_{\tau} \frac{T_i T_d s^2 + T_i s + 1}{T_i J s^3 + k_p k_{\tau} T_i T_d s^2 + k_p k_{\tau} T_i s + k_p k_{\tau}}$$

Modelo Discreto

planta_lc_discreto.png

$$$G_{bal(s)} = \frac{1}{Js^2}$$

$$$G_{ROC(s)}=\frac{1-e^{-TS}}{S}$$

$$$G_{torque(s)} = k_\tau$$

$$$G_{PID(s)} = k_p\cdot(1 + \frac{1}{T_is} + T_ds})$$

$$$G_{planta(Z)} = Z[G_{ROC(s)}G_{bal(s)}G_{torque(s)}] = Z[\frac{1 - e^{-TS}}{S}\frac{k_\tau}{JS^2}] = (1-z^-1)Z[\frac{2k_\tau}{2JS^3}] = \frac{T^2k_\tau}{2J}\frac{z+1}{z^2-2z+1}$$

$$$G_{PID(Z)} = K_P + \frac{K_I}{1-z^-1} + K_D(1-z^-1) = \frac{(K_P + K_I + K_D)z^2 + ( -2K_D - K_P )z + K_D }{ z^2 - z }$$

$$$G_{LA(Z)} = G_{PID(Z)}G_{planta(Z)} = \frac{T^2k_\tau}{2J}\frac{(K_P + K_I + K_D)z^3 + (K_I - K_D)z^2 + (-K_P - K_D)z + K_D}{z^4-3z^3+3z^2-z}$$

$$$G_{LC(Z)} =  \frac{G_{LA(Z)}}{1+G_{LA(Z)}} = \frac{k_{\tau}T^2((K_P + K_I + K_D)z^3 + (K_I - K_D)z^2 + (-K_P - K_D)z + K_D)}{ 2Jz^4 + ((K_P + K_I + K_D)k_{\tau}T^2 -6J )z^3 + ((K_I - K_D)k_{\tau}T^2 +6J )z^2 + ( ( -K_P - K_D ) k_{\tau} T^2 -2J )z + K_D k_{\tau} T^2 }$$

Controlador del ángulo de pitch

El ángulo de pitch depende de la diferencia del empuje entre los motores delantero y trasero. El controlador de este ángulo es igual al del controlador del roll, por esto no nos extendemos en este controlador.

Simulaciones

Para las simulaciones se van a utilizar las ecuaciones obtenidas anteriormente de la planta más el controlador. Estas fueron realizadas con el software octave.

Los valores de los parámetros usados fueron extraídos del modelo real y son los siguientes.

$$$ k_t = 90.63e-6; $$

$$$ J = 8.6556e-3; $$

Simulación a lazo abierto

Se muestran los resultados de la simulación de la planta más el controlador diseñado en lazo abierto. Con estos datos podemos saber como será la respuesta del sistema según el valor de k elegido. Como se puede observar para valores de k muy grandes el sistema se vuelve inestable.

pid_la_discreto

Simulación a lazo cerrado

En esta simulación se muestran los resultados de la simulación de la salida en función del tiempo para una entrada escalón.

pid_la_discreto

Filtro Complementario para la Estimación del ángulo de roll y de pitch

En este capítulo se presenta un sistema para estimación de actitud del QA3. Para determinar la inclinación se utilizan acelerómetros tipo MEMS, que poseen numerosas ventajas para esta aplicación, como ser buen ancho de banda, suficiente resolución, peso reducido, robustez y bajo costo. Mediante estos sensores es posible determinar la dirección y el sentido del vector de aceleración de la gravedad respecto a un marco de referencia fijo en la aeronave. La desventaja fundamental de estos sensores radica en que las mediciones son fuertemente afectadas por las vibraciones en la estructura donde se encuentran montados.

Otra alternativa para medir la inclinación es computar la rotación integrando la señal de sensores giroscópicos. Por las mismas razones que el caso anterior, los dispositivos de tecnología MEMS resultan los más apropiados para esta aplicación, aunque si bien son más inmunes a las vibraciones presentan derivas sostenidas en el tiempo debido a la integración de los errores de offset.

balancin_descripcion.png

Ensayo individual de los sensores

Para los ensayos que se describen a continuación se construyó un montaje experimental que consta de un balancín con un propulsor en cada extremo, un potenciómetro en el pivot y el sensor con el sistema de control montado en el centro. Este montaje con un grado de libertad permite simular el comportamiento dinámico aproximado del sistema respecto al rolido o el cabeceo. Aparte del sistema mecánico, el montaje cuenta con un controlador PID digital implementado en el microcontrolador, el cual cierra el lazo del sistema a través del control de la velocidad de los motores. Para lograr una notación consistente supondremos que el ángulo a medir es el de rolido (

$$$ \theta$$

).

Acelerómetro

En el desarrollo experimental se utilizó el acelerómetro ADXL345 de tres ejes dispuesto de manera que los ejes de medición del mismo coincidan con los ejes del sistema de referencia del UAV. De esta manera el ángulo se obtiene como:

$$$ \varphi=\arccos{\frac{a_x}{g}} $$

,

donde la aceleración

$$$a_x$$

se mide con una resolución de 10 bits, y un ancho de banda ajustable por software desde 0.05 Hz. hasta 1600 Hz.

Las siguientes muestran comparativamente las señales adquiridas del sistema a lazo abierto en estado de equilibrio con una inclinación de 10º con los propulsores apagados y con los propulsores encendidos (50\%) respectivamente.

Angulo medido con el giroscopio, con el montaje en equilibrio y los propulsores apagados.

acel_apagados_25hz_v1.png

acel_apagados_25hz_fft_v1.png

Ángulo medido con el acelerómetro, con el montaje en equilibrio formando un ángulo de 10º y los propulsores encendidos al 50% de su potencia:

acel_encendidos_25hz_v1.png

acel_encendidos_25hz_fft_v1.png

Respuesta en frecuencia del sistema completo a lazo cerrado:

closeLoop_frec_rta_v1.png

Respuesta temporal del sistema de lazo cerrado de tipo regulador con una perturbación sumada a la medición ideal de 0.1º de amplitud para frecuencias de 5Hz y 50Hz:

Frecuencia de la perturación de 5Hz:

closeLoop_tpo_rta01_v1.png

Frecuencia de la perturación de 50Hz:

closeLoop_tpo_rta02_v1.png

Respuestas temporales del sistema a lazo cerrado de \theta para señales no ruidosas, pero previamente pasadas por un filtro pasa bajos:

Sin filtrar:

closeLoop_tpo_rta03_v1.png

  • $$$ f_c=5Hz$$:

closeLoop_tpo_rta04_v1.png

  • $$$ f_c=2Hz$$

closeLoop_tpo_rta05_v1.png

Si bien el sistema en lazo cerrado formado por el balancín más el controlador PID presenta un buen rechazo a las componentes ruidosas de alta frecuencia de las vibraciones, esto se aprecia en la curva de bode simulada para un sistema ideal y en las curvas de respuesta en el tiempo del mismo sistema que se ven en las figuras anteriores, las variaciones bruscas de la señal de referencia producen acciones de control, debidas a la rama del derivador del compensador, que llevan a los motores a zonas no lineales (saturación o corte), provocando la inestabilidad del sistema real.

El filtrado de la señal ruidosa mediante un filtro pasa-bajos introduce otras desventajas: si bien se pueden mantener acotadas las derivadas en la señal, la atenuación y el corrimiento de fase degradan la respuesta dinámica e incluso provocan inestabilidad cuando las frecuencias de corte son demasiado bajas. En las imágenes anteriores también se muestra la respuesta temporal del sistema para una medición no ruidosa y no filtrada, y la respuesta cuando la misma señal se pasa por un filtro pasa-bajos de 5 Hz de frecuencia de corte, finalmente si se disminuye la frecuencia de corte del mismo a 2 Hz el sistema se desestabiliza, tal como lo muestra la última gráfica.

Como consecuencia de las características ruidosas de las mediciones adquiridas con el acelerómetro no sería posible utilizarlo como inclinómetro en el sistema de estabilización. A raíz de esto se evalúa la posibilidad de utilizar un giróscopo.

Giróscopo

Para realizar los siguientes experimentos se utilizó un giróscopo de 3 ejes ITG-3200 de la firma InvenSense. Éste se dispuso de manera que sus ejes estén alineados con los del sistema de referencia de a bordo. Este dispositivo posee un rango dinámico de

$$$+/-2000 [{}^o/s]$$

y una sensibilidad de

$$$14 {}^o/s$$

. En las siguientes se observan comparativamente las señales en el tiempo y el espectro para el caso que los propulsores están apagados y encendidos con la misma configuración que la descripta para el caso de la medición con el acelerómetro. Haciendo una comparación de las figuras se puede ver que la influencia de las vibraciones en las mediciones del giróscopo son sensiblemente menores que en el caso del acelerómetro. Sin embargo se han observado intérvalos de tiempo relativamente cortos. También se muestra que para tiempos mayores la medida de este sensor comienza a derivar.

Ángulo medido con el giroscopio, con el montaje en equilibrio y los propulsores apagados:

Ángulo de rolido en función del tiempo:

gyromotorapagado_v1.png

Espectro de frecuencias:

gyromotorapagado_fft_v1.png

Ángulo medido con el giroscopio, con el montaje en equilibrio y los propulsores encendidos al 50\% de su potencia:

Ángulo de rolido en función del tiempo:

gyromotorencendido_v1.png

Espectro de frecuencias:

gyromotorencendido_fft_v1.png

Deriva del ángulo medido por el giróscopo:

Gyro_Pote_deriva_v1.png

Filtro Complementario

En forma intuitiva surge la idea de usar la medición obtenida por el giróscopo para tiempos cortos y realizar la corrección de la deriva con la medición realizada por el acelerómetro en tiempos largos, debido a que esta última medición tiende a ser la aceleración de la gravedad para períodos largos.

Los filtros complementarios son muy usados en sistemas de navegación inercial. Aplicaciones típicas son la combinación de las medidas de aceleración vertical y velocidad barométrica vertical para obtener una estimación de la velocidad vertical o mediciones de unidades inerciales y sistemas de visión. \cite{buskey2004helicopter}

Un filtro complementario es en sí un filtro de Kalman de estado estacionario para una cierta clase de problemas de filtrado \cite{higgins2007comparison}, este no considera ninguna descripción estadística del ruido que corrompe a las señales y es obtenido solamente por un análisis en el dominio de la frecuencia.

El filtro complementario resulta sencillo de tratar matemáticamente y en razón de su baja complejidad de implementación consume pocos recursos computacionales.

La idea básica del filtro complementario es combinar la salida del acelerómetro y del giróscopo para obtener una buena estimación del ángulo de orientación de la plataforma, compensando la deriva del giróscopo con la dinámica lenta del inclinómetro \cite{baerveldt2002low}.

El filtro complementario propuesto es el que se muestra en la figura siguiente. Donde

$$$\theta_{a}$$

es el ángulo medido por el acelerómetro cuya señal esta corrompida por ruidos de alta frecuencia proveniente de las vibraciones,

$$$\theta_{g}$$

es el ángulo medido por el giróscopo, afectado por la deriva y

$$$\hat{\theta}$$

es el ángulo estimado.

Diagrama en bloques del filtro complementario utilizado:

comp_usado_1_v1.png

Las funciones de transferencia del filtro deben ser elegidas de acuerdo a la ecuación:

  • $$$ H_{a(s)}G_{(s)} + H_{g(s)}(1-G_{(s)}) = 1 $$

en donde

$$$H_{a(s)}$$

y

$$$H_{g(s)}$$

representan las funciones de transferencia del acelerómetro y el giróscopo respectivamente.

Suponemos que las funciones de transferencia de las sensores son iguales a 1. Esto es

$$$H_{a(s)} = H_{g(s)} = 1$$

.

La función de transferencia elegida para

$$$G_{(s)}$$

es un filtro pasa bajos de primer orden, lo cual hace que la estimación en baja frecuencia dependa de la medición del acelerómetro.

  • $$$ G_{(s)} = \frac{\alpha}{s+\alpha}$$

Y la función de transferencia para

$$$1-G(s)$$

:

  • $$$ 1-G(s) = \frac{s}{s + \alpha}$$ este filtro nos permite hacer que las componentes de alta frecuencia de la medición estimada estén dominadas por el aporte de las mediciones provenientes del giróscopo.

Como podemos ver en el diagrama en bloques del filtro, si ambas mediciones son ideales, la función de transferencia total del filtro resulta:

  • $$$ \frac{\hat{\theta}_{(s)}}{\theta_{(s)}} = G_{(s)} + ( 1- G_{(s)}) = 1$$

Y esto hace que:

  • $$$ \hat{\theta}_{(s)} = \theta_{(s)}$$

Discretización de los filtros

Para la implementación de los filtros digitales en el microcontrolador se parte discretizando las funciones de transferencia de los mismos usando la transformada z y suponiendo un retenedor de orden cero a la entrada. Con esto se obtiene una expresión compacta para el filtro completo.

Si definimos:

$$$G_1(s) = G(s)$$

y

$$$G_2(s) = 1-G(s)$$

, entonces:

$$$ G_1(z) = \frac{(1-e^{\frac{-T}{\tau}})z^{-1}}{1 - e^{\frac{-T}{\tau}}z^{-1}} $$

$$$ G_2(z) = \frac{1- z^{-1}}{1 - e^{\frac{-T}{\tau}}z^{-1}} $$

En donde

$$$a = \frac{1}{\tau}$$

y

$$$\tau$$

representa la constante de ambos filtros.

Algoritmo del microcontrolador

El algoritmo del microcontrolador surge del paso a ecuaciones en diferencias de las funciones de transferencia de cada filtro.

$$$ \hat{\theta}_{[k]} = \hat{\theta}_{a[k]} + \hat{\theta}_{g[k]} $$

$$$ \hat{\theta}_{a[k]} = e^{\frac{-T}{\tau}}\hat{\theta}_{a[k-1]} + (1-e^{\frac{-T}{\tau}})\theta_{a[k-1]} $$

$$$ \hat{\theta}_{g[k]} = e^{\frac{-T}{\tau}}\hat{\theta}_{g[k-1]} + \theta_{g[k]} - \theta_{g[k-1]} $$

$$$ \omega_{[k]}T = \theta_{g[k]} - \theta_{g[k-1]} $$

$$$ \hat{\theta}_{g[k]} = e^{\frac{-T}{\tau}}\hat{\theta}_{g[k-1]} + \omega_{[k]}T $$

Resultados de la implementación

Se ensayó el sistema utilizando el filtrado complementario verificándose una buena estimación del ángulo que resultó en la correcta estabilización y una buena respuesta dinámica.

En la figura siguiente se muestran las mediciones individuales del acelerómetro y el giróscopo; y la estimación del filtro complementario; mientras se sometió al sistema a perturbaciones forzándolo a salir de la posición de equilibrio y permitiéndole que se restituya en forma autónoma.

Como se observa en la gráfica se calibró débilmente el offset del giróscopo para permitir una deriva exagerada a fin de mostrar el rechazo del filtro.

Mediciones y estimación durante ensayo del sistema:

ensayo1_v1.png

En la figura siguiente se observa la medida del ángulo estimada por el filtro contrastada contra la medición del potenciómetro durante la evolución del sistema desde un ángulo inicial de -10 grados hasta el equilibrio en cero grado. En este ensayo se utilizó la medida del filtro para la realimentación del lazo de control y se ajustaron las constantes del controlador PID. Este ajuste se realizó según los análisis de estabilidad hechos del sistema a lazo cerrado para obtener la respuesta subamortiguada que se observa, aunque hubo que realizar algunos retoques empíricos los cuales se pueden deber a que se idealizaron algunas partes del sistema y también a falta de una buena calibración de los sensores y propulsores.

Respuesta dinámica del sistema ante una perturbación:

Filtro_vs_Pote_v1.png

Conclusiones sobre las técnicas probadas para la estimación del ángulo

Se ensayaron tres métodos de medición de inclinación de una plataforma experimental que se comporta como el QA3 con cinco grados de libertad restringido, permitiendose rotaciones que corresponderían al cabeceo o el rolido de la aeronave. Los dos primeros métodos ensayados utilizaron acelerómetro por un lado y giróscopo por otro de manera individual. En el primer caso la influencia de las vibraciones impide el correcto funcionamiento del lazo de control, en tanto que si se filtra la señal de la medición se degrada la respuesta dinámica o incluso se llega a la inestabilidad del sistema para frecuencias de corte demasiado bajas. Por el lado del giróscopo se obtuvo mejores resultados en el comportamiento del lazo de control, no obstante esto la deriva producida por el offset del sensor hace que el error de inclinación se incremente de manera constante en el tiempo. Ninguno de los dos métodos resulta viable para el control de actitud del QA3.

Finalmente se aplicó un filtro complementario para combinar la medición de ambos sensores tomando de cada uno la parte del espectro de la señal de medición menos corrompida y atenuando la otra a fin de que la suma permita una estimación aproximada de la variable de interés.

El comportamiento dinámico del sistema realimentado con la medición estimada por el filtro resulta satisfactorio para ser aplicado al prototipo real.

Hardware de control

En este capítulo se explica el funcionamiento del hardware de control utilizado.

Placa del Microcontrolador

Una de las especificaciones pedidas por el centro para la construcción del QA3 fue el uso de la placa madre diseñada por el CIII. Esta placa madre genérica tiene la ventaja de poder ser utilizada en múltiples proyectos.

Esta plataforma contiene un microcontrolador LPC2114/24 con núcleo ARM7 y toda la electrónica asociada para realizar la programación y testeo de los sistemas diseñados. Además en el mismo centro se desarrollan un conjunto de librerías para facilitar el uso de los periféricos.

[ANEXAR]

Algunas características y periféricos de este microcontrolador son:

  • 16/24K RAM
  • 128/256K flash
  • CPU con una velocidad maxima de 60MHz
  • 4 canales A/D de 10 bit
  • Interfaces series UART, I2C y SPI
  • Dos timmers de 32 bit
  • 6 PWM
  • Reloj en tiempo real
  • Hasta 46 I/O de proposito general

El circuito esquemático de la placa se muestra en la siguiente imagen.

placa_arm.png

Los componentes utilizados en la placa se encuentran en el mercado local, y para su diseño se empleó exclusivamente software libre, particularmente KiCAD

Sensores

Para obtener una estimación de la posición angular del QA3 se usan 2 sensores, estos son un giroscopio de 3 ejes y una acelerómetro de 3 ejes. Luego estas 2 mediciones de fusionan a través de un filtro complementario para obtener una estimación de los ángulos. Esta fusión se explica en capítulos siguientes.

Giroscopio

itg3200-solo.jpg

El sensor utilizado para medir velocidad angular es el ITG-3200. Este sensor es un giroscopio con salida digital a través del bus

$$$I^{2}C$$

, entregando mediciones correspondiente a los 3 ejes Y, X y Z. Cada medición realizada en su correspondiente eje, es digitalizada por 3 conversores A/D que entregan la información sobre un ancho de 16 bits. Posee un filtro pasa bajos programable, un sensor de temperatura y un oscilador con 2% de precisión.

Su tensión de alimentación es muy flexible y va desde 2.1V hasta los 3.6V. Su tensión de lógica se encuentra separada y puede ir desde 1.71V hasta VDD.

Hoja de datos

Los sensores giroscópicos MEMS utilizan miden la velocidad a través del efecto Coriolis.

Estos sensores tienen la principal ventaja de ser muy inmunes a la vibración, pero tienen como principal desventaja una deriva en la salida obtenida. Esta deriva hace que si necesitamos calcular el ángulo a través de integración obtenemos un error sistemático que hace que le medición del ángulo tienda a infinito. Debido a esto se usa el acelerómetro para corregir esta deriva.

Acelerómetro

Luego de realizar distintas pruebas sobre distintos sensores de aceleración, se optó por el ADXL345. Por su excelente relación costo-beneficio. Este sensor al igual que el anterior es de tipo MEMS.

adxl345-solo.jpg

El sensor ADXL345 contiene salida digital a través del bus

$$$I^{2}C$$

o SPI, brindando una resolución de 13 bits por cada eje y hasta un rango de

$$$+/-16g$$

. Su resolución tanto como su rango son programables y puede discernir hasta 1.0º de inclinación utilizando la configuración de máxima resolución.

Hoja de datos

Una de las principales desventajas de los acelerómetros es su alta sensibilidad a las vibraciones, lo que hace que su uso como inclinómetro nos permite solo hacer mediciones a largo plazo de la inclinación.

Circuito de montaje de los sensores

circuito-sensores-itg-adxl.png

Driver de motores ESC

Los controladores de los motores (ESC, Electronic Speed Controller) permiten regular la potencia suministrada a cada motor. Para controlar la potencia de los motores utiliza una señal servo convencional: un tren de pulsos cuadrados de período T y ciclo de trabajo W variable (0 % y 100 % respectivamente).

Inicialmente se optó por diseñarlos, se propuso un esquemático compuesto por 6 MOSFETs, un microcontrolador que haga de interfaz con el exterior y que excite a los MOSFETs. Luego se procedió a la búsqueda de los componentes y encontramos un impedimento al no conseguir los MOSFETs de estas características(100A, 12V) en el mercado local. Al tener que importarlos, se comenzó con el análisis de costo-beneficio y resultó ser mas conveniente utilizar los ESC disponibles en el mercado, ya que cumplen con los requisitos necesarios para el proyecto.

Los controladores elegidos también son RCTimer de 30A. Se alimentan con una tensión que se pueda formar con celdas LiPo que en este caso se conectan en serie para lograr un voltage de 11.1V. La conexión al motor tiene tres cables (motor brushless).

rctimer-esc

Características:

  • Voltage de entrada:DC 6-16.8V(2-4S Lixx)
  • BEC:5V 2amp

  • Corriente de trabajo: 30A (Output: Continuous 30A, Burst 40A up to 10 Secs.)
  • Dimensiones: 36mm (L) * 26mm (W) * 7mm (H).
  • Peso: 32g.

La frecuencia de trabajo que se utilizó es de 200Hz, ya que era lo suficiente para cerrar el lazo de control.

Conexión inalámbrica

Para controlar el QA3 ya sea a través de un joystick, de una cámara o algún sensor externo, es necesario algún medio de comunicación inalámbrico. Se analizaron las opciones disponibles en el mercado y se optó por utilizar una conexión Wi-Fi(802.11). Este tipo de conexión permite conectarse directamente a otra PC, o a un router donde pueden existir muchas PCs conectadas, evitando así, hardware extra en la PC que realice el control a largo plazo.

WiFly-GSX-solo.jpg

El módulo utilizado es el WiFly GSX. Es un sistema embebido que brinda una solución completa de acceso wireless, requiriendo únicamente 4 pines de conexión (POWER, TX, RX, GND) para ser utilizado. Una vez que la configuración ha sido establecida, el módulo puede acceder automáticamente a una red WiFi y comenzar a enviar/recibir paquetes, a través de datos serie.

Desde el microcontrolador funciona de modo transparente, donde la conexión es exactamente igual a una configuración null modem sin handshaking.

El módulo WiFly GSX (RN-131C) es una completa solución embebida de ultra bajo consumo para TCP/IP. La WiFly GSX es un módulo de red wireless 802.11b/g embebido independiente. La combinación de ultra bajo consumo y la habilidad de auto despertarse, conectarse a una red wireless, enviar datos y volver al estado de dormida en menos de 100ms, le permiten a la WiFly GSX funcionar por años con 2 baterías estándar AAA. Usando solo 100 mW cuando está despierta y 10 uW cuando esta dormida, esta marcada eficiencia de potencia, hace posible una nueva clase de dispositivos con internet disponible.

El módulo WiFly GSX incorpora una radio de 2.4GHz, procesador, stack TCP/IP, reloj en tiempo real, acelerador de encriptación, manejo de potencia y interfaz con sensores analógicos. Esta solución completa esta pregrabada con software para simplificar la integración y minimizar el desarrollos de las aplicaciones. En la configuración más simple el hardware requiere solo 4 conecciones (PWR, TX, RX, GND) para crear una conexión de datos wireless. El rango de alcance puede ser de 100m, dependiendo de las condiciones del entorno.

Características

  • Ultra bajo consumo, 100mWatt activa, 10uWatt modo reposo
  • Tasa de transferencia con el host de hasta de 100 Mbps para SDIO, 44 Mbps para SPI y 2.7 Mbps para UART
  • Salida de 1 Mbps con TCP/IP y WPA2
  • Interface de hardaware UART
  • 10 entradas salidas de propósito general
  • 8 interfaces analógicas para sensores
  • Reloj en tiempo real para despertarse y dormirse automaticamente y para medición de instantes de tiempo
  • Acepta 3.3VDC regulados o 2-3VDC desde una batería
  • Soporta conexión ad-hoc
  • Configuración a través de las interfaces UART o wireless usando simples comandos ASCII
  • Actualización del firmware a través del aire, y a través de un archivo
  • Autenticación WiFi segura WEP-128, WPA-PSK (TKIP), WPA2-PSK, EAP-TLS para WPA1 & WPA2 Enterprise

  • Aplicaciones de red incorporadas, DHCP, UDP, DNS, ARP, ICMP

Diagrama en bloques

En la figura siguiente se muestra el diagrama en bloques interno del módulo wirelesss.

wifly_diag_bloques.png

Circuito Esquemático

El circuito esquemático utilizado se muestra en la siguiente figura.

esquematico_wifly.png

Comunicación

La comunicación entre el micro y la wifly se realiza a través de la UART, con la misma configurada a 115200 bps, sin control de flujo, con 8 bits y sin paridad.

La comunicación entre la PC y la wifly se realizó a través de wifi, utilizando el protocolo UDP. También se podría haber utilizado el protocolo TCP, pero consideramos más importante obtener una baja latencia en la comunicación.

La red wireless se configuró en el modo ad hoc. Una red ad hoc es aquella en la que no hay un nodo central, sino que todos los dispositivos están en igualdad de condiciones. Se eligió este modo porque además de ser el más sencillo para el armado de una red, es el que viene configurado por defecto en el módulo wifly.

Placa Base

Por último de construyo una placa base sobre la cual se montaron todos los componentes nombrados anteriormente. El circuito esquemático se muestra en la figura siguiente.

placa_base.png

Como se puede apreciar en la misma, vemos 4 conectores para los PWM de los motores, un regulador para obtener desde la tensión de 11.1V de las baterías los 5V necesarios para la alimentación, también vemos un conector para la placa adaptadora de los sensores mems, leds indicadores y por último el módulo wireless.

Hoja de datos

Guía de referencia

Software

El software consta de dos partes totalmente desacopladas, una es el control de lazo cerrado a corto plazo el cuál controla los 3 grados de libertad (roll, pitch y yaw), y la otra es el software de la PC que establece el control de lazo cerrado a largo plazo que controla los otros 3 grados de libertad (y, x y z).

Firmware ARM

El software de control es del tipo secuencial, en lenguaje ANSI-C, haciendo uso de los periféricos y características que ofrece el uC a través de la placa multipropósito, como timers, UARTs, PWMs, detección de flancos, entre otros. El siguiente diagrama de flujo simplificado da una noción del flujo seguido por el software.

Diagrama-de-flujo.dot.png

Como vemos consta de dos tareas principales, una es la interfaz con el mundo exterior. En la cuál los datos pueden ser parámetros en ese instante o establecer alguno de ellos para realizar el control del mismo.

La comunicación es realizada a través de la UART, se estableció un protocolo para intercambiar con la PC. Luego de varias fallas, se decidió implementar una comprobación de errores optando por la comprobación de redundancia cíclica(CRC). Tiene dos modos de envíos de parámetros, uno síncrono y otro asíncrono.

  • El modo síncrono es desde el uC hacia la PC, cada vez que obtiene datos de los sensores son enviados inmediatamente.
  • El modo asíncrono es desde la PC hacia el uC. La PC cada cierto tiempo le envía un dato solicitándole un parámetro específico, el uC envía el parámetro que tiene en buffer.

Todo el firmware para el QA3 fue desarrollado con herramientas libres. Como editor de texto no se utilizó entorno gráfico alguno, solamente el editor Vim. Como toolchain de compilación, se utilizó gcc cross-compiled para ARM. Para grabar el microcontrolador se utilizó lpc21isp y por último como herramienta de debug se utilizó insight con la interfaz JTAG.

Los 2 algoritmos fundamentales del firmware son el filtro de estimación del ángulo y el controlador PID. Las partes principales se muestran a continuación.

Código del filtro complementario

   1 void filtro_complementario(void) {
   2     //Cálculo de Phi
   3     angulo.Phi_est = 0.9981 * (angulo.Phi_ant) + 0.005 * velocidad.Phi + 0.0019 * angulo.Phi_med;
   4     angulo.Phi_ant = angulo.Phi_est;
   5     angulo.Phi = angulo.Phi_est - angulo.Phi_zero;
   6     //Cálculo de Theta
   7     angulo.Theta_est = 0.9981 * angulo.Theta_ant + 0.005 * velocidad.Theta + 0.0019 * angulo.Theta_med;
   8     angulo.Theta_ant = angulo.Theta_est;
   9     angulo.Theta = angulo.Theta_est - angulo.Theta_zero;
  10 }
filtro_complementario.c

Código del controlador PID

   1 void pid_update(pid_type* pid){
   2     pid->error = pid->in - pid->ref;
   3     pid->proportional = pid->Kp * (pid->error - pid->error_old1);
   4     pid->integral = pid->Ki * pid->error;
   5     pid->derivative = pid->Kd * (pid->in - 2*pid->in_old1 + pid->in_old2);
   6 
   7     if(pid->in >= 5 || pid->in <= -5){
   8         pid->integral = 0.1 * pid->integral;
   9     }
  10     pid->out = pid->out_old + pid->proportional + pid->derivative + pid->integral;
  11     pid->in_old2 = pid->in_old1;
  12     pid->in_old1 = pid->in;
  13     pid->error_old1 = pid->error;
  14     pid->out_old = pid->out;
  15 }
controlador_PID.c

Software de control de la PC

El software de la PC está realizado en python y se comunica por medio de una conexión socket tcp a través de la placa inalámbrica. Se encarga de tomar las lecturas del joystick, procesarlas y luego enviarlas al uC. También este programa lleva una bitácora con los tiempos de vuelo y datos obtenidos en ese momento en un período de 100ms cada muestra, definiendo la actitud del robot en espacio-tiempo. Para luego ser utilizado en corrección de errores, calibración de las mediciones realizadas, ajustes del controlador, análisis de vibraciones, etc.

También permite establecer los parámetros del control, tanto como los ceros los ángulos

$$$\Phi_{0}$$

,

$$$\Theta_{0}$$

y

$$$\Psi_{0}$$

, como así también los valores de

$$$K_{p}$$

,

$$$K_{i}$$

y

$$$K_{d}$$

de los PIDs.

main.py.png

Utilidades adicionales

Se generaron herramientas que permitieron el testeo y depuración del sistema.

Por ejemplo en el momento de análisis de vibraciones, se generaron gráficos de distintos instantes de tiempo y su transformada rápida de Fourier. Permitiendo así obtener las distintas respuestas al impulso hasta lograr un valor óptimo.

También se realizo una interface entre la PC y la balanza usada para medir el empuje de los motores.

Todas estas herramientas para analizar los datos obtenidos se escribieron en lenguaje python.

Conclusiones

Se ha logrado la construcción de un robot autónomo volador con 3 grados de libertad controlados, apropiado para vuelos en interiores. Se priorizó la utilización de componentes de bajo costo, aunque la mayoría de estos no se consiguen en nuestro país.

El robot construido cuenta con una estructura robusta y con una carcaza de protección, la cual previene de roturas de las hélices y accidentes que puedan dañar al usuario.

La carga útil del prototipo es de aproximadamente 1kg, la cual nos permite agregar en un futuro una unidad de procesamiento con mayores capacidades y cámaras para lograr a través de algoritmos de procesamiento de imágenes una estabilización en los 6 grados de libertad y una mejora en la respuesta global del sistema.

Una de las ventajas del prototipo realizado es su arquitectura abierta, la cual en este caso abarca el uso de herramientas informáticas libres y gratuitas para su desarrollo, la disponibilidad de los planos mecánicos y circuitos eléctricos a través de la página del CIII y también de la documentación asociada al proyecto.

También se ha realizado un estudio exhaustivo del modelo dinámico del QA3, el cual puede permitir en un futuro el diseño de algún otro controlador ya sea lineal o no lineal, el cual puede tener en cuenta algunas de las variables despreciadas en el controlador actual.

Se ha logrado la construcción de una Unidad de Medición Inercial ( IMU ) de reducido tamaño, la cual integra 3 sensores ( acelerómetro, giróscopo y magnétometro ) de bajo costo; esta IMU no solo se puede utilizar para este robot, sino que puede ser usada para desarrollos futuros del propio centro de investigación o como punto de partida de otras tesis o trabajos.

El desarrollo de este proyecto también ha generado la presentación y aprobación de un artículo en el Simposio Argentino de Sistemas Embebidos, cumpliendo también con uno de los objetivos personales de los integrantes del grupo de trabajo y también con los objetivos del CIII.

Otra de las ventajas que queremos destacar del diseño es la utilización de software libre en todas las etapas del desarrollo.

Análisis de Costos

Se pudo lograr la construcción de un dispositivo de bajo costo y altas prestaciones en comparación con otros disponibles comercialmente. Aunque la principal ventaja del prototipo diseñado es su arquitectura abierta, la cual le permite a cualquier persona obtener los planos mecánicos y electrónicos, el código del firmware del microcontrolador y el de la PC sin costo alguno. También realizar cambios sobre los mismos para poder adaptar el prototipo al uso particular. Esta arquitectura también es la que mejor se adapta al ámbito de la investigación, debido a que en este entorno se necesita tener control sobre todos los parámetros del sistema en el cual se hacen pruebas y para esto es necesario que los circuitos estén disponibles, que también el firmware este disponible y que las herramientas informáticas necesarias para desarrollarlo no tengas altos costos.

A continuación se hace un detalle del costo del prototipo.

Costo detallado del Prototipo

Componente

Cantidad

Costo Unitario

Sub Total

Estructura

1

60

60

Motores

4

60

240

ESC

4

40

160

Hélices

4

5

20

Baterías

2

240

480

Cargador

1

300

300

Placa Madre

1

200

200

Sensores

1

160

160

Wireless

1

200

200

Total

1820

Desarrollos a Futuro

Como el prototipo diseñado surge para ser usado en tareas de investigación, se planea continuar con el desarrollo del mismo agregando nuevas funcionalidades.

Se planea agregar un sistema de cámaras para poder obtener una referencia absoluta de posición y luego con estos datos obtener un control sobre los 6 grados de libertad, lo cual nos permitiría obtener un dispositivo realmente autónomo. El tratamiento de las imágenes obtenidas a través de la cámara necesita un alto requerimiento computacional por lo tanto se agregará una SBC (single board computer) desarrollada en el CIII para poder realizar este tratamiento matemático.

También se completará la IMU con un magnetómetro para obtener una referencia absoluta para el ángulo de yaw y la construcción de un altímetro para obtener una referencia de posición en el eje z.

Otra de las mejoras que se debe realizar en el prototipo es la construcción de una estructura más liviana, con el mismo material o con otros materiales usados en aeromodelismo como puede ser fibra de carbono.