Universidad Tecnológica de Chile INACAP Ingeniería en Automatización y Control Industrial Análisis de desempeño de controladores no lineales mediante indicadores estadísticos aplicados a un manipulador tipo SCARA de 3 GDL RRR. Diego Arturo Videla Silva José Manuel Gárate Urtubia Académico guía: Oscar Ali Lagos Garrido Santiago Chile, 2020 Agradecimientos Este proyecto de título y todo lo que significa lo quiero dedicar y agradecer, a ti Nicole por enseñarme lo lindo que es amar, a ti Mamá por enseñarme lo hermoso que es vivir, y a ti Papá por enseñarme lo maravilloso que es aprender…. Diego Arturo Videla Silva. Este proyecto de título, se lo dedico a mi familia por el gran apoyo, comprensión y las horas que no pude estar con ellos. A ti Mireya y Gonzalo por el apoyo incondicional. Y a mi compañero de proyecto Diego Videla Silva que es una gran persona y con muchos valores. José Manuel Gárate Urtubia. Agradecimientos a los profesores Exequiel Álvarez Olate y Oscar Lagos Garrido por todo su apoyo y por todo el conocimiento brindado para la elaboración de este proyecto. Diego Arturo Videla Silva y José Manuel Gárate Urtubia. 2 Prefacio Cursar para nosotros el ramo de robótica industrial a lo largo de nuestra carrera nos hizo conocer un increíble campo de estudio dentro de la automatización, la robótica. La robótica fue desde el inicio de gran interés para nosotros, ambos concordamos en esto, y fue creciendo aun mas en el transcurso del estudio de esta. Fue en un momento de desarrollo de una actividad propia del ramo, que estudiando y dándonos a la tarea de recopilar información, cuando nos cruzamos con los autores Rafael Kelly y Víctor Santibáñez y su libro de robótica “Control de Movimiento de Robots Manipuladores” ambos autores comienzan su libro con una introducción que inmediatamente llamo nuestra atención y dio pie en gran medida a este proyecto. Kelly y Santibáñez plantean algo muy interesante, que, a pesar de la existencia, de una gran cantidad de robot industriales en el mercado, y varios años de investigación de robótica, el diseño de controladores sigue siendo de gran interés de investigación, - claro! -, vimos en clases que los robot industriales actuales cumplen una gran cantidad de funciones, además de aprender toda la teoría, vimos controladores como el PID que satisfacen la función de control para el desarrollo de estas funciones, por lo cual, tal como ellos proponen, - y nosotros concordábamos con esto -, parecería innecesario el seguir con el desarrollo de investigaciones sobre este campo del control en robótica, sin embargo, el tema del control es interesante en si mismo, y a lo largo de nuestra carrera pudimos conocer y estudiar una gran variedad de estos, lo complejo, lo interesante que son y el reto intelectual que significa la comprensión y desarrollo de estos. Entonces al inicio del proceso de proyecto de titulo nos planteamos; ¿es posible aplicar los conocimientos de robótica aprendidos, pero con otro tipo de control?, y mejor aun, si la robótica es un sistema no lineal es si misma, ¿porque no aplicar control de este tipo?, ¿controladores no lineales, inclusive inteligencia artificial? Es dar respuestas a estas interrogantes, que se podría decir, “sembró” este análisis de Kelly y Santibáñez en nosotros como estudiantes de la carrera de automatización y control industrial, en el cual esta basado este proyecto, analizar en profundidad el tema de robótica, todo sus aspectos matemáticos, teóricos y computacionales, además de aplicar al control de estos, controladores no lineales, algunos conocidos durante nuestro proceso de carrera y otro nuevos por conocer, pudiendo comprobar, estudiar e inclusive visualizar como es que se comportan al aplicarlos en robótica. Finalmente buscar alguna técnica que nos permita poder demostrar de manera cuantitativa nuestros resultados del análisis. 3 Índice General Capítulo 1 – Introducción ............................................................................................................................... 7 1.1 - Descripción de la Problemática......................................................................................................... 7 1.2 - Propuesta de solución tecnológica ................................................................................................... 7 1.3 - Objetivos de Proyecto de titulo ......................................................................................................... 8 1.4 - Estructura de Análisis ....................................................................................................................... 8 Capítulo 2 – Estado del Arte .......................................................................................................................... 9 2.1 - Introducción a la Robótica................................................................................................................. 9 2.1.1 - Antecedentes y Origen de la robótica ....................................................................................... 9 2.1.2 - Clasificación de robots .............................................................................................................. 9 2.2 - Manipuladores Robóticos.................................................................................................................. 9 2.2.1 - Definición................................................................................................................................... 9 2.2.2 - Tipo de Configuraciones de Manipuladores Robóticos ........................................................... 10 2.2.3 - Manipulador SCARA ............................................................................................................... 10 2.2.4 - Morfología del Manipulador Robótico...................................................................................... 10 2.2.5 - Grados de libertad ................................................................................................................... 11 2.2.6 - Cadena Cinemática ................................................................................................................. 11 2.2.7 - Actuadores .............................................................................................................................. 11 2.2.8 - Sensores ................................................................................................................................. 11 2.2.9 - Aplicación de Manipuladores Robóticos ................................................................................. 12 2.2.10 - Manipuladores En el Mundo.................................................................................................. 12 2.3 - Estudio de Manipuladores Robóticos.......................................................................................... 13 2.3.1 - Cinemática de Manipuladores ................................................................................................. 13 2.3.2 - Cinemática Directa .................................................................................................................. 13 2.3.2.1 - Matriz de Transformación Homogénea (𝐓) ..................................................................... 14 2.3.2.2 - Matriz de Parámetros Denavit & Hartenberg (DH) .......................................................... 16 2.3.3 - Cinemática Inversa.................................................................................................................. 17 2.3.3.1 - Desacoplo Cinemático..................................................................................................... 18 2.3.4 - Dinámica del Manipulador ....................................................................................................... 19 2.3.4.1 - Modelo Dinámico ............................................................................................................. 20 2.3.5 - Dinámica Directa ..................................................................................................................... 20 2.3.5.1 - Método Newton – Euler ................................................................................................... 21 2.3.6 - Dinámica Inversa..................................................................................................................... 22 2.3.7 - Trayectoria del Manipulador .................................................................................................... 23 2.3.7.1 - Trayectoria cartesiana ..................................................................................................... 23 2.4 - Control de Manipuladores Robóticos .............................................................................................. 24 2.4.1 - Control Lineal .......................................................................................................................... 24 2.4.1.1 - Control PID ...................................................................................................................... 25 2.4.2 - Control No-Lineal .................................................................................................................... 26 2.4.2.1 - Control Seno Coseno Hiperbólico ................................................................................... 26 2.4.2.2 - Control Lógica Difusa ...................................................................................................... 28 2.4.2.3 - Control Neurocompensado.............................................................................................. 32 2.4.2.4 - Control Par Calculado. .................................................................................................... 35 2.5 - Modelamiento Matemático del Servomotor..................................................................................... 36 2.6 - Herramientas de Cálculo y Simulación ........................................................................................... 37 Capítulo 3 – Desarrollo del Proyecto ........................................................................................................... 38 3.1 - Controladores No-Lineales aplicados a un manipulador Robótico ................................................. 38 3.1.1 - Diseño del manipulador........................................................................................................... 38 3.1.2 - Parámetros de Manipulador .................................................................................................... 38 3.1.3 - Simulación con CoppeliaSim................................................................................................... 39 3.2 - Cinemática y Dinámica ................................................................................................................... 41 3.2.1 - Obtención de Matriz de Transformación Homogénea y Denavit & Hartenberg ...................... 41 3.2.2 - Cinemática directa e inversa ................................................................................................... 42 3.2.3 - Dinámica mediante Newton-Euler ........................................................................................... 46 3.2.4 - Modelo Dinámico..................................................................................................................... 47 3.2.5 - Dinámica del Manipulador ....................................................................................................... 48 3.3 - Diseño de trayectoria ...................................................................................................................... 49 3.4 - Modelamiento del Servomotor ........................................................................................................ 50 3.5 - Aplicación de etapas de Control ..................................................................................................... 52 3.5.1 - Implementación Control Seno Coseno Hiperbólico................................................................. 52 3.5.1.1 - Resultados y simulaciones .............................................................................................. 53 3.5.2 - Implementación Control Lógica Difusa.................................................................................... 54 4 3.5.2.1 - Resultados y simulaciones .............................................................................................. 56 3.5.3 - Implementación Control PID Neurocompensado .................................................................... 58 3.5.3.1 - Control PID ...................................................................................................................... 58 3.5.3.2 - Entrenamiento red neuronal ............................................................................................ 58 3.5.3.3 - Implementación de la Neurocompensación. ................................................................... 60 3.5.3.4 - Resultados y simulaciones .............................................................................................. 60 3.5.4 - Implementación Control Par Calculado ................................................................................... 62 3.5.4.1 - Resultados y simulaciones .............................................................................................. 62 Capítulo 4 – Análisis de Desempeño ........................................................................................................... 64 4.1 - Indicadores de desempeño estadísticos ......................................................................................... 64 4.1.1 - RMS – Media cuadrática Residual (Root Mean Square) ........................................................ 64 4.1.2 - RSD – Desviación Estándar Residual (Residual Estándar Deviation) .................................... 64 4.1.3 - AI – Índice de acuerdo (agreement of index) .......................................................................... 65 4.2 - Análisis indicadores de desempeño controladores ......................................................................... 65 4.2.1 - Obtención de indicadores de desempeño ............................................................................... 65 4.2.2 - Resultados y gráficas .............................................................................................................. 66 4.3 - Conclusiones del Análisis ............................................................................................................... 68 4.3.1 – Conclusión Indicador RMS ..................................................................................................... 68 4.3.2 – Conclusión Indicador RSD ..................................................................................................... 69 4.3.3 – Conclusión Indicador AI.......................................................................................................... 69 4.3.4 – Conclusión General ................................................................................................................ 70 Referencias Bibliográficas............................................................................................................................ 72 Índice de Figuras Figura 2.1 – Clasificación de robots. Figura 2.2 – Configuraciones de manipuladores robóticos. Figura 2.3 – Morfología de manipulador robótico similitud brazo humano. Figura 2.4 – Tipos de articulaciones de un manipulador. Figura 2.5 – Manipuladores robóticos en la industria. Figura 2.6 – Estadística proyectada de uso de manipuladores. Figura 2.7 – Diagrama relación entre cinemática directa e inversa. Figura 2.8 – Matriz de Transformación homogénea (Rotación, Traslación, Perspectiva, Escalado). Figura 2.9 – Asignación de sistemas de referencias. Figura 2.10 – Representación 𝜃𝑖 DH. Figura 2.11 – Representación 𝑑𝑖 DH.p Figura 2.12 – Representación 𝑎𝑖 DH. Figura 2.13 – Representación 𝛼𝑖 DH. Figura 2.14– Tabla de parámetros DH. Figura 2.15 – Representaciones fuerza y torque. Figura 2.16 – Relación dinámica directa e inversa. Figura 2.17 – Dinámica directa. Figura 2.18 – Una fuerza F que actúa en el centro de masa de un cuerpo hace que este se acelere. Figura 2.19 – Dinámica Inversa. Figura 2.20 – En una trayectoria un manipulador se mueve desde su poción inicial hasta una posición final. Figura 2.21 – Ejemplo de una trayectoria cartesiana diseñada. Figura 2.22 – Trayectoria a seguir por un manipulador. Figura 2.23 – Diagrama sistema de control manipuladores robóticos. Figura 2.24 – Controladores para sistemas lineales. Figura 2.25 – Diagrama en bloques controlador PID. Figura 2.26 – Controladores para sistemas no-lineales. Figura 2.27 – Función seno hiperbólico. Figura 2.28 – Función coseno hiperbólico. Figura 2.29 – Diagrama en bloques controlados seno coseno hiperbólico. Figura 2.30 – Diagrama control lógica difusa. Figura 2.31 – Representación matemática y gráfica función singleton. Figura 2.32 – Representación matemática y gráfica función Triangular. Figura 2.33 – Representación matemática y gráfica función trapezoidal. Figura 2.34 – Representación matemática y gráfica función gaussiana. Figura 2.35 – Representación matemática y gráfica función campana generalizada. Figura 2.36 – Representación matemática y gráfica función sigmoidal. 5 Figura 2.37 – Estructura de un controlador difuso. Figura 2.38 – Asignación de valores de entradas a valores lingüísticos, “N”, “Z”, “P”. Figura 2.39 – Creación de conjuntos recortados (a) o escalados (b). Figura 2.40 – Defusificación método del centroide. Figura 2.41 – Estructura neurona biológica. Figura 2.42 – Estructura neurona artificial. Figura 2.43 – Representación matemática y gráfica función escalón. Figura 2.44 – Representación matemática y gráfica función lineal y mixta. Figura 2.45 – Representación matemática y gráfica función tangente hiperbólica. Figura 2.46 – Representación matemática y gráfica función sigmoidal. Figura 2.47 – Representación matemática y gráfica función de gauss. Figura 2.48 – RNA Multicapa. Figura 2.49 – Clasificación aprendizaje en RNA. Figura 2.50 – Diagrama en bloques controlador PID con neurocompensación. Figura 2.51 – Diagrama en bloques Controlador par calculado. Figura 2.52 – Servomotor. Figura 3.1 – Manipulador robótico a utilizar SCARA 3 GDL RRR. Figura 3.2 – Manipulador robótico diseñado en CoppeliaSim. Figura 3.3 – Transferencia de archivos necesarios. Figura 3.4 – Script conexión, elementos del robot, avisos conexión. Figura 3.5 – Script movimiento de prueba. Figura 3.6 – Script desconexión. Figura 3.7 – Representación gráfica manipulador 3GDL RRR – (a) Diagrama técnico (b) Diagrama esquemático. Figura 3.8 – Tabla de parámetros DH obtenidos para el manipulador 3GDL RRR propuesto. Figura 3.9 – Scripts obtención matriz de TH mediante parámetros de DH. Figura 3.10 – Bloque de función Simulink y programación de éste (cinemática directa). Figura 3.11 – Bloque de función Simulink y programación de éste (cinemática inversa). Figura 3.12 – Script para el calculo de torques mediante método de Newton-Euler. Figura 3.13 – Resultados al factorizar torque y obtener las matrices de inercia y Coriolis. Figura 3.14 – Bloque de función Simulink y programación de la dinámica inversa. Figura 3.15 – Trayectoria cartesiana diseñada. Figura 3.16 – Bloque de función Simulink, programación y gráfica resultante de la trayectoria deseada. Figura 3.17 – Bloque de función Simulink y programación Servomotores. Figura 3.18 – Modelo completo en Simulink del manipulador robótico de 3GDL RRR. Figura 3.19 – Control seno coseno hiperbólico en Simulink. Figura 3.20 – Gráfico de trayectoria deseada (a) frente a trayectoria obtenida (b) C. senh cosh. Figura 3.21 – Gráfico de posiciones angulares deseadas frente a las obtenidas C. senh cosh. Figura 3.22 – Captura de CoppeliaSim trayectoria realizada por el manipulador C. senh cosh. Figura 3.23 – configuración mediante toolbox Fuzzy Logic Designer. Figura 3.24 – Funciones de membresía utilizadas en las entradas. Figura 3.25 – Control lógica difusa en Simulink. Figura 3.26 – Gráfico de trayectoria deseada (a) frente a trayectoria obtenida (b) C. Fuzzy. Figura 3.27 – Gráfico de posiciones angulares deseadas frente a las obtenidas C. Fuzzy. Figura 3.28 – Captura de CoppeliaSim trayectoria realizada por el manipulador. C. Fuzzy. Figura 3.29 – Control PID Simulink. Figura 3.30 – Proceso de entrenamiento Red. Figura 3.31 – Configuración nntool para la red neuronal. Figura 3.32 – Proceso de entrenamiento. Figura 3.33 – PID Neurocompensado Custom Neural Network de las articulaciones Figura 3.34 – Gráfico de trayectoria deseada (a) frente a trayectoria obtenida (b). C. Neurocompensado. Figura 3.35 – Gráfico de posiciones angulares deseadas frente a las obtenidas. C. Neurocompensado. Figura 3.36 – Captura de CoppeliaSim trayectoria realizada por el manipulador. C. Neurocompensado. Figura 3.37 – Control par calculado en Simulink. Figura 3.38 – Gráfico de trayectoria deseada (a) frente a trayectoria obtenida (b). C. Par Calculado. Figura 3.39 – Gráfico de posiciones angulares deseadas frente a las obtenidas. C. Par Calculado. Figura 3.40 – Captura de CoppeliaSim trayectoria realizada por el manipulador. C. Par Calculado. Figura 4.1 – Script para la obtención de parámetros necesarios en el calculo de indicadores. Figura 4.2 – Script para la obtención índices de desempeño. Figura 4.3 – Tabla de Resultados Indicadores de desempeño aplicados a los controladores. Figura 4.4 – Gráfico valores, indicador RMS obtenidos de los controladores (resultados entre 0 y 1). Figura 4.5 – Gráfico valores, indicador RSD obtenidos de los controladores (resultados entre 0 y 1). Figura 4.6 – Gráfico valores, indicador AI obtenidos de los controladores (resultados entre 0 y 1). Figura 4.7 – Tabla de resultados controladores mejor desempeño. Figura 4.8 – Tabla de resultados controlador desempeño medio. Figura 4.9 – Tabla de resultados controlador desempeño bajo. Figura 4.10 – Orden de controladores en base s su desempeño. 6 Capítulo 1 – Introducción 1.1 - Descripción de la Problemática Este Proyecto de Titulo se centra en la intersección existente entre la robótica y la ingeniería eléctrica y más específicamente con el área de control automático. De dicha interacción sobresale el tema del control de manipuladores. A pesar de la existencia de robots comerciales, el diseño de controladores para robots sigue siendo un área de intensos estudios por parte de los constructores de robots, así como de los centros de investigación. Podría argumentarse que los robots industriales actuales son capaces de realizar correctamente una gran variedad de actividades, por lo que parecería innecesario, a primera vista, el desarrollo de investigaciones sobre este tema de control de robots. Sin embargo, este último tema no solo es interesante en si mismo, sino que también ofrece grandes retos teóricos, y más importante aún, su estudio es indispensable en aplicaciones específicas que no pueden ser llevadas a cabo mediante los robots comerciales actuales. (Control de Movimiento de Robots Manipuladores – R. Kelly, V. Santibáñez, 2003, p.10) El correcto seguimiento de una trayectoria definida por un manipulador robótico se puede ver afectado por perturbaciones o por la mala aplicación de alguna técnica de control sobre este. Estos efectos indeseados se deben reducir para no afectar el proceso; es debido a esto que se han desarrollado diversas técnicas, basadas en control no lineal multivariables y otras que complementan el uso de algoritmos de optimización considerando estructuras del tipo Inteligencia artificial. 1.2 - Propuesta de solución tecnológica La propuesta se basa en analizar y comparar el desempeño de diversas técnicas de control no lineal aplicadas a un manipulador robótico de 3 GDL tipo SCARA RRR. Las técnicas aplicadas en la documentación investigativa son consideradas para el control del seguimiento de una trayectoria definida. 1. Control seno coseno hiperbólico 2. Lógica Difusa 3. PID Neurocompensado 4. Par Calculado Estas pueden ser implementadas, simuladas y comparadas mediante la obtención de índices de desempeño que puedan dar una visión global de manera cuantitativa sobre los diferentes resultados al utilizar dichas técnicas en el control. 7 1.3 - Objetivos de Proyecto de titulo Objetivo General Diseñar, simular, analizar y comparar 4 técnicas de control no lineales mediante indicadores de desempeño aplicados a un manipulador robótico SCARA de 3 GDL RRR. Objetivos Específicos 1. Diseño de un manipulador robótico tipo SCARA de 3 GDL RRR. 2. Cálculo de cinemática y dinámica directa e inversa del manipulador (Matlab). 3. Simulación y diseño de 4 técnicas de control no lineales (Matlab & Simulink). 4. Simulación y Diseño de técnicas de control mediante Software CoppeliaSim. 5. Obtención de índices de desempeño (RMS, RSD, AI) de cada técnica de control (Matlab & Simulink). 6. Comparativa entre resultados de índices de desempeño obtenidos. 1.4 - Estructura de Análisis Un análisis de un tema de interés que pudiese ser (texto, informe, matemática, etc.) es un proceso en el cual se examinan detalladamente los componentes de un problema u tema de estudio, principalmente los resultados. Se busca establecer relaciones entre las evidencias recogidas y los fundamentos teóricos que mas se adecuan al tema analizado. Pasos para un análisis: 1.- Enunciar el tema o aspecto relevante, realizando una introducción al tema que se va a analizar o desarrollar. 2.- Citar la evidencia e incorporar un fragmento, se deben incluir directamente citas que demuestren lo explicado. Además de integrar todos los resultados o evidencia del análisis. 3.- Interpretar la evidencia desde la teoría, un análisis debe ir mas allá de la mera identificación de fenómenos. Se debe intentar proponer una interpretación de las causas o implicancia del fenómeno observado. 8 Capítulo 2 – Estado del Arte 2.1 - Introducción a la Robótica La robótica es un campo de la tecnología moderna. El buen entendimiento y el desarrollo de aplicaciones de robótica está condicionado al dominio de diversas áreas del conocimiento. Paulatinamente, la robótica ha venido ganando terreno como material de enseñanza en diversas universidades. Las disciplinas hacia las cuales se orientan estos cursos han sido tradicionalmente las ingenierías eléctricas, electrónicas, mecánica, industrial y ciencias computacionales, y más recientemente la mecatrónica, control y cibernética. (Control de Movimiento de Robots Manipuladores – R. Kelly, V. Santibáñez, 2003, p.3) 2.1.1 - Antecedentes y Origen de la robótica A lo largo de toda la historia, el hombre se ha sentido fascinado por máquinas y dispositivos capaces de imitar las funciones y los movimientos de los seres vivos. Los griegos tenían una palabra específica para denominar a estas máquinas: automatos. La palabra Robot fue usada por primera vez en el año 1921, cuando el escritor checo Karel Capek (1890-1938) estrenó en el teatro nacional de Praga su obra Rossum’s Universal Robot (R.U.R.). Su origen es la palabra eslava robota, que se refiere al trabajo realizado de manera forzada u obligada. La Robótica, termino cuya creación se atribuye a Isaac Asimov está ocupando un lugar destacado en la automatización de los sectores industriales en la actualidad. 2.1.2 - Clasificación de robots Figura 2.1 – Clasificación de Robots 2.2 - Manipuladores Robóticos 2.2.1 - Definición Un Robot Manipulador industrial es una maquina manipuladora con varios grados de libertad controlada automáticamente, reprogramable y de múltiples usos, pudiendo estar en un lugar fijo o móvil para su empleo en aplicaciones industriales. (Definición adoptada por la federación internacional de robótica IFR bajo norma ISO/TR 8373). 9 2.2.2 - Tipo de Configuraciones de Manipuladores Robóticos Figura 2.2 – Configuraciones de Manipuladores Robóticos 2.2.3 - Manipulador SCARA Un Manipulador SCARA, “Brazo robótico de ensamblaje selectivo compatible” (Selective Compliant Assembly Robot Arm o Selective Compliant Articulated Robot Arm) es un robot con posicionamiento horizontal. Los robots SCARA se conocen por sus rápidos ciclos de trabajo, excelente repetitividad, gran capacidad de carga y su amplio campo de aplicación. Es rápido, barato y preciso, pero solo tiene accesibilidad a zonas de trabajo que estén en planos perpendiculares a su eje vertical. Se emplea fundamentalmente en operaciones de ensamblado o inserción de componentes electrónicos y en otros trabajos similares. 2.2.4 - Morfología del Manipulador Robótico Figura 2.3 – Morfología de manipulador Robótico similitud brazo humano. Mecánicamente, un robot está formado por una serie de elementos o eslabones unidos mediante articulaciones que permiten un movimiento relativo entre cada dos eslabones consecutivos. La constitución física de la mayor parte de los robots manipuladores industriales guarda cierta similitud con la anatomía del brazo humano, por lo que, en ocasiones, para hacer referencia a los distintos elementos que componen el robot, se usan términos como cuerpo, brazo, codo y muñeca. (Fundamentos de Robótica – Barrientos, Peñín, Balaguer, Aracil, 2007, p.31) 10 2.2.5 - Grados de libertad Cada uno de los movimientos independientes que puede realizar cada articulación con respecto a la anterior, se denomina grados de libertad (GDL) o en ingles degree of freedom (DOF). Un manipulador robótico puede tener 𝑛 grados de libertad, son normales hasta 6 GDL en manipuladores del tipo SCARA y más de 6 para manipuladores del tipo antropomórfico. 2.2.6 - Cadena Cinemática Una Cadena Cinemática, es una serie de eslabones o barras unidas por articulaciones. La estructura mecánica de un robot manipulador constituye una cadena cinemática. Figura 2.4 – Tipos de Articulaciones de un manipulador. 2.2.7 - Actuadores Son los encargados de generar el movimiento que a través de las trasmisiones es transportado hacia las articulaciones del robot, estos movimientos son previamente establecidos por un controlador con el fin de posicionar el efector final en las coordenadas deseadas. Los actuadores pueden ser del tipo: • • • Electrónico / eléctrico Neumático Hidráulico 2.2.8 - Sensores Los sensores son de vital importancia para lograr conseguir que el robot realice su trabajo con la precisión, velocidad e inteligencia adecuada, pues permiten tener una relación directa tanto con su estado como con el entorno; estos se clasifican en dos tipos, sensores internos y sensores externos, los cuales pueden ser empleados dependiendo la aplicación y finalidad de robot. Los sensores más utilizados son: • • • • • Sensor de Posición Sensor de Velocidad Sensor de Aceleración Sensor de Fuerza Sensor de presión 11 2.2.9 - Aplicación de Manipuladores Robóticos Los manipuladores robóticos se encuentran en la actualidad cumpliendo variadas funciones en la industria, entre los fines de uso más comunes están: Figura 2.5 – Manipuladores robóticos en la industria. 2.2.10 - Manipuladores En el Mundo La robótica es cada vez mas aplicada en el sector industrial a nivel mundial, lo demuestran las estadísticas entregadas por la federación internacional de robótica IFR, en donde en los países del mundo va en crecida la incorporación de estas tecnologías a la producción industrial y se proyecta un aumento en los próximos años. Esto se debe principalmente a los beneficios que entregan los cuales son: 1. Reducción de costos de mano de obra. 2. Flexibilidad de la producción. 3. Incremento de la productividad. 4. Mejora de la imagen (modernidad). 5. Mejora de la calidad del producto acabado. Figura 2.6 – Estadística proyectada de uso de manipuladores. 12 2.3 - Estudio de Manipuladores Robóticos 2.3.1 - Cinemática de Manipuladores La cinemática del Robot Manipulador estudia el movimiento de este con respecto a un sistema de referencia sin considerar las fuerzas que intervienen. La cinemática se interesa por la descripción analítica del movimiento espacial del robot manipulador como una función del tiempo y en particular por las relaciones entre la posición y orientación del extremo final del robot con los valores que toman sus coordenadas articulares. (Fundamentos de Robótica – Barrientos, Peñín, Balaguer, Aracil, 2007, p.119) Cuando se estudia el movimiento de los robots es importante tener en cuenta que los mismos realizan movimientos de rotación y traslación y que dichos movimientos se describirán de manera adecuada siempre que se mantenga un orden determinado, el cual puede establecerse mediante una asignación ordenada de un conjunto de sistemas de coordenadas para cada uno de los eslabones del manipulador, y estableciendo la relación que existe a través de dichos sistemas de coordenadas. (Cinemática y Dinámica de Robots Manipuladores - Roger Miranda Colorado, 2016, p.18) Existen 2 problemas fundamentales a resolver en la cinemática del robot. • • Cinemática Directa: Consiste en determinar cual es la posición y orientación del extremo final del robot, en base a las posiciones angulares de las articulaciones. Cinemática Inversa: Resuelve la configuración angular que debe adoptar el robot para una posición y orientación del extremo conocidas. Figura 2.7 – Diagrama relación entre cinemática directa e inversa. 2.3.2 - Cinemática Directa La Cinemática directa Permite conocer cual es la posición y orientación que adopta el extremo del robot manipulador cuando cada una de las variables que fijan la posición u orientación de sus articulaciones toma valores determinados. Dado que son las variables articulares las que pueden ser leídas directamente de los sensores por la unidad de control del robot manipulador, el modelo cinemático directo será utilizado por entre otros fines, para presentar al usuario información relativa a la localización del extremo del robot manipulador. La obtención del modelo cinemático directo se puede abordar mediante 2 enfoques, mediante métodos geométricos (útiles para manipuladores de hasta 3 GDL, para mas de estos se vuelve inoperativo por no tener un procedimiento específico para su resolución) y mediante matrices de transformación homogénea para la cual se recurre al método de Denavit & Hartenberg (1955) como un método sistemático para la obtención de las variables que componen la matriz de transformación homogénea. (Fundamentos de Robótica – Barrientos, Peñín, Balaguer, Aracil, 2007, p.120) 13 Figura 2.8 – Matriz de Transformación homogénea (Rotación, Traslación, Perspectiva, Escalado) La Matriz de Transformación Homogénea contiene las variables 𝜃! 𝑑! 𝑎! 𝛼! necesarias para poder determinar la rotación, traslación, perspectiva y escalado del robot manipulador, para la obtención de dichas variables se recurre al algoritmo de Denavit & Hartenberg el que plantea un proceso sistemático para la obtención de dichas variables. Solo los valores de Rotación y Traslación son necesarios para la obtención de la cinemática directa, tanto la perspectiva y escalado no son de importancia en este estudio. 2.3.2.1 - Matriz de Transformación Homogénea (𝑻) Las matrices de transformación homogénea permiten la representación conjunta de la posición y orientación de un sólido en el espacio. 𝑃𝑜𝑠𝑖𝑐𝑖𝑜𝑛 + 𝑜𝑟𝑖𝑒𝑛𝑡𝑎𝑐𝑖𝑜𝑛 = 𝐿𝑜𝑐𝑎𝑙𝑖𝑧𝑎𝑐𝑖𝑜𝑛 𝑅𝑜𝑡𝑎𝑐𝑖ó𝑛 𝑇=5 𝑃𝑒𝑟𝑠𝑝𝑒𝑐𝑡𝑖𝑣𝑎 . • 𝑅 𝑇𝑟𝑎𝑠𝑙𝑎𝑐𝑖ó𝑛 ; = 5 "#" 𝐸𝑠𝑐𝑎𝑙𝑎𝑑𝑜 𝑃$#" 𝑇"#$ ; 𝐸$#$ Matrices de Rotación Las matrices de rotación son el método mas extendido para la descripción de orientaciones. Pueden componerse para expresar la aplicación continua de varias rotaciones. 𝑅𝑜𝑡𝑎𝑐𝑖ó𝑛 = 𝑅"#" = 𝑀𝑎𝑡𝑟𝑖𝑧 𝑑𝑒 3𝑥3 𝑞𝑢𝑒 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑒 𝑎 𝑙𝑎 𝑚𝑎𝑡𝑟𝑖𝑧 𝑑𝑒 𝑅𝑜𝑡𝑎𝑐𝑖𝑜𝑛 1 0 𝑅𝑜𝑡! (𝛼) = .0 cos 𝛼 0 sin 𝛼 𝑅𝑜𝑡" (𝜙) = . cos 𝜙 0 sin 𝜙 0 1 0 7 −sin 𝜙 0 cos 𝜙 cos 𝜃 𝑅𝑜𝑡# (𝜃) = . sin 𝜃 0 • 0 − sin 𝛼7 cos 𝛼 −sin 𝜃 cos 𝜃 0 0 07 1 Submatrices de Traslaciones Las matrices de traslaciones representan la distancia (𝑑) en cada uno de los ejes. 14 𝑇𝑟𝑎𝑠𝑙𝑎𝑐𝑖ó𝑛 = 𝑇"#$ = 𝑆𝑢𝑏𝑚𝑎𝑡𝑟𝑖𝑧 𝑑𝑒 3𝑥1 𝑞𝑢𝑒 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑒 𝑎 𝑙𝑎 𝑠𝑢𝑏𝑚𝑎𝑡𝑟𝑖𝑧 𝑑𝑒 𝑇𝑟𝑎𝑠𝑙𝑎𝑐𝑖ó𝑛 𝑑 𝑇𝑟𝑎𝑠# (𝑑) = G0I 0 0 𝑇𝑟𝑎𝑠% (𝑑) = G𝑑I 0 0 𝑇𝑟𝑎𝑠& (𝑑) = G 0I 𝑑 Las matrices de traslaciones se acompañan de una matriz identidad para poder realizar la multiplicación. Quedando: 1 0 0 𝑑 𝑇𝑟𝑎𝑠# (𝑑) = G0 1 0 0 I 0 0 1 0 • 1 0 0 0 𝑇𝑟𝑎𝑠% (𝑑) = G0 1 0 𝑑 I 0 0 1 0 1 0 0 0 𝑇𝑟𝑎𝑠& (𝑑) = G0 1 0 0 I 0 0 1 𝑑 Submatriz de Perspectiva 𝑃𝑒𝑟𝑠𝑝𝑒𝑐𝑡𝑖𝑣𝑎 = 𝑃$#" = 𝑆𝑢𝑏𝑚𝑎𝑡𝑟𝑖𝑧 𝑑𝑒 1𝑥3 𝑞𝑢𝑒 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑒 𝑎 𝑙𝑎 𝑠𝑢𝑏𝑚𝑎𝑡𝑟𝑖𝑧 𝑑𝑒 𝑃𝑒𝑟𝑠𝑝𝑒𝑐𝑡𝑖𝑣𝑎 En este estudio no es de mayor interés por lo cual: • 𝑃$#" = [0 0 0] Submatriz de Escalado 𝐸𝑠𝑐𝑎𝑙𝑎𝑑𝑜 = 𝐸$#$ = 𝑆𝑢𝑏𝑚𝑎𝑡𝑟𝑖𝑧 𝑑𝑒 1𝑥1 𝑞𝑢𝑒 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑒 𝑎 𝑙𝑎 𝑠𝑢𝑏𝑚𝑎𝑡𝑟𝑖𝑧 𝑑𝑒 𝐸𝑠𝑐𝑎𝑙𝑎𝑑𝑜 En este estudio no es de mayor interés por lo cual: 𝐸$#$ = [ 1] En general un robot manipulador de 𝑛 grados de libertad esta formado por 𝑛 eslabones unidos por 𝑛 articulaciones, de forma que cada par articulación-eslabón constituye un grado de libertad. A cada eslabón se le puede asociar un sistema de referencia solidario a él y utilizando la matriz de transformación homogénea es posible representar rotaciones y traslaciones relativas entre los distintos eslabones que componen el robot manipulador. (Fundamentos de Robótica – Barrientos, Peñín, Balaguer, Aracil, 2007, p.122) Figura 2.9 – Asignación de sistemas de referencias. La matriz de Transformación homogénea que representa la posición y orientación relativa entre los sistemas se denomina 𝑀𝑎𝑡𝑟𝑖𝑧 𝐴LMN L Así: 𝐴$' − 𝑃𝑜𝑠𝑖𝑐𝑖𝑜𝑛 𝑦 𝑜𝑟𝑖𝑒𝑛𝑡𝑎𝑐𝑖𝑜𝑛 𝑑𝑒𝑙 𝑝𝑟𝑖𝑚𝑒𝑟 𝑠𝑖𝑠𝑡𝑒𝑚𝑎 𝑟𝑒𝑠𝑝𝑒𝑐𝑡𝑜 𝑎 𝑙𝑎 𝑏𝑎𝑠𝑒. 𝐴$' − 𝑃𝑜𝑠𝑖𝑐𝑖𝑜𝑛 𝑦 𝑜𝑟𝑖𝑒𝑛𝑡𝑎𝑐𝑖𝑜𝑛 𝑑𝑒𝑙 𝑠𝑒𝑔𝑢𝑛𝑑𝑜 𝑠𝑖𝑠𝑡𝑒𝑚𝑎 𝑟𝑒𝑠𝑝𝑒𝑐𝑡𝑜 𝑎𝑙 𝑝𝑟𝑖𝑚𝑒𝑟𝑜. ⋮ 𝐴()$ − 𝑃𝑜𝑠𝑖𝑐𝑖𝑜𝑛 𝑦 𝑜𝑟𝑖𝑒𝑛𝑡𝑎𝑐𝑖𝑜𝑛 𝑑𝑒𝑙 𝑛 𝑠𝑖𝑠𝑡𝑒𝑚𝑎 𝑟𝑒𝑠𝑝𝑒𝑐𝑡𝑜 𝑎𝑙 𝑛 − 1. ( 15 Por lo tanto, 𝑀𝑎𝑡𝑟𝑖𝑧 𝑇 = 𝐴LMN = 𝐴NU ∗ 𝐴NV ∗ 𝐴VW ∗ 𝐴WX ∗ 𝐴ZY ∗ 𝐴[MN [ L 2.3.2.2 - Matriz de Parámetros Denavit & Hartenberg (DH) La matriz de parámetros de Denavit & Hartenberg (1955) es un modelo sistemático para describir la cinemática directa de un robot manipular. La matriz de DH, representa la multiplicación de los elementos propios de la matriz de transformación homogénea para cada una de las articulaciones asociada al sistema de referencia solidario en base a la sucesión de: 1.- Rotar alrededor del eje 𝑧!)$ un ángulo 𝜃! 2.- Traslación a lo largo del 𝑧!)$ una distancia 𝑑! 3.- Traslación a lo largo de 𝑥! una distancia 𝑎! 4.- Rotación alrededor del eje 𝑥! un ángulo 𝛼! Por lo tanto, 𝐴!)$ = 𝑅𝑜𝑡& (𝜃) ∗ 𝑇𝑟𝑎𝑠& (𝑑! ) ∗ 𝑇𝑟𝑎𝑠# (𝑑! ) ∗ 𝑅𝑜𝑡# (𝛼) ! cos 𝜃 𝐴!)$ = G sin 𝜃 ! 0 −sin 𝜃 cos 𝜃 0 0 1 0 0 0 1 0 0 𝑑 1 0 0I ∗ G0 1 0 0 I ∗ G0 1 0 0 I ∗ G0 cos 𝛼 1 0 0 1 𝑑 0 0 1 0 0 sin 𝛼 cos 𝜃! 𝐴!)$ = G sin 𝜃! ! 0 − cos 𝛼! sin 𝜃! cos 𝛼! cos 𝜃! sin 𝛼! sin 𝛼! sin 𝜃! − sin 𝛼! cos 𝜃! cos 𝛼! 0 − sin 𝛼I cos 𝛼 𝑎! cos 𝜃! 𝑎! sin 𝜃! I 𝑑! Dado que el producto entre matrices no es conmutativo, las transformaciones se han de realizar en el orden indicado Parámetros de la Matriz Denavit & Hartenberg (DH) Consiste en determinar 4 parámetros 𝜃! 𝑑! 𝑎! 𝛼! que describen la posición y orientación entre cada uno de los sistemas de referencia. El algoritmo para la resolución del problema cinemático directo de Denavit & Hartenberg, consta de un procedimiento de 16 pasos (DH1 – DH16), el cual es posible resumir o mejor dicho abordar de una manera simplificada en base a los propuesto por John J. Craig el cual plantea una forma resumida de obtención de variables mediante el análisis de las tramas de los vínculos. (Robótica, John J. Craig, 3era Edición, 2006, p.69) Resumen de los parámetros de vínculos en términos de las tramas de vínculos. 𝒂𝒊 𝜶𝒊 𝒅𝒊 𝜽𝒊 = 𝑙𝑎 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎 𝑑𝑒 𝒛𝒊 𝑎 𝒛𝒊,𝟏 𝑚𝑒𝑑𝑖𝑑𝑎 𝑠𝑜𝑏𝑟𝑒 𝒙𝒊 = 𝑒𝑠 𝑒𝑙 á𝑛𝑔𝑢𝑙𝑜 𝑑𝑒 𝒛𝒊 𝑎 𝒛𝒊,𝟏 𝑚𝑒𝑑𝑖𝑑𝑎 𝑠𝑜𝑏𝑟𝑒 𝒙𝒊 = 𝑙𝑎 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎 𝑑𝑒 𝒙𝒊)𝟏 𝑎 𝒙𝒊 𝑚𝑒𝑑𝑖𝑑𝑎 𝑠𝑜𝑏𝑟𝑒 𝒛𝒊 = 𝑒𝑠 𝑒𝑙 á𝑛𝑔𝑢𝑙𝑜 𝑑𝑒 𝒙𝒊)𝟏 𝑎 𝒙𝒊 𝑚𝑒𝑑𝑖𝑑𝑎 𝑠𝑜𝑏𝑟𝑒 𝒛𝒊 Modelo Sistemático: 1.- Rotar alrededor del eje 𝑧! un ángulo 𝜃! . 𝜃! = Es el ángulo en que debe girarse el eje 𝑥!)$ alrededor de 𝑧! para quedar paralelo a 𝑥! . Figura 2.10 – Representación 𝜃$ DH. 16 2.- Traslación a lo largo del eje 𝑧! una distancia 𝑑! . 𝑑! = Es la distancia que debe desplazarse 𝑥!)$ en la dirección de 𝑧! para quedar alineado con 𝑥! . Figura 2.11 – Representación 𝑑$ DH 3.- Traslación a lo largo del eje 𝑥! una distancia 𝑎! . 𝑎! = Es la distancia que debe desplazarse 𝑧! en la dirección de 𝑥! para que su origen coincida con el de 𝑧!,$ . Figura 2.12 – Representación 𝑎$ DH 4.- Rotar alrededor del eje 𝑥! un ángulo 𝛼! . 𝛼! = Es el ángulo en que debe girarse el eje 𝑧! alrededor de 𝑥! para quedar paralelo a 𝑧!,$ . Figura 2.13 – Representación 𝛼$ DH Tabla de parámetros de Denavit & Hartenberg: Figura 2.14 – Tabla de parámetros DH 2.3.3 - Cinemática Inversa El objetivo del problema cinemático inverso consiste en encontrar los valores que deben adoptar las coordenadas articulares del robot 𝑞 = [𝑞$ , 𝑞. , … … . 𝑞( ] para que su extremo se posicione y oriente según una determinada localización espacial. (Fundamentos de Robótica – Barrientos, Peñín, Balaguer, Aracil, 2007, p.134) En definitiva, lo que busca la cinemática inversa es conocer los ángulos 𝜃$ , 𝜃. … . . 𝜃( en función de las longitudes y los parámetros. 𝜃$ = 𝑓l𝑙(𝑥, 𝑦)m 𝜃. = 𝑓l𝑙(𝑥, 𝑦)m 𝜃( = 𝑓l𝑙(𝑥, 𝑦)m 17 2.3.3.1 - Desacoplo Cinemático En principio es posible tratar de obtener el modelo cinemático inverso de un robot a partir del conocimiento de su modelo directo. Es decir, suponiendo conocidas las relaciones que expresan el valor de la posición y orientación del extremo del robot en función de sus coordenadas articulares, obtener por manipulación de aquellas las relaciones inversas. Obtenida la expresión de la matriz T en función de las coordenadas articulares 𝜃$ , 𝜃. … . . 𝜃( , y su supuesta localización de destino para el extremo del robot definida por los vectores 𝑛, 𝑜 , 𝑎 𝑦 𝑝. 𝐴'" = 𝐴$' ∗ 𝐴$. ∗ 𝐴." Por lo tanto, 𝑛# 𝑜# 𝑎# 𝑝# 𝑛 𝑜 𝑎 𝑝 𝐴'" = n 𝑛% 𝑜% 𝑎% 𝑝% o & & & & 0 0 0 1 𝑛# 𝑜# 𝑎# 𝑝# 𝑛% 𝑜% 𝑎% 𝑝% n 𝑛 𝑜 𝑎 𝑝 o = 𝐴$' ∗ 𝐴$. ∗ 𝐴." & & & & 0 0 0 1 En esta parte de la igualdad se encuentras presente todos los ángulos 𝜃$ , 𝜃. , 𝜃" Despejando ángulos 𝜃 de la expresión, 𝑛# 𝑜# 𝑎# 𝑝# 𝑛 𝑜 𝑎 𝑝 (𝐴$' )/ ∗ n % % % % o = 𝐴$. ∗ 𝐴." 𝑛& 𝑜& 𝑎& 𝑝& 0 0 0 1 En esta parte de la igualdad se encuentras presente solo los ángulos 𝜃. , 𝜃" Del siguiente calculo de matriz se obtendrán 2 matrices una a cada lado de la igualdad una (izquierda) en función de la posición (x, y) y la otra (derecha), solo en función de los ángulos 𝜃. , 𝜃" . 𝑛# 𝑜# 𝑎# 𝑝# 𝑎 𝑛% 𝑜% 𝑎% 𝑝% n 𝑛 𝑜 𝑎 𝑝 o = p𝑏 𝑐 & & & & 0 0 0 0 1 𝑑 𝑓 𝑔 0 ℎ𝑘 𝑖 𝑙 𝑗 𝑚t 01 Al reducir la expresión considerando solo la columna necesaria para el calculo, queda, 𝑛# 𝑜# 𝑎# 𝑝# 𝑎 𝑛% 𝑜% 𝑎% 𝑝% n 𝑛 𝑜 𝑎 𝑝 o = p𝑏 𝑐 & & & & 0 0 0 0 1 𝑑 𝑓 𝑔 0 ℎ𝑘 𝑖 𝑙 𝑗 𝑚t 01 𝑝# 𝑘 𝑝% n𝑝 o = n𝑚𝑙 o & 1 1 De este despeje, se podrá observar que la cantidad de variables a quedar en cuanto a los ángulos 𝜃! y las distancias 𝑙! hacen dificultosa la obtención de la cinemática inversa y los valores de ángulos ya que la expresión quedara en función de 2 ángulos 𝜃$ 𝑦 𝜃. y todas las distancias; por ende el despeje no es viable. Debido a esto la solución es igualar las variables a una sola expresión. 𝑙$ = 𝑙. = 𝑙" = 𝑙 𝜃. = 𝜃" 18 Luego, considerando esto se vuelve a despejar la expresión inicial 𝑛# 𝑜# 𝑎# 𝑝# 𝑛 𝑜 𝑎 𝑝 (𝐴$. )/ ∗ (𝐴$' )/ ∗ n % % % % o = 𝐴." 𝑛& 𝑜& 𝑎& 𝑝& 0 0 0 1 En esta parte de la igualdad solo se encuentras presente el ángulo 𝜃" Al reducir la expresión considerando solo la columna necesaria para el cálculo, queda 𝑛# 𝑜# 𝑎# 𝑝# 𝑎 𝑑 𝑛% 𝑜% 𝑎% 𝑝% 𝑓 n 𝑛 𝑜 𝑎 𝑝 o = p𝑏 𝑐 𝑔 & & & & 0 0 0 0 0 1 𝑝# 𝑘 𝑝% n𝑝 o = n𝑚𝑙 o & 1 ℎ𝑘 𝑖 𝑙t 𝑗𝑚 01 1 De este despeje se podrá observar que ahora ambas expresiones (a cada lado de la igualdad) quedaran en función de solo 2 variables 𝜃$ 𝑦 𝑙 por lo cual será posible el despeje de 𝜃$ 𝜃$ = 𝑓(𝑥, 𝑦) Y por consiguiente el posterior despeje de 𝜃. y 𝜃" . El desacoplo cinemático con la aplicación de las condiciones anteriormente descritas, es posible en el caso de tratarse de manipuladores del tipo SCARA de articulaciones rotaciones hasta solo 3 grados de libertad. Debido a ser un manipulador de articulaciones redundantes la condición es aplicable (esto cambia si se añaden articulaciones prismáticas), pero al sumar mas articulaciones rotacionales se vuelve ineficiente ya que solo se extiende el funcionamiento de la última articulación sin darle un movimiento individual. Para manipuladores de otros tipos si es posible la cinemática inversa de n grados de libertad mediante otras técnicas avanzadas. 2.3.4 - Dinámica del Manipulador La dinámica se ocupa de la relación entre las fuerzas que actúan sobre un cuerpo y el movimiento que se origina. Por tanto, el modelo dinámico de un robot tiene por objetivo conocer la relación entre el movimiento del robot y las fuerzas implicadas en el mismo. (Fundamentos de Robótica – Barrientos, Peñín, Balaguer, Aracil, 2007, p.215) La dinámica básicamente es el estudio de las fuerzas y torques y su efecto en el movimiento. Figura 2.15 – Representaciones Fuerza y Torque 19 En la dinámica del robot manipulador se establece la relación entre dinámica directa e inversa. Figura 2.16 – Relación Dinámica Directa e Inversa 2.3.4.1 - Modelo Dinámico El denominado modelo dinámico establece la relación matemática entre: 1.- La localización del robot definida por sus variables articulares o por las coordenadas de localización de su extremo, y sus derivadas: Velocidad y Aceleración. 2.- Las fuerzas y pares aplicados en las articulaciones (o en el extremo del robot). 3.- Los parámetros dimensionales del robot, como longitud, masa e inercias de sus elementos. Modelo Dinámico: 𝜏 = [𝑀 (𝑞 ) ∗ 𝑞̈ ] + [𝐶 (𝑞, 𝑞̇ )] + [𝐺 (𝑞 )] + [𝐹 (𝑞̇ )] 𝑀(𝑞, 𝑞̇ ) = Matriz de inercia. (momento de inercia) mxm [para 3 GDL = matriz 3x3] 𝐶(𝑞, 𝑞̇ ) = Fuerza centrifuga y de Coriolis mx1 [para 3 GDL = matriz 3x1] 𝐺(𝑞) = Fuerza de gravedad que afectan al manipulador mx1 [para 3 GDL = matriz 3x1] 𝐹(𝑞̇ ) = Fuerzas de roce y fricción viscosa mx1 [para 3 GDL = matriz 3x1] Al plantear el equilibrio de fuerzas y pares que intervienen sobre el robot manipulador se obtienen los denominados modelos dinámicos Directos e inversos. • • Dinámica Directa Dinámica Inversa 2.3.5 - Dinámica Directa La dinámica directa corresponde al análisis en el cual se determinan las fuerzas generalizadas de un manipulador. 𝐹𝑢𝑒𝑟𝑧𝑎𝑠 𝐺𝑒𝑛𝑒𝑟𝑎𝑙𝑖𝑧𝑎𝑑𝑎𝑠 (𝜏) = 𝑓(𝑞̈ ! , 𝑞̇ ! , 𝑞! ) 𝑖 = 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑒 𝑎 𝑙𝑎 𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝐺𝐷𝐿 𝑑𝑒𝑙 𝑚𝑎𝑛𝑖𝑝𝑢𝑙𝑎𝑑𝑜𝑟 20 Figura 2.17 – Dinámica Directa Para determinar las fuerzas generalizadas aparece el concepto de Euler-Lagrange, mediante este método se obtienen los torques o fuerzas generalizadas del manipulador realizando un análisis de las energías tanto cinética como potencial del sistema. A su vez también se puede realizar dicho calculo mediante el método de Newton-Euler, con el cual se obtienen los torques o fuerzas generalizadas del manipulador realizando un análisis de las velocidades y aceleraciones, angulares y lineales en los centros de masas de cada uno de los eslabones del manipulador. Mediante este último estudio será con el cual se desarrollará este proyecto. 2.3.5.1 - Método Newton – Euler Si conocemos la ubicación del centro de masas y el tensor de inercia del vinculo, entonces su distribución de masa esta completamente caracterizada. Para mover los vínculos debemos acelerarlos y desacelerarlos. Las fuerzas requeridas para dichos movimientos son una función de la aceleración deseada y de la distribución de la masa de los vínculos. La ecuación de Newton, junto a su análoga de rotación, la ecuación de Euler describe la manera en que se relacionan las fuerzas, inercias y aceleraciones. (Robótica, John J. Craig, 3era Edición, 2006, p.171) Figura 2.18 – Una fuerza F que actúa en el centro de masa de un cuerpo hace que este se acelere. Si consideramos un cuerpo rígido de masa total 𝑚 cuyo centro de masa tiene una aceleración 𝑣´0 . De acuerdo con la ecuación de Newton, la fuerza que actúa en el centro de masa viene dada por: 𝐹 = 𝑚 ∗ 𝑣´0 Por otra parte, si un cuerpo rígido rota con velocidad angular 𝜔 y aceleración angular 𝜔´, el momento angular que actúa en el cuerpo viene dado por la ecuación de Euler: 𝑁 = 𝐼0 ∗ 𝜔´ + 𝜔 × 𝐼0 ∗ 𝜔 Siendo 𝐼0 el tensor de inercias del cuerpo en un sistema cuyo origen esta en el centro de masas. Se trata ahora de aplicar estas ecuaciones para calcular los pares que hay que aplicar a las articulaciones de un robot para que la posición 𝜃, velocidad 𝜔 = 𝜃´ y aceleración 𝜔´ = 𝜃´´ de las articulaciones sean las deseadas. 21 El problema puede resolverse de forma iterativa realizando, en primer lugar, iteraciones hacia fuera, desde la base hasta la última articulación con el objetico de calcular velocidades y aceleraciones, angulares y lineales y, a continuación, se calculan las fuerzas y pares actuando en cada articulación. Luego se procede a realizar las iteraciones hacia dentro, es decir desde la última articulación a la base. Aplicando las ecuaciones de Newton-Euler para determinar la fuerza y el par que actúan en el centro de masa de cada eslabón. (Robótica Manipuladores y robots móviles - Aníbal Ollero Baturone, 2001, p.122) Ecuaciones de Newton-Euler para articulaciones Rotacionales. 2.3.6 - Dinámica Inversa La dinámica inversa corresponde al análisis en el cual se determina la evolución temporal de las coordenadas en función de los torques o fuerzas. 𝑓(𝑞̈ ! , 𝑞̇ ! , 𝑞! ) = 𝐹𝑢𝑒𝑟𝑧𝑎𝑠 𝐺𝑒𝑛𝑒𝑟𝑎𝑙𝑖𝑧𝑎𝑑𝑎𝑠 (𝜏) 𝑖 = 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑒 𝑎 𝑙𝑎 𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝐺𝐷𝐿 𝑑𝑒𝑙 𝑚𝑎𝑛𝑖𝑝𝑢𝑙𝑎𝑑𝑜𝑟 Figura 2.19 – Dinámica Inversa Para determinar las posiciones deseadas, se utiliza el modelo dinámico obtenido del análisis de Newton-Euler despejando así las posiciones. 𝝉𝒊 = 𝑴(𝑞) ∗ 𝒒̈ 𝒊 + 𝑪(𝑞, 𝑞̇ ) + 𝑮(𝑞) + 𝑭(𝑞̇ ) 𝒒̈ 𝒊 = 𝑴(𝑞 )M𝟏 ∗ [𝝉𝒊 − (𝑪(𝑞, 𝑞̇ ) + 𝑮(𝑞 ) + 𝑭(𝑞̇ ))] 22 2.3.7 - Trayectoria del Manipulador La trayectoria del manipulador es una sucesión de posiciones que permitirán llevarlo desde un estado inicial a uno final. La configuración que adquiere una determinada trayectoria queda definida por la distribución de los obstáculos a lo largo de todo el espacio de trabajo, y por supuesto, por la geometría del robot y sus capacidades de movimiento. De esta manera, la topología del ambiente de trabajo restringirá el espacio libre de obstáculos en el cual se pueden expresar las posibles trayectorias para alcanzar el estado final deseado. Existen dos formas básicas para especificar el movimiento: 1.- Mediante trayectorias articulares, suministrando puntos consecutivos e ignorando la trayectoria espacial que describe el robot entre cada dos puntos. 2.- Mediante trayectoria cartesiana, especificando el camino que debe unir los puntos mediante una determinada trayectoria, tal como una o varias líneas (secciones o tramos) rectos que debe describir el manipulador en el espacio de trabajo. En este proyecto se utilizará la trayectoria del tipo cartesiana por lo cual se pasa a detallar a continuación. Figura 2.20 – En una trayectoria un manipulador se mueve desde su poción inicial hasta una posición final. 2.3.7.1 - Trayectoria cartesiana La generación de una trayectoria cartesiana busca crea una ruta planificada del movimiento del manipulador desde su posición inicial hasta su posición final. Esta ruta consta de una o varias “secciones o “tramas” las cuales van describiendo cual será el movimiento a seguir por el manipulador. La generación de estas secciones se realiza mediante el cálculo de las posiciones cartesianas que deben adoptar y con un tiempo 𝑡 definido. Para el cálculo de estas se recurre a la ecuación de la recta. 𝑥 − 𝑥! = "1 #"2 𝑥 = 𝑥! + "1 #"2 $1 #$2 $1 #$2 ∗ (𝑡 − 𝑡! ) y − 𝑦! = ∗ (𝑡 − 𝑡! ) y = 𝑦! + %1 #%2 $1 #$2 %1 #%2 $1 #$2 ∗ (𝑡 − 𝑡! ) ∗ (𝑡 − 𝑡! ) Mediante la cual es posible ir generando las ecuaciones características que describirán las coordenadas cartesianas que tendrá la sección a seguir por el manipulador en cierto tiempo. Figura 2.21 – Ejemplo de una trayectoria Cartesiana diseñada. 23 2.4 - Control de Manipuladores Robóticos El estudio del control de manipuladores se centra en el control de su posición y sus movimientos. La manera mas sencilla de especificar el movimiento de un robot manipulador es mediante la definición de una trayectoria a la cual este debe seguir. Esta metodología consiste en determinar una serie de puntos o trayectoria en el espacio de trabajo del manipulador por donde se desea que el extremo final del mismo pase, con el fin de satisfacer cierta aplicación. El problema del control consiste, en resumen, en hacer pasar el extremo del manipulador por dicha trayectoria. (Control de Movimiento de Robots Manipuladores – R. Kelly, V. Santibáñez, 2003, p.16) Figura 2.22 – Trayectoria a seguir por un manipulador. El control de cualquier sistema, proceso o elemento dinámico va a depender por otra parte de la naturaleza física matemática de este, es así como podemos encontrar sistemas a controlarse que sean de una naturaleza lineal como de una no-lineal. En el caso estudio del manipulador robótico se trata de un sistema dinámico de naturaleza altamente no lineal, debido a las componentes físicas que rigen el funcionamiento de este, el manipulador robótico pose componentes de posición 𝜃, velocidad 𝜃̇ y aceleración 𝜃̈, y es debido a esto que lo convierte en un sistema no lineal. Cuando vamos a controlar también es fundamental el controlador a utilizar, ya sea por su naturaleza lineal o no-lineal, por el tipo de sistema a controlar en cuanto a sus entradas y salidas, como también de la estabilidad en su respuesta, es fundamental el estudio de las múltiples opciones de controladores que se conocen. Figura 2.23 – Diagrama sistema de control Manipuladores Robóticos 2.4.1 - Control Lineal En sentido estricto, el uso de técnicas de control lineal es válido solamente cuando el sistema que se esta estudiando puede modelarse matemáticamente mediante ecuaciones diferenciales lineales. Para el caso del control de manipuladores, dichos métodos lineales deben verse como métodos aproximados ya que, como se mencionó anteriormente la dinámica de un manipulador robótico se represente mas adecuadamente mediante una ecuación diferencial no-lineal. Sin embargo, puede verse a menudo que es razonable hacer dichas aproximaciones, y también es el caso de que estos métodos lineales son los que se utilizan con mas frecuencia en la práctica 24 industrial actual. Además, el estudio del método lineal servirá como base para el tratamiento mas complejo de los sistemas no-lineales que se verán mas adelante en este proyecto. (Robótica, John J. Craig, 3era Edición, 2006, p.262) Figura 2.24 – Controladores para sistemas lineales 2.4.1.1 - Control PID Con el propósito de satisfacer el objetivo de control de posición en forma global, se pueden emplear controladores como P (proporcional) como PD (proporcional-derivativo) con compensación, pero resulta una mejor alternativa a estos controladores la introducción de un componente Integral al PD para intentar llevar a cero el error de posición. De este razonamiento surge una justificación para la aplicación del controlador PID (Proporcional-Integral-Derivativo) en el control de manipuladores. La ecuación característica de este controlador se expresa como: … 𝑃𝐼𝐷 = 𝐾ƒ 𝑞D + 𝐾„ 𝑞Ḋ + 𝐾L E 𝑞D(𝜃 ) 𝑑𝜃 U Donde: 𝑒𝑟𝑟𝑜𝑟 𝑑𝑒 𝑝𝑜𝑠𝑖𝑐𝑖𝑜𝑛 𝑞† = 𝑞3454636 − 𝑞7894(!36 𝑒𝑟𝑟𝑜𝑟 𝑑𝑒 𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑 𝑞†̇ = 𝑞̇ 3454636 − 𝑞̇ 7894(!36 𝐾! , 𝐾" , 𝐾# ∈ ℝ, llamadas respectivamente las ganancias proporcional, derivativa e integral, son valores definidos positivos convenientemente elegidos. Figura 2.25 – Diagrama en Bloques Controlados PID 25 2.4.2 - Control No-Lineal En implementaciones de controladores lineales, como los que se mencionaron anteriormente se produce un amortiguamiento no uniforme a lo largo del espacio de trabajo y otros efectos indeseables. Es por esto por lo que se hace imprescindible el uso de técnicas de control mas avanzadas como son los controladores no-lineales. Mediante los controladores no-lineales es posible modelar el manipulador mediante 𝑛 ecuaciones diferenciales independientes de segundo orden y basar el controlador en ese modelo. Durante la década de los ochenta, se lograron avances significativos en la comprensión de los sistemas de control dinámicos no-lineales. Estos avances han hecho posible la solución definitiva de problemas que ocuparon la atención de los investigadores durante muchos años. Como los sistemas físicos no-lineales son de gran complejidad, las técnicas de control convencionales son inoperantes cuando se requiere que ellos estén en un punto de operación o de posición de equilibrio. Ante esta condición se requiere la implementación de técnicas de control para sistemas no-lineales, las cuales permitan manejar el sistema y adaptarse a los cambios en los puntos de equilibrio de la planta. (Control de Sistemas No-Lineales – Sira-Ramírez, Márquez, Rivas-Echeverría, Llanes, 2004) Figura 2.26 – Controladores para sistemas No-Lineales 2.4.2.1 - Control Seno Coseno Hiperbólico Funciones Hiperbólicas En forma analítica, estas funciones pueden ser expresadas de forma análoga a las relaciones de Euler para las funciones circulares, estas son: • Función seno Hiperbólico senh (𝑥) La función senh (𝑥) crece muy rápidamente hacia el infinito, tanto en el eje positivo como en el negativo (hacia infinito negativo). 𝑠𝑒𝑛ℎ = 𝑒 # − 𝑒 )# 2 Figura 2.27 – Función seno hiperbólico 26 • Función coseno Hiperbólico cosh (𝑥) La función cosh (𝑥) crece muy rápidamente, tanto en el eje positivo como en el negativo 𝑐𝑜𝑠ℎ = 𝑒 # + 𝑒 )# 2 Figura 2.28 – Función coseno hiperbólico Controlador Seno Coseno Hiperbólico El controlador seno coseno hiperbólico esta formado por una función proporcional compuesta de senos y cosenos hiperbólicos, una función derivativa basada en el seno hiperbólico y una compensación de gravedad. Mediante este controlador se propone la hipótesis, que basados en este algoritmo de control de posición y mediante la correcta selección de los valores de ganancias del controlador este llevará al robot de su posición inicial deseada, esto es, el error de posición articular del sistema tenderá asintóticamente a cero conforme el tiempo evoluciona al infinito. La ecuación característica de este controlador se expresa como: 𝑆𝑒𝑛ℎ𝐶𝑜𝑠ℎ = 𝐾ƒ 𝑠𝑒𝑛ℎ(𝑞D)𝑐𝑜𝑠ℎ(𝑞D) − 𝐾„ 𝑠𝑒𝑛ℎ(𝑞̇ ) + 𝑔(𝑞) Donde: 𝑒𝑟𝑟𝑜𝑟 𝑑𝑒 𝑝𝑜𝑠𝑖𝑐𝑖𝑜𝑛 𝑞† = 𝑞3404636 − 𝑞7894(!36 𝐾! , 𝐾" , ∈ ℝ, llamadas respectivamente las ganancias proporcional, derivativa e integral, son valores definidos positivos convenientemente elegidos. Figura 2.29 – Diagrama en Bloques Controlados Seno coseno hiperbólico. 27 2.4.2.2 - Control Lógica Difusa Lógica Difusa La lógica difusa fue creada para emular la lógica humana y tomar decisiones acertadas a pesar de la información. Es una herramienta flexible que se basa en reglas lingüísticas dictadas por expertos. Por ejemplo, la velocidad de un automóvil es una variable que puede tomar distintos valores lingüísticos, como “alta”, “media” o “baja”. Estas variables lingüísticas están regidas por reglas que dictan la salida del sistema. En otras palabras, la lógica difusa es un conjunto de principios matemáticos basados en grados de membresía o pertenencia, cuya función es modelar información. Este modelado se hace con base en reglas lingüísticas que aproximan una función mediante la relación de entradas y salidas del sistema (composición). Esta lógica presenta rangos de membresías dentro de intervalos entre 0 y 1, a diferencia de la lógica convencional, en la que el rango se limita a dos valores: cero o el uno. (Inteligencia Artificial – Pedro Ponce Cruz, 2010, p.33) La estructura básica de un control difuso consta de 3 partes: 1.- Reglas: Dictan la acción de control que se va a tomar. Estas se derivan de un experto. Dichas reglas tienen la estructura de relaciones. La lógica difusa se basa en relaciones, las cuales se determinan por medio de cálculo de reglas “IF-THEN”. 2.- Fusificación: es el nexo entre las entradas reales y difusas. Todas las entradas necesitan ser mapeadas en forma en que las reglas puedan utilizarlas. 3.- Defusificación: Toma un valor difuso de las reglas y genera una salida real. Figura 2.30 – Diagrama control lógica difusa Funciones Membresía Para la representación de los grados de pertenencia de cada uno de los elementos que conforman el control difuso, lo mas natural es extraer los datos de los fenómenos que se va a representar y con ellos definir la forma de la función de membresía. Existen funciones de membresía convencionales y no convencionales que permiten realizar un mapeo de un universo nítido a un universo difuso (grado de membresía entre 0 y 1). Entre las funciones de membresía convencionales se tienen las siguientes. • Función Singleton 𝜇: (𝑥' ) = ‹ 1 𝑥 = 𝑥' 0 𝑥 ≠ 𝑥' Figura 2.31 – Representación matemática y gráfica función singleton. 28 • Función Triangular 𝑓(𝑥; 𝑎; 𝑏; 𝑐) = 0 𝑥≤𝑎 ⎧#)6 ⎪8)6 𝑎 ≤ 𝑥 ≤ 𝑏 0)# ⎨ 0)8 𝑏 ≤ 𝑥 ≤ 𝑐 ⎪ ⎩ 0 𝑥≥𝑐 Figura 2.32 – Representación matemática y gráfica función triangular. • Función Trapezoidal ⎧ ⎪ 𝑓(𝑥; 𝑎; 𝑏; 𝑐) = 𝑎≤𝑏≤𝑐≤𝑑 ⎨ ⎪ ⎩ 0 𝑥≤𝑎 𝑎≤𝑥≤𝑏 8)6 #)6 1 𝑏≤𝑥≤𝑐 𝑐≤𝑥≤𝑑 3)0 3)# 0 𝑥≥𝑑 Figura 2.33 – Representación matemática y gráfica función trapezoidal. • Función Gaussiana % '(') & $ * 𝑓(𝑥; 𝜎; 𝑥! ) = 𝑒 "&# Figura 2.34 – Representación matemática y gráfica función gaussiana. • Función Campana Generalizada 𝑓(𝑥; 𝑎; 𝑏; 𝑥! ) = % '(') &, ' %&' + Figura 2.35 – Representación matemática y gráfica función campana generalizada. 29 • Función Sigmoidal ! 𝑓(𝑥; 𝑎; 𝑥& ) = !'( ;<(>;>?) Figura 2.36 – Representación matemática y gráfica función sigmoidal Controladores Difusos Un controlador Difuso está compuesto de cuatro partes principales: Interfaz de fusificación, base de conocimiento, lógica de decisiones e Interfaz de defusificación. Figura 2.37 – Estructura de un controlador difuso. En la etapa de Interfaz de fusificación se miden los valores de las variables de entrada para realizar un mapeo a esta, que transfiere el rango de valores de las variables a un universo discurso difuso. La fusificación convierte los datos de entrada en valores lingüísticos que son las etiquetas de las funciones de pertenencia o conjuntos difusos. Una variable lingüística en general se asocia a un conjunto de términos, definido en el mismo universo discurso. Para encontrar cuantos términos son necesarios en un conjunto se emplean particiones difusas. El número de conjuntos difusos determina la complejidad del controlador. Figura 2.38 – Asignación de valores de entradas a valores lingüísticos, “N”, “Z”, “P”. La base de Conocimiento en un controlador difuso contiene toda la información de la aplicación que se va a controlar, así como las metas del controlador. La base de datos proporciona las definiciones para el establecimiento de reglas y la manipulación de los datos difusos. La lógica de Decisiones dentro de un controlador difuso es el núcleo de este, a partir de la misma se simula la lógica que utilizan las personas para tomar decisiones (ej. IF-THEM), con base en conceptos difusos y en la inferencia de acciones de control. El resultado de disparar estas reglas con valores de entradas físicos serán conjuntos recortados u escalados. 30 Figura 2.39 – Creación de conjuntos recortados (a) o escalados (b) La etapa de Interfaz de defusificación se encarga del mapeo a escala que convierte el rango de valores de las variables de salida a sus universos de discurso correspondientes. La defusificación es la herramienta para obtener la acción de control nítida a partir de una acción de control difusa. Algunas técnicas utilizadas en esta etapa son: • • • • Método del centroide: Se utiliza para obtener el valor real de la salida. Su metodología es sencilla, corta la función de membresía al grado de la membresía respectiva, es decir, segmenta las funciones de membresía, generando en cada función dos áreas. El área inferior que se forma es la que se toma para hacer el cálculo. Se sobreponen todas estas áreas y se saca el centroide de la superposición, el cual nos dice la salida real del sistema. Método de centro máximo: Primero se calcula el valor mas común de cada etiqueta, esto se hace con el máximo de la respectiva función de membresía. Ya con estos valores típicos se les asignan un peso o valor, el cual es proporcional al grado de membresía, y la salida se determina haciendo un balance de los distintos valores. Método de izquierdo máximo: El valor de salida real se obtiene de la misma manera que el método máximo, pero en vez de usar el valor mas común de la mitad del máximo, se utiliza el máximo izquierdo. Método de derecha máximo: el valor de salida real se obtiene de la misma manera que el método máximo, pero en vez de usar el valor mas común de la mitad del máximo, se utiliza el máximo derecho. Figura 2.40 – Defusificación método del centroide (Inteligencia Artificial – Pedro Ponce Cruz, 2010, p.71) Diseño de controladores con base en Mamdani Mamdani propuso el primer controlador difuso en los años 70´y comprende el siguiente procedimiento. 1.- En base al error se seleccionan las funciones de pertenencia que realizaran la fusificación. 2.- Se establecen las reglas a partir de las proposiciones condicionales. 3.- Se seleccionan las funciones de membresía para la defusificación y el método que se utilizara para encontrar el valor de salida, normalmente corresponde al método del centroide. 31 2.4.2.3 - Control Neurocompensado Redes neuronales artificiales Una red neuronal artificial es una aproximación no-lineal a la forma en que funciona el cerebro, tratando de reproducir el proceso de solución de problemas de éste. Así como los humanos aplican el conocimiento ganado con la experiencia a nuevos problemas o situaciones, una red neuronal toma como ejemplos problemas resueltos para construir un sistema que toma decisiones y realiza clasificaciones. Fundamentos biológicos de las redes neurales naturales. La red neuronal está basada en el funcionamiento biológico de las neuronas en el cerebro, la neurona es una célula especializada en procesar información. Está compuesta por el cuerpo de la célula (soma) y dos tipos de ramificaciones: el axón y las dendritas. La neurona recibe las señales (impulsos) de otras neuronas a través de las dendritas y trasmite señales generadas por el cuerpo celular a través del axón. Las señales que se utilizan son del tipo: eléctrica y química. La señal generada por la neurona y transportada a lo largo del axón en un impulso eléctrico, mientras que la señal que se transmite entre los terminales axónicos de una neurona y las dendritas de la otra es de origen químico. Figura 2.41 – Estructura neurona biológica. Para establecer una similitud directa entre la actividad sináptica y la analogía con las redes neuronales artificiales podemos considerar que las señales que llegan a la sinapsis son las entradas a la neurona, estas son ponderadas (atenuadas o simplificadas) a través de un parámetro denominado peso, asociado a la sinapsis correspondiente. Estas señales de entrada pueden excitar a la neurona (sinapsis con peso positivo) o inhibirla (peso negativo). El efecto es la suma de las entradas ponderadas. Si la suma es igual o mayor que el umbral de la neurona, entonces la neurona se activa (da salida). Esta es una situación de todo o nada, cada neurona se activa o no se activa. La facilidad de transmisión de señales se altera mediante la actividad del sistema nervioso. Esta habilidad de ajustar señales es un mecanismo de aprendizaje. Figura 2.42 – Estructura neurona artificial. (Inteligencia Artificial – Pedro Ponce Cruz, 2010, p,190) 32 Funciones de Activación Neuronas Es la regla que logra establecer el efecto de la entrada total en la activación de la unidad. • Función escalón Figura 2.43 – Representación matemática y gráfica función escalón. • Función Lineal y mixta Figura 2.44 – Representación matemática y gráfica función lineal y mixta. • Función tangente hiperbólica Figura 2.45 – Representación matemática y gráfica función tangente hiperbólica. • Función Sigmoidal Figura 2.46 – Representación matemática y gráfica función sigmoidal. 33 • Función de Gauss Figura 2.47 – Representación matemática y gráfica función de gauss. (Inteligencia Artificial – Pedro Ponce Cruz, 2010, p,199) Entrenamiento de las redes neuronales Multicapas Se denomina entrenamiento al proceso de configuración de una red neuronal para que las entradas produzcan las salidas deseadas a través del fortalecimiento de las conexiones. Una forma de llevar esto a cabo es mediante el establecimiento de pesos conocidos con anterioridad y otro método implica el uso de patrones de aprendizaje que cambian los valores de los pesos hasta encontrar los adecuados. Figura 2.48 – RNA Multicapa El aprendizaje puede clasificarse en: Figura 2.49 – Clasificación aprendizaje en RNA Mediante el aprendizaje supervisado se introducen entradas que corresponden a determinadas salidas, es decir, se enseña a la red dando los resultados esperados. El aprendizaje no supervisado se enfoca en encontrar características estadísticas entre agrupamientos de patrones de entradas. Un tipo de entrenamiento supervisado es el conocido como redes de retro propagación (backpropagation), dentro de mucho otros tipos de entrenamiento este es el de interés en este proyecto y se pasa a detallar a continuación. 34 Redes de Retro propagación (Backpropagation) La retro propagación es un tipo de entrenamiento supervisado que se emplea para redes multicapas donde se ajusta el valor de los pesos en función del error generado. Esta técnica es muy empleada ya que permite tener un método de optimización que se encuentra al definir el gradiente del error y minimizarlo con respecto a los parámetros de la red neuronal. Las Redes Neuronales como Compensación de Controladores (Neurocompensación) En circunstancias en que ciertos controladores aplicados a sistemas dinámicos altamente no lineales como el caso de los manipuladores robóticos, no logran satisfacer al máximo las funciones de control como la minimización del error, es necesario el uso de compensadores los cuales ayudan a anular o neutralizar en mayor o mejor manera el error u otro efecto no deseado. Figura 2.43 – Diagrama en bloques Controlador PID con Neurocompensación 2.4.2.4 - Control Par Calculado. Esta técnica de control se basa en las ecuaciones del movimiento, ya sean de Euler-Lagrange o de Newton-Euler, las cuales describen el comportamiento dinámico de un manipulador robótico. La técnica del Par Calculado emplea realimentación no-lineal para desacoplar las interacciones entre los eslabones del manipulador, y utiliza un regulador proporcional mas derivativo para controlar los actuadores, por lo tanto, se puede decir que realiza un control del tipo anticipativo. La ecuación característica de este controlador se expresa como: P )𝑲𝒑 𝒒 P + 𝑴(𝒒𝒅 − 𝒒 P)𝑲𝒗 𝒒 Ṗ + 𝑴(𝒒)𝒒̈ 𝒅 + 𝑪(𝒒, 𝒒̇ )𝒒̇ + 𝒈(𝒒) 𝝉 = 𝑴(𝒒𝒅 − 𝒒 35 Figura 2.51 – Diagrama en bloques Controlador Par Calculado (Control de Movimiento de Robots Manipuladores – R. Kelly, V. Santibáñez, 2003, p.257) La técnica de control par calculado utiliza los elementos propios del modelo dinámico del manipulador (matriz de inercia, Coriolis y gravedad) matrices que entregan los valores de torque del sistema, estos valores se utilizan como realimentación al sistema, realizando una especie de sobre cálculo del par. 2.5 - Modelamiento Matemático del Servomotor Los Actuadores de robots manipuladores pueden ser eléctricos, hidráulicos o neumáticos. Entre los actuadores eléctricos aplicados en robótica se encuentras los motores de corriente continua, motores de corriente alterna y los servomotores. (Control de Movimiento de Robots Manipuladores – R. Kelly, V. Santibáñez, 2003, p.275) Figura 2.52 – Servomotor Un modelo matemático idealizado que caracteriza el comportamiento del servomotor se describe típicamente por la siguiente ecuación. 𝜏) = 1 𝑘* 1 𝑘* 𝑘/ 1 𝑘* 1 1 𝐴𝑘+ 𝑘, 𝑣- − 𝐽. 𝑞̈ − 9 + 𝐵. ; 𝑞̇ − 𝐴𝑘+ 𝑝𝑞 − 𝑓𝑒𝑐 9 𝑞̇ ;@ 𝑛 𝑅* 𝑛 𝑅* 𝑛 𝑅* 𝑛 36 𝑛 Relación de engranajes 𝑘- Constante de par del motor 𝑅- Resistencia de armadura [𝑣𝑒𝑐𝑒𝑠] 𝑚 I𝑁 ∙ M 𝐴 [Ω] 𝑘. Sensibilidad del comparador [𝑣𝑒𝑐𝑒𝑠] 𝑘/ Ganancia total de la conversión PWM [𝑣𝑒𝑐𝑒𝑠] 𝑣$ Tensión de entrada al servomotor 𝐴 Ganancia del amplificador de corriente 𝐽0 Momento de inercia del motor 𝑘2 Constante de fuerza electromotriz inversa 𝐵0 Fricción viscosa del motor [𝑉] [𝑣𝑒𝑐𝑒𝑠] [𝑘𝑔 ∙ 𝑚1 ] 𝑠 I𝑉 ∙ M 𝑟𝑎𝑑 𝑠 I𝑁 ∙ 𝑚 ∙ M 𝑟𝑎𝑑 [𝑣𝑒𝑐𝑒𝑠] 𝑝 Ganancia del potenciómetro de la función tanh 𝑘 Ganancia de la pendiente de la función tanh [𝑣𝑒𝑐𝑒𝑠] Frecuencia [𝑁 ∙ 𝑚] 𝑓𝑒𝑐 2.6 - Herramientas de Cálculo y Simulación Las Herramientas (Software) a utilizar en este proyecto para la realización de cálculos y simulaciones se detallas a continuación: • MATLAB Matlab (Abreviatura de Matrix Laboratory, Laboratorio de matrices) es un sistema de computo numérico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Entre sus prestaciones básicas se hallan la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. • Simulink Simulink es un entorno de programación visual que funciona sobre el entorno de programación de Matlab. Utiliza un sistema de programación en bloques destinados a distintos procesos de análisis de estructuras matemáticas, señales, fenómenos físicos, etc. Viene con herramientas de simulación de modelos o sistemas, con cierto grado de abstracción de los fenómenos físicos involucrados en los mismo. • CoppeliaSim El simulador de robots CoppeliaSim (de los creadores de VREP), es un entorno de desarrollo integrado que se basa en una estructura de control distribuido. Cada objeto o modelo se puede controlar individualmente a través de un script integrado, un plugin, un nodo ROS, un cliente API remoto o una solución personalizada. 37 Capítulo 3 – Desarrollo del Proyecto 3.1 - Controladores No-Lineales aplicados a un manipulador Robótico El desarrollo del proyecto consiste en la aplicación de 4 tipo de controladores no-lineales aplicados a un manipulador robótico del tipo SCARA de 3GDL RRR para evaluar posteriormente su funcionamiento y resultados mediante indicadores de desempeño. El desarrollo comienza con el diseño, cálculo y simulación del manipulador robótico en su totalidad, tanto la cinemática como la dinámica, luego todo el desarrollo de la trayectoria y el modelamiento, posterior la aplicación de cada uno de los controladores para la obtención de los resultados y finalmente el cálculo de los indicadores de desempeño (profundizado en el próximo capítulo del presente informe). 3.1.1 - Diseño del manipulador. Manipulador del tipo SCARA de 3 grados de libertad de articulaciones rotacionales las 3. Figura 3.1 – Manipulador robótico a utilizar SCARA 3 GDL RRR. 3.1.2 - Parámetros de Manipulador Los parámetros físicos a utilizar para todo el desarrollo del proyecto fueron obtenidos de ejemplos comprobados y obtenidos en implementaciones reales. Estos son: Articulación 1 Masa eslabón 1 𝑚1 Largo eslabón 1 𝑙1 Distancia al centro de masa eslabón 1 𝐿𝑐𝑑𝑚1 𝐼1𝑧𝑧 Momento de inercia eslabón 1 Articulación 2 Masa eslabón 2 𝑚2 Largo eslabón 2 𝑙2 Distancia al centro de masa eslabón 2 𝐿𝑐𝑑𝑚2 Momento de inercia eslabón 2 𝐼2𝑧𝑧 Articulación 3 Masa eslabón 3 𝑚3 Largo eslabón 3 𝑙3 Distancia al centro de masa eslabón 3 𝐿𝑐𝑑𝑚3 Momento de inercia eslabón 3 𝐼3𝑧𝑧 2.0458 0.2 0.0229 0.0116 2.0458 0.2 0.0229 0.0116 6.5225 0.2 0.0983 0.1213 38 3.1.3 - Simulación con CoppeliaSim Diseño Figura 3.2 – Manipulador robótico diseñado en CoppeliaSim El diseño del manipulador en CoppeliaSim se realizó utilizando la estructura que trae el software el cual es ir construyendo el modelo en estructura de árbol. Luego de diseñar cada parte del manipulador (base, Cilindros, cuboides y articulaciones) estas se organizan una siguiente de la otra en forma de escalera, de esta manera cada elemento que compone el manipulador queda enlazado de su anterior y posterior elemento. A cada uno de los elementos se le programa su funcionamiento dinámico en las propiedades de cada uno. El manipulador diseñado contiene un feltpen en el extremo añadido al elemento dummy el cual no es parte del manipulador solo fue añadido como elemento visual para que dibuje en el suelo la trayectoria generada. Programación Sistema Operativo Matlab Coppelia Sim Proyecto Figura 3.3 – Transferencia de archivos necesarios La programación del CoppeliaSim comienza con realizar el enlace entre éste y el software Matlab quien enviará los datos del modelo realizado en Simulink. Para esto se realiza una transferencia de archivos que están en las carpetas del sistema operativo, en los archivos de instalación de Matlab y en los archivos de CoppeliaSim. Estos archivos se copian en la carpeta del proyecto a utilizar en donde se encuentran los archivos .m de Matlab y los archivos .slx del proyecto. El script generado en Matlab para realizar la comunicación entre ambos softwares parte por una etapa de conexión. 39 Figura 3.4 – Script conexión, elementos del robot, avisos conexión. La etapa de conexión parte con llamar al elemento remoteApi, archivo que genera la conexión entre ambos softwares realizando la lectura entre ambos, luego se asignan los puertos de conexión de ambos, el puerto de hots local del pc el cual utilizara CoppeliaSim (127.0.0.1) y el puerto de conexión establecido para el Matlab (19999). Luego el comando “vrep.simxGetObjectHandle” de CoppeliaSim asigna valores a los elementos que realizaran movimiento en CoppeliaSim en este caso las 3 articulaciones. Hay una etapa que genera mensajes en pantalla de conexión establecida tanto en Matlab como en CoppeliaSim. Figura 3.5 – Script movimiento de prueba El núcleo del script está en realizar el movimiento de prueba, en esta parte del código se creo un ciclo for. La simulación de Simulink genera 3601 valores de posición en los 36 segundos, los cuales son extraídos de éste mediante un bloque to workspace y enviados a CoppeliaSim. El ciclo for asigna cada uno de estos valores a las variables creadas (q1, q2, q3) las cuales al generar el play en CoppeliaSim generan el movimiento del manipulador con los 3601 valores. Figura 3.6 – Script desconexión Finalmente se realiza la etapa de desconexión con un mensaje en pantalla que indica este estado. 40 3.2 - Cinemática y Dinámica 3.2.1 - Obtención de Matriz de Transformación Homogénea y Denavit & Hartenberg El primer paso en la obtención de la matriz de transformación homogénea es llevar el diseño del manipulador a una representación gráfica que permita asignar los sistemas de referencia a las articulaciones. Figura 3.7 – Representación gráfica manipulador 3GDL RRR – (a) Diagrama técnico (b) Diagrama esquemático Una vez realizado se procede con la matriz de DH, mediante el modelo sistemático propuesto por Denavit & Hartenberg que permite obtener los parámetros necesarios para la tabla. 1.- Rotar alrededor del eje 𝑧!)$ un ángulo 𝜃! 2.- Traslación a lo largo del 𝑧!)$ una distancia 𝑑! 3.- Traslación a lo largo de 𝑥! una distancia 𝑎! 4.- Rotación alrededor del eje 𝑥! un ángulo 𝛼! Figura 3.8 – Tabla de parámetros DH obtenidos para el manipulador 3GDL RRR propuesto. Ya con los parámetros de DH necesarios, se procede al cálculo de la matriz de transformación homogénea. Para esto se realizó un script en Matlab, en este se ingresan los valores de DH y mediante un ciclo for se asigna por cada ciclo a los parámetros propios de la matriz los valores correspondientes a cada articulación. Entregando como resultado las matrices de rotación individuales por cada articulación y finalmente la matriz de transformación homogénea completa del sistema. 41 Figura 3.9 – Scripts obtención matriz de TH mediante parámetros de DH. La matriz de transformación homogénea entre articulaciones y general obtenidas son: 𝐴$' 𝐴$' 𝐴$' cos(𝑞1 + 𝑞2 + 𝑞3) 𝑇𝐻 = ? sin (𝑞1 + 𝑞2 + 𝑞3) 0 0 = p = p = p cos(𝑞1) sin (𝑞1) 0 0 cos(𝑞2) sin (𝑞2) 0 0 cos(𝑞3) sin (𝑞3) 0 0 −sin (𝑞1 + 𝑞2 + 𝑞3) cos (𝑞1 + 𝑞2 + 𝑞3) 0 0 −sin (𝑞1) cos (𝑞1) 0 0 −sin (𝑞2) cos (𝑞2) 0 0 −sin (𝑞3) cos (𝑞3) 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 𝑙1𝑐𝑜𝑠(𝑞1) 𝑙1𝑠𝑖𝑛(𝑞1) t 𝑙0 1 𝑙2𝑐𝑜𝑠(𝑞2) 𝑙2𝑠𝑖𝑛(𝑞2) t 0 1 𝑙3𝑐𝑜𝑠(𝑞3) 𝑙3𝑠𝑖𝑛(𝑞3) t 0 1 𝑙2 cos(𝑞1 + 𝑞2) + 𝑙1𝑐𝑜𝑠(𝑞1) + 𝑙3cos (𝑞1 + 𝑞2 + 𝑞3) 𝑙2 sin(𝑞1 + 𝑞2) + 𝑙1𝑠𝑖𝑛(𝑞1) + 𝑙3sin (𝑞1 + 𝑞2 + 𝑞3) A 𝑙0 1 3.2.2 - Cinemática directa e inversa Cinemática Directa El desarrollo de la cinemática directa será útil para la parte final de la simulación, una vez realizado los cálculos de la dinámica en la simulación, se obtendrán los parámetros de las posiciones obtenidas 𝑞17 , 𝑞27 , 𝑞37 , mediante el bloque de función programado en Simulink estos parámetros será convertidos en coordenadas cartesianas mediante las cuales por gráfica será posible visualizar la trayectoria final realizada por el manipulador. Dentro del bloque de función se hará uso del resultado obtenido de la matriz homogénea anterior (vector de traslación columna 4, filas 1 y 2, correspondientes a la traslación en x e y) mediante el cual se realizarán los cálculos de las posiciones cartesianas, previa declaración de los parámetros reales del manipulador. 42 Figura 3.10 – Bloque de función Simulink y programación de éste (cinemática directa). Cinemática Inversa Mediante la matriz de transformación homogénea obtenida y realizando el desacoplo cinemático es posible encontrar las ecuaciones correspondientes al movimiento angular de las articulaciones 𝜃1, 𝜃2, 𝜃3. El resultado de la operación de matrices es: Para el cálculo del desacoplo cinemático lo importante es el resultado obtenido en el vector de traslación: 43 Tal como se explicó en la teoría, en el caso de los manipuladores SCARA al tratarse de articulaciones redundantes es posible realizar la siguiente condición. Al realizar el siguiente despeje y aplicar la condición queda: Luego al calcular las matrices: 44 Se obtiene la ecuación para la posición angular de la articulación 1 𝜃1, luego para 𝜃2, se realiza el cálculo mediante la aplicación del teorema del coseno. De esta forma mediante la aplicación del desacoplo cinemático se encuentras las ecuaciones correspondientes a las posiciones angulares de las 3 articulaciones. Ya que el tipo de trayectoria diseñada se trata de una trayectoria cartesiana, se debe utilizar la cinemática inversa para realizar la conversión de las posiciones cartesianas diseñadas para la trayectoria del manipulador, en posiciones angulares fundamentales para todo el resto de la simulación, debido a que todo el trabajo de dinámica del manipular utiliza las posiciones angulares. Esto se realiza programando en Simulink un bloque de función el cual gracias a las ecuaciones obtenidas del desacoplo cinemático realiza esta conversión. Figura 3.11 – Bloque de función Simulink y programación de éste (cinemática inversa). 45 3.2.3 - Dinámica mediante Newton-Euler La dinámica mediante el método de Newton-Euler es posible calcularla ya que este se trata de un método que realiza cálculos iterativos hacia fuera encontrando las velocidades articulares y lineales desde la base del manipulador hasta la articulación 𝑛 y luego en un enfoque hacia dentro se realiza el cálculo de las fuerzas y momentos de torsión de cada eslabón del manipulador. Gracias a este enfoque estructurado se realiza un script en Matlab que repite el cálculo de este, eslabón por eslabón. Figura 3.12 – Script para el cálculo de torques mediante método de Newton-Euler. (ejemplo de una articulación, las articulaciones 2 y 3 repiten el procedimiento) De esta manera se encuentran los torques de cada una de las articulaciones de manipulador. 46 3.2.4 - Modelo Dinámico El resultado obtenido mediante el método de Newton-Euler nos entrega el torque de cada una de las articulaciones, estas ecuaciones obtenidas contienen todos los elementos asociados a las posiciones 𝑞, las velocidades 𝑞̇ y la aceleración 𝑞̈ , que corresponden a los elementos que componen las matrices de inercia, Coriolis y gravedad, propias del modelo dinámico. Es debido a esto que fue necesario realizar la factorización de términos para poder despejar los factores propios de estas matrices y poder representar el modelo dinámico de la forma: 𝜏 = [𝑀 (𝑞 ) ∗ 𝑞̈ ] + [𝐶 (𝑞, 𝑞̇ )] + [𝐺 (𝑞 )] + [𝐹 (𝑞̇ )] Es importante resaltar que al tratarse de un manipulador del tipo SCARA RRR, ninguna de sus articulaciones queda afecta a la gravedad, es por esto que la gravedad en este proyecto será despreciada. Al igual que los datos de fricción, estos debido a que se realizará la simulación de los sistemas y no se estudiará un posible caso de construcción de prototipo real del manipulador también serán despreciados en este proyecto. El modelo dinámico para trabajar queda: 𝜏 = [𝑀(𝑞 ) ∗ 𝑞̈ ] + [𝐶 (𝑞, 𝑞̇ )] Factorización de términos: Figura 3.13 – Resultados al factorizar torque y obtener las matrices de inercia y Coriolis. 47 3.2.5 - Dinámica del Manipulador La dinámica del manipular queda representada en Simulink mediante un bloque de función el cual contiene la dinámica inversa del manipular. Ya obtenidas las matrices del modelo dinámico, es posible realizar el despeje de la ecuación para encontrar lo que es la aceleración de cada articulación. Como la salida del bloque de función es la aceleración de cada articulación, estas pasan por un sistema integrador, el cual integra dos veces el valor de aceleración obteniendo así los parámetros de velocidad y posición del manipulador. Dichos valores son normalizados y enviados a puntos de salida ya que estos se utilizarán en distintos puntos de la simulación como en la realimentación de estos mismo en el bloque de función de la dinámica. Los valores de torque que ingresan al bloque corresponden a los provenientes del bloque que modela matemáticamente un servomotor los cuales obtienen parámetros directos del controlador. Figura 3.14 – Bloque de función Simulink y programación de la dinámica inversa. 48 3.3 - Diseño de trayectoria La trayectoria para utilizar en este proyecto será del tipo cartesiana y mediante el uso de la ecuación de la recta es posible encontrar las ecuaciones características de cada posición cartesiana en 𝑥, 𝑦 en casa segmento diseñado. Figura 3.15 – Trayectoria cartesiana diseñada. 49 El tiempo de simulación considerado es de 36 𝑠𝑒𝑔𝑢𝑛𝑑𝑜𝑠 por ende el movimiento por segmento será de 3 𝑠𝑒𝑔𝑢𝑛𝑑𝑜𝑠. Con las ecuaciones obtenidas se realizó la programación en Simulink el cual mediante un bloque de función calcula cada una de las posiciones cartesianas en 𝑥, 𝑦 en el tiempo. Figura 3.16 – Bloque de función Simulink, programación y gráfica resultante de la trayectoria deseada. 3.4 - Modelamiento del Servomotor El parámetro de torque que será entregado al modelo dinámico es el proveniente de los bloques de función de servomotores. Dentro de estos se realizó la programación mediante bloques Simulink de la ecuación caracteriza que describe el modelamiento matemático del servomotor. Estos bloques reciben como información de entrada el valor de voltaje proveniente desde la etapa de control y los valores de posición, velocidad y aceleración obtenidos. 50 Figura 3.17 – Bloque de función Simulink y programación Servomotores. Finalmente, el modelo simulado completo queda: Figura 3.18 – Modelo completo en Simulink del manipulador robótico de 3GDL RRR. 51 3.5 - Aplicación de etapas de Control 3.5.1 - Implementación Control Seno Coseno Hiperbólico Mediante la aplicación de un controlador seno coseno hiperbólico se busca analizar el comportamiento del manipulador al ser controlado por este. Se buscará observar tal como fundamenta la teoría de este tipo de control que al uso de funciones hiperbólicas junto a las acciones proporcionales y derivativas buscaran llevar el error de la posición articular a cero conforme el tiempo evoluciona hasta el infinito. Dicho control será representado en Simulink basándose en el diagrama en bloques que describe su configuración, obteniendo: Figura 3.19 – Control seno coseno hiperbólico en Simulink. Se logra observar como el error de la posición es multiplicado tanto por una función seno hiperbólica como por una función coseno hiperbólica, el resultado de esto será multiplicado por la acción proporcional del sistema cuyas ganancias fueron obtenidas mediante prueba y error buscando los mejores valores para una mejor respuesta del sistema. A su vez se utiliza el parámetro de velocidad obtenida la cual al multiplicarla por un seno hiperbólico y el factor derivativo conforman al restar estos, el valor de salidas del controlador. 52 3.5.1.1 - Resultados y simulaciones Los resultados obtenidos al aplicar este controlador al sistema son: a) b) Figura 3.20 – Gráfico de trayectoria deseada (a) frente a trayectoria obtenida (b). C. senh cosh El primer gráfico cartesiano representa la comparativa entre la trayectoria deseada frente a la trayectoria obtenida. Se puede observar un control adecuado solo por la diferencia al inicio de la trayectoria donde se observa una pequeña perturbación que aumenta el error en el segundo segmento de subida, propia del momento que rompe la inercia el manipulador. Figura 3.21 – Gráfico de posiciones angulares deseadas frente a las obtenidas. C. senh cosh El grafico de posiciones angulares (grados) muestra la comparativa entre las posiciones angulares deseadas frente a las obtenidas en el tiempo (36 segundos de simulación). Se observa un buen rendimiento de este controlador. 53 Figura 3.22 – Captura de CoppeliaSim trayectoria realizada por el manipulador. C. senh cosh En la imagen se puede observar una captura de CoppeliaSim de la trayectoria realizada por el manipulador diseñado mediante un control seno coseno hiperbólico. (la visualización de la simulación completa se encuentra en la presentación del proyecto) 3.5.2 - Implementación Control Lógica Difusa Mediante la aplicación de un controlador de lógica difusa se busca analizar el comportamiento del manipulador al ser controlado por este. Se aplica una lógica de control propuesta en base a lo que es la programación de lo que seria un experto. Mediante esta se configuran las entradas y salidas, las variables lingüísticas dentro del universo discurso y las funciones de membresías que mejor se aplican al sistema. En Simulink mediante el toolbox Fuzzy Logic Designer se diseña la lógica difusa a operar. Figura 3.23 – configuración mediante toolbox Fuzzy Logic Designer 54 Se utiliza un sistema del tipo Mamdani para la configuración debido a que, en base a lo estudiado en las bibliografías relacionadas, esta configuración funciona de mejor manera cuando se trabaja con el error del sistema. El sistema tiene 2 entradas correspondientes al error de posición y el error de la velocidad y para encontrar el valor de salida se utilizará el método del centroide también propuesto como la mejor opción al trabajar con Mamdani. El rango de valores a utilizar es desde −1,57 𝑟𝑎𝑑 (−90°) a 1,57 𝑟𝑎𝑑 (90°) que son los márgenes de error que tiene un servomotor. Figura 3.24 – Funciones de membresía utilizadas en las entradas Para las dos entradas se utilizaron 5 funciones triangulares y 2 trapezoidales como funciones de membresía, repartidas de manera uniforme (decisión propuesta como una correcta configuración al tratarse de manipuladores robóticos), las variables lingüísticas son: Error de Posición ENXG Error negativo extragrande ENG Error negativo grande ENP Error negativo pequeño EC Error negativo cero EPP Error positivo pequeño EPG Error positivo grande EPXG Error positivo extragrande Error de Velocidad DENXG Derivada del error negativo extragrande DENG Derivada del error negativo grande DENP Derivada del error negativo pequeño DEC Derivada del error negativo cero DEPP Derivada del error positivo pequeño DEPG Derivada del error positivo grande DEPXG Derivada del error positivo extragrande La salida del sistema corresponde a el voltaje de salida. También se utilizaron como funciones de membresía 5 triangulares y 2 trapezoidales. El rango de valores a utilizar es desde −12 (𝑉) a 12 (𝑉) que son los márgenes de alimentación del servomotor. Las variables lingüísticas de la salida son: Voltaje VNXG VNG VNP VC VPP VPG VPXG Voltaje negativo extragrande Voltaje negativo grande Voltaje negativo pequeño Voltaje negativo cero Voltaje positivo pequeño Voltaje positivo grande Voltaje positivo extragrande Mediante estas variables se realiza la configuración de las reglas (IF-THEN) en el toolbox y se paso a realizar la simulación. 55 Figura 3.25 – Control lógica difusa en Simulink 3.5.2.1 - Resultados y simulaciones Los resultados obtenidos al aplicar este controlador al sistema son: a) b) Figura 3.26 – Gráfico de trayectoria deseada (a) frente a trayectoria obtenida (b). C. Fuzzy El primer grafico cartesiano representa la comparativa entre la trayectoria deseada frente a la trayectoria obtenida. Se puede observar un control que comienza de manera adecuada a lo esperado pero que conforme el tiempo avanza comienza a aumentar el error resultando en una trayectoria distinta a la deseada. 56 Figura 3.27 – Gráfico de posiciones angulares deseadas frente a las obtenidas. C. Fuzzy El grafico de posiciones angulares (grados) muestra la comparativa entre las posiciones angulares deseadas frente a las obtenidas en el tiempo (36 segundos de simulación). Se observa un permanente estado de error entre ambas curvas. Figura 3.28 – Captura de CoppeliaSim trayectoria realizada por el manipulador. C. Fuzzy En la imagen se puede observar una captura de CoppeliaSim de la trayectoria realizada por el manipulador diseñado mediante un control lógico difusa. (la visualización de la simulación completa se encuentra en la presentación del proyecto) 57 3.5.3 - Implementación Control PID Neurocompensado 3.5.3.1 - Control PID Para realizar el controlador Neurocompensado se decidió comprobar el funcionamiento de una red neuronal compensando a un clásico control PID, se detalla el diseño de éste a continuación: Figura 3.29 – Control PID Simulink El diagrama del controlador PID trabaja en base al error de posición y el error de la velocidad según lo propuesto por R. Kelly, y V. Santibáñez en el libro Control de Movimiento de Robots Manipuladores. Las ganancias de las constantes proporcional, derivativa e integral fueron encontradas mediante el método de prueba error buscando la mejor respuesta de este. 3.5.3.2 - Entrenamiento red neuronal Para configurar la red neuronal en primera instancia se realizo el proceso de entrenamiento de la red, que consistió en obtener los valores asignados a la entrada y salida (target) de la red y que servirán de entrenamiento para la red. Para esto se utilizo la misma simulación en Simulink del modelo completo, pero cambiando los valores de entrada, se cambio una trayectoria deseada por un bloque random que ingreso aprox. 100.000 valores aleatorios de posiciones angulares al sistema. Se asigno como parámetros de entrada los errores de posición que entrego el control PID y las posiciones obtenidas de la simulación, y como parámetro de salida (target) el voltaje de salida del controlador, estos datos fueron exportados como un bloque da datos al workspace para ser luego ingresados al toolbox nntool el cual realizo el entrenamiento. PID Figura 3.30 – Proceso de entrenamiento Red 58 Una vez obtenidos los valores para el entrenamiento, mediante el toolbox nntool se crea la red neuronal y el entrenamiento de esta. En primera instancia se unieron ambos datos de entrada (error de posición y posición obtenida) y se asignaron a la variable input (una por cada articulación) estas fueron utilizadas como Input Data y se ingresan los targets obtenidos como Target Data. Luego se configura el entrenamiento de la red, se utiliza una función triangular como función de activación de la red (experimental) y se establece el método de aprendizaje de la red. El método escogido es el de la retro propagación (backpropagation). La retro propagación es un tipo de entrenamiento supervisado que se emplea para redes multicapas donde se ajusta el valor de los pesos en función del error generado. Esta técnica es muy empleada ya que permite tener un método de optimización que se encuentra al definir el gradiente del error y minimizarlo con respecto a los parámetros de la red neuronal. Se utilizaron 10 neuronas en 2 capas, por ende, se entrena una red multicapa. Figura 3.31 – Configuración nntool para la red neuronal El proceso de entrenamiento estuvo bordeando siempre valores muy bajos de gradientes de error y obtuvo un valor de asertividad del 93% en un periodo de 1000 épocas. Figura 3.32 – Proceso de entrenamiento 59 3.5.3.3 - Implementación de la Neurocompensación. Una vez realizado el entrenamiento de la red se exportan las 3 (Custom Neural Network) a la simulación en Simulink y se realiza la compensación del PID en base al diagrama propio de un compensador. Se utilizan como parámetros de entrada a las redes las posiciones angulares deseadas y el error de posición. Figura 3.33 – PID Neurocompensado Custom Neural Network de las articulaciones 3.5.3.4 - Resultados y simulaciones Los resultados obtenidos al aplicar este controlador al sistema son: a) b) Figura 3.34 – Gráfico de trayectoria deseada (a) frente a trayectoria obtenida (b). C. Neurocompensado El primer grafico cartesiano representa la comparativa entre la trayectoria deseada frente a la trayectoria obtenida. Se puede observar un control que comienza de manera adecuada con una leve perturbación propia del momento que rompe la inercia el manipulador que aumenta en el segundo segmento de subida. completa la trayectoria de manera optima. 60 Figura 3.35 – Gráfico de posiciones angulares deseadas frente a las obtenidas. C. Neurocompensado El grafico de posiciones angulares (grados) muestra la comparativa entre las posiciones angulares deseadas frente a las obtenidas en el tiempo (36 segundos de simulación). Se observa buen desempeño del controlador a excepción del momento en que comienza la segunda subida de la trayectoria donde el error aumenta. Figura 3.36 – Captura de CoppeliaSim trayectoria realizada por el manipulador. C. Neurocompensado En la imagen se puede observar una captura de CoppeliaSim de la trayectoria realizada por el manipulador diseñado mediante un control PID Neurocompensado. (la visualización de la simulación completa se encuentra en la presentación del proyecto) 61 3.5.4 - Implementación Control Par Calculado Mediante la aplicación de un controlador par calculado se busca analizar el comportamiento del manipulador al ser controlado por este. Se buscará observar tal como fundamenta la teoría de este tipo de control que emplea realimentación no-lineal para desacoplar las interacciones entre los eslabones del manipulador, y utiliza un regulador proporcional mas derivativo para controlar los actuadores, por lo tanto, se puede decir que realiza un control del tipo anticipativo. La ecuación que describe el funcionamiento del control par calculado es: P )𝑲𝒑 𝒒 P + 𝑴(𝒒𝒅 − 𝒒 P)𝑲𝒗 𝒒 Ṗ + 𝑴(𝒒)𝒒̈ 𝒅 + 𝑪(𝒒, 𝒒̇ )𝒒̇ + 𝒈(𝒒) 𝝉 = 𝑴(𝒒𝒅 − 𝒒 Figura 3.37 – Control par calculado en Simulink Para el modelo en Simulink se utilizaron bloques de función en los cuales se encuentra la matriz de inercia del modelo y la matriz de Coriolis ambos realimentados con los mismos parámetros del modelo. 3.5.4.1 - Resultados y simulaciones Los resultados obtenidos al aplicar este controlador al sistema son: a) b) Figura 3.38 – Gráfico de trayectoria deseada (a) frente a trayectoria obtenida (b). C. Par Calculado 62 El primer grafico cartesiano representa la comparativa entre la trayectoria deseada frente a la trayectoria obtenida. Se puede observar un control que comienza de manera adecuada casi sin perturbación al inicio que aumenta el error en el segundo segmento de subida y que completa la trayectoria de manera optima. Figura 3.39 – Gráfico de posiciones angulares deseadas frente a las obtenidas. C. Par Calculado El grafico de posiciones angulares (grados) muestra la comparativa entre las posiciones angulares deseadas frente a las obtenidas en el tiempo (36 segundos de simulación). Se observa buen desempeño del controlador. Figura 3.40 – Captura de CoppeliaSim trayectoria realizada por el manipulador. C Par Calculado En la imagen se puede observar una captura de CoppeliaSim de la trayectoria realizada por el manipulador diseñado mediante un control Par Calculado. (la visualización de la simulación completa se encuentra en la presentación del proyecto). 63 Capítulo 4 – Análisis de Desempeño 4.1 - Indicadores de desempeño estadísticos En el área de la robótica no hay un criterio estándar para medir el desempeño (performance) de un algoritmo de control. Nyquist, root-locus, Bode, etc. son criterios específicos de sistemas lineales los cuales no aplican a robots manipuladores debido a su naturaleza no lineal. Algunos investigadores miden el desempeño de algoritmos de control por inspección visual de las gráficas del error de posición y a su juicio determinan si el desempeño es adecuado. Sin embargo, dicha medición es muy subjetiva y queda a interpretación de este. Un criterio académico ampliamente aceptado en robótica para medir el desempeño de un algoritmo de control es por medio de la obtención de indicadores estadísticos de desempeño como lo son el RMS – media cuadrática residual (root mean square), el RSD – desviación estándar residual (residual standard deviation) y el AI – Índice de acuerdo (agreement of index). 4.1.1 - RMS – Media cuadrática Residual (Root Mean Square) El error cuadrático medio mide la cantidad de error que hay entre 2 conjuntos de datos. En otras palabras, compara un valor observado o obtenido con un valor predicho o deseado. Obteniendo la media de estos errores entre el número total de muestras. Esta normalizado entre 0 y 1. ∑1 (𝑜- − 𝑝- )0 𝑅𝑀𝑆 = C -2! 𝑛 𝑛 = 𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝐷𝑎𝑡𝑜𝑠 𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑜𝑠 𝑜! = 𝑉𝑎𝑙𝑜𝑟 𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑜 𝑖 − 𝑒𝑠𝑖𝑚𝑜 (𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑜, 𝑂𝑏𝑡𝑒𝑛𝑖𝑑𝑜) 𝑝! = 𝑉𝑎𝑙𝑜𝑟 𝑃𝑟𝑒𝑑𝑖𝑐ℎ𝑜 𝑖 − 𝑒𝑠𝑖𝑚𝑜 (𝐷𝑒𝑠𝑒𝑎𝑑𝑜, 𝑆𝑒𝑡 − 𝑝𝑜𝑖𝑛𝑡) 4.1.2 - RSD – Desviación Estándar Residual (Residual Standar Deviation) La desviación estándar residual, Cuantifica la dispersión de los datos con respecto a la media. Se obtiene como la raíz de la media de las desviaciones cuadráticas de cada dato con respecto a la media. Se normaliza entre 0 y 1. ∑1-2!(𝑜- − 𝑝- )0 𝑅𝑆𝐷 = C ∑1-2!(𝑜- )0 𝑛 = 𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝐷𝑎𝑡𝑜𝑠 𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑜𝑠 𝑜! = 𝑉𝑎𝑙𝑜𝑟 𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑜 𝑖 − 𝑒𝑠𝑖𝑚𝑜 (𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑜, 𝑂𝑏𝑡𝑒𝑛𝑖𝑑𝑜) 𝑝! = 𝑉𝑎𝑙𝑜𝑟 𝑃𝑟𝑒𝑑𝑖𝑐ℎ𝑜 𝑖 − 𝑒𝑠𝑖𝑚𝑜 (𝐷𝑒𝑠𝑒𝑎𝑑𝑜, 𝑆𝑒𝑡 − 𝑝𝑜𝑖𝑛𝑡) 64 4.1.3 - AI – Índice de acuerdo (Agreement of Index) El índice de acuerdo o índice de concordación (propuesto por Willmontt, 1981) es una medida del grado en que los datos estimados por el modelo (o valores deseados) están libres de error. Este índice varia de 0 a 1, siendo AI = 1 indica una perfecta concordancia entre los valores observados (obtenidos) y los estimados (deseados) y AI = 0 significa total discordancia. ∑1-2!(𝑜- − 𝑝- )0 𝐴𝐼 = 1 − 1 ∑-2!(|𝑜́ - | + |𝑝́ - |)0 Siendo, |𝑜́ B | = 𝑜B − 𝑜C |𝑝́ B | = 𝑝B − 𝑜C 𝑛 = 𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝐷𝑎𝑡𝑜𝑠 𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑜𝑠 𝑜! = 𝑉𝑎𝑙𝑜𝑟 𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑜 𝑖 − 𝑒𝑠𝑖𝑚𝑜 (𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑜, 𝑂𝑏𝑡𝑒𝑛𝑖𝑑𝑜) 𝑝! = 𝑉𝑎𝑙𝑜𝑟 𝑃𝑟𝑒𝑑𝑖𝑐ℎ𝑜 𝑖 − 𝑒𝑠𝑖𝑚𝑜 (𝐷𝑒𝑠𝑒𝑎𝑑𝑜, 𝑆𝑒𝑡 − 𝑝𝑜𝑖𝑛𝑡) 𝑜A = 𝑉𝑎𝑙𝑜𝑟 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑑𝑒 𝑙𝑜𝑠 𝑣𝑎𝑙𝑜𝑟𝑒𝑠 𝑜𝑏𝑠𝑒𝑟𝑣𝑎𝑑𝑜𝑠 4.2 - Análisis indicadores de desempeño controladores 4.2.1 - Obtención de indicadores de desempeño La obtención de los valores cuantitativos asociados a los sistemas de control no lineales se obtuvo mediante un script en matlab en el cual se realizó la programación (código) de las ecuaciones características de cada indicador (expuestas anteriormente en este informe) y fue aplicado a cada uno de los modelos simulados. Figura 4.1 – Script para la obtención de parámetros necesarios en el calculo de indicadores. 65 Figura 4.2 – Script para la obtención índices de desempeño. 4.2.2 - Resultados y gráficas Los resultados obtenidos luego de realizar los cálculos son: Figura 4.3 – Tabla de resultados indicadores de desempeño aplicados a los controladores. Figura 4.4 – Gráfico valores, indicador RMS obtenidos de los controladores (resultados entre 0 y 1). 66 Figura 4.5 – Gráfico valores, indicador RSD obtenidos de los controladores (resultados entre 0 y 1). Figura 4.6 – Gráfico valores, indicador AI obtenidos de los controladores (resultados entre 0 y 1). 67 4.3 - Conclusiones del Análisis 4.3.1 – Conclusión Indicador RMS Se sabe que la efectividad de un controlador se cumple llevando el error a un estado estacionario, en lo ideal error cero, pero dentro de un sistema dinámico real, y mas aun tratándose de un sistema manipulador robótico que es altamente no lineal se podría esperar una alta inestabilidad en los errores. El definir una trayectoria a seguir por el manipulador da pie a que el controlador no pueda mantener la estabilidad en el seguimiento de esta, llegando a tener errores que oscilen entre grandes valores. Para obtener un resultado cuantitativo del desempeño de nuestros controladores, es que se calculo el valor medio residual (RMS) de los valores de errores que tuvo cada articulación en el seguimiento de la trayectoria. Una vez obtenidos estos valores en los cuales se consideraron el valor total de muestras, se realizo el grafico anteriormente mostrado (Figura 4.4), en este, se puede visualizar en un rango entre 0 y 1 el valor medio de errores del manipulador, y lo que se puede observar es que ninguna articulación (de las 3 articulaciones) y en la aplicación de ningún controlador no lineal (4 controladores) el valor de error supero el 13% del rango, y mas aun si el valor medio mayor fue de 0,1248 es un valor casi igual a decir que el error fue nulo. Al comparar entre los controladores, bien se puede observar en las graficas de respuesta (Figuras 3.20 – 3.26 – 3.34 – 3.38) de estos que el controlador de lógica difusa fue el que obtuvo peor rendimiento, aunque aceptable, fue el que tuvo mayor inestabilidad al momento de seguir la trayectoria deseada. El controlador difuso dentro de los 4 controladores utilizados es una técnica de control muy solida y con una base matemática al nivel de las otras, y su naturaleza de sintonización y configuración esta ligada completamente al conocimiento experto, por ende, se puede concluir que a pesar de mostrar este, mayor grado de error esta totalmente comprobado que un mejor conocimiento del sistema permitiría una mejor configuración y por ende un mejor rendimiento al nivel de los otros controladores. También se puede mencionar los mejores rendimientos, entre los cuales tenemos el PID Neurocompensado y el control seno-coseno-hiperbólico (datos en figura 4.3), ambos con un excelente desempeño, menos de 1 % de error, y no es de extrañar ya que en el primer caso la compensación que le da la red neuronal al control PID esta dada de un aprendizaje de 100.000 posiciones de error, que es una altísima cifra de parámetros de entrenamiento con un sobre 90% en su asertividad en el aprendizaje, lo que fue un buen resultado y además se sabe que al tratarse de una red neuronal esta puede seguir aprendiendo del manipulador, de su trayectoria y mejorar aun mas su función. En el segundo caso, el del seno-coseno-hiperbólico se observa en base a la simulación y los resultados obtenidos, su alta estabilidad, lo cual responde al principio matemático de este, las funciones hiperbólicas tienden a minimizar los errores en cuanto el tiempo avanza hacia el infinito, por ende, se pudiese incluso esperar mejores resultados en un mayor tiempo de simulación o en un diseño de trayectoria mas extenso. Finalmente, para concluir sobre los RMS obtenidos, claramente los 4 controladores cumplen una buena y estable función de control sobre el manipulador. 68 4.3.2 – Conclusión Indicador RSD Al ubicar el valor de error medio obtenido del calculo del RMS al centro de una línea recta la cual representa el margen de errores posibles, se planteo lo siguiente, el error fue un valor bajo, casi cero, pero ¿siempre se mantuvo en ese rango?, ¿Cuál fue el máximo valor de error y el mínimo? para responder a estas interrogantes se calculo la desviación estándar residual (RSD) a los 4 controladores. Mediante este, se pudo observar los resultados visto en el grafico presentados anteriormente en este informe (Figura 4.5). se pudo concluir que los valores de error obtenidos en ningún caso (4 controladores aplicados) tuvo una desviación del valor medio del error mayor al 1% del valor del error, es decir, los errores obtenidos durante el seguimiento de la trayectoria siempre estuvieron bordeando valores de error cercanos a cero. Por otro lado, se pudo observar claramente en las graficas (Figuras 3.20 – 3.26 – 3.34 – 3.38), que todos los controladores tuvieron apreciables grados de inestabilidad en el seguimiento de la trayectoria al inicio de esta, lo cual pudiese contradecir lo expuesto anteriormente, pero se sabe que siempre es en el inicio de la trayectoria diseñada donde el manipulador debe romper la inercia del movimiento para comenzar a seguirla, por lo cual era de esperar esta inestabilidad propia de la respuesta de los sistemas de control. El RSD de los 4 controladores se mantuvo en valores bajos y muy aceptables ya que solo es en un mínimo periodo de tiempo (menos de 2 segundos) que ocurren estas inestabilidades, luego a lo largo de la trayectoria, el seguimiento de esta es casi perfecto, por lo cual, la acumulación de valores de errores siempre se mantiene bajo. Finalmente evaluando los controladores por separado, se puede concluir lo mismo que con el indicador de RMS, el controlado difuso fue dentro de los 4 el de mayor desviación, pero se mantiene el argumento explicativo a esto del parámetro anterior y los dos mejores rendimientos, PID neurcompensado y seno coseno hiperbólico también mantienen la misma explicación expuesta en el parámetro anterior (datos en figura 4.3). 4.3.3 – Conclusión Indicador AI El indicador AI, índice de acuerdo o concordancia es a nuestro criterio como conclusión el mejor indicador de los 3, si lo vemos aplicado a un manipulador robótico el cual debe seguir una trayectoria de manera exacta a la definida, Willmontt (creador de este parámetro) dio con la formula exacta para poder criticar el funcionamiento del sistema. Analizando un valor muy simple y definido, entre 0 y 1, cual es la concordancia entre los valores de posición angular que yo quiero que tome el manipulador y cuales fueron los que tomo, 0, para una total discordancia entre ambos valores, es decir, el manipulador mantuvo un error constante en el seguimiento de la trayectoria, y 1, una perfecta concordancia entre ambos valores, es decir, el manipulador siempre se mantuvo siguiendo la trayectoria de manera perfecta, si lo vemos cuantitativamente el error permanente bordeo el valor cero de error durante todo su recorrido. Se observa en la grafica de barras (Figura 4.6) que los 4 controladores bordean el 1, siendo incluso 1 en la mayoría de los controladores, lo cual era lo esperado, ya que analizando los anteriores indicadores, las graficas (Figura 4.4 – 4.5), y visualizando la simulación del manipulador, los 4 controladores no lineales claramente son totalmente aceptables en su función para el control de un sistema altamente no lineal como un manipulador robótico, todos siguieron la trayectoria definida de manera exacta en el mayor tiempo de simulación. 69 4.3.4 – Conclusión General Kelly y Santibáñez, si bien en su libro desarrollan un poco la aplicación de controladores no lineales para el control de movimiento de un manipulador robótico, solo pudimos ver en su texto teóricamente su aplicación. pero por fortuna, nuestra época de estudio no permitió acceder y aprender con herramientas digitales (Software) de cálculo y simulación que permiten llevar la teoría a una comprobación casi empírica y practica de la robótica. Gracias a esto, no solo pudimos desarrollar el funcionamiento de un manipulador robótico, sino que pudimos simular su funcionamiento de manera grafica e incluso visual, comprobando y dando respuesta a las interrogantes que nos planteamos como base de este proyecto. Si, es posible aplicar controladores no lineales a un manipulador robótico, y era de esperar, un sistema totalmente no lineal como este, presenta excelentes resultados al aplicar control no lineal. Lo pudimos comprobar y visualizar. Si bien los 4 controladores mantuvieron valores bajos de error y siguieron la trayectoria definida de manera estable se puedo observar pequeñas diferencias entre ellos lo que nos permite ordenarles en función de su desempeño: Los controladores con mejores índices de desempeño son el Seno Coseno Hiperbólico y el PID Neurocompensado, ambos tuvieron los valores de error mas cercanos a cero, Figura 4.7 – Tabla de resultados controladores mejor desempeño. Luego como en un nivel de desempeño medio podemos ubicar el controlador Par Calculado, con valores, Figura 4.8 – Tabla de resultados controlador desempeño medio. Y finalmente el controlador con el mas bajo desempeño es el controlador Lógica Difusa, Figura 4.9 – Tabla de resultados controlador desempeño bajo. 70 Figura 4.10 – Orden de controladores en base s su desempeño. La manera de ordenar los controladores en función de su desempeño que se expuso (Figura 4.10) permite a simple vista poder comparar entre ellos en base a los resultados obtenidos del análisis realizado en este proyecto y al sistema manipulador robótico diseñado para este fin. Cada uno de los controladores no lineales utilizados en este proyecto son robustas técnica de control con solidas bases teóricas y de múltiples y variados usos, por ende, este orden no pretende generalizar el rendimiento de estas, lo expuesto solo hace alusión a su desempeño al ser aplicadas en este proyecto. Un ultimo planteamiento que deja Kelly y Santibáñez, habla de lo indispensable que es para el desarrollo de futuras aplicaciones especificas, que quizás, inclusive, no pueden ser llevadas a cabo mediante los robots comerciales existentes, plantearse el reto y la importancia del desarrollo de este tema. quien sabe la gran cantidad de avances que viviremos en el futuro. Con esto planteamos la ultima y general conclusión para nosotros a raíz del desarrollo de este proyecto. en lo ideal para nosotros este estudio y análisis podría quedar como base de conocimiento para las futuras generaciones de estudiantes de esta carrera, y sirva para el desarrollo de aplicaciones, soluciones u investigaciones en el área de la automatización, el control industrial y por supuesto la robótica. 71 Referencias Bibliográficas • • • • • • • • • • • • • • • • • • • • • • Rafael Kelly, Víctor Santibáñez. Control de Movimiento de Robots Manipuladores. PEARSON Educación S.A. 2003. Antonio Barrientos, Luis Felipe Peñín, Carlos Balaguer, Rafael Aracil. Fundamentos de Robótica, 2da edición. McGraw-Hill/Interamericana de España. 2007. Roger Miranda Colorado. Cinemática y Dinámica de Robots Manipuladores. Alfaomega. 2016. John J. Craig. Robótica, 3ra edición. PEARSON Educación S.A. 2006. Aníbal Ollero Baturone. Robótica Manipuladores y robots móviles. Marcombo Boixareu Editores. 2001. Pedro Ponce Cruz. Inteligencia Artificial. Alfaomega. 2010. Fernando Reyes Cortes. Robótica Control de Robots Manipuladores. Alfaomega. 2011. Bonifacio Martin del Brío, Alfredo Sanz Molina. Redes Neuronales y Sistemas Difusos, 2da edición. Alfaomega Ra-Ma. 2002. Sitio: UdeSantiagoVirtual, Curso: Aprendiendo con la robótica industrial entretenida, Libro: 5.1 Planificación de Trayectorias. 2021. URL: http://www.udesantiagovirtual.cl/moodle2/mod/book/view.php?id=24819#:~:text=La%20 planificaci%C3%B3n%20de%20trayectorias%20es,un%20marco%20de%20referencia %20absoluto. Informe de caso una guía Practica. Estructura A. URL: www.uc.cl Hebertt Sira-Ramírez, Richard Márquez, Francklin Rivas-Echeverría, Orestes LlanesSantiago. Control de Sistemas no Lineales, Linealización aproximada, extendida, exacta. 2004. Beatriz Ibet Lozada García, paulo Cesar Sentelhes. Modelos de estimación de las temperaturas promedio de la mínima, máxima y media diaria para la región andina de Venezuela. 2008. Scielo. URL: http://ve.scielo.org/scielo.php?script=sci_arttext&pid=S0002-192X2008000200005 Luis E. Espinoza Maya, Jorge L. Barahona Avalos, Fernando Reyes Cortes. Nuevos controladores de posición para robot manipuladores basados en funciones hiperbólicas. Facultad de Ciencias de la Electrónica BUAP. URL: https://www.researchgate.net/publication/267207149_NUEVOS_CONTROLADORES_ DE_POSICION_PARA_ROBOT_MANIPULADORES_BASADOS_EN_FUNCIONES_HI PERBOLICAS Cort J. Willmont, Scott M. Robeson, Kenji Matsuura. Short Communication A Refined Index Of Model Performance. RMets. 2012. Eugenio Tacconi, Ricardo Mantz, Jorge Solsona, Pablo Puleston. Controladores Basados en Estrategias PID.LEICI, Facultad de Ingeniería, UNLP. 2005. Claudio Urrea Oñate, Cristóbal Carreño Mosqueira, Enrique San Juan Urrutia, Marcela Jamett Domínguez. Comparación de algoritmos para el control de movimiento en manipulador robotizado de 2 GDL. Grupo de Automática. Departamento de Ingeniería Eléctrica, Universidad de Santiago de Chile, 2014. Eugenio Yime Rodríguez, Javier Roldan Mckinley, José Villa Ramírez. Control por par calculado de un robot paralelo planar de 2-RR. 2017. Samir Kouro R, Rodrigo Musalem M. Control Mediante Lógica Difusa. John Kern M, Claudio Urrea O. Modelamiento y Simulación de un robot redundante de tipo manipulador SCARA. Departamento de Ingeniería Eléctrica, Universidad de Santiago de Chile. 2011. Luis Rodríguez Ojeda. Probabilidad y Estadística Básica para Ingenieros. Instituto de Ciencias Matemáticas Escuela Superior Politécnica del Litoral, ESPOL, Guayaquil, Ecuador, 2007. Claudio Urrea, John Kerna, Exequiel Álvarez, Diseño e implementación de estrategias de control tolerantes a fallas para robots manipuladores no activados. Grupo de Automática, Departamento de Ingeniería Eléctrica, Universidad de Santiago de Chile. IFR, International Federation of Robotics, URL: https://ifr.org/ 72