UAV flight controller using UDOO

Controlador Vuelo UAV con UDOO

Información del documento

Autor

Jorge Plaza Buquerín

instructor Abdulla Hussein Abdulrahman Al Kaff
Escuela

Universidad Carlos III de Madrid, Escuela Politécnica Superior de Leganés

Especialidad Grado en Ingeniería Electrónica Industrial y Automática
Tipo de documento Trabajo Fin de Grado
city Leganés
Idioma Spanish
Formato | PDF
Tamaño 4.94 MB

Resumen

I.Modelado del Quadcopter y Estimación del Estado

Este proyecto detalla el desarrollo de un sistema de control de vuelo para un cuadricóptero (UAV) utilizando una placa UDOO 3. El modelado matemático del multirotor es complejo debido a su comportamiento aerodinámico no lineal. Se utiliza una unidad de medición inercial (IMU) para obtener datos de orientación, los cuales son procesados mediante un filtro complementario o un filtro de Kalman para la fusión de datos y una estimación precisa del estado (posición y orientación). La selección del filtro depende de la necesidad de velocidad de respuesta; el filtro de Kalman es superior en cambios rápidos, mientras que el filtro complementario es más eficiente computacionalmente.

1. Modelado Matemático del Cuadricóptero

La creación de un modelo matemático preciso para el cuadricóptero es fundamental para el diseño del sistema de control. El documento destaca la complejidad inherente a este proceso, debido al comportamiento aerodinámico no lineal del sistema. Se menciona que existen modelos para vuelos interiores, sin considerar efectos ambientales, y modelos más complejos para vuelos exteriores. Para caracterizar el cuadricóptero se definen parámetros estructurales como la masa, el centro de gravedad y los momentos de inercia, así como parámetros técnicos de los motores, como los KV (rpm/V). El modelado requiere la definición de dos sistemas de referencia: uno fijo a tierra y otro móvil, coincidente con el cuerpo del cuadricóptero. La precisión de este modelo influye directamente en la eficacia del sistema de control, por lo que se hace necesario considerar todos los aspectos relevantes, y la necesidad de una linealización del modelo alrededor de un punto de funcionamiento específico (hover) para mantener la representatividad.

2. Estimación del Estado utilizando la IMU

La estimación precisa del estado (posición y orientación) del vehículo aéreo no tripulado (UAV) es esencial para el control del cuadricóptero. Para lograr esto, se utiliza una Unidad de Medición Inercial (IMU), que proporciona datos de acelerómetros y giróscopos. El documento reconoce que las mediciones de la IMU en una aplicación real presentan ruido, por lo que es necesario aplicar técnicas de filtrado para obtener datos más precisos. Se mencionan dos métodos de filtrado ampliamente utilizados: el filtro complementario y el filtro de Kalman. Estos filtros permiten la fusión de datos de los sensores, mejorando la precisión de la estimación de la posición y la orientación del cuadricóptero. Esta técnica, conocida como data fusion, se vuelve cada vez más relevante con un mayor número de sensores a bordo. La comparación entre ambos filtros muestra que el filtro de Kalman es más eficaz ante cambios rápidos en la referencia, aunque el filtro complementario presenta una lógica más sencilla y un menor tiempo de procesamiento. La precisión de la estimación del estado afecta directamente a la estabilidad y el rendimiento del sistema de control.

II.Diseño del Sistema de Control PID

El sistema de control se basa en un controlador PID, ampliamente utilizado en la industria por su simplicidad y efectividad. Se utilizan tres controladores PID independientes para controlar los ángulos de roll, pitch y yaw. El ajuste de las constantes del PID (Kp, Ki, Kd) es crucial para lograr una estabilización adecuada del UAV. Se describe un método de ajuste manual, realizando pruebas para minimizar la sobreoscilación y asegurar la estabilidad. La frecuencia de muestreo del sistema se establece en 2.8ms (350Hz).

1. Selección del Controlador PID

El documento justifica la elección de un controlador PID para la estabilización del cuadricóptero. Se argumenta que, a pesar de la existencia de otros métodos de control para UAVs, como el control LQR o la linealización por realimentación, el controlador PID se selecciona por su amplia utilización en la industria, su flexibilidad, efectividad y sencillez. Se destaca que otros controladores requieren modelos más precisos del sistema, mientras que el PID permite un control más robusto incluso con modelos menos exactos. La naturaleza subactuada del cuadricóptero (seis grados de libertad, cuatro entradas) se menciona como la razón principal para la necesidad de un sistema de control robusto para su estabilización. Se indica que más información sobre otras estrategias de control puede encontrarse en la sección “Estrategias de control” del documento, aunque esta información no se proporciona en este extracto.

2. Ajuste de las Constantes PID y Manejo del Término Integral

El ajuste de las constantes de control PID (Proporcional, Integral, Derivativo) se presenta como un proceso complejo. Si bien en la estabilización de vuelo tradicional no es común modificar las constantes durante el vuelo, el documento señala que para un control más avanzado (por ejemplo, control reactivo a una distancia fija de una pared), es necesario realizar estos ajustes. Se destaca un problema específico: al cambiar las constantes, el término integral (que acumula el error) se ve afectado, causando fluctuaciones en la salida. Para mitigar esto, se propone escalar el error acumulado por un factor de 1/Ki, afectando únicamente al error acumulado a partir del momento del cambio de la constante. Además, se menciona la importancia de especificar el modo automático y el tiempo de muestreo (SampleTime), establecido en 2.8 ms (350 Hz) en este proyecto, para el correcto funcionamiento del regulador.

3. Limitaciones del Modelo Matemático y Ajuste de Parámetros

Se discuten las limitaciones del modelo matemático utilizado. Se menciona que el modelo utiliza aproximaciones, despreciando ciertos efectos aerodinámicos, y que se basa en las fuerzas de empuje de los motores, difíciles de calcular con exactitud debido a la dependencia de parámetros como el coeficiente de empuje. También se indica la dificultad de calcular los momentos de inercia, que dependen de las dimensiones, el peso y la ubicación de los componentes del cuadricóptero. Se presentan dos alternativas para calcular estos momentos de inercia: mediante archivos de diseño CAD, que proporcionan valores exactos pero requieren actualizaciones con cada modificación del UAV; o mediante cálculos aproximados, apoyándose en las masas y dimensiones de los componentes. Estas imprecisiones en el modelo matemático indican que las constantes de control obtenidas en la simulación requieren ajustes manuales en las pruebas reales.

III.Integración de Hardware y Software

El proyecto integra una variedad de componentes, incluyendo la UDOO 3, una IMU Adafruit 10 DOF, un receptor de radio control Turnigy 9X, y variadores de velocidad (ESCs Turnigy Multistar 20A Slim). Para facilitar el conexionado y reducir el peso, se diseña una placa de circuito impreso (PCB). Se utiliza la librería Arduino para la programación y se implementan algoritmos para el armado seguro de los motores y un despegue controlado, evitando movimientos inesperados. La batería utilizada es una RCInnovations Desire power de 6000 mAh.

1. Selección y Justificación del Hardware

La integración de hardware se centra en la placa controladora UDOO 3, elegida por su capacidad de procesamiento y flexibilidad superior a otras placas comerciales como Naza, OpenPilot o KK. Se destaca que la UDOO 3, a diferencia de las placas comerciales, es una plataforma abierta que trabaja con Arduino, un lenguaje de programación open-source con amplia documentación y ejemplos disponibles. La unidad de medición inercial (IMU) utilizada es la Adafruit 10 DOF IMU Breakout, que se comunica mediante el protocolo I2C. Los Electronic Speed Controllers (ESCs) son los Turnigy Multistar 20A Slim, que requieren alimentación externa debido a su BEC integrado. Se utiliza una Power Distribution Board para distribuir la alimentación a los cuatro ESCs desde una batería RCInnovations Desire power de 6000 mAh. El transmisor de radio control seleccionado es el Turnigy 9X, que ofrece nueve canales, cuatro de los cuales se utilizan para el control de vuelo, dejando los restantes libres para otros dispositivos o modos de vuelo. Las desventajas de este tipo de baterías, como la necesidad de mantenimiento adecuado y su inflamabilidad, también son mencionadas.

2. Diseño de la PCB y Conexionado

Para optimizar el conexionado y reducir el peso del cuadricóptero, se diseñó una PCB (Printed Circuit Board) utilizando el software Eagle. Esta PCB se coloca sobre la placa UDOO 3 como un shield, minimizando el uso de cables sueltos que podrían aumentar el peso y comprometer la seguridad durante el vuelo. La PCB integra conectores para la IMU Adafruit 10 DOF IMU, el receptor de radio control Turnigy 9X y los tres cables para el control de cada motor. La disposición de los conectores en la PCB se describe con detalle, con el objetivo de minimizar las distancias de los cables y facilitar el rutado. Se detalla la conexión de la IMU mediante los pines SCL y SDA (I2C), mientras que la IMU y el receptor RC se alimentan a 5V desde la placa UDOO 3, los ESCs requieren una alimentación externa.

3. Software y Algoritmos de Control

La sección describe la importancia de la precisión y velocidad en la lectura de los datos del receptor de radio control para optimizar el código y disminuir el tiempo de ciclo entre bucles (tiempo de loop), que es crítico para el control PID. Se detalla un algoritmo para el armado seguro de los motores, que requiere una secuencia específica de movimientos de los sticks del transmisor para evitar arranques accidentales o desarmado en vuelo. Se explica el algoritmo de control de los motores, donde la señal a cada motor se calcula como una combinación de los valores de throttle, roll, yaw y pitch. Se establecen límites mínimo y máximo para la señal PWM enviada a los motores, utilizando la librería Servo de Arduino. Se describe además un algoritmo para un despegue seguro, que establece límites de inclinación del quadcopter y mantiene el sistema en reposo si se superan esos límites, enviando una señal mínima a los motores para evitar el desarmado mientras se espera el retorno a una posición segura. Finalmente, se menciona la implementación de los algoritmos de control PID para ajustar el error cometido.

IV.Simulación y Pruebas de Vuelo

Se realizaron simulaciones en Matlab/Simulink del modelo del cuadricóptero para ajustar las constantes del controlador PID. Las pruebas de vuelo se llevaron a cabo limitando los grados de libertad para ajustar cada controlador PID individualmente. Se presentan los resultados obtenidos al ajustar el controlador PID para el ángulo de pitch, mostrando la influencia de las constantes Kp y Kd en la respuesta del sistema. La Universidad Carlos III de Madrid proporcionó los recursos para la realización del proyecto. El profesor Abdulla Hussein Al Kaff fue el tutor del proyecto, colaborando Ahmed Radwan Ibrahim.

1. Simulación del Sistema de Control en Matlab Simulink

Antes de las pruebas de vuelo, se realizaron simulaciones del sistema de control completo del UAV en Matlab/Simulink. Estas simulaciones permitieron analizar la respuesta del sistema y obtener una estimación inicial de las constantes de control PID. El objetivo era tener una idea del orden de magnitud de las constantes que serían necesarias en el sistema real. Sin embargo, el documento reconoce que debido a la imposibilidad de realizar pruebas físicas para calcular los coeficientes de empuje y par del motor, el modelo en Matlab no es completamente representativo del sistema real. Por lo tanto, se anticipa la necesidad de ajustar manualmente las constantes de control obtenidas en la simulación durante las pruebas de vuelo. El uso de Simulink para la simulación proporciona un entorno controlado para la prueba y ajuste del sistema antes de la implementación en hardware.

2. Procedimiento de Ajuste del PID en Pruebas de Vuelo

Las pruebas de vuelo se realizaron en un entorno controlado, utilizando un banco de pruebas (Figura 7.1, no incluida en este extracto). Para ajustar las constantes PID de forma individual, se limitaron los grados de libertad del cuadricóptero, permitiendo controlar un solo ángulo a la vez (roll, pitch o yaw). Se describe el procedimiento de ajuste para el ángulo de pitch como ejemplo. Se inició con una ganancia Kp = 0.1, observando la sobreoscilación, y se incrementó su valor gradualmente hasta alcanzar la ganancia límite de Kp = 0.3 donde el sistema se volvió inestable. Luego, se introdujo el término derivativo (Kd) para disminuir la sobreoscilación y mejorar la respuesta ante perturbaciones externas. Se enfatiza la dificultad de ajustar el término derivativo, donde pequeñas variaciones producen grandes cambios en la respuesta del sistema. Finalmente se presenta un ejemplo de ajuste para el pitch donde se muestra como con valores iniciales de Kp = 0.225 y Kd = 0.006 el sistema oscilaba en ±10°, y al aumentar Kd a 0.011 se logró una estabilización en 0 grados con una precisión de ±5° y muy pocas oscilaciones de alta frecuencia.

3. Resultados Obtenidos y Consideraciones Finales

El documento describe los resultados del ajuste del PID para el ángulo de pitch como un ejemplo del proceso de calibración realizado. Se muestra cómo se ajustaron las ganancias Kp y Kd para lograr una respuesta estable con mínima sobreoscilación. Se mencionan las pruebas adicionales realizadas para el sistema de adquisición de datos y el controlador de motores, incluyendo la creación de un diagrama de flujo (Figura 5.2, no incluida). La creación de una PCB para facilitar el conexionado de los componentes también se menciona como parte del proceso de integración. El documento concluye destacando que las constantes de control ajustadas manualmente difieren ligeramente de las obtenidas en la simulación de Matlab debido a las limitaciones del modelo matemático en la representación de las características reales del sistema, especialmente en cuanto a los coeficientes de empuje y par del motor. Finalmente, se proponen mejoras futuras como el uso de sensores adicionales, como el Optical Flow y cámaras para obtener una estimación más precisa de la posición y orientación, utilizando el filtro de Kalman para la fusión de datos.