Full text
MÁSTER UNIVERSITARIO EN INGENIERÍA DE CONTROL, AUTOMATIZACIÓN Y ROBÓTICA TRABAJO FIN DE MÁSTER DISEÑO, MODELADO Y CONTROL DE ROBOT PARALELO NEUMÁTICO RECONFIGURABLE Estudiante: Pousa Piñeiro, Samuel Director/Directora: Artaza Fano, Fernando Codirector/Codirectora: Curso: 2022-2023 Fecha: Bilbao, 20, septiembre, 2023
Resumen El empleo de bancos de pruebas para generar nuevos conocimientos científicos y tecnológicos es uno de los pilares de la investigación. En el presente Trabajo Fin de Máster, se aborda el diseño, modelado y control de un robot paralelo planar 3RRR que pueda servir como banco de ensayos para el testeo y exploración de nuevos algoritmos de control y de técnicas de aprendizaje autónomo. Como elemento de actuación se emplean músculos neumáticos artificiales. El robot es reconfigurable, de forma que es posible modificar fácilmente el número, la posición y el tamaño de los músculos y elementos rígidos que lo conforman, obteniendo así una amplia variedad de relaciones cinemáticas y dinámicas. Previamente al diseño del prototipo, se realiza un estudio sobre la robótica paralela y sobre el funcionamiento de los actuadores de tipo McKibben. Para el diseño y simulación de la solución se utiliza el entorno de SimscapeSimulink, obteniendo buenos resultados de posicionamiento y seguimiento de trayectorias por parte del robot. Además, se propone una lista de componentes y consideraciones para su construcción física. Palabras clave: Músculos neumáticos; Simscape; Robótica paralela; Robot planar 3RRR; Modelado y Simulación; Banco de ensayos. Abstract The use of test benches to generate new scientific and technological knowledge is one of the pillars of research. This Master's thesis deals with the design, modelling and control of a 3RRR planar parallel robot that can serve as a test bench for testing and exploring new control algorithms and autonomous learning techniques. Artificial pneumatic muscles are used as the actuation element. The robot is reconfigurable, so that it is possible to easily modify the number, position and size of the muscles and rigid elements that make it up, thus obtaining a wide variety of kinematic and dynamic relationships. Prior to the design of the prototype, a study of parallel robotics and the operation of McKibben-type actuators was carried out. The Simscape-Simulink environment is used for the design and simulation of the solution, obtaining good results in terms of positioning and trajectory tracking by the robot. In addition, a list of components and considerations for its physical construction is proposed. Keywords: Pneumatic muscles; Simscape; Parallel robotics; 3RRR planar robot; Modelling and simulation; Test bench. Laburpena Ezagutza zientifiko eta teknologiko berriak sortzeko saiahuntza-bankuak erabiltzea ikerketaren euskarrietako bat da. Master Amaierako Lan honetan, 3RRR robot paralelo planar bat diseinatu, modelatu eta kontrolatzeari ekiten zaio, kontrol-algoritmo berriak eta ikaskuntza autonomoko teknikak probatzeko eta esploratzeko saiakuntza-banku gisa balio dezakeena. Eragingailu gisa muskulu pneumatiko artifizialak erabiltzen dira. Robota birkonfiguratu egin daiteke, eta, beraz, erraz alda daitezke hura osatzen duten muskulu eta elementu zurrunen kopurua, posizioa eta tamaina; horrela, erlazio zinematiko eta dinamiko ugari lortuz. Prototipoa diseinatu aurretik, robotika paraleloari eta McKibben motako eragingailuen funtzionamenduari buruzko azterketa egiten da. Soluzioa diseinatzeko eta simulatzeko Simscape-Simulink ingurunea erabiltzen da, eta emaitza onak lortzen dira robotaren posizionamenduaren eta ibilbideen jarraipenaren aldetik. Gainera, haien eraikuntza fisikorako osagaien eta kontsiderazioen zerrenda bat proposatzen da. Hitz gakoak: Muskulu pneumatikoak; Simscape; Robotika paraleloa; 3RRR robot planarra; modelatzea eta simulazioa; saiakuntza-bankua.
AGRADECIMIENTOS
Ya han pasado 2 años desde que empecé la aventura de venir a Bilbao a hacer un máster, y como todo, toca cerrar una etapa e iniciar otra. Quiero darle las gracias a todos aquellos y aquellas que me han ayudado a que está experiencia haya sido tan gratificante tanto a nivel personal como profesional. Quiero agradecerle a mi director del proyecto en Ikerlan, Iker Elorza, los meses de consejos y ayuda para la elaboración de este trabajo, al propio Ikerlan y Carlos Calleja por la oportunidad y a Fernando Artaza por ser mi tutor desde la escuela. Especiales gracias a esas personas que ahora son amigos, que desde el primer día en clase me arroparon y me hicieron sentir uno más; Eskerrik asko lagunak! E como non, cun pouco de morriña, moitas grazas ós que sempre están aí dende o meu fogar. Grazas mamá, papá e Pablo por sempre darme folgos cando máis o preciso. Non me esquezo de volas dúas tampoco, Eva e avoa.
INDICE DE CONTENIDOS
Contenido 1 INTRODUCCIÓN ................................................................................................... 2 1.1 Contexto actual. .................................................................................................... 2 2 OBJETIVOS Y ALCANCE ..................................................................................... 5 2.1 Objetivos................................................................................................................ 5 2.2 Alcance .................................................................................................................. 6 3 ESTADO DEL ARTE ............................................................................................. 8 3.1 Introducción .......................................................................................................... 8 3.2 Análisis y selección de la arquitectura del banco de pruebas ............................... 8 3.2.1 Robots paralelos ................................................................................................ 9 3.2.2 Arquitectura seleccionada .............................................................................. 14 3.3 El robot paralelo planar 3RRR ............................................................................. 15 3.3.1 Problema de posición ...................................................................................... 16 3.3.2 Problema de velocidad .................................................................................... 19 3.3.3 Problema de aceleración ................................................................................. 20 3.3.4 Análisis de singularidades ............................................................................... 21 3.3.5 Análisis del espacio de trabajo (Workspace)................................................... 22 3.4 Músculos neumáticos artificiales ........................................................................ 24 3.4.1 Construcción y funcionamiento del músculo .................................................. 27 3.4.2 Análisis de tipos de músculos neumáticos ...................................................... 30 3.4.3 Selección del músculo ..................................................................................... 33 3.5 Modelo matemático de los músculos neumáticos .............................................. 34 3.5.1 Chou-Hannaford, el modelo elegido ............................................................... 38 3.6 Control ................................................................................................................. 39 4 DISEÑO DE LA SOLUCIÓN .............................................................................. 42 4.1 Introducción. ....................................................................................................... 42 4.2 Diseño del robot neumático paralelo planar 3RRR ............................................. 42 4.2.1 Configuración antagonista .............................................................................. 43 4.2.2 Requisitos y consideraciones para el diseño del robot planar 3RRR .............. 45 4.3 Análisis de componentes necesarios para la construcción del robot planar 3RRR y dimensionamiento ................................................................................................................. 45
4.3.1 Músculo neumático ......................................................................................... 46 4.3.2 Resorte del sistema antagonista ..................................................................... 47 4.3.3 Válvula proporcional reguladora de presión ................................................... 48 4.3.4 Tarjeta de corriente de Beckhoff .................................................................... 52 4.3.5 Sensor de Presión ............................................................................................ 53 4.3.6 Tubería suministro de aire .............................................................................. 53 4.3.7 Unidad de mantenimiento .............................................................................. 54 4.3.8 Sensor posición angular .................................................................................. 54 4.3.9 Rueda polea unión actuador-cadena cinemática robot .................................. 55 4.3.10 Cuerpos rígidos .............................................................................................. 56 4.3.11 Juntas rotativas ............................................................................................. 57 4.4 Programación de código en Matlab .................................................................... 58 4.4.1 Estructura Parámetros .................................................................................... 58 4.4.2 Scripts de la cinemática del robot ................................................................... 58 4.4.3 Script principal (“Script_main”) ....................................................................... 63 4.4.4 Workspace ....................................................................................................... 63 4.5 Modelado en Simscape-Simulink ........................................................................ 65 4.5.1 Principales bloques y parametrización ........................................................... 65 4.5.2 Cuerpos rígidos y librería Multibody ............................................................... 73 4.5.3 Modularidad y modelado de las cadenas cinemáticas ................................... 79 4.6 Modelo final robot planar 3RRR .......................................................................... 83 4.6.1 Reconfigurabilidad del robot planar 3RRR ...................................................... 84 4.6.2 Control Implementado .................................................................................... 87 5 RESULTADOS Y ANÁLISIS .............................................................................. 90 5.1 Introducción. ....................................................................................................... 90 5.2 Resultados y Análisis ........................................................................................... 91 5.2.1 Posicionamiento en x=0,45; y=0,45 ................................................................ 91 5.2.2 Posicionamiento en x=0,48; y=0,48: Caso de preposicionamiento del resorte 94 5.2.3 Posicionamiento en x=0,5; y=0,5 .................................................................... 96 5.2.4 Otros puntos del espacio de trabajo ............................................................... 99 5.2.5 Generación de trayectorias ........................................................................... 100 6 CONCLUSIONES .............................................................................................. 105 6.1 Conclusiones ...................................................................................................... 105 6.2 Acciones futuras ................................................................................................ 106 7 REFERENCIAS BIBLIOGRÁFICAS .............................................................. 108
ANEXO I: CÓDIGOS SCRIPTS MATLAB ........................................................... 116 A: Estructura Parámetros .............................................................................................. 116 B: Código Problema Posición Inverso ........................................................................... 118 C: Código Matriz Jacobiana (J) y matriz ecuaciones de cierre (f) .................................. 122 D: Código Problema Posición Directo ........................................................................... 123 E: Código Main Script .................................................................................................... 125 F: Código Workspace .................................................................................................... 126 G: Código Problema Velocidad directo ......................................................................... 128 H: Código Problema Velocidad inverso ......................................................................... 130 I: Código jacobianas resolución problema de velocidad .............................................. 132
INDICE DE FIGURAS
CAPITULO 1 INTRODUCCIÓN .
Capítulo 1: Introducción 2 1 Introducción El presente trabajo Fin de Máster se ha desarrollado dentro del programa de cooperación educativa entre la Escuela de Ingeniería de Bilbao y el centro tecnológico IKERLAN S. Coop. (Figura 1), situado en Arrasate (Gipuzkoa). Esta cooperativa, es miembro de la Coorporación Mondragón y del Basque Research and Technology Alliance (BRTA) del Gobierno Vasco. La aparición de nuevas tecnologías y el crecimiento de la Industria 4.0, hacen necesaria la apertura de nuevas vías de investigación y desarrollo para satisfacer las crecientes demandas del mercado. Figura 1: Logo de Ikerlan[1] Gracias a la labor realizada en centros tecnológicos como Ikerlan, se consiguen nuevos conocimientos que luego podrán ser aplicados en diferentes campos científicos o tecnológicos. Al realizar una labor de investigación sobre una determinada temática, es necesario estudiar y analizar la documentación existente sobre la misma, y a su vez realizar pruebas que den lugar a ese nuevo conocimiento o lo verifiquen. Dichas pruebas, pueden realizarse a nivel software mediante simulaciones que partan de las ecuaciones que definen a un sistema, pero en ocasiones es necesario disponer de una representación física del sistema o proceso para poder trabajar con unos datos que se ajusten más a la realidad; esta representación física, se denomina comúnmente maqueta o banco de pruebas (“Test Bench”). Existen diversas empresas que se dedican a la realización de bancos de ensayo para su uso en laboratorios como es el caso de Inteco (especializados en sistemas de estudio de algoritmos de control) [2] o Gunt [3]. Estas maquetas, pueden ser una representación de un sistema a escala como por ejemplo un control de nivel de líquido, un sistema ABS de un coche o el sistema de propulsión de un helicóptero, pero también pueden emplearse para realizar investigación en otros campos que no sean para los que fueron diseñados inicialmente. Sin embargo, en ocasiones se busca un banco de pruebas muy concreto o con unas características particulares para un determinado tipo de ensayo o prueba. Esto hace que se valore la realización insitu del prototipo deseado, pudiendo modificarla y utilizando los recursos que el investigador considere oportunos para alcanzar sus hitos. 1.1 Contexto actual. En la actualidad, es común que, en lugar de realizar el encargo de un banco de pruebas a una empresa externa, sea el propio centro tecnológico el encargado de realizar su propio banco en base a los conocimientos que posee y con sus propios medios. Una de las ventajas que presenta esto, es que se puede llegar a un ahorro de los costes de producción y permite una mayor flexibilidad al poder ajustar las características del modelo según se desee y sin intermediarios, ahorrando tiempo.
Capítulo 1: Introducción 3 Como se ha comentado, el presente trabajo se ha desarrollado en Ikerlan, dentro del equipo de investigación de Control Inteligente del departamento de Control y Monitorización. Dicho equipo se dedica, entre otras cosas, a la modelización de sistemas dinámicos complejos y técnicas avanzadas de control, al modelado y control integral de componentes, aerogeneradores y parques eólico; diseño de metodologías para la programación estandarizada del control sobre plataformas comerciales, etc. Actualmente, se quiere profundizar en la investigación y testeo de nuevos algoritmos de control y en técnicas de aprendizaje autónomo, pero para ello es necesario un banco de pruebas que lo permita. En el instante de inicio de este proyecto, el centro no dispone de ninguna maqueta para realizar ensayos de este tipo, por lo que existe la necesidad de diseñar un prototipo que satisfaga las exigencias del equipo. Para lograrlo, se hará uso tanto de los equipos informáticos disponibles como de las licencias de Software de que dispone Ikerlan.
CAPITULO 2 OBJETIVOS Y ALCANCE
Capítulo 2: Objetivos y Alcance 5 2 Objetivos y alcance 2.1 Objetivos El objetivo principal de este trabajo consiste en diseñar un banco de ensayos para el testeo e investigación de nuevos algoritmos de control y que a su vez sirva de banco de pruebas para técnicas de aprendizaje autónomo. Para la realización del proyecto, se deben tener en cuenta los requisitos de diseño proporcionados por Ikerlan. Durante el transcurso de este, no se han tenido en cuenta limitaciones estructurales más allá del tamaño para proponer posibles diseños del banco de prueba. Inicialmente, se realizaron diferentes propuestas de modelos (los cuales se comentarán en el siguiente capítulo), observándose que las estructuras y el posible funcionamiento tienen similitudes con las de algunos robots paralelos. De este hecho, viene el título del presente Trabajo Fin de Máster. Entre los principales requisitos solicitados, destacan particularmente dos: − Empleo de músculos neumáticos de tipo McKibben: estos actuadores son ligeros, tienen un coste bajo, son compactos y brindan una alta relación potenciapeso con una larga vida útil. En el capítulo 3, se tratarán de forma más específica y se explicará más en detalle su funcionamiento. − Reconfigurabilidad: debe ser posible modificar fácilmente el número, la posición y el tamaño de los músculos neumáticos, así como el tamaño y posición de los diferentes elementos de unión del robot, de forma que se puedan obtener una amplia variedad de relaciones cinemáticas y dinámicas. De cara a simplificar un poco los objetivos de diseño del banco experimental, se limita el control a 3 grados de libertad; la posición en X e Y, y el giro (θ) en torno al eje Z del elemento central. Para desarrollar el modelo teórico y realizar las pruebas de simulación apropiadas, así como facilitar la comprensión y estudio de los resultados obtenidos de las mismas, se emplea el software de cálculo de Matlab, junto al entorno de diagramas de bloque que se utiliza para diseñar sistemas de Simulink y Simscape. A su vez, para la consecución del objetivo principal de este proyecto, se deben cumplir los siguientes objetivos parciales: • Análisis de estudios previos, bibliografía y estudio de la viabilidad de los diferentes diseños. • Identificación de las funciones que definen el funcionamiento del músculo neumático. • Dimensionado y búsqueda de componentes para el banco de pruebas, así como la obtención de las ecuaciones que lo definen. • Desarrollo de los modelos y simulaciones mediante el empleo de Matlab, Simulink y Simscape. • Validación de los modelos y evaluación de los resultados obtenidos, así como de su funcionalidad. Correcto posicionamiento del elemento central de la maqueta.
Capítulo 2: Objetivos y Alcance 6 2.2 Alcance El alcance de este proyecto es el completo desarrollo del robot paralelo neumático para su utilización como banco de pruebas en el laboratorio de Control Inteligente de Ikerlan. Su desarrollo, lleva consigo la obtención de conocimientos en el campo de los actuadores neumáticos y de la robótica paralela. Para la consecución de todos los objetivos se dispone de aproximadamente 6 meses (dando comienzo el 15 de Febrero de 2023 y finalizando el 31 de agosto del mismo año) los cuales no son suficientes para poder llegar a realizar la construcción física de la maqueta neumática, pero sí permiten obtener diferentes modelos y configuraciones con posibilidad de ser simuladas. La elaboración de este proyecto es el primer paso necesario para la elaboración física del robot, que servirá posteriormente para el estudio de algoritmos avanzados de control.
CAPITULO 3 ESTADO DEL ARTE
Capítulo 3: Estado del Arte 8 3 Estado del Arte 3.1 Introducción Como se ha comentado en la introducción del presente trabajo, existen empresas que se dedican a la realización de maquetas experimentales, pero en este caso, se ha preferido reducir costes y generar el conocimiento de forma interna. Previamente al desarrollo del proyecto, se estudia: la existencia de bancos de pruebas de control de otros autores, el diseño de robots paralelos, el funcionamiento de los músculos neumáticos y de trabajos en los cuales se emplean estos. Además, es de interés el estudio de otras tecnologías disponibles, así como de los diferentes componentes y materiales que se podrían utilizar para construir el robot. La realización de este estudio previo es fundamental para comprender cómo será el funcionamiento del robot según la configuración que adopte, y cómo se relacionan los diferentes componentes entre sí para alcanzar la posición deseada. 3.2 Análisis y selección de la arquitectura del banco de pruebas La elección de la arquitectura es el primer problema que se debe tratar, dado que su diseño y funcionamiento, estarán condicionados por ello. Como se ha visto en la introducción, las estructuras para estudiar algoritmos de control y aprendizaje autónomo no tienen una forma fija y son flexibles. En [4] se tiene un ejemplo práctico con el banco de ensayos “RT580 Control Systems” de Gunt Hamburg, y en [5], otro ejemplo de un artículo basado en el modelado y el diseño de un control reset a partir del prototipo de la empresa Inteco. Partiendo de los requisitos de empleo de músculos neumáticos como el de actuación y el de reconfigurabilidad, se proponen distintas soluciones que puedan funcionar como bancos de prueba para la realización de ensayos de control. En primer lugar, se propone la realización de un banco basado en la forma y funcionamiento de una grúa pórtico (tiene 3 grados de libertad, pudiendo posicionar una carga según unas coordenadas cartesianas en los ejes x, y, z). En él se tienen 3 músculos unidos por un extremo a la mesa y al circuito neumático, y por otro a una carga central, la cual se desea posicionar. Los músculos pueden moverse y fijarse de forma independiente en cualquier punto de la mesa, permitiendo que se puedan adoptar diferentes configuraciones iniciales en función de las necesidades del usuario. Esta arquitectura, presenta un problema relacionado con la fuerza de flexión y torsión a la que se verían sometidos los músculos neumáticos, los cuales no están diseñados para realizar controles de cargas que exijan esa clase de esfuerzos. Además, la realización y el control del sistema tiene una complejidad que no se desea alcanzar con este proyecto, por lo que se opta por buscar más opciones. Si se observa la forma que tiene, se asemeja en cierto modo a un robot paralelo delta como el que se muestra en la Figura 2.
Capítulo 3: Estado del Arte 9 Figura 2: Ejemplo de robot Delta de Omron[6] Partiendo de esta observación, se opta por realizar un banco de pruebas basado en la robótica paralela, el cual consiga integrar el empleo de músculos neumáticos de forma satisfactoria. 3.2.1 Robots paralelos Una definición general que podría darse a la robótica paralela podría ser la siguiente: Un robot paralelo es un mecanismo de cadena cinemática cerrada, formado por un efector final con n grados de libertad y una base fija, unidos entre sí por al menos dos cadenas cinemáticas independientes [7]. El uso de cadenas cinemáticas cerradas como manipuladores, es una opción que se lleva explorando desde incluso antes de la existencia del término de “Robot”. Se pueden poner de ejemplo algunas teorías anteriores al siglo XX, como podrían ser los estudios de Cauchy (1813) sobre la estructura y el movimiento de poliedros rígidos [8], o los estudios de Lebesgue (1867) y Bricard (1897) sobre el octaedro articulado [9]. No sería hasta el año 1931, cuando se patentó (pero no se llegó a construir) el primer mecanismo paralelo. Este mecanismo, el cual se puede observar en la Figura 3, fue inventado por James E. Gwinnett (1928) [10]. Esta plataforma giratoria adaptable, podría inclinarse en cualquier dirección en combinación con una imagen en movimiento, de forma que se acentúe la sensación de realismo y acción durante el visionado de las películas o de otro tipo de espectáculos de entretenimiento.
Capítulo 3: Estado del Arte 10 Figura 3: Mecanismo paralelo Gwinnett 1928 A partir de mitad de siglo, se comienzan a establecer los principios básicos que definen el funcionamiento de los mecanismos paralelos, desde un punto de vista práctico. Uno de los padres de la robótica paralela, y que sentó las bases de los desarrollos futuros, fue el ingeniero inglés Eric Gough. En el año 1947, Gough [11] diseñó el hexápodo octaédrico de longitud de brazos variable para la empresa Dunlop, en la cual trabajaba. Este mecanismo, se creó con el fin de realizar pruebas de desgaste sobre los neumáticos producidos. Al colocar la rueda sobre la plataforma móvil, se puede orientar y posicionar según se requiera al cambiar la longitud de los actuadores. En la Figura 4 se muestra la versión original de 1954, y a la derecha, la evolución que ha tenido hasta el año 2000. Figura 4: Hexápodo octaédrico de Gough: 1954(derecha) y 2000(izquierda)[12] Tras ver el éxito de su construcción y utilidad, el mecanismo de Gough sirvió como referencia para que otros ingenieros vieran la viabilidad de seguir profundizando en el estudio de los mecanismos paralelos. Durante la década de los 60, el desarrollo de la industria aerodinámica, el aumento del coste del entrenamiento de los pilotos, junto a la necesidad de testear nuevos equipamientos sin tener que volar, incentivó la búsqueda de mecanismos con varios grados de libertad que pudieran simular una plataforma pesada con grandes dinámicas
Capítulo 3: Estado del Arte 17 lineal al estar sujetas a relaciones trigonométricas. Para comprenderlo mejor, se realiza una simplificación de la Figura 8 y que se recoge en la siguiente. Figura 9: Simplificación esquema cinemático robot 3RRR La ecuación de cierre o de lazo se representa como: 𝑓𝑖(𝑥,𝑞𝑖)=0𝑛𝑑×1 ( 7) Al ser un robot planar, el valor de nd es 2. Para que el problema esté totalmente definido, se debe cumplir: 𝑛+𝑛𝑎=𝑚 ( 8) Donde: • n: Número de Grados de Libertad del mecanismo. • na: Número de articulaciones pasivas. • m: Dimensión de la ecuación vectorial de cierre. En este caso, como se tiene que tanto el número de grados de libertad de un robot planar 3RRR como el número de articulaciones pasivas es 3, el valor de m es 6. Este valor es correcto, dado que se tienen 3 cadenas cinemáticas cada una de las cuales tienen 2 ecuaciones de cierre referidas a las componentes x e y. Partiendo de la cadena cinemática mostrada en Figura 9, se busca la ecuación de cierre general que modela cualquiera de los 3 lazos. Se empieza por el punto de anclaje de la cadena serie sobre la base fija Ai, y se sigue avanzando hacia el punto P a través de los diferentes vectores que están asociados a cada cuerpo rígido y articulación, de manera que la suma total sea 0. La siguiente ecuación representa la ecuación de lazo general: 𝑎𝑖+𝐿𝑖 +𝑙𝑖 −𝑑𝑖 −𝑃=0 ( 9) Agrupando las ecuaciones de cierre de las 3 cadenas cinemáticas del robot, se llega a la ecuación vectorial de cierre, la cual modela las restricciones a las que está sometido. Se debe tener en cuenta el giro de la plataforma móvil, el cual modifica el valor del vector di, siendo este
Capítulo 3: Estado del Arte 18 último el vector que define la posición de P respecto de Bi. Si se desarrolla la ecuación 9, se obtiene la expresión matricial de cada cadena serie: [𝑎𝑖𝑥 𝑎𝑖𝑦]+𝐿𝑖[cos(𝑞𝑎𝑖) 𝑠𝑒𝑛(𝑞𝑎𝑖)]+𝑙𝑖[cos(𝑞𝑎𝑖+𝑞𝑛𝑎𝑖) 𝑠𝑒𝑛(𝑞𝑎𝑖+𝑞𝑛𝑎𝑖)]−𝑅𝑜𝑡𝑧(𝜃)[𝑑𝑖𝑥 𝑑𝑖𝑦]−[𝑋 𝑌]=[0 0] ( 10) Rotz(θ) es la matriz de rotación en torno al eje z: 𝑅𝑜𝑡𝑧(𝜃)=[cos(𝜃) −𝑠𝑒𝑛(𝜃) 𝑠𝑒𝑛(𝜃) cos(θ)] ( 11) 3.3.1.1 Cinemática inversa El análisis de la cinemática inversa en el caso de los robots planares 3RRR con la primera articulación activa, da lugar a 8 posicionamientos o soluciones diferentes para alcanzar un mismo punto dentro del espacio de trabajo (esto se denomina modos de trabajo). Su estudio es importante, dado que a partir de las variables de salida X del TCP, permite encontrar el valor de las variables articulares actuadas qa que se deben dar para posicionar la plataforma móvil en el lugar deseado. La resolución que se lleva a cabo es por medio del método geométrico, pues permite encontrar el valor de los ángulos necesarios sin tener que calcular el valor angular de las articulaciones pasivas. Para obtener el valor de las articulaciones activas qai para una posición y orientación determinados del elemento final, se parte de la ecuación 9, despejando el valor de li tal que: 𝑙𝑖 =𝑅𝑜𝑡𝑧(𝜃)𝑑𝑖 +𝑃−𝑎𝑖−𝐿𝑖 ( 12) Descomponiendo el vector de li es sus componentes en x e y, y elevándolo al cuadrado, se elimina la dependencia de las articulaciones pasivas, por lo que simplemente se tiene que despejar el valor de las articulaciones activas, quedando la función final tal que: 𝑙𝑖2=(𝑅𝑜𝑡𝑧(𝜃)𝑑𝑖 +𝑃 −𝑎𝑖 −𝐿𝑖 )𝑇(𝑅𝑜𝑡𝑧(𝜃)𝑑𝑖 +𝑃 −𝑎𝑖 −𝐿𝑖 ) ( 13) El valor de las articulaciones pasivas se puede obtener por medio de algún método geométrico como por corte de circunferencias, o descomponiendo las cadenas cinemáticas en triángulos y empleando la trigonometría. 3.3.1.2 Cinemática directa El problema cinemático directo calcula el valor que tendrán las variables de salida (posición y orientación del elemento final) para unos determinados valores de las variables articulares actuadas qa. Como se explicó en el apartado 3.2.1, la resolución de la cinemática directa de los robots paralelos es compleja, y no tiene solución analítica en el caso general. Igual que en el problema de cinemática inversa había múltiples soluciones para un mismo punto, en este caso sucede lo mismo y reciben el nombre de modos de ensamblaje. Existen varios métodos para resolver esta cuestión, como pueden ser: el método geométrico, basado en la ecuación vectorial de cierre (ecuación 10), pero solo es aplicable en casos muy concretos; mediante sensorización redundante, lo cual significa sensorizar algunas de las articulaciones pasivas, de cara a obtener más información del sistema; el método de Newton-
Capítulo 3: Estado del Arte 19 Raphson, el cual es el más utilizado dado que cubre un mayor número de casos, pero requiere de mayor coste computacional. El método de Newton-Raphson es un procedimiento iterativo y abierto que permite hallar las raíces de una función a partir de una semilla (un valor numérico cercano a la posible raíz) [24]. En general, converge rápidamente y es muy eficiente, menos en el caso de que existan raíces múltiples. Para resolver el problema cinemático directo, se estiman posiciones a partir de una semilla X0 mediante la función: 𝑥𝑘+1 =𝑥𝑘−𝐽𝑘 −1𝑓(𝑥𝑘,𝑞𝑎) ( 14) Como se ve en la ecuación 14, el cálculo de las posiciones siguientes depende de las ecuaciones de cierre y del cálculo del jacobiano con respecto al espacio de salida como se muestra en la ecuación 15: 𝐽𝑘=𝜕𝑓(𝑥,𝑞𝑎) 𝜕𝑥 |𝑥=𝑥𝑘 ( 15) Además de una semilla, se establece una condición de parada, por la cual, si la diferencia entre el valor siguiente iterado y el actual son muy cercanos, se ha llegado al punto buscado. Puede ocurrir también que la Jacobiana tienda a 0, lo cual significaría que se está cerca de una singularidad, por lo que se saldría de la iteración. Tras aplicar el método de Newton-Raphson, también se pueden calcular los valores de las variables articulares no actuadas qna de la misma forma que se procedió para la resolución de la cinemática inversa. 3.3.2 Problema de velocidad Para resolver el problema de velocidad, es necesario resolver antes el de posición. Este problema, establece la relación entre las velocidades de las variables articulares y las velocidades del elemento final. El problema de velocidad es lineal respecto del resto de velocidades y se caracteriza por el uso de Jacobianas, por lo cual es necesario el empleo de la ecuación de cierre de cada cadena cinemática (Γ(x,qi)). La ecuación general de velocidad del lazo es: 𝜕Γ𝑖(𝑥,𝑞𝑖) 𝜕𝑞𝑖𝑞𝑖 +𝜕Γ𝑖(𝑥,𝑞𝑖) 𝜕𝑥 𝑥=0 ( 16) Antes de continuar y presentar las ecuaciones que resuelven el problema de velocidad directo e inverso, se presentan qué son cada una de las jacobianas: • Ji: Jacobiana de las cadenas cinemáticas • Jq: Jacobiana de las variables articulars • Jqa: Jacobiana de las variables articulares activas. • Jqna: Jacobiana de las variables articulares pasivas. • T: Relaciona las variables articulares. La ecuación 16 simplificada queda como:
Capítulo 3: Estado del Arte 20 𝐽𝑞𝑖𝑞𝑖 +𝐽𝑥𝑖𝑥=0 ( 17) La expresión que define la jacobiana de una cadena cinemática (Ji) es: 𝑞𝑖 =𝐽𝑞𝑖 −1𝐽𝑥𝑥=𝐽𝑖𝑥 ( 18) Al estudiar las ecuaciones de velocidad de las variables articulares, se obtienen algunas expresiones que las relacionan entre sí. La relación entre la velocidad de las articulaciones activas y la de las pasivas es tal que: 𝑞𝑛𝑎 =𝐽𝑞𝑛𝑎𝑥 ( 19) 𝑞𝑛𝑎 =𝐽𝑞𝑛𝑎𝐽𝑞𝑎 −1𝑞𝑎 ( 20) Por otro lado, la relación entre la derivada del espacio articular y la velocidad de las articulaciones activas es: 𝑞=[𝐼𝑛 𝐽𝑞𝑛𝑎𝐽𝑞𝑎 −1]𝑞𝑎 =𝑇𝑞𝑎 ( 21) Una vez comentadas las diferentes Jacobianas y las relaciones existentes, se procede a mostrar la forma de calcular el problema de velocidad directo e inverso. 3.3.2.1 Problema de velocidad directo El problema de velocidad directo busca encontrar cuál es la velocidad del centro de la plataforma móvil en función de las velocidades de las articulaciones activas, siendo la función: 𝑥=𝐽𝑞𝑎 −1𝑞𝑎 =𝐽𝑝𝑞𝑎 ( 22) 3.3.2.2 Problema de velocidad inverso El problema de velocidad inverso calcula el valor de las velocidades articulares conocidas las velocidades del TCP. La forma de resolverlo se muestra en la ecuación 25: 𝑞𝑎 =𝐽𝑞𝑎𝑥 ( 23) 3.3.3 Problema de aceleración El problema de aceleración permite obtener las aceleraciones del centro de la plataforma conocidas las aceleraciones de las variables articuladas y viceversa. Su resolución parte de los cálculos realizados para el problema de velocidad y posición. Para ello, se calcula la derivada de la ecuación 13, obteniendo la siguiente expresión: 𝐽𝑞𝑖𝑞𝑖 +𝐽𝑞𝑖 𝑞𝑖 +𝐽𝑥𝑖𝑥+𝐽𝑥𝑖 𝑥=0 ( 24) Esta ecuación se puede reordenar, de forma que se obtenga la aceleración del espacio articular en función de velocidad y aceleración del TCP:
Capítulo 3: Estado del Arte 21 𝐽𝑖=−𝐽𝑞𝑖 −1(𝐽𝑥𝑖 +𝐽𝑞𝑖 𝐽𝑖) ( 25) Dando lugar a: 𝑞𝑖 =𝐽𝑖𝑥+𝐽𝑥𝑖 𝑥 ( 26) 3.3.3.1 Problema de aceleración inverso El problema de aceleración inverso trata de encontrar la aceleración de las variables articulares activas conocida la aceleración del TCP. La función que la resuelve se muestra a continuación: 𝑞𝑎𝑖 =𝐽𝑞𝑎𝑥+𝐽𝑞𝑎 𝑥 ( 27) 3.3.3.2 Problema de aceleración directo Al contrario que con el inverso, el problema de aceleración directo trata de encontrar los valores de aceleración del TCP, para unos valores de aceleración de las articulaciones activas conocido. La expresión que define la relación entre ambas aceleraciones se muestra a continuación: 𝑥=𝐽𝑞𝑎 −1𝑞𝑎 −(𝐽𝑞𝑎 −1𝐽𝑞𝑎 𝐽𝑞𝑎 −1)𝑞𝑎 =𝐽𝑝𝑞𝑎 +𝐽𝑝𝑞𝑎 ( 28) El problema de aceleración de las variables articulares queda tal que: 𝑞=𝐽𝑞𝑥+𝐽𝑞𝑥 ( 29) 3.3.4 Análisis de singularidades Una configuración singular, es aquella en la que el manipulador pierde o gana algún grado de libertad. En estas configuraciones, el robot pierde capacidad de movimiento y requiere de velocidades articulares infinitas, por lo que no es realizable. Para poder realizar el análisis de singularidades, se debe resolver el problema de velocidad, dado que para determinar si una posición es singular o no, se calcula el determinante de los jacobianos de la ecuación 17 (Jq y Jx) y se comprueba si tienen un valor nulo [25]. Existen diferentes tipos de singularidades, los cuales se comentan a continuación [26]: - Singularidades de tipo inverso o de tipo 1: El manipulador pierde un grado de libertad. Se presentan en los límites del espacio de trabajo cuando alguna de las extremidades está totalmente extendida o retraída, perdiendo el grado de libertad en la dirección de la cadena cinemática. Cuando esto ocurre, el determinante de la matriz jacobiana Jq, es cero. Tras el estudio de diferentes documentos se aprecia que las regiones que tienen mayor probabilidad de contener una singularidad de este tipo son la zona externa del espacio de trabajo y las zonas que están pegadas a la articulación activa (cuando los brazos de la cadena cinemática están paralelos uno encima del otro). No existe pérdida de controlabilidad.
Capítulo 3: Estado del Arte 22 - Singularidades de tipo directo o de tipo 2: En vez de perder un grado de libertad, el manipulador lo gana. La plataforma móvil tiene un único CIR (Centro Instantáneo de Rotación), de forma que, si las tres cadenas cinemáticas se bloquean, la plataforma terminal puede realizar una rotación infinitesimal alrededor del CIR. Se da cuando el determinante de la matriz jacobiana de Jx es nulo. Existe pérdida de control. - Singularidades combinadas o tipo 3: Como su propio nombre indica, se dan cuando aparecen los dos tipos de singularidades anteriores a la vez (Jq=0 y Jx=0). En el caso de las plataformas 3RRR como la creada en este proyecto, se dan cuando una de las cadenas está totalmente extendida y las líneas de proyección de los elementos pasivos se cortan en un solo punto. Transiciones entre modos de trabajo y ensamblaje. Para el diseño de la maqueta se deben tener en cuenta estas zonas, por lo que se estudia cuál debe ser el tamaño más propicio de los elementos físicos y en qué zonas se podrían instalar de cara a reducir el número de singularidades. Realizando pruebas con las longitudes de los elementos que componen las cadenas serie, se deduce que, si las longitudes de los dos elementos son iguales, las singularidades inversas tienden a convertirse en puntos. Un aumento de las longitudes lleva consigo un aumento del espacio de trabajo. 3.3.5 Análisis del espacio de trabajo (Workspace) El espacio de trabajo define las zonas que son alcanzables por el elemento terminal del robot. Existen varios factores que pueden restringir los movimientos de los robots paralelos como: límites mecánicos en las articulaciones pasivas, colisiones entre elementos del propio robot, limitaciones de los actuadores y diferentes singularidades que podrían partir el espacio de trabajo en zonas distintas… En el capítulo 7.3 del libro Parallel Robots se puede encontrar una explicación detallada de cómo obtener el workspace de un robot planar, así como los diferentes métodos que existen [7]. En el caso del robot planar 3RRR, la orientación que se le dé a la plataforma móvil influye directamente en el tamaño del espacio de trabajo, obteniendo el mayor espacio con una orientación de 0º [27]. Otros aspectos como el tamaño de los elementos que componen el robot también pueden afectar. Si aumenta el radio o el tamaño de la plataforma móvil, el espacio de trabajo aumenta y las singularidades inversas no cambian de tamaño, pero cambian su ubicación al encontrarse más cerca del centro de la maqueta. Cabe destacar también la pérdida de calidad de posicionamiento al aumentar el tamaño de la plataforma. Otro tamaño que se puede modificar es el de posicionamiento de los actuadores del robot; es decir, al separar mucho los actuadores, la circunferencia que los contiene también aumenta, disminuyendo el espacio de trabajo (menos posibilidad de movimiento de las cadenas cinemáticas) pero aumenta la calidad del posicionamiento. 3.3.5.1 Índice de destreza, Número de Condición e Índice de Manipulabilidad Como se ha visto, el espacio de trabajo se puede ver condicionado por varios factores, afectando a las posiciones alcanzables por el robot, así como a las posibles trayectorias que pueda desarrollar. Para medir la capacidad que tiene un robot de posicionarse y orientarse en un determinado workspace, existen algunos índices, como el índice de destreza [28]. Este índice, además de mostrar algunas propiedades del manipulador, da información de los puntos singulares y de las configuraciones singulares más cercanas. Por otro lado, está el “Número de condición”, el cual aporta información acerca de la amplificación del error en el TCP y se quiere
Capítulo 3: Estado del Arte 23 tener lo más bajo posible. Este número expresa la relación de cómo un error en una articulación actuada se multiplica y se traslada a un error relativo en el espacio de salida X. Caracteriza la destreza del robot y se usa como un índice de rendimiento. El índice de destreza es la inversa del número de condición y su valor cambia entre 0 y 1. Cuanto más cerca esté del valor unitario, quiere decir que el manipulador tiene una precisión muy cercana a la de los actuadores y presenta unos valores de rigidez aceptables. Sea η el índice de destreza: 𝜂=𝑣𝑎𝑙𝑜𝑟𝑠𝑖𝑛𝑔𝑢𝑙𝑎𝑟𝑚á𝑠𝑝𝑒𝑞𝑢𝑒ñ𝑜 𝑣𝑎𝑙𝑜𝑟𝑠𝑖𝑛𝑔𝑢𝑙𝑎𝑟𝑚á𝑠𝑔𝑟𝑎𝑛𝑑𝑒 ( 30) En la Figura 10 se presenta el espacio de trabajo de un robot 3RRR junto a los índices de destreza de cada zona. Los máximos valores, se localizan en el centro mostrando un buen rendimiento en esa zona; sin embargo, los valores mínimos se localizan alrededor de las articulaciones activas. Figura 10: Espacio de trabajo e índice de destreza robot planar 3RRR [28] El índice de manipulabilidad, muestra la capacidad de un robot para realizar una tarea en un espacio de trabajo determinado. Este factor, muestra cuán cerca está la precisión en la velocidad entre el TCP y las juntas. En la Figura 11 se muestra una representación de cómo se distribuyen los diferentes valores según la zona.
Capítulo 3: Estado del Arte 24 Figura 11: Índice de manipulabilidad para un robot 3RRR Estos índices son útiles para usarse en una maqueta real y en simulación, pues permiten estudiar cómo afectan los errores que se suceden a través de las articulaciones y cómo afectan al valor final. 3.4 Músculos neumáticos artificiales El progreso en conceptos de actuación es importante para la evolución en la robótica. La selección del actuador afecta al rendimiento del robot, a su peso y tamaño, al tipo de sensores y la arquitectura de control a diseñar, entre otras variables. La finalidad de la actuación es convertir una señal de entrada en una salida mecánica, encontrándose diferentes tipos de robots en función de la naturaleza del estímulo que recibe el actuador: térmico, magnético, reacción química… pero principalmente los actuadores se podrían agrupar dentro de tres grandes grupos: los hidráulicos, los eléctricos y los neumáticos[29]. Los actuadores hidráulicos (Figura 12), convierten la presión ejercida por un fluido en energía mecánica. Normalmente, se encuentran en forma de cilindro, aunque también existen motores hidráulicos, por lo que el movimiento de salida del dispositivo puede ser lineal, rotativo u oscilatorio. Este tipo de actuadores tiene una elevada capacidad de carga y una buena relación potencia-peso, por lo que suele utilizarse en aplicaciones de robots de grandes dimensiones que requieren el movimiento de cargas pesadas. El funcionamiento es similar al que presentan los actuadores neumáticos, pero trabajan con presiones mucho mayores y con aceites con una compresibilidad menor, por lo que la precisión y la estabilidad es mayor. Entre las desventajas que presentan, podrían destacarse la falta de control por parte del usuario, la sensibilidad a la temperatura, el continuo mantenimiento que hay que tener, y la complejidad del montaje debido a todos los componentes complementarios que se necesitan.
Capítulo 3: Estado del Arte 25 Figura 12: Ejemplos actuadores hidráulicos Por otro lado, los actuadores eléctricos (Figura 13) son los más empleados debido a su alta precisión, a la compatibilidad con la mayoría de los sistemas de control y al desarrollo de la fuerza instantánea [30]. Estos dispositivos, convierten la electricidad en energía cinética. La variedad de actuadores eléctricos es amplia, abarcando tanto la robótica convencional, como la robótica suave (“Soft Robots”) [31]. Estos dispositivos, aportan fiabilidad al control del movimiento, un coste de mantenimiento bajo y no tienen peligro de sufrir fugas como es el caso de los actuadores hidráulicos. Sin embargo, el coste inicial es mayor que en otros actuadores, son dispositivos sensibles a vibraciones y su producción es más compleja. Figura 13: Ejemplos actuadores eléctricos Por otra parte, los actuadores neumáticos tienen un uso generalizado en robótica debido a su ligereza, alta eficiencia, su carácter no contaminante, buena flexibilidad y adaptación ambiental [32]. Aunque los diseños son diversos y diferentes, el principio de funcionamiento básico es similar entre sí. El diseño básico es el de un cilindro, en el cual entra aire o un gas presurizado e intenta expandirse hasta alcanzar la presión atmosférica, lo cual empuja un pistón u otro dispositivo mecánico, creando el movimiento. En la Figura 14 se puede ver uno de los cilindros más comúnmente usados.
Capítulo 3: Estado del Arte 26 Figura 14: Cilindro neumático de Festo Es cierto que estos dispositivos pueden tener pérdidas de presión, y la compresibilidad del aire es un factor a tener en cuenta. En cambio, son fiables, seguros y tienen un coste muy bajo en comparación con otros tipos de actuación, lo cual, sumado a las anteriores ventajas citadas, justifican su empleo en tantos campos de la industria. Uno de los tipos de actuadores que han mostrado mayor evolución y capacidad para la fabricación en la última década, son los músculos neumáticos artificiales (conocidos en ingles por las siglas PAM “Pneumatic Artificial Muscle”). En los últimos años de la década de los 50, el físico e ingeniero estadounidense Joseph L. McKibben, desarrolló el primer músculo neumático, que llevaría su propio nombre: McKibben (ver Figura 15) [33], [34]. Figura 15: En la derecha, McKibben y su familia. Izquierda, primeros músculos. Diferentes variantes de PAM, han sido desarrolladas a lo largo de los años partiendo de este diseño, el cual nació inicialmente para asistir a personas paralizadas por la enfermedad del polio. Con esta creación, se buscaba reproducir el comportamiento de los músculos humanos, de forma que, al unirlo con otros componentes, se pudiera crear un mecanismo que sirviera como un exoesqueleto y facilitara el movimiento articular de las personas enfermas. En la Figura 16 se puede ver con más detalle [35].
Capítulo 3: Estado del Arte 33 Tabla 3: Descripción general Fluidic Muscle DMSP-MAS Una vez comentadas brevemente las características de cada músculo, se procede a realizar la selección del que será el actuador del robot planar 3RRR en este proyecto. 3.4.3 Selección del músculo Si se recoge en una tabla los valores máximos de fuerza, contracción y presión de cada uno de los músculos se obtiene lo siguiente: PAM Fuerza (N) Contracción relativa (%) Presión (kPa) Fluidic Muscle 6000 25 800 Air Muscle 700 37 400 Rubber Actuator 220 20 300 Tabla 4: Comparativa entre los 3 músculos candidatos Observando la Tabla 4 se puede ver claramente como el actuador de Festo tiene unas características que permiten mayor libertad para tomar decisiones relacionadas con el dimensionado y del diseño de la maqueta. Realizando una comparación más detallada: • Origen y experiencia: Bridgestone es conocido por el desarrollo tecnológico del caucho, Festo por la automatización (y robótica en menor medida) y Shadow Robot por la robótica. Cada uno, es experto en un campo determinado. • Aplicaciones: Los músculos neumáticos de Bridgestone y Festo pueden utilizarse en un rango más amplio de aplicaciones; desde la investigación hasta la industria. Por otro lado, los Air Muscles están más especializados en tareas de manipulación robótica.
Capítulo 3: Estado del Arte 34 • Control: Aunque las 3 tecnologías dependen de la presión del aire para el control, los Fluidic Muscles de Festo enfatizan más con la precisión de este. • Complejidad: Los actuadores de Festo y los de Shadow Robot, están diseñados para imitar de forma más natural el movimiento muscular. Cada tecnología tiene sus propios puntos fuertes, pero en este caso, se necesita de un músculo que cubra un mayor número de aplicaciones, por lo que la opción elegida es el Fluidic Muscle de Festo. Otra ventaja de esta elección es que, desde la web de Festo, se puede personalizar directamente el músculo antes de su compra, lo cual permite obtener la ficha técnica y su representación en CAD, así como la documentación (ver Figura 26). Figura 26: Personalización del Fluidic Muscle de Festo 3.5 Modelo matemático de los músculos neumáticos Excepto las demostraciones de FESTO, los PAM no han sido estandarizados como productos comerciales y ni en aplicaciones que contengan estos actuadores. Por lo tanto, es de gran importancia escoger un músculo neumático adecuado que encaje en la aplicación y utilice el correcto modelo matemático del músculo. Las grandes no linealidades debidas a la existencia de aire a presión, el material viscoelástico de las dos cubiertas y las características geométricas, son el primer problema con el que se tiene que lidiar de cara a deducir y utilizar un modelo matemático propicio [45]. Lo que se desea es encontrar la relación matemática “Fuerza-PresiónContracción” que represente el comportamiento de un determinado PAM, como el que se muestra en la Figura 27.
Capítulo 3: Estado del Arte 35 Figura 27: Relación Fuerza-Presión-Contracción músculo artificial neumático Actualmente existen varios modelos de músculos neumáticos, pero presentan muchas desventajas, como el hecho de que solo puedan ser aplicados a tipos específicos de PAMs, su precisión es baja y presentan muchos parámetros de ajuste[46]. La aplicación práctica de estos modelos está limitada por su complejidad, dado que algunos parámetros son difíciles de medir o de ser evaluados, y algunas formulaciones son válidas solo en un rango determinado. En el caso de los músculos de Festo (como el mostrado en la anterior figura) la mayoría de los modelos existentes son inapropiados, dando lugar a grandes desviaciones respecto de las curvas experimentales del catálogo [44] . Hay varios factores que pueden provocar estas desviaciones a la hora de modelar las características del músculo, entre las que podríamos destacar: • Geometría: El diámetro y el grosor del tubo en reposo, y el ángulo de la malla exterior inicialmente. La malla que recubre el tubo de goma está compuesta por fibras trenzadas, las cuales pueden diferir entre los diferentes actuadores a nivel de diámetros, tamaño de las fibras, materiales... Un parámetro importante para la obtención del modelo estático es el ángulo (θ) formado entre el eje longitudinal de la malla y las fibras, el cual se puede apreciar en la Figura 28. En ella, además de una visualización de cómo son las fibras en realidad, también se puede ver un esquema de la variación del ángulo ante el incremento de la presión. Figura 28: Izquierda: Variación ángulo fibras malla. Derecha: Forma fibras en la malla Una de las formas de obtener el ángulo θ, es realizar una relación geométrica entre el cambio del tamaño en el eje longitudinal y radial. En la Figura 29 se tiene uno de los rombos que forma la malla antes y después de presurizarla. Si se toma un cuarto de este, obteniendo un triángulo, es sencillo obtener el valor angular de la variación. Sea r la diagonal menor del rombo, l la diagonal mayor, b la hipotenusa y θ el ángulo de interés, aplicando trigonometría y trabajando con variables incrementales, se establece la relación entre todas las variables[47].
Capítulo 3: Estado del Arte 36 Figura 29: Modelo de cálculo del ángulo θ de deformación de la malla El problema ahora pasa por encontrar cuál es el ángulo que forman inicialmente las fibras de la malla dado que, sin él, no es posible calcular la deformación. Este dato, depende del fabricante y del tipo de músculo, y no suele ser dado. Varios investigadores han intentado obtener una fórmula que permita calcularlo de forma sencilla, o al menos un convenio sobre cuál debería ser aproximadamente para poder partir de una base sólida. En [48] se explica una de las formas más comunes de obtener de forma aproximada el ángulo inicial θ0 y que se muestra en la Figura 30. Sea l0 la longitud inicial del músculo, r el radio y n el número de giros de la fibra alrededor del actuador, si se coge una de las fibras y se desenvuelve, se puede representar como un triángulo de altura l0 y base la longitud de las n “circunferencias” 2πrn. Obtenido el triángulo, y de nuevo utilizando la trigonometría, se puede obtener el ángulo θ0 buscado. Figura 30: Esquema para el cálculo del ángulo inicial θ0 del músculo neumático De nuevo, estos cálculos son aproximaciones, por lo que, al ser utilizados para el cálculo del modelo estático y dinámico del músculo, ya aportan un error al compararlo con lo que sucede en la realidad. En el caso de los Fluidic Muscle de Festo (los empleados en este proyecto), se debe tener en cuenta que las fibras de la envoltura de la cámara de aire tienen un patrón romboidal con una malla de tres dimensiones. La única documentación encontrada que comenta haber obtenido resultados de medidas reales de los músculos de Festo, es la tesis del ingeniero alemán Ivo Boblan [49]. En ella, se comenta que se ha comprobado que el ángulo inicial de las fibras es θ0 = 28, 6º, mientras que el grosor inicial de la membrana alcanza los 1,8 mm. Estos datos son válidos para los músculos de 10 y 20 mm de diámetro, dado que no se ha comprobado todavía que se cumplan con el resto de los actuadores dentro de la familia de los DMSP-MAS. • Material de la cámara de aire: En función del material del tubo de goma interior, varía la rigidez del músculo, de la cual depende la relación fuerzapresión. Los actuadores más rígidos tardan más tiempo en alcanzar la fuerza pedida. Si la presión se mantiene constante, aquellos actuadores que tengan mayor
Capítulo 3: Estado del Arte 37 flexibilidad pueden obtener una mayor contracción a la vez que aplican mayor fuerza [50] (Figura 31). Figura 31: Relación Fuerza-Contracción en función de la rigidez de la cámara de aire. • Presión de operación y carga externa aplicada sobre el músculo: Como consecuencia tanto de los motivos anteriores como del montaje que tengan los músculos, la presión y la fuerza externa ejercida, influirán de forma diferente. Hay muchos trabajos dedicados a la elaboración de los modelos matemáticos de la fuerza estática de los PAM, los cuales se pueden obtener principalmente de tres formas: mediante parametrización geométrica, mediante modelos teóricos que derivan de la ley de conservación de la energía y mediante expresiones empíricas que consisten en factores de ajuste. Las expresiones obtenidas mediante parametrización geométrica difieren en algunos casos hasta en un 50% de las curvas experimentales presentadas en el catálogo de Festo. Por otro lado, las expresiones empíricas contienen muchos factores de corrección (desde 6 hasta 21) y no son universales para cualquier longitud del músculo o modo de operación[51]. Las teorías que se han ido desarrollando en las últimas décadas, parten de una aproximación basada solo en el aire comprimido, propuesta por Schulte en el año 1961 [52]. Nace a raíz de los primeros avances en el músculo McKibben, por lo que su precisión es muy baja. En el año 1996, C. P. Chou y Blake Hannaford [53] establecieron un nuevo modelo que junta la ley de conservación de la energía con un estudio de la geometría del actuador. La precisión del modelo sigue siendo baja, pero se consigue que converja hacia un menor error. El desarrollo de Chou-Hannaford da lugar a la siguiente ecuación, en la cual la fuerza F depende de la presión relativa P, del diámetro máximo D0 el cual se da cuando el ángulo de las fibras es 90º y del propio ángulo de las fibras de la malla θ: 𝐹=𝜋𝐷0 2𝑃 4(3cos2𝜃−1) ( 31) Para llegar a esta ecuación se han realizado 4 consideraciones: • La cámara de aire es infinitamente fina; es decir, no hay grosor. • La malla exterior es inelástica. • No hay fugas. • Se ignoran los efectos de la inercia y de la fricción.
Capítulo 3: Estado del Arte 38 El modelo propuesto, es considerado la base sobre la que los diferentes autores, han ido diseñando sus teorías; es decir, con el paso del tiempo se han añadido factores de corrección o enfoques diferentes, que tengan en cuenta variables como las vistas anteriormente que introduzcan error de no ser consideradas. Algunos autores a tener en cuenta para comprender la complejidad del diseño y las múltiples opciones que pueden surgir podrían ser: Andrikopoulos [54], el cual incorpora al modelo el componente de la expansión térmica entre otros; Hildebrandt A. [55] , Wickramatunge K. C. [56] que propone el funcionamiento del músculo como si fuese un muelle con rigidez variable; Tsagarakis N. [57] tiene en cuenta el estiramiento de las fibras de la malla y las formas cónicas de los extremos del músculo; Sárosi J. [58]–[60] el cual ha dedicado gran parte de su trayectoria en investigación a estudiar el comportamiento de los músculos neumáticos artificiales (en concreto los de Festo) creando maquetas experimentales para ello. El artículo de Mirco Martens [61] muestra una aproximación del modelo de la fuerza estática característica de los Fluidic Muscle que son de interés para este proyecto, demostrando un error por debajo del 2,35%. Además, realiza una comparación con los modelos existentes previamente a 2017, enfrentándolos a los mismos resultados experimentales obtenidos, por lo que este documento es de interés por dos motivos: el primero, por conseguir un modelo con una tasa de error reducida y una precisión óptima, y el segundo, por aunar en un mismo artículo los modelos de otros autores, de forma que se puedan ver de un vistazo las diferencias entre sí, así como el error respecto de los datos experimentales. Los modelos con los que compara el suyo propio, son evoluciones de la expresión de fuerza de Chou-Hannaford (Ecuación 3) pero añaden factores de corrección para aumentar la precisión del modelo. En la tabla 5 se recogen los errores de la estimación de la fuerza de cada modelo en porcentaje, al compararlo con dos músculos: DMSP-10-250 y DMSP-20-300 (DMSP-Diámetro-Longitud). Modelo FSchulte FAndrikopulos FWickramatunge FHildebrandt FSárosi FMartens DMSP-10250 46,1% 20,05% 13,49% 10,12% 5,1% 4,4% DMSP-20300 30% 13,04% 8,2% 5,75% 3,59% 2,35% Tabla 5: Error (%) entre diferentes modelos para la fuerza de Fluidics Muscles De la tabla anterior, se concluye que los modelos propuestos por Sárosi y Martens, son los que mejor se ajustan a los músculos neumáticos de Festo. Además, se puede ver la evolución temporal del error a la baja conforme se tiene mayor conocimiento de los músculos y se van considerando más factores. Sin embargo, aunque se tengan en cuenta algunos parámetros de Sárosi y Martens para el desarrollo del proyecto, ninguno de los dos son el modelo elegido para realizar el modelado de la maqueta, lo cual se explica en el siguiente apartado. 3.5.1 Chou-Hannaford, el modelo elegido Como se ha comentado anteriormente, el modelo matemático elegido para definir los Fluidic Muscle de Festo en este proyecto es el de Chou-Hannaford. Cada modelo está creado
Capítulo 3: Estado del Arte 39 para un tipo de PAM determinado, por lo que los resultados obtenidos para un músculo neumático concreto, no se replican con otro. Es cierto que se podrían emplear las ecuaciones de Sárosi o de Martens, dado que tienen un error muy pequeño y se ha comprobado que para los músculos de clase DMSP de Festo, los utilizados para el banco de pruebas, consiguen buenos resultados; pero durante la realización de este proyecto, no se ha tenido acceso a ningún músculo neumático para poder realizar una identificación experimental y por tanto confirmar los resultados de dichos autores. Sumado a esto, la disposición y la utilización de los músculos va a ser diferente y eso podría afectar al modelo matemático de la fuerza. Por tanto, se prefiere utilizar inicialmente una fórmula básica como la vista en la ecuación 3 y después modificarla en el momento que se tengan los componentes físicos y se puedan realizar pruebas experimentales en el propio laboratorio de Ikerlan. Sumado a esto, cabe indicar que la utilización de la ecuación de Chou-Hannaford facilita el modelado de la maqueta en Simscape, al incluir un bloque como el de la Figura 32 que representa un músculo McKibben, cuya fuerza está basada en esta ecuación, pero con dos correcciones con respecto a la forma simplificada del modelo, lo cual reduce el error y aporta mayor precisión. Figura 32: Representación músculo neumático en Simscape 3.6 Control En este proyecto, el control del banco de pruebas es complejo debido a la unión del empleo de la robótica paralela y los músculos neumáticos. El control es un elemento indispensable en la robótica paralela ya que permite coordinar los movimientos de las articulaciones del robot y respetar las restricciones. La estrategia de control se puede dividir en dos: • Control cinemático: Utiliza el modelo cinemático para generar una trayectoria interpolada de referencia que el robot sea capaz de seguir. o Trayectoria suavizada para los actuadores. o La trayectoria debe estar contenida dentro del espacio de trabajo no singular o Respeto de las restricciones del robot. • Control dinámico: el objetivo principal del control dinámico es que el robot siga la trayectoria de posición generada con el mínimo error posible. o Control local: Controla cada actuador asociado a qa de forma independiente. o Control basado en modelo: Controla el robot como un conjunto. Es más complejo y tiene un mayor coste computacional. El control local se centra en controlar cada articulación por separado, y es más rápido y sencillo de implementar. Este tipo de estrategias, permiten un buen rendimiento en aplicaciones de baja capacidad dinámica. Debido al acoplo que existe entre articulaciones, el rendimiento se ve limitado.
Capítulo 3: Estado del Arte 40 Por otro lado, y como se ha comentado dentro del apartado 3.5, los músculos neumáticos son complejos de controlar debido a sus fuertes no linealidades, la variación del valor de los parámetros en el tiempo, la histéresis… Diferentes artículos como [45], [62]–[64], muestran la enorme variedad de controles que se pueden implementar, desde los más sencillos como los controladores de tipo PID, hasta el empleo de redes neuronales y visión artificial para conseguir implementar un controlador robusto y eficiente. En este trabajo, la forma que se tiene de definir los controladores es en el espacio de salida; es decir, se toman las coordenadas de la posición del elemento terminal (centro de la plataforma) y se calcula el error con respecto a la posición deseada. Es importante tener bien calculada la cinemática directa e inversa para poder obtener cuales son los valores angulares óptimos que hay que entregarles a los actuadores como consigna. Como se verá en el capítulo 4, el control que se implementa inicialmente en este proyecto es un PID, dado que no se necesita un modelo y para el control de los PAM muestra buenos resultados siendo un control sencillo de implementar.
CAPITULO 4 DISEÑO DE LA SOLUCIÓN
Capítulo 4: DISEÑO DE LA SOLUCIÓN 42 4 DISEÑO DE LA SOLUCIÓN 4.1 Introducción. Tras realizar un estudio exhaustivo de las posibilidades de diseño de la maqueta y de los músculos neumáticos, se procede a realizar el desarrollo del robot planar 3RRR con actuación neumática. En el presente capítulo, se presenta el modelo del robot realizado en SimscapeSimulink. Además, se han programado en Matlab los diferentes scripts necesarios para obtener las variables que necesita el robot para funcionar. Como se ha mencionado en el apartado 2.2, no se ha llegado a realizar la construcción física, pero sí se hace una propuesta de los diferentes componentes necesarios para su elaboración. 4.2 Diseño del robot neumático paralelo planar 3RRR El primer paso dado para el desarrollo de este proyecto es establecer la arquitectura física del robot. Partiendo del concepto del robot planar 3RRR, se debe obtener un diseño que permita utilizar los músculos neumáticos a modo de actuador y que permita que sea reconfigurable, tanto desde el punto de vista del posicionamiento de los elementos, hasta el empleo de diferentes materiales para los elementos que componen las cadenas cinemáticas y las dimensiones de estos. Si se realiza una búsqueda en Internet, fácilmente se pueden encontrar algunos ejemplos de estos robots construidos con una finalidad educativa o de investigación, que es el ámbito de interés para este Trabajo Fin de Máster. En la Figura 33 se muestran el ejemplo de un prototipo realizado en el instituto Harpeth Hall [65] (izquierda) y el diseño CAD de un robot planar utilizado para el estudio del control de trayectorias[66]. Otros ejemplos del uso en investigación de estos robots podrían ser el recogido en [67], el cual se utiliza para el estudio de la cinemática inversa de los robots planares basándose en el artículo de Williams R. [68], o el diseño de una estación de dibujo [69], [70]. Figura 33: Prototipo de robot planar 3RRR y diseño CAD Todas estas estructuras robóticas anteriormente citadas, tienen en común algunos factores como: • Tanto la base, como la distribución de los actuadores, como el elemento central, tienen forma de triángulo equilátero. Esto se debe a que en etapas iniciales de desarrollo y del estudio del comportamiento del robot planar, es más sencillo trabajar sobre una distribución simétrica; es decir, al encontrarse los actuadores
Capítulo 4: DISEÑO DE LA SOLUCIÓN 49 tipos de válvulas direccionales: válvulas 2/2 (2 vías y 2 posiciones) y válvulas 3/2 (3 vías y 2 posiciones) (Figura 41). Figura 41: Válvula 2/2 (derecha) y válvula 3/2 (izquierda) Se pueden realizar dos configuraciones según la válvula elegida. De seleccionarse la 3/2, se utilizaría una válvula por cada configuración antagonista, ahorrando espacio y uso de componentes. Si se elige la 2/2, se deben utilizar 2 válvulas por cada conjunto músculo-resorte, dado que su funcionamiento es como el de una llave de paso, de forma que alterne una válvula abierta y otra cerrada según se contraiga o extienda el músculo. Se opta por el empleo de esta última, principalmente debido al bajo precio que tiene respecto de la 3/2. Al emplear esta distribución, se implementará un controlador que actúe sobre una u otra válvula en función del signo del error (se verá en próximos apartados). Para la selección de la válvula, se parte de las características del músculo elegido. Si el músculo tiene un volumen pequeño, no se necesita una válvula que tenga unas dimensiones excesivas. Se debería tener en cuenta tanto la presión máxima como la nominal, así como el volumen y el caudal de aire necesario. Las gráficas de corriente-caudal para una presión constante, y de presión-caudal (Figura 42) que se pueden encontrar en las hojas de características son bastante útiles para determinar qué válvula se ajusta mejor. Figura 42: Gráficas corriente-caudal y presión-caudal válvula VPWS de Festo [72] Existe una amplia gama de válvulas 2/2 en el mercado, pero tras realizar descartes, se elige la válvula proporcional con control de corriente, PVQ30 de la empresa SMC (Figura 43) de 1,6 mm del tamaño del orificio del aire, cuyo catálogo se puede consultar en [73]. Los motivos por los cuales se elige se explican a continuación.
Capítulo 4: DISEÑO DE LA SOLUCIÓN 50 Figura 43: Válvula PVQ30 de SMC Si se consulta la hoja de características de dicha válvula, hay una gráfica que relaciona la intensidad eléctrica, con el caudal del aire y con la variación de la presión y se muestra en la siguiente figura: Figura 44: Relación Corriente-Caudal-Presión PVQ30 Si se recuerda, la presión relativa máxima aceptada por el músculo son 6 bar, por lo que está válvula cumple esta condición, permitiendo cambios de presión de hasta 7 bar. La válvula recibe como referencia, un valor de corriente proporcionado por un PLC de Beckhoff. Para que el sistema funcione de forma correcta, el tiempo que transcurre entre que la señal de corriente sale del PLC y llega a la válvula, tiene que ser menor que el tiempo que tarda en comenzar a aumentar el tamaño del músculo. Por ello uno de los parámetros que se desean obtener, es el tiempo que tarda en empezar a cambiar el volumen del músculo una vez se alcanza la presión necesaria. Para poder conocer este valor, se empieza por trazar en la gráfica de la Figura 44 la función de histéresis de la variación de presión de 6 bar, que se corresponde con el caso de un músculo en estado de reposo que pasa a su presión máxima. Para obtener la función, se utiliza una hoja de cálculo de Excel y se realiza una interpolación entre las curvas de 5 y 7 bar, obteniendo la siguiente representación de la relación Corriente-Caudal-Presión:
Capítulo 4: DISEÑO DE LA SOLUCIÓN 51 Figura 45: Relación Corriente-Caudal-Presión para PVQ30 y 6 bar La curva azul representa el incremento de corriente y se ajusta mediante un polinomio cúbico, mientras que la curva naranja es el descenso, y se ajusta por medio de un polinomio de grado 4. El menor tiempo en el que el músculo tras llegar a la presión deseada comienza a retraerse, se da para el caso de máxima apertura de la válvula (mayor caudal), la cual, si se observa la Figura 44, se da aproximadamente para 160mA independientemente de la curva de presión. En la gráfica de la Figura 46, se tiene la relación entre el caudal máximo y la presión a la cual se alcanza, la cual es lineal. Figura 46: Relación caudal máximo y presión para PVQ30 Aproximando con la ecuación lineal mostrada en la anterior figura, el caudal para 160mA y 6 bar será 94.7921 l/min. y = 160,27x - 1,3699 0 20 40 60 80 100 120 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 Caudal (l/min) Presión (MPa) Caudal (L/min)
Capítulo 4: DISEÑO DE LA SOLUCIÓN 52 En caso de querer un ajuste mayor si se trabajase con presiones ligeramente superiores a la recomendada, se podría introducir un ajuste polinómico de segundo orden tal que: 𝑦=−27,724𝑥2+185,4𝑥−6.1057 ( 33) Despejando en x con 6 bar, se obtiene que el caudal es 95.1537 l/min, lo cual se acerca al valor calculado previamente. Para calcular el máximo tiempo de inicio de cambio de forma del músculo, se emplea la ley de los gases ideales, la cual depende del volumen del músculo, de la presión relativa, de la temperatura y de la constante de los gases ideales R. El volumen del músculo se corresponde con el que tiene justo en el instante antes de comenzar a retraerse, por lo que se aproxima por el volumen de un cilindro tal que: 𝑉𝑃𝐴𝑀 =𝜋𝑟2𝐿 ( 34) Siendo r el radio del músculo (10mm) y L la longitud nominal (500mm). El volumen obtenido es 0.15708 litros. La constante de los gases ideales es R=0.08206L*atm/mol/K. Considerando condiciones estándar (273 K y 1 atm), la variación del número de moles de aire que entran en el músculo para un incremento de presión de 6 bar será: ∆𝑛=∆𝑃∗𝑉𝑃𝐴𝑀 𝑅∗𝑇 =6∗0,15708 0,08206∗273=0,04207𝑚𝑜𝑙𝑒𝑠 ( 35) Tomando el caudal anteriormente calculado de la válvula, y la variación del número de moles dentro del músculo, se puede calcular el tiempo que tarda el músculo en alcanzar su presión máxima: 𝑡= 𝑅∗𝑇∗∆𝑛 ∆𝑃∗𝑄𝑉á𝑙𝑣𝑢𝑙𝑎 =0,08206∗273∗0,0407∗1000∗60 6∗94.7921 =96,187𝑚𝑠 ( 36) Visto este valor temporal, se demuestra que la transmisión de corriente del PLC a la válvula es más rápida. 4.3.4 Tarjeta de corriente de Beckhoff Para realizar el control de todo el banco de pruebas, se tiene un autómata programable de Beckhoff. Como se ha comentado anteriormente, las consignas a las válvulas se dan en forma de corriente, por lo que es necesario introducir tarjetas de corriente compatibles con el PLC. Tras una breve búsqueda y consultar presupuesto con el departamento comercial de Beckhoff, se ha optado por la tarjeta EL2535 (Figura 47) [74], la cual puede controlar la salida de corriente a través del control del ancho de pulso de la tensión de suministro de 24 VDC. suministrar una salida de corriente de entre 0 y 1 Amperio, además de trabajar con 24 Voltios de continua. Tiene dos canales de salida, por lo que serán necesarias 3 tarjetas de corriente para controlar las 3 cadenas cinemáticas del robot planar.
Capítulo 4: DISEÑO DE LA SOLUCIÓN 53 Figura 47: Tarjeta con salida de corriente controlada EL2535 de Beckhoff 4.3.5 Sensor de Presión Se elige el sensor SDE5-D10 de Festo. Permite la medición de la presión relativa, y tiene un rango de medición de 0-10 bar, lo cual es suficiente para estudiar la presión interna de los músculos (0-6 bar). La precisión que tiene es de ±0,5%. Permite controlar la presión de forma sencilla [75]. Figura 48: Sensor de presión SDE5-D10 4.3.6 Tubería suministro de aire Para el suministro de aire, se utilizará una tubería de Festo. La válvula tiene un orificio de 1,6 mm por lo que la tubería debe ser de un tamaño similar. Si se observa la hoja de características de los tubos, los que tienen menos diámetro son de 3 y 4 mm, por lo que será necesario utilizar un racor (un elemento que sirve para unir tubos de igual o distinto tamaño). Dentro de la gama de tuberías, se elige la Pun-4 [76]. Entre las ventajas, permite presiones de entre -1-10 bar y se puede encargar bobinas con una longitud de entre 50 y 500 metros. Modificar la longitud de los tubos puede ayudar a corregir problemas de fricción o de lentitud en el trabajo de los músculos.
Capítulo 4: DISEÑO DE LA SOLUCIÓN 54 Figura 49: Racor y tubo de Festo 4.3.7 Unidad de mantenimiento La unidad de mantenimiento, también denominada FRL, cumple 3 funciones: Filtrar, regular y lubricar el aire, garantizando así la calidad del aire comprimido en el sistema. La presión del sistema central siempre debe ser mayo que la presión de trabajo de la maqueta, por lo que el regulador, también se suele llamar reductor de presión. Para este proyecto, dado que es un sistema pequeño en comparación con una planta industrial, bastará con una unidad de mantenimiento básica como la MSB6 de Festo [77] que se muestra en la Figura 50. Figura 50: Unidad de mantenimiento MSB6 de Festo 4.3.8 Sensor posición angular Para poder controlar el robot planar, es necesario tener conocimiento del ángulo que rotan las articulaciones activas, de forma que se pueda hallar el error. Se han valorado varias opciones, desde el uso de transductores potenciómetros angulares, hasta el empleo de visión artificial (la cual se propone como un futuro trabajo). Se ha optado por proponer dos posibilidades, ambas basadas en un rango de 0º-360º. • Transductor potenciómetro angular: gama P2250 de Mapro (Figura 51) [78]. Se caracteriza por tener una alta precisión en dimensiones pequeñas sumado a una resolución de 0,01º. Se puede fijar el rango máximo de medida y presenta una buena linealidad de ±0,3%. Figura 51: Transductor potenciómetro angular P2250 de Mapro
Capítulo 4: DISEÑO DE LA SOLUCIÓN 55 • Sensor de posición angular sin contacto: Como el anterior, es un transductor potenciómetro angular, pero en este caso, sin contacto con la articulación. Se selecciona el tipo Series Vert-X 13 (Figura 52) [79], el cual tiene un rango de 0360º y una resolución de 12 bits. Figura 52: Sensor de posición angular sin contacto Series Vert-X 13 4.3.9 Rueda polea unión actuador-cadena cinemática robot Para poder formar el sistema antagonista músculo-resorte, y transmitir el movimiento a las cadenas cinemáticas del robot, se utiliza un sistema de polea (Figura 53). Esta polea puede construirse o comprarse fácilmente dependiendo de las condiciones que se pongan en el momento de construcción del banco. Figura 53: Rueda polea Un estudio que se hizo inicialmente debido a necesidades del modelado en Simulink, fue el dimensionamiento de la polea. El músculo se contrae longitudinalmente una determinada distancia, pero el ángulo que rota la articulación depende del radio que tenga la rueda de la polea. En la tabla 7 se puede ver el radio mínimo que debería tener en función del ángulo máximo que se desee girar la articulación. Para ello, se utiliza la ecuación mostrada a continuación, la cual relaciona el radio de la polea con la contracción del músculo y el ángulo máximo de variación. 𝑅=∆𝐿∗360 2𝜋∆𝜃 ( 37) Tabla 7: Tabla dimensionamiento de polea Longitud PAM (cm) Ángulo máximo de giro (º) Radio (cm) 90 0,032 60 0,048 45 0,064 30 0,095 90 0,025 60 0,038 45 0,051 30 0,076 90 0,019 60 0,029 45 0,038 30 0,057 0,05 0,04 0,03 Dimensionamiento Polea Deformación 10% (m) 50 40 30
Capítulo 4: DISEÑO DE LA SOLUCIÓN 56 En la mayor parte de los modelos realizados, se trabaja con una polea que cubra 180º para un músculo de longitud nominal de 50 cm. El radio que se necesita es de unos 1,59 cm. 4.3.10 Cuerpos rígidos Una vez vistos los elementos fundamentales para crear el movimiento, se deben tener en cuenta también cómo se harán los cuerpos rígidos cómo la plataforma móvil, los elementos de las cadenas cinemáticas y el bastidor que soporte todo el robot planar. Para el bastidor, se propone utilizar perfiles de aluminio en V como el de la Figura 54, los cuales facilitan el ajuste y fijación del sistema antagonista del actuador, así como su reajuste en otras posiciones. Las dimensiones dependerán de la forma que se le quiera dar al bastidor, sí como del espacio que se pueda ocupar realmente. Figura 54: Perfil de aluminio en V Sobre los elementos que componen cada cadena cinemática y la plataforma móvil, se plantean dos opciones: o crear los elementos en el propio laboratorio o comprarlos. Un ejemplo de compra, podría ser el empleo de elementos de aluminio como el que se muestra a continuación en la siguiente figura: Figura 55: Lámina aluminio En la presentación de este capítulo, se pudo comprobar que cada cual utiliza unos cuerpos rígidos diferentes. Como se quiere crear un robot reconfigurable, se propone tener juegos de cuerpos rígidos con longitudes y materiales distintos como aluminio, madera o plástico (posibilidad de impresión 3D). En Simscape, se verá cómo se han creado distintos elementos, y para introducir el material del que están formados, se cambia su densidad. En la siguiente tabla se recogen las densidades promedio de cada uno de los materiales citados anteriormente:
Capítulo 4: DISEÑO DE LA SOLUCIÓN 57 Material Densidad (g/cm3) Aluminio 2,7 Madera 0,6 Plástico 1 Tabla 8: Densidades promedio materiales robot planar 3RRR En cuanto a la longitud de los elementos rígidos que forman las cadenas serie, se toma que el tamaño esté comprendido entre lo 200 y 250 mm. 4.3.11 Juntas rotativas Por último, se deben tener en cuenta las articulaciones pasivas, que unen el elemento que está unido al actuador (articulación activa) y el elemento unido a la plataforma. Idealmente, se busca que tengan la menor fricción posible y que sean ligeros, por lo que se proponen diferentes soluciones las cuales habrá que probar en el momento de la construcción. A continuación, se muestran algunas: • Junta pivotante: Una de las formas más sencillas. Esta junta tiene un pasador de plástico que permite un movimiento de 180º. Se puede observar en la siguiente figura[80]: Figura 56: Junta pivotante • Junta pivotante aluminio: La sujeción en este caso se realiza por medio de un tornillo, pudiéndose adaptar el diámetro según las necesidades de construcción (figura--): Figura 57: Junta pivotante aluminio
Capítulo 4: DISEÑO DE LA SOLUCIÓN 58 4.4 Programación de código en Matlab Antes de pasar a comentar los modelos creados en Simscape, se comentarán los códigos principales para este proyecto implementados en Matlab. Principalmente, estos códigos se generan con la finalidad de obtener los valores de consigna angular de las articulaciones activas y estudiar otros factores como las singularidades o el espacio de trabajo. Los scripts que se mencionarán a continuación están recogidos en el Anexo 1. 4.4.1 Estructura Parámetros Antes de realizar una simulación para una configuración determinada del robot planar, es necesario indicar cuáles son sus características de forma que, el resto de los códigos utilizados para su funcionamiento, tengan conocimiento de los valores de los parámetros con los que se trabajan. Para evitar tener que cambiar estos valores en todos los scripts que se utilicen, se opta por crear una estructura única que contenga todos los parámetros necesarios, de forma que se ahorra tiempo y se reduce la posibilidad de obtener resultados erróneos al facilitarle la puesta a punto al usuario. Los parámetros que se pueden ajustar en esta estructura son: • Longitudes de los brazos articulados: Los brazos están formados por dos elementos cada uno, los cuales sirven de enlace entre la articulación activa y la pasiva (longitud Li) y entre la pasiva y la plataforma (longitud li). • Datos de la plataforma móvil: La plataforma móvil, la cual tiene el elemento final y donde se puede poner la carga, tiene unas características geométricas y de composición determinadas. Se configura la estructura para poder modificar la densidad del material fácilmente y las dimensiones. Como se ha visto, lo normal es trabajar con plataformas triangulares. Se aprovecha también para realizar cálculos de vectores que puedan necesitarse en otros códigos, como la relación entre los vértices de la plataforma y su centro. • Puntos de anclaje de las articulaciones activas (OAi): Una de las primeras configuraciones que se hacen antes de iniciar una simulación, es configurar la posición inicial de la articulación activa (y con ello la posición del sistema antagonista). En función de la forma que tome el bastidor, para lograr una distribución en forma de triángulo, cambia la forma de ajustarlo. En el script se deja indicado cada tipo, de forma que se comenten y descomenten según el interés. • Guardado en estructura: Una vez obtenidos todos los datos, se guardan en la estructura, la cual es llamada en caso de necesidad por parte de alguno de los códigos o del modelo. 4.4.2 Scripts de la cinemática del robot Como se ha comentado previamente, este proyecto se centra en el apartado cinemático del robot, concretamente en la resolución del problema de posición. La cinemática relaciona la posición, velocidad y aceleración de las diferentes partes que lo componen. A continuación, se presenta el desarrollo del problema de posición, el cual está basado en los artículos [81], [82] y en material propio de la asignatura de Robótica Industrial Avanzada del máster de Ingeniería de
Capítulo 4: DISEÑO DE LA SOLUCIÓN 65 Figura 62: Ejemplo funcionamiento script "Workspace" 4.5 Modelado en Simscape-Simulink Tras establecer la arquitectura a diseñar, ver los principales componentes necesarios para la construcción física de la maqueta y los principales códigos programados en Matlab, se pasa a realizar el modelado en Simscape-Simulink. A continuación, se comentarán los principales bloques usados para el diseño del robot planar, así como su parametrización, y se mostrará el funcionamiento por separado de cada una de las partes para después juntarlas y dar lugar al prototipo del banco de pruebas. 4.5.1 Principales bloques y parametrización El entorno de Simscape, es idéntico al de Simulink, con la diferencia de que se tienen algunas librerías extra que introducen nuevos dominios de trabajo (hidráulico, mecánico de rotación y traslación, gases, térmico, eléctrico…). Para poder realizar el paso de un dominio a otro, es necesario el empleo de bloques de interfaz como los que se pueden ver en la Figura 63. Figura 63: Interfaces de conversión de dominio de trabajo
Capítulo 4: DISEÑO DE LA SOLUCIÓN 66 El código de colores que se muestra en la Figura 64 permite diferenciar los diferentes dominios. En este proyecto se usarán los dominios de gas, mecánico rotacional, mecánico traslacional, térmico, señales físicas y 3-D mecánico. Figura 64: Estilos de color de línea para cada dominio de Simscape En los siguientes subapartados se comentarán algunos de los bloques usados junto a su parametrización. 4.5.1.1 Músculo neumático (Air Muscle Actuator) En la librería de “Fluids/Gas/Actuators” se puede encontrar el modelo de un músculo neumático como el que se mostró anteriormente en la figura 32. El funcionamiento de este bloque se basa en la ecuación de Chou-Hannaford, cuya expresión general se corresponde con el mostrado en la ecuación 3 del apartado 3.5.1. Esta expresión, considera que la cámara de aire y la cubierta son infinitamente finas y que la malla no tiene capacidad de estiramiento. La diferencia, es que, de cara a proporcionar un comportamiento más realista del funcionamiento del músculo, introduce dos correcciones: una relacionada con la capacidad de estiramiento C (cambiando la longitud constante por l*) y la otra relacionada con el grosor de las paredes del músculo t. Las ecuaciones que definen estos factores de corrección se plantean a continuación: 𝑙∗=𝐶𝑙+√(𝐶𝑙)2+12𝐿2(𝐶+1) 2(𝐶+1) +2𝑛𝑃𝐷2 𝐸𝑑 ( 39) C es el factor de corrección del estiramiento de la malla, E es el módulo de elasticidad de Young (dependiente del material del músculo) y d es el diámetro de una de las fibras de la malla. C se define como: 𝐶=𝑛2𝜋2𝐸𝑑2𝑁 𝑃𝑙𝐿 ( 40) N es el número total de fibras en la malla. El factor de corrección del grosor del músculo añade a la fuerza total del actuador un factor FT tal que:
Capítulo 4: DISEÑO DE LA SOLUCIÓN 67 𝐹𝑇=𝜋𝑃[𝑡(2𝐷−𝐷𝑀 2 𝐷)−𝑡2] ( 41) Resultando la fuerza final del actuador (F): 𝐹=𝐹𝐶ℎ𝑜𝑢𝐻𝑎𝑛𝑛𝑎𝑓𝑜𝑟𝑑+𝐹𝑇 ( 42) Al hacer doble clic en el bloque del músculo se pueden configurar los parámetros según las necesidades. En la Figura 65 se muestra el interfaz de configuración con los valores utilizados para el actuador neumático en este proyecto, basado en todo lo comentado anteriormente. Figura 65: Interfaz de configuración músculo neumático Simscape Si se toma el músculo neumático, se tienen 4 conexiones diferentes al mismo: A, C, H y R. C y R representan los puntos físicos de unión del músculo con el exterior; en este caso, C está unido con una referencia fija, y R se conecta con un convertidor de movimiento longitudinal a rotacional para crear el sistema antagonista junto al resorte. A es la vía de entrada del aire (color rosa, dominio de gas) y H es el puerto de conservación térmica asociado con la temperatura del gas dentro del actuador; en este caso se le conecta un bloque de “Aislante perfecto” de forma que no se considera ni flujo de calor ni almacenamiento de energía. Figura 66: Conexiones músculo neumático Simscape
Capítulo 4: DISEÑO DE LA SOLUCIÓN 68 4.5.1.2 Resorte El resorte es un sistema mecánico sencillo que se puede encontrar en la librería de “Mechanical”. Como se puede ver en la Figura 67, representa un resorte mecánico ideal, cuya dirección positiva de la fuerza es en el sentido de R a C. El puerto R está conectado con una referencia fija, mientras que C (al igual que pasa con R en el músculo neumático) se conecta con un convertidor de movimiento para poder crear el par antagonista. Figura 67: Representación resorte Simscape Como se comentó en la explicación de los posibles componentes de la maqueta, para una contracción del actuador del 10%, se necesitaría un resorte de 16000 N/m, mientras que para el 14% se tiene que K=8571,43 N/m (trabajando a presión máxima). La interfaz de configuración del muelle se muestra en la siguiente figura. El valor de la constante puede variar en función de la presión de operación. En el apartado “Deformation”, se observa que hay un valor negativo, el cual se corresponde con un preposicionamiento de la articulación activa para cubrir unas necesidades del usuario. Figura 68: Interfaz configuración resorte Simscape 4.5.1.3 Modelado de la rueda de polea Para crear el sistema antagonista y unir el resorte y el músculo, se necesita introducir un elemento de rotación, por lo que se opta por introducir una rueda de polea como la que se muestra en la Figura 69. El funcionamiento se basa en traducir los movimientos longitudinales que llegan por los puertos A y B en un movimiento angular que se obtiene en el puerto S.
Capítulo 4: DISEÑO DE LA SOLUCIÓN 69 Figura 69: Representación polea Simscape La configuración del bloque, como se puede ver en la siguiente figura, es sencilla. Se parte de una suposición de que la correa es ideal y permite el movimiento en dos direcciones y se configuran los parámetros de la rueda, introduciendo su radio (el cual se explicó anteriormente cómo se calcula) y se hace nulo el factor de inercia. Figura 70: Interfaz configuración polea Simscape 4.5.1.4 Sistema neumático y válvula direccional 2 vías Para controlar el músculo, se emplean 2 válvulas direccionales de 2 vías; una para la acción de contracción y la otra para permitir que el aire del músculo fluya hacia fuera cuando se estira. La representación de la válvula se corresponde con la Figura 71. Los puertos A y B son las vías de entrada y salida de aire respectivamente. S es el puerto de entrada de la señal física que comanda la apertura de la válvula con un rango de valores entre -1 y 1. Un valor positivo abre la conexión entre los puertos A y B, mientras que uno negativo la cierra. Figura 71: Representación válvula direccional proporcional 2/2 Simscape En la siguiente figura se muestra la configuración de la válvula utilizada:
Capítulo 4: DISEÑO DE LA SOLUCIÓN 70 Figura 72: Interfaz configuración válvula direccional 2 vías Simscape En los siguientes 2 subapartados se muestran los dos sistemas junto a los elementos auxiliares. Todos los elementos vistos en este apartado pertenecen a la librería “Fluids/Gas”. 4.5.1.4.1 Sistema neumático fase retracción músculo En la Figura 73 se puede ver el modelo de bloques de la parte neumática que regula el suministro de aire al músculo. Una fuente de presión, en la cual se configura la presión relativa deseada en el músculo, toma aire de la atmosfera y lo suministra a través de la válvula cuando esta se abre. La salida a la atmosfera se modela mediante un bloque denominado “Reservorio” y establece la presión a la que se toma el aire (en este caso no se tiene una unidad de mantenimiento, por lo que es la propia fuente de presión la que la incrementa) y su temperatura. La tubería se representa con el bloque “Pipe”, el cual modela las dinámicas del flujo de aire y contiene un volumen constante de gas. Su cuadro de configuración se muestra en la Figura 74. La longitud del tubo que se toma es de 5 metros, pero esto puede variar según las necesidades de tiempo de respuesta o de la dinámica que se busque en la reacción del actuador. Figura 73: Modelado parte neumática fase retracción músculo
Capítulo 4: DISEÑO DE LA SOLUCIÓN 71 Figura 74: Interfaz configuración tubo neumático Simscape 4.5.1.4.2 Sistema neumático fase estiramiento músculo Si se compara la Figura 75 con la del sistema de retracción, se observa que la válvula se debe colocar al revés para que permita salir al aire del actuador. La parametrización de todos los elementos es igual al anterior sistema. Figura 75: Modelado parte neumática parte estiramiento músculo 4.5.1.5 Interfaz conversión Rotacional-Multibody Simscape Multibody, permite introducir elementos 3D y CAD para poder realizar una representación tridimensional del modelo implementado al compilar el proyecto. Para poder pasar del dominio mecánico de rotación (la polea) al Multibody y transmitir el movimiento a las cadenas cinemáticas del robot planar, se necesita un conversor como el de la Figura 76. Figura 76: Bloque conversión dominio mecánico de rotación a Simscape Multibody Para su correcto funcionamiento, al puerto C se le conecta una referencia fija de rotación y a R la polea vista. Los puertos w y t son señales físicas que se pueden conectar con la
Capítulo 4: DISEÑO DE LA SOLUCIÓN 72 articulación del Multibody. El puerto de entrada w recibe la velocidad angular relativa de la salida de la articulación del espacio tridimensional, y t es un puerto de salida que envía el torque de actuación a la junta primitiva del Multibody. 4.5.1.6 Sensores A lo largo del proyecto se han utilizado diferentes tipos de sensores para obtener datos y comprobar que el funcionamiento era el correcto. Igual que entre bloques de diferentes dominios es necesario utilizar un convertidor, también es necesario emplear una interfaz entre la naturaleza de las señales de forma que se puedan convertir una señal de entrada física en una señal de salida que pueda ser usada por Simulink y Matlab para estudiar los datos o ser representados. El elemento que se utiliza se muestra en la Figura 77, y su configuración se basa en hacer clic y escoger las unidades de la señal de entrada (bar, V, A, rad…). Figura 77: Convertidor señal física-Simulink Los sensores más utilizados se muestran a continuación: 4.5.1.6.1 Sensores Simscape clásico En la siguiente figura se tienen los 4 sensores más empleados en este proyecto para la parte de señales y del empleo de los bloques de Simscape clásico. De izquierda a derecha, se tienen: Sensor de presión y temperatura para el aire, sensor de fuerza ideal para los sistemas mecánicos (medición de fuerza del músculo y seguimiento de la curva Fuerza-ContracciónPresión), sensor de movimiento longitudinal y sensor ideal de movimiento rotacional. Figura 78: Sensores Simscape más utililizados en el proyecto 4.5.1.6.2 Sensores Simscape Multibody Simscape Multibody tiene un bloque reconfigurable (ver Figura 79) que permite obtener cualquier medición que se desee configurándolo previamente desde su propia interfaz, la cual se muestra en la Figura 80. Figura 79: "Transform Sensor" de Simscape Multibody
Capítulo 4: DISEÑO DE LA SOLUCIÓN 73 Figura 80: Interfaz de configuración Transform Sensor Simscape Multibody 4.5.2 Cuerpos rígidos y librería Multibody Un problema que presenta Simscape, es que apenas existe información o cursos que ayuden a obtener el máximo rendimiento de este software, sobre todo cuando se trata de la librería “Multibody” y de todo lo referente al modelado 3D. Si desde Matlab se ejecuta el comando “simscape” y se selecciona la biblioteca de Multibody, se abre un menú (Figura 81), en el que se puede ver todas las opciones que ofrece. Figura 81: Librería Multibody de Simscape Este menú es más intuitivo que el de la librería original de Simulink, y permite elegir rápidamente los elementos necesarios, así como reconfigurarlos según las necesidades.
Capítulo 4: DISEÑO DE LA SOLUCIÓN 74 Principalmente, se utilizan las librerías de: “Body Elements” para la creación de cuerpos rígidos para el cuerpo del robot y del bastidor, “Frames and Transforms” para orientar los elementos entre sí y obtener la arquitectura deseada y “Joints” para seleccionar el tipo de articulación, el cual siendo un robot planar 3RRR, todas serán juntas de revolución. En los siguientes subapartados se mostrarán los diferentes cuerpos rígidos creados (modelado CAD) y a continuación las formas de unirlos para dar lugar a las cadenas serie que componen el robot. Antes de pasar a comentarlo, se debe tener en cuenta que se ha considerado que todos los cuerpos rígidos son de aluminio, por lo que la densidad del material será 2,7g/cm3. Antes de mostrarlos, se introducen dos conceptos que estarán presentes en el ensamblado de los elementos: los “Frames” y el bloque “Rigid Transform”. El Frame es un marco de referencia tridimensional (ejes x, y, z). En los cuerpos creados, por defecto aparece uno (denominado puerto R) en su centro de masas. De no crearse más, cualquier elemento que se quiera enlazar con el sólido creado, se unirá al sistema de referencia por defecto. Para poder unirlo con otro punto del cuerpo, se pueden añadir frames, de forma que se elija el punto de unión entre los distintos componentes. En la Figura 82 se muestra la ventana de configuración del frame en un sólido. Figura 82: Menú de configuración de sistemas de referencia (Frames) Por otro lado, se encuentra el bloque “Rigid Transform”, el cual se emplea para realizar transformaciones entre dos sistemas de referencia “frames”. El sistema rota y traslada el puerto de un frame de un cuerpo seguidor (F) con respecto de un frame base (B). Durante la simulación los sistemas de referencia implicados se mantienen fijos el uno respecto del otro. El bloque es el mostrado en la siguiente figura, junto a su configuración.
Capítulo 4: DISEÑO DE LA SOLUCIÓN 81 Figura 93: Control PID implementado para cada cadena cinemática El funcionamiento es simple. La referencia que introduce el usuario es la posición angular deseada para la articulación actuada (en el apartado 4.5.5 se comentará más en detalle) la cual coincide con el valor angular de la polea. Se calcula el error con respecto a la medición del ángulo de la articulación activa y se introduce en el bloque PID de Simulink. La sintonización del PID se realiza con la función de “Tune” que incorpora, la cual propone los parámetros de control de la siguiente figura. Figura 94: Parámetros controlador PID control una cadena cinemática La salida del PID puede ser negativa o positiva dependiendo del valor del error, y el rango de señal permitida por la válvula está comprendida entre -1 y 1. Por ello, se emplean dos bloques de saturación, de manera que, si el error positivo se siga contrayendo el músculo permitiendo el paso de aire, pero si el error es negativo por haber superado el ángulo de referencia, se abre la válvula de desalojo del aire. El funcionamiento es similar al de un controlador Bang-Bang. En cuanto al filtro empleado, se utiliza para romper el lazo. Se debe tener en cuenta que al meter un controlador que trabaja en tiempo continuo, se necesita que la señal de error esté actualizada continuamente. Para evitar que salten constantemente avisos en el programa y hacer
Capítulo 4: DISEÑO DE LA SOLUCIÓN 82 simulaciones que se acerquen a la realidad, se introduce una función de transferencia de primer orden con una constante de tiempo lo suficientemente baja para que no afecte al sistema. 4.5.3.4 Unión de todos los módulos y prueba funcionamiento sistema antagonista Si se conectan los 3 módulos comentados anteriormente y se compilan, se obtiene la representación de la Figura 95. Figura 95: Representación 3D en Simscape de una cadena cinemática Para la realización de la prueba, se considera que la consigna angular de entrada es una función escalón descendente, la cual tiene inicialmente tiene un valor de 10º, y a los 35 segundos tiene un valor nulo. El porqué de esta prueba, es analizar que el mecanismo funciona correctamente y el muelle hace su función. Además, la presión máxima suministrada al músculo se reduce a 2 bar, al no necesitar mover una carga pesada. En la Figura 96 se puede comprobar como el movimiento es correcto, al posicionarse inicialmente la articulación en 10 grados hasta el segundo 35, instante en el cual el músculo vuelve a su posición inicial por medio del resorte. También se puede ver la histéresis presente al tener tiempos de contracción y alargamientos diferentes. En la Figura 97 se tiene la evolución del error durante la simulación. Figura 96: Gráfica comparación qai con referencia funcionamiento par antagonista
Capítulo 4: DISEÑO DE LA SOLUCIÓN 83 Figura 97: Error qai prueba funcionamiento par antagonista 4.6 Modelo final robot planar 3RRR Si se realiza el conexionado entre las 3 cadenas cinemáticas, la plataforma móvil y el bastidor, se obtiene el modelo final del robot planar 3RRR en simulación. Se debe tener en cuenta que, entre cada una de las cadenas, existen 120º de desfase en la articulación activa. En la figura 98 y en la 99 se muestran dos ejemplos de posibles configuraciones de estudio. Figura 98: Modelo robot planar 3RRR con bastidor triangular
Capítulo 4: DISEÑO DE LA SOLUCIÓN 84 Figura 99: Modelo robot planar 3RRR con bastidor cuadrado En el apartado 5 se realizarán algunas pruebas sobre el robot y se analizarán los resultados obtenidos. 4.6.1 Reconfigurabilidad del robot planar 3RRR Una de las premisas que se tenía con este proyecto, era dotarlo de varios parámetros de configuración para poder obtener arquitecturas diferentes y realizar la mayor variedad de pruebas posible. En este subapartado se comentarán las principales opciones. 4.6.1.1 Reconfiguración del bastidor El bastidor, conforma la base sobre la cual se ajustan los módulos de los pares antagonistas. Su forma, facilita que se puedan mover por las guías del perfil en V, independientemente de la posición que adquiera. En este caso, se presentan dos ejemplos de posibles formas que puede adquirir el bastidor. En la Figura 100 se muestra un diagrama de Simscape para una configuración cuadrada y una triangular, y en la Figura 101 el resultado de la compilación de estos bloques.
Capítulo 4: DISEÑO DE LA SOLUCIÓN 85 Figura 100: Diagrama bloques reconfiguración forma bastidor Figura 101: Configuración cuadrada(izda.) y triangular(dcha.) bastidor perfil V aluminio 4.6.1.2 Reconfiguración sistema antagonista El par antagonista resorte-músculo presenta varias vías de reconfiguración. La primera, relacionada con el apartado anterior: se puede ajustar la posición de la articulación activa modificando el valor del bloque de rigid transform (figura 92) que se encuentra dentro de cada subsistema qai. Cabe recordar que de modificarse cualquier elemento en el modelo de Simscape, es necesario actualizar los valores dentro de los códigos de Matlab de cara a conseguir unos valores correctos de las consignas angulares. La orientación inicial de las cadenas serie se puede modificar en el primer bloque de “Revolute Joint” de cada cadena, el cual se corresponde con la articulación activa. Por defecto, la orientación que se le da inicialmente a las diferentes cadenas es: • Qa10=300º • Qa20=60º • Qa30=180º La figura siguiente muestra el menú de configuración de la articulación rotativa.
Capítulo 4: DISEÑO DE LA SOLUCIÓN 86 Figura 102: Menú configuración bloque articulación rotativa Simscape Debido al uso de un resorte como el elemento antagonista del músculo, y no de otro PAM, el sistema solo puede rotar de forma activa en un sentido; en el caso de este proyecto, se ha planteado para que la rotación activa sea en sentido antihorario. Cabe recordar que el usuario obtiene a partir del problema de posición inverso 3 valores articulares absolutos. En el modelo de Simscape, las consignas son valores angulares relativos, que se obtienen restando la posición deseada de la articulación activa y la posición absoluta que tiene inicialmente. Si el valor relativo es negativo, se debe preposicionar el resorte para que el nuevo ángulo relativo que tenga que barrer la articulación sea como mínimo 0. Normalmente, lo más sencillo es comprimir el resorte provocando un pretensionado del músculo el cual no puede superar el 4% de su longitud nominal. La ecuación 43 muestra cuánto hay que acortar un resorte para poder cambiar el signo del valor relativo. La variación del ángulo que aparece se refiere al valor absoluto de la consigna angular relativa y R al radio de la polea. En el apartado de resultados, se puede ver un ejemplo práctico de esta utilidad. ∆𝐿=2𝜋∆𝜃∗𝑅 360 ( 43) Tratando el tema del par antagonista, también se ha desarrollado un par músculo-músculo, el cual se puede intercambiar fácilmente por el par músculo-resorte (figura 103). Figura 103: Modelo bloques par antagonista músculo-músculo
Capítulo 4: DISEÑO DE LA SOLUCIÓN 87 4.6.1.3 Reconfiguración cadenas cinemáticas Otro de los puntos de reconfiguración se encuentra en los elementos que forman las cadenas serie. A nivel CAD de Simscape, se han creado plataformas móviles y cuerpos rígidos de diferentes tamaños y materiales, como se muestra en la figura 104: Figura 104: Diferentes modelos de cuerpos rígidos y plataformas móviles Estos cambios en las características físicas de los cuerpos rígidos, se puede hacer de forma manual desde los bloques de Simscape, o bien desde la ventana de “Model Properties” comentando y descomentando el código del callback “InitFcn”. Además de diferentes longitudes para los elementos de unión entre articulaciones de las cadenas cinemáticas, se tienen diferentes radios de polea según se necesite y las 3 densidades de materiales comentadas en capítulos anteriores. %% Radio polea (cm): R_Polea_V1=2.86; R_Polea_V2=1.72; %200º y 6cm máxima contracción longitudinal R_Polea_V3=1.59; %360º y 10 cm de contracción longitudinal R_Polea_V4=0.8; %360º y 5 cm de contracción longitudinal R_Polea_V5=1.06; %270º y 5 cm de contracción longitudinal R_Polea_V6=3.1831; %90º y 5 cm de contracción longitudinal %% Densidades de materiales (g/cm^3): Rho_Al=2.7; %Aluminio Rho_Mad=0.6; %Madera Rho_Plast=1; %Plástico 4.6.2 Control Implementado A nivel proyecto y del robot planar en su conjunto, se podría implementar un control general para todo el proceso, pero sería algo muy complejo y costoso computacionalmente. Por
Capítulo 4: DISEÑO DE LA SOLUCIÓN 88 ello se opta por un control local de cada una de las cadenas cinemáticas que permita posicionar correctamente la plataforma móvil. La consigna con la que se trabaja es la posición angular que debe tomar la articulación activa para poder posicionar el elemento central en la posición correcta. Para obtenerla, se hace uso de la cinemática inversa, a la cual se le pasa la posición deseada, y se obtienen las variables articulares de cada una de articulaciones activas. El controlador, debe regular la entrada y salida del aire del músculo neumático, de forma que se consiga la posición deseada. La estructura del control en cada lazo está basada en el uso de un PID, como se explicó anteriormente en el apartado 4.5.3.3. Al unir las 3 cadenas, hay que actualizar los parámetros de control, dado que el sistema ha cambiado. La nueva sintonización de los controladores es la mostrada en la figura 105. Figura 105: Sintonización controlador PID para cada cadena robot planar 3RRR
Capítulo 6: Conclusiones CAPITULO 5 RESULTADOS Y ANÁLISIS
Capítulo 5: Resultado y Análisis 90 5 Resultados y análisis 5.1 Introducción. Tras explicar los pasos seguidos para el correcto desarrollo del robot, se procede a mostrar los resultados obtenidos. Para ello, se parte del modelo mostrado en la Figura 98. Las consideraciones iniciales, comunes en todas las pruebas, son: • Longitud de los eslabones de las cadenas del robot de 250 mm. • Radio polea: 2,86 cm. • Composición cuerpos rígidos: aluminio. • Posición de fijación de articulación activa: o A1= [45-22.5*cos(pi/6) 45-22.5*sin(pi/6) 2*3/2*0.8] o A2= [45+22.5*cos(pi/6) 45-22.5*sin(pi/6) 3*2/2*0.8] o A3= [45 45+22.5 2*3/2*0.8] • Plataforma móvil con forma de triángulo equilátero insertada en una circunferencia de 10 cm de radio u 2 cm de grosor. • Longitud músculos: 500 mm • Presión diferencial máxima de operación: 5 bar • Longitud tubo neumático: 5 m. • Orientación inicial enlace articulación activa para L1, L2 y L3: 300º, 60º y 180º respectivamente. Para estos datos, el espacio de trabajo disponible (obtenido mediante el código mostrado en el anterior apartado) es el que se muestra en la figura 106. Figura 106: Espacio de trabajo pruebas experimentales
Capítulo 5: Resultado y Análisis 97 embargo, durante la simulación debido a la compresión del resorte, se producen varias oscilaciones en el inicio que podrían causar problemas en posiciones más alejadas. Figura 118: Gráficas posición TCP. Prueba x=0,5 y=0,5 En la siguiente figura se puede ver el posicionamiento tras la simulación desde el punto de vista gráfico: Figura 119: Resultado gráfico posicionamiento robot x=0,5 y=0,5 En las Figuras 120, 121 y 122 se muestra el error de posicionamiento de las articulaciones activas el cual es prácticamente nulo en todas.
Capítulo 5: Resultado y Análisis 98 Figura 120: Error qa1 prueba x=0,5 y=0,5 Figura 121: Error qa2 prueba x=0,5 y=0,5 (Articulación ajustada inicialmente) Figura 122: Error qa3 prueba x=0,5 y=0,5
Capítulo 5: Resultado y Análisis 99 5.2.4 Otros puntos del espacio de trabajo Se prueban más puntos del espacio de trabajo, y se observa que el posicionamiento en torno a puntos cercanos al punto medio del workspace se realiza de forma sencilla, sin apenas error y con pocas oscilaciones en el tramo inicial. Conforme se avanza hacia afuera, comienza a aparecer más error y más oscilaciones al inicio del movimiento. Esto se debe a varios factores como podrían ser el resorte, la cercanía de posiciones singulares y, como se ha visto en el análisis del espacio de trabajo del punto 3.3.5, al índice de destreza. Como se vio en la Figura 10, para el caso de una estructura con forma de triángulo equilátero, cuanta más es la distancia respecto del centro del Workspace, mayor es el error al amplificarse y trasladarse desde las desviaciones de las articulaciones actuadas hasta la posición del TCP. Un ejemplo podría ser posicionar el robot en el punto X=0,55 Y=0,55. Las juntas activas 1 y 3, registran errores casi nulos respecto a la consecución de la referencia angular. Sin embargo, qa2 tiene un pequeño error que se mantiene en el tiempo (ver Figura 123). Figura 123: Valor articular qa2 vs qa2_Ref (Prueba X=0,55 Y=0,55) El error se expande, y aunque inicialmente parece que no va a afectar en el posicionamiento del TCP, acaba por tener una desviación a tener en cuenta, como se muestra en la figura 124. Se podría reducir el error introduciendo como entrada una función rampa en vez de un escalón, de forma que la entrada de aire y la actuación del músculo fuera más lenta y de esta forma, se redujeran las oscilaciones iniciales. Otra posibilidad sería introducir un muelle que tuviera más capacidad de deformación para permitir su ajuste inicial.
Capítulo 5: Resultado y Análisis 100 Figura 124: Gráficas posición TCP. Prueba x=0,55 y=0,55 5.2.5 Generación de trayectorias Una vez visto que podía posicionarse correctamente el robot, al menos en zonas cercanas al centro del espacio de trabajo, se procede a crear alguna trayectoria, con el objetivo de estudiar si puede seguirlas de forma dinámica. Con lo visto en los anteriores apartados, se concluye que generar una trayectoria rectilínea introduciendo como consigna la variación relativa del ángulo de la articulación activa entre puntos, no es un problema. Por ello, se procede a implementar una trayectoria circular. Teniendo en cuenta que se tienen 3 actuadores, se busca la forma de generar el movimiento curvo. La solución a la que se llega es introducir como consigna, una función senoidal por cada músculo, desfasada 120º por cada cadena cinemática. Se toma una amplitud de 10 cm y una frecuencia de 0,05 rad/s, quedando la función tal que: 𝑌=0,1∗𝑠𝑒𝑛(0.05∗𝑡+0.45) ( 55) La implementación en Simscape se presenta en la Figura 125; no hace falta crear ningún modelo nuevo, simplemente modificar la entrada de cada una de las cadenas cinemáticas con la función senoidal y su desfase correspondiente. Figura 125: Entrada senoidal para crear trayectoria circular
Capítulo 5: Resultado y Análisis 101 Se compila el modelo y se ejecuta, obteniendo trayectoria mostrada en la Figura 126. No es un círculo perfecto, pero se asemeja a lo que se desea conseguir. Los mayores errores, se deben al movimiento inicial desde el reposo hasta el punto de inicio de la curva. Figura 126: Trayectoria circular para una amplitud de función seno de 10 cm Si se observan las gráficas de las variables articulares, se comprueba que se ajusta bien a la función senoidal correspondiente, produciendo muy poco error como se ve en las figuras 127, 128 y 129. Figura 127: Valor qa1(t) trayectoria circular
Capítulo 5: Resultado y Análisis 102 Figura 128: Valor qa2(t) trayectoria circular Figura 129: Valor qa3(t) trayectoria circular Si se aplica la teoría de que el error se hace más pequeño cuanto más cerca del punto medio del espacio de trabajo y de que la precisión mejora, si se reduce la amplitud de la función senoidal de referencia de 10 a 5 cm, se observa que se consiguen mejores resultados (ver Figura 130).
Capítulo 5: Resultado y Análisis 103 Figura 130: Trayectoria circular para una amplitud de función seno de amplitud 5 cm Por lo tanto, este modelo de robot planar 3RRR, permite tanto posicionar punto a punto, como seguir una trayectoria que se le ponga.
Capítulo 6: Conclusiones CAPITULO 6 CONCLUSIONES .
Capítulo 6: Conclusiones 105 6 Conclusiones 6.1 Conclusiones El trabajo realizado en este proyecto Fin de Máster ha contribuido al diseño y modelado de un robot paralelo planar 3RRR con actuación neumática, para ser utilizado como banco de ensayos para el estudio de algoritmos de control y técnicas de aprendizaje autónomo. Las principales aportaciones y/o conclusiones que se extraen, parten en primer lugar de la selección de la arquitectura del banco de pruebas, para el cual se ha realizado un estudio exhaustivo de las opciones existentes. De entre todas las posibles arquitecturas que se podrían utilizar para realizar este banco de pruebas, se ha elegido la de un Robot Paralelo Planar 3RRR, por ser más compacta que la de otros mecanismos, pero, sobre todo, por tener una forma sencilla de introducir los músculos neumáticos como elemento de actuación. Al operar en el plano, no hay riesgo de que se vean sometidos a esfuerzos de torsión o flexión. A mayores, se generan los códigos en Matlab que resuelven los problemas de posición, velocidad y aceleración del robot planar 3RRR. El empleo de músculos neumáticos era uno de los requisitos pedidos por Ikerlan, por lo que hubo que pensar cómo integrar los músculos en el mecanismo planar. Normalmente, los robots planares 3RRR tienen actuación eléctrica por lo que, para poder introducir los músculos neumáticos, se debe realizar un estudio del funcionamiento de estos y de las opciones existentes (selección de la opción de Festo). Para permitir que el músculo recupere su forma, es necesario crear un mecanismo que lo lleve de nuevo a su forma original, por lo que se ha realizado un sistema antagonista que tiene por elemento recuperador un resorte. Es una opción sencilla y barata, pero se pierde algo de control sobre las articulaciones activas, por lo que, de tener más presupuesto, sería preferible integrar un sistema antagonista de 2 músculos (a pesar de aumentar la complejidad del control). Se ha logrado modelar en Simscape-Simulink el robot planar 3RRR con varias opciones de reconfiguración, de forma que se puedan realizar ensayos con una amplia variedad de relaciones cinemáticas y dinámicas. El objetivo de reconfigurabilidad, queda satisfactoriamente cubierto al introducir mecanismos que permiten cambiar rápidamente la configuración del robot como: posiciones de las articulaciones, dimensiones de los cuerpos rígidos, selección de materiales, selección de diferentes tipos de bastidor, reconfiguración del músculo y del resorte, cambios en la plataforma móvil… Las simulaciones muestran un buen comportamiento del robot, el cual puede posicionarse correctamente dentro del espacio de trabajo (siempre que se trabaje en zonas con un índice de destreza alto) y puede seguir trayectorias dinámicas o generadas por funciones. A mayores, se ha creado una lista de componentes para poder trasladar el diseño de Simscape al laboratorio de Ikerlan, con las justificaciones necesarias de la elección. El problema que se encuentra es la falta de información de los fabricantes para poder acometer su modelado.
Capítulo 6: Conclusiones 106 Como conclusión general, se podría decir que se han cubierto todos los requisitos y objetivos planteados al inicio del proyecto y se ha conseguido diseñar, modelar y simular un banco de pruebas reconfigurable que acepta diversas configuraciones y es operativo. La complejidad principal del proyecto radica en el control y el funcionamiento de los músculos neumáticos junto al robot planar 3RRR, y se debe seguir investigando en la línea de generación de trayectorias válidas dentro del espacio de trabajo y en posibles mejoras de la solución aportada para aumentar la precisión. 6.2 Acciones futuras Como acciones futuras o líneas de investigación abiertas e identificadas se proponen las siguientes: • Revisión de los modelos y de los componentes elegidos: Este proyecto, es el inicio de varias líneas de investigación como la ingeniería de control, el Deep Learning o la robótica, por lo que se debe hacer una revisión de lo realizado hasta ahora para ver si es necesario introducir algún cambio. • Construcción física del banco de pruebas e identificación de los componentes: La mejor forma de realizar una identificación de los elementos, es teniéndolos físicamente y realizando una identificación empírica, ante la falta de información que proporcionan los fabricantes. Importancia de la creación de un modelo propio del músculo. • Implementación del controlador: En este proyecto, el control implementado es un PID simple, dado que no ha habido tiempo de estudiar e implementar algo más preciso. Tanto el control de los robots paralelos como de los músculos neumáticos es complejo, por lo que, al juntarlos, esta complejidad se incrementa. Como línea futura, se propone investigar en el desarrollo de nuevas técnicas que se puedan aplicar a los modelos existentes. • Generador de trayectorias: uno de los grandes problemas de la robótica paralela planar, son las singularidades que hay en el espacio de trabajo y la pérdida de precisión según la zona donde se mueva el manipulador. Por lo tanto, se propone realizar un estudio que junte singularidades, espacio de trabajo y trayectorias posibles del robot.
Capítulo 7: Referencias bibliográficas 113 [63] S. Csikós, J. Sárosi, and S. Balassa, “Fuzzy Control of Antagonistic Pneumatic Artificial Muscle Special Issue,” 2017. [Online]. Available: https://www.researchgate.net/publication/316889478 [64] J. Piteľ, M. Balara, J. Mižáková, M. Balara, and J. Boržíková, “Control of the pneumatic actuator with McKibben artificial muscles Statistical approach to optimize the process parameters of HAZ of tool steel,” 2007. [Online]. Available: https://www.researchgate.net/publication/285769627 [65] “High School Outreach.” http://nricsa.vuse.vanderbilt.edu/joomla/index.php/harpethhall-winterim (accessed Sep. 11, 2023). [66] M. Rodelo, J. L. Villa, and E. Yime, “Trajectory-tracking control of a planar parallel robot using generalized predictive control with constraints,” J Phys Conf Ser, vol. 1702, no. 1, Dec. 2020, doi: 10.1088/1742-6596/1702/1/012003. [67] “(22) RRR Planar Parallel Manipulator Robotics Project - YouTube.” https://www.youtube.com/watch?app=desktop&v=0pd5GFRM_B0 (accessed Sep. 11, 2023). [68] R. L. Williams and B. H. Shelley, “Inverse Kinematics for Planar Parallel Manipulators,” Proceedings of the ASME Design Engineering Technical Conference, vol. 2, Feb. 2021, doi: 10.1115/DETC97/DAC-3851. [69] “(22) Painting Using a 3-RRR Planar Parallel Robot - YouTube.” https://www.youtube.com/watch?v=DLiO6x4sQfg (accessed Sep. 11, 2023). [70] B. P. Huynh and Y. L. Kuo, “Dynamic filtered path tracking control for a 3RRR robot using optimal recursive path planning and vision-based pose estimation,” IEEE Access, vol. 8, pp. 174736–174750, 2020, doi: 10.1109/ACCESS.2020.3025952. [71] L. D. Khoa, D. Q. Truong, and K. K. Ahn, “Synchronization controller for a 3-R planar parallel pneumatic artificial muscle (PAM) robot using modified ANFIS algorithm,” Mechatronics, vol. 23, no. 4, pp. 462–479, 2013, doi: 10.1016/j.mechatronics.2013.03.011. [72] “Válvulas distribuidoras proporcionales VPWS.” [Online]. Available: www.festo.com/catalogue/... [73] “Series PVQ Compact Proportional Solenoid Valve.” [74] B. Automation GmbH, “Documentation 2 Channel Pulse Width Current Terminal 1A, 24 VDC.” [75] “Sensores de presión SDE5.” [Online]. Available: www.festo.com/catalogue/... [76] “Tubos de plástico, con calibración exterior.” [Online]. Available: www.festo.com/catalogue/...
Capítulo 7: Referencias bibliográficas 114 [77] “Unidades de mantenimiento combinadas MSB4/MSB6, serie MS.” [Online]. Available: www.festo.com/engineering/ [78] “Multiple Section Potentiometer Series P2500.” [Online]. Available: www.novotechnik.de [79] “Vert_X_13_e_SensorAngulo”. [80] “Pivot Joint 180° 45.” https://www.motedis.es/es/Junta-pivotante-180G-45 (accessed Sep. 13, 2023). [81] A. Zubizarreta, I. Cabanes, M. Marcos, C. Pinto, and E. Portillo, “Redundant dynamic modelling of the 3RRR parallel robot for control error reduction,” in 2009 European Control Conference (ECC), 2009, pp. 2205–2210. doi: 10.23919/ECC.2009.7074732. [82] F. Serrano, B. Rodriguez, and M. Cardona, “Obtención de un Modelo Dinámico Para un Robot 3RRR Basado en Teoría de Screws,” Revista Iberoamericana de Automática e Informática industrial, vol. 15, Sep. 2018, doi: 10.4995/riai.2018.8725.
ANEXO I: Códigos Scripts Matlab ANEXO I CÓDIGOS SCRIPTS MATLAB
ANEXO I: Códigos Scripts Matlab ANEXO I: CÓDIGOS SCRIPTS MATLAB A: Estructura Parámetros function Param=EstructuraParametros %Parámetros de la maqueta. Rellenar según la configuración física que se %disponga. %Nota: Las variables de masa e inercia no se introducen, dado que ya son %consideradas en Simscape, y aquí no se realiza un estudio de la dinámica %del sistema. %% Longitudes de los brazos articulados: %Dichos brazos están compuestos por dos elementos cada uno que unen la %articulación actuada por cada uno con la plataforma o carga. Se denomina %como Li la acoplada directamente a la articulación actuada y li a la unión %con la carga. %Dimensiones Li e li (m): L1=0.25; l1=0.25; L2=0.25; l2=0.25; L3=0.25; l3=0.25; %% Datos de la plataforma móvil de carga: %Se dispone de una plataforma que en un principio será de aluminio, pero %que podría cambiar de material y forma dotando a la maqueta de más %posibilidades de reconfiguración. %Densidades de materiales (g/cm^3): Rho_Al=2.7; %Aluminio Rho_Mad=0.6; %Madera Rho_Plast=1; %Plástico %Forma triángulo equilatero plataforma: % h_tri=0.075; %Valor del lado (m) grosor_tri=0.02; %Grosor del triángulo. h_tri=0.1732; %La altura es 14.9996. %Para acceder al punto central de la plataforma: %Radio de la circunferencia que contiene a la plataforma cincunscrita % R_tri=h_tri/sqrt(3); % R_tri=0.10/sqrt(3); R_tri=0.1; %Ángulos desde el vértice al centro (30º): fi1=pi/6; fi2=5*pi/6; fi3=9*pi/6; %Comienza por lado ancho l
ANEXO I: Códigos Scripts Matlab thetaB=[pi/6 5*pi/6 9*pi/6]+pi; %Se le suma 180º para poder hacer coincidir los vértices solidarios a la plataforma Center=[0;0]; B=zeros(2,3); %3 puntos con 2 coordenadas cada uno for i=1:length(thetaB) B(:,i)=Center+R_tri*[cos(thetaB(i));sin(thetaB(i))]; end %Circunferencia aluminio (En Simscape se parte de un cilindro con un grosor %pequeño): % R_circ=0.075; % grosor_circ=0.02; %% Puntos de base (m) %Puntos de anclaje de la polea del sistema antagonista. Estos anclajes pueden %moverse de forma que se creen nuevas configuraciones de la maqueta. %Bastidor cuadrado: % OA1=[0; 0.3]; % OA2=[0.4; 0.60]; % OA3=[0.5 ;0]; %Mesa circular: R=22.5; %Radio de la mesa (cm) %Puntos de anclaje formando triángulo equilátero: OA1=[(45-R*cos(pi/6))*10^-2; (45-R*sin(pi/6))*10^-2]; OA2=[(45+R*cos(pi/6))*10^-2; (45-R*sin(pi/6))*10^-2]; OA3=[0.45; 0.45+R*0.01]; %Constante Gravedad (m/s^2) g=9.8; %% Matriz que contiene todos los parámetros (Param): Param.Longitudes=[]; Param.Longitudes.a1=[OA1]; Param.Longitudes.a2=[OA2]; Param.Longitudes.a3=[OA3]; Param.Longitudes.L1=L1; Param.Longitudes.L2=L2; Param.Longitudes.L3=L3; Param.Longitudes.l1=l1; Param.Longitudes.l2=l2; Param.Longitudes.l3=l3; %Vectores que unen los vértices de plataforma con su centro: Param.Longitudes.d1=B(:,1); Param.Longitudes.d2=B(:,2); Param.Longitudes.d3=B(:,3);
ANEXO I: Códigos Scripts Matlab %Centros de masa supuestos en la mitad del elemento: Param.Longitudes.LcL1=L1/2; Param.Longitudes.LcL2=L2/2; Param.Longitudes.LcL3=L3/2; Param.Longitudes.Lcl1=l1/2; Param.Longitudes.Lcl2=l2/2; Param.Longitudes.Lcl3=l3/2; Param.g=g; B: Código Problema Posición Inverso function [OK,q]=CinematicaInversa(Param,X) %% Cálculo de la cinemática inversa de la maqueta neumática %Partiendo del conocimiento de la posición que se desea alcanzar con el %punto medio de la plataforma de carga, se necesita obtener cuáles serán %las variables articulares necesarias para obtener dicha configuración. %Una vez obtenidas las variables articulares activas, se conocerá cuáles %son las consignas de movimiento que se deben mandar al músculo (actuador). %Los parámetros con los que trabaja la función son: %-Entradas: %-Param: estructura de parámetros de la maqueta. %-P: posición que se desea alcanzar con la maqueta. La cantidad de %datos que aporta esta variable depende principalmente del número de %grados de libertad del sistema. Se considerará que hay 3 GDL: %posicionamiento en x/y y orientación mediante giro alrededor del eje %z. (En este proyecto el control se centraen el posicionamiento en x e %y. %Se debe estudiar si hay que tener en cuenta el modo de trabajo de la %maqueta (recordar que el modo de trabajo separa los distintos rangos de %trabajo antes de alcanzar una configuración singular; es decir, puedes % alcanzar un mismo punto con configuraciones articulares diferentes. %-Salidas: %Se indica si la obtención de las variables articulares se ha realizado %correctamente (1 sí, 0 no). %Se obtienen todas las variables articulares; tanto las actuadas como las %no actuadas. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Inicialización de variables de salida q=[]; OK=0; mt=[1 1 1]; %Modo de Trabajo %% Extracción de parámetros de la esctructura "Param": %-Puntos Ai (anclaje de articulaciones activas) a1=Param.Longitudes.a1; a2=Param.Longitudes.a2;
ANEXO I: Códigos Scripts Matlab a3=Param.Longitudes.a3; %Longitudes cadenas serie L1=Param.Longitudes.L1; L2=Param.Longitudes.L2; L3=Param.Longitudes.L3; l1=Param.Longitudes.l1; l2=Param.Longitudes.l2; l3=Param.Longitudes.l3; %Vectores plataforma d1=Param.Longitudes.d1; d2=Param.Longitudes.d2; d3=Param.Longitudes.d3; %% Variables de entrada x=X(1); y=X(2); tz=X(3); P=[X(1);X(2)]; %% Matriz de rotación para el cálculo de di: %Necesario debido al tercer grado de libertad, el cual afecta a la relación %entre el punto P y Bi (vértice de la plataforma) Rot_z=[cos(tz) -sin(tz); sin(tz) cos(tz)]; %% Cálculo posiciones Bi (Vértices plataforma) a partir de di: B1=[]; B2=[]; B3=[]; %Posición del punto P: X=[x,y]; B1=Rot_z*d1+X; B2=Rot_z*d2+X; B3=Rot_z*d3+X; %% Cálculo de punto pi (Punto coincidente con la articulación no activada y donde se calcula qnai) %Para obtenerlo se emplea una técnica de intersección de circunferencias con %inicio en Ai y Bi. Se tiene una función para su cálculo. %(Si se considera que solo hay un modo de trabajo, es más sencillo; en caso contrario %habría que estudiar las diferentes opciones). %Matlab dispone de su propia función para la localización del punto de corte % de circunferencias "circirc": [xout1,yout1]=circcirc(a1(1),a1(2),L1,B1(1),B1(2),l1); [xout2,yout2]=circcirc(a2(1),a2(2),L2,B2(1),B2(2),l2); [xout3,yout3]=circcirc(a3(1),a3(2),L3,B3(1),B3(2),l3); %Ciccirc devuelve separados los valores de X y de Y: xp11_c=[xout1(1), yout1(1)]; xp12_c=[xout1(2), yout1(2)];
ANEXO I: Códigos Scripts Matlab xp21_c=[xout2(1), yout2(1)]; xp22_c=[xout2(2), yout2(2)]; xp31_c=[xout3(1), yout3(1)]; xp32_c=[xout3(2), yout3(2)]; % Cadena 1: Vta=cross([xp11_c';0]-[a1;0],([P;0]-[xp11_c';0])); % Se calcula el producto vectorial de los 2 vectores Vtb=cross([xp12_c';0]-[a1;0],([P;0]-[xp12_c';0])); % y se ve su sentido para seleccionar el modo. % Es decir, el signo de la coordenada z. if(Vta(3)<=0 && mt(1)==0 || Vta(3)>=0 && mt(1)==1) % Si es mt=0 tiene que ser negativo y si es mt=1 positivo. p1=xp11_c; % Y con este if sabemos Ba y Bb equivale al modo 0 o 1 elseif(Vtb(3)<=0 && mt(1)==0 || Vtb(3)>=0 && mt(1)==1) p1=xp12_c; else OK=0; ErrorMsg='Compruebe mt 0 o 1.'; return; end %Cadena 2: % Se selecciona el modo deseado: % Con cross haces producto vectorial: hay que añadir la coordemada z como un 0. Vta=cross([xp21_c';0]-[a2;0],([P;0]-[xp21_c';0])); % Se calcula el producto vectorial de los 2 vectores Vtb=cross([xp22_c';0]-[a2;0],([P;0]-[xp22_c';0])); % y se ve su sentido para seleccionar el modo. % Es decir, el signo de la coordenada z. if(Vta(3)<=0 && mt(2)==0 || Vta(3)>=0 && mt(2)==1) % Si es mt=0 tiene que ser negativo y si es mt=1 positivo. p2=xp21_c; % Y con este if sabemos Ba y Bb equivale al modo 0 o 1 elseif(Vtb(3)<=0 && mt(2)==0 || Vtb(3)>=0 && mt(2)==1) p2=xp22_c; else OK=0; ErrorMsg='Compruebe mt 0 o 1.'; return; end %Cadena 3: % Se selecciona el modo deseado: % Con cross haces producto vectorial: hay que añadir la coordemada z como un 0.
ANEXO I: Códigos Scripts Matlab Vta=cross([xp31_c';0]-[a3;0],([P;0]-[xp31_c';0])); % Se calcula el producto vectorial de los 2 vectores Vtb=cross([xp32_c';0]-[a3;0],([P;0]-[xp32_c';0])); % y se ve su sentido para seleccionar el modo. % Es decir, el signo de la coordenada z. if(Vta(3)<=0 && mt(3)==0 || Vta(3)>=0 && mt(3)==1) % Si es mt=0 tiene que ser negativo y si es mt=1 positivo. p3=xp31_c; % Y con este if sabemos Ba y Bb equivale al modo 0 o 1 elseif(Vtb(3)<=0 && mt(3)==0 || Vtb(3)>=0 && mt(3)==1) p3=xp32_c; else OK=0; ErrorMsg='Compruebe mt 0 o 1.'; return; end %% Cálculo de articulaciones activas qa1=[]; qa2=[]; qa3=[]; qa1=atan2(p1(2)-a1(2),p1(1)-a1(1)); qa2=atan2(p2(2)-a2(2),p2(1)-a2(1)); qa3=atan2(p3(2)-a3(2),p3(1)-a3(1)); qa=[qa1;qa2;qa3]; %% Cálculo de articulaciones pasivas qp1=[]; qp2=[]; qp3=[]; qp1=atan2(B1(2)-p1(2),B1(1)-p1(1))-qa1; qp2=atan2(B2(2)-p2(2),B2(1)-p2(1))-qa2; qp3=atan2(B3(2)-p3(2),B3(1)-p3(1))-qa3; qp=[qp1;qp2;qp3]; %% Matriz articular q=[qa;qp]; OK=1;
ANEXO I: Códigos Scripts Matlab C: Código Matriz Jacobiana (J) y matriz ecuaciones de cierre (f) function [J,f]=Jacobiana_X_f() %Función para el cálculo de la Jacobiana respeto de la posición del %elemento final. Uno de los ejemplos de utilización de esta Jacobiana es en %el método de Newton-Raphson de la cinemática directa. %% Declaración de variables simbólicas syms qa1 qa2 qa3 real; syms x y tz real; syms l1 l2 l3 real; syms L1 L2 L3 real; syms a1x a1y real; syms a2x a2y real; syms a3x a3y real; syms d1x d1y real; syms d2x d2y real; syms d3x d3y real; %% Vectores %Puntos anclaje articulación activa: a1=[a1x ;a1y]; a2=[a2x ;a2y]; a3=[a3x ;a3y]; %Vector posicionamiento Bi respecto centro plataforma móvil: d1=[d1x ;d1y]; d2=[d2x ;d2y]; d3=[d3x ;d3y]; %Posición punto pi (articulación pasiva): vL1=[L1*cos(qa1); L1*sin(qa1)]; vL2=[L2*cos(qa2); L2*sin(qa2)]; vL3=[L3*cos(qa3); L3*sin(qa3)]; %Posición TCP x,y: P=[x;y]; %Las 3 variables sobre las que se derivan las ecuaciones de cierre del %robot: X=[x;y;tz]; %% Cálculo de la Ecuacion fi(x,qai)=0 (Ecuaciones de cierre) %Matriz de rotación para el cálculo de di: Rot_z=[cos(tz) -sin(tz); sin(tz) cos(tz)]; %Ecuaciones de cierre f1=(-a1-vL1+P+Rot_z*d1)'*(-a1-vL1+P+Rot_z*d1)-l1^2; f2=(-a2-vL2+P+Rot_z*d2)'*(-a2-vL2+P+Rot_z*d2)-l2^2;
ANEXO I: Códigos Scripts Matlab vq=[]; vX=[]; %(En caso de que algún día tenga 2 modos de trabajo, meter el estudio de %singularidades). %% Obtención de parámetros de la estructura: %Posiciones de enclavamiento de los músculos: a1=Param.Longitudes.a1; a2=Param.Longitudes.a2; a3=Param.Longitudes.a3; a1x=a1(1); a1y=a1(2); a2x=a2(1); a2y=a2(2); a3x=a3(1); a3y=a3(2); %Longitudes de los elementos de cadenas serie: L1=Param.Longitudes.L1; L2=Param.Longitudes.L2; L3=Param.Longitudes.L3; l1=Param.Longitudes.l1; l2=Param.Longitudes.l2; l3=Param.Longitudes.l3; %Parámetros de la plataforma: d1=Param.Longitudes.d1; d2=Param.Longitudes.d2; d3=Param.Longitudes.d3; d1x=d1(1); d1y=d1(2); d2x=d2(1); d2y=d2(2); d3x=d3(1); d3y=d3(2); %Variables de entrada: qa1=q(1); qa2=q(2); qa3=q(3); qna1=q(4); qna2=q(5); qna3=q(6); x=X(1); y=X(2); tz=X(3); %% Matrices Jacobianas cartesianas y articulares (Jxqi y Jxi) de las cadenas cinemáticas Jx1 =[-1, 0, d1y*cos(tz) + d1x*sin(tz); 0, -1, d1y*sin(tz) - d1x*cos(tz)]; Jx2 =[-1, 0, d2y*cos(tz) + d2x*sin(tz); 0, -1, d2y*sin(tz) - d2x*cos(tz) ]; Jx3 =[-1, 0, d3y*cos(tz) + d3x*sin(tz); 0, -1, d3y*sin(tz) - d3x*cos(tz)]; Jq1 =[- l1*sin(qa1 + qna1) - L1*sin(qa1), -l1*sin(qa1 + qna1); l1*cos(qa1 + qna1) + L1*cos(qa1), l1*cos(qa1 + qna1)]; Jq2 =[- l2*sin(qa2 + qna2) - L2*sin(qa2), -l2*sin(qa2 + qna2); l2*cos(qa2 + qna2) + L2*cos(qa2), l2*cos(qa2 + qna2)];
ANEXO I: Códigos Scripts Matlab Jq3 =[- l3*sin(qa3 + qna3) - L3*sin(qa3), -l3*sin(qa3 + qna3); l3*cos(qa3 + qna3) + L3*cos(qa3), l3*cos(qa3 + qna3) ]; %% Cálculo de la Jacobiana del lazo cinemático (Ji) % Establecer la relación entre la velocidad articular y de posicionamiento vqi=Ji*vx J1=-inv(Jq1)*Jx1; J2=-inv(Jq2)*Jx2; J3=-inv(Jq3)*Jx3; %Cálculo jacobianas de articulaciones activas y pasivas Jqa=[J1(1,:); J2(1,:); J3(1,:)]; Jqp=[J1(2,:); J2(2,:); J3(2,:)]; %% Resolviendo el problema, queda que: vX=inv(Jqa)*vqa; %Relación articulaciones pasivas y vX: %vqp=Jqp*vX y vX=inv(Jqa)*vqa %Cálculo velocidad articulaciones pasivas: vqp=Jqp*inv(Jqa)*vqa; vq=[vqa;vqp]; OK=1; H: Código Problema Velocidad inverso function [OK,vq]=VelocidadInversa(Param,vX,X,q) %A partir de las velocidades de la plataforma, consigue obtener las velocidades %articulares %-Entradas: % - Param: estructura que contiene los parámetros cinemáticos y dinámicos % de la maqueta. % -vX: velocidades del elemento terminal. % - X: Posición y orientación del elemento final. % - q: Variables articulares. % %-Salidas: % -Comprobante de que todo funciona correctamente. % -vq: velocidad de las variables articulares. %-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_OK=0; vq=[]; %% Obtención de parámetros de la estructura
ANEXO I: Códigos Scripts Matlab %Posiciones de enclavamiento de los músculos: a1=Param.Longitudes.a1; a2=Param.Longitudes.a2; a3=Param.Longitudes.a3; a1x=a1(1); a1y=a1(2); a2x=a2(1); a2y=a2(2); a3x=a3(1); a3y=a3(2); %Longitudes elementos cadenas cinemáticas serie L1=Param.Longitudes.L1; L2=Param.Longitudes.L2; L3=Param.Longitudes.L3; l1=Param.Longitudes.l1; l2=Param.Longitudes.l2; l3=Param.Longitudes.l3; %Parámetros plataforma d1=Param.Longitudes.d1; d2=Param.Longitudes.d2; d3=Param.Longitudes.d3; d1x=d1(1); d1y=d1(2); d2x=d2(1); d2y=d2(2); d3x=d3(1); d3y=d3(2); %Variables de entrada qa1=q(1); qa2=q(2); qa3=q(3); qna1=q(4); qna2=q(5); qna3=q(6); x=X(1); y=X(2); tz=X(3); %% Matrices Jacobianas cartesianas y articulares (Jxqi y Jxi) de las cadenas cinemáticas Jx1 =[-1, 0, d1y*cos(tz) + d1x*sin(tz); 0, -1, d1y*sin(tz) - d1x*cos(tz)]; Jx2 =[-1, 0, d2y*cos(tz) + d2x*sin(tz); 0, -1, d2y*sin(tz) - d2x*cos(tz) ]; Jx3 =[-1, 0, d3y*cos(tz) + d3x*sin(tz); 0, -1, d3y*sin(tz) - d3x*cos(tz)]; Jq1 =[- l1*sin(qa1 + qna1) - L1*sin(qa1), -l1*sin(qa1 + qna1); l1*cos(qa1 + qna1) + L1*cos(qa1), l1*cos(qa1 + qna1)]; Jq2 =[- l2*sin(qa2 + qna2) - L2*sin(qa2), -l2*sin(qa2 + qna2); l2*cos(qa2 + qna2) + L2*cos(qa2), l2*cos(qa2 + qna2)]; Jq3 =[- l3*sin(qa3 + qna3) - L3*sin(qa3), -l3*sin(qa3 + qna3); l3*cos(qa3 + qna3) + L3*cos(qa3), l3*cos(qa3 + qna3) ]; %% Cálculo de la jacobiana de las variables articulares
ANEXO I: Códigos Scripts Matlab % Establecer la relación entre la velocidad articular y de posicionamiento vqi=Ji*vx J1=-inv(Jq1)*Jx1; J2=-inv(Jq2)*Jx2; J3=-inv(Jq3)*Jx3; %Jacobiana de velocidad del problema inverso Jq=[J1(1,:); J2(1,:); J3(1,:); J1(2,:); J2(2,:); J3(2,:)]; %Resolución: vq=Jq*vX; OK=1; I: Código jacobianas resolución problema de velocidad %% Script para cálculo de las jacobianas de velocidad. %% Declaración de variables simbólicas syms qa1 qa2 qa3 real; syms qna1 qna2 qna3 real; syms x y tz real; syms l1 l2 l3 real; syms L1 L2 L3 real; syms a1x a1y real; syms a2x a2y real; syms a3x a3y real; syms d1x d1y real; syms d2x d2y real; syms d3x d3y real; %% Vectores %Posiciones de anclajes a1=[a1x ;a1y]; a2=[a2x ;a2y]; a3=[a3x ;a3y]; %Vectores distancias plataforma d1=[d1x ;d1y]; d2=[d2x ;d2y]; d3=[d3x ;d3y]; %Posición final P=[x;y]; %% Elemento final y variables articulares X=[x;y;tz];
ANEXO I: Códigos Scripts Matlab qa= [ qa1 ; qa2 ; qa3 ]; qna=[qna1 ; qna2 ; qna3]; %% Variables articulares de cada cadena cinemática q1=[qa1; qna1]; q2=[qa2; qna2]; q3=[qa3; qna3]; %% Cálculo de las ecuaciones de cierre vectoriales Rot_z=[cos(tz) -sin(tz); sin(tz) cos(tz)]; %Matriz de rotación EC1=a1+[L1*cos(qa1); L1*sin(qa1)]+[l1*cos(qa1+qna1); l1*sin(qa1+qna1)]- Rot_z*d1-P EC2=a2+[L2*cos(qa2); L2*sin(qa2)]+[l2*cos(qa2+qna2); l2*sin(qa2+qna2)]- Rot_z*d2-P EC3=a1+[L3*cos(qa3); L3*sin(qa3)]+[l3*cos(qa3+qna3); l3*sin(qa3+qna3)]- Rot_z*d3-P f=[EC1;EC2;EC3]; %% Cálculo de las Jacobianas % Con respecto de los estados del elemento terminal Jx1=jacobian(EC1, X) Jx2=jacobian(EC2, X) Jx3=jacobian(EC3, X) %Con respecto de las articulaciones de cada cadena cinemática Jq1=jacobian(EC1, q1) Jq2=jacobian(EC2, q2) Jq3=jacobian(EC3, q3)