FACULTAD REGIONAL CÓRDOBA “Software de control para Robot Industrial de seis grados de libertad” Autores: Ing. Rodolfo Cavallero [email protected] , Ing. Carlos Candiani [email protected] , Ing. Francisco G. Gutierrez [email protected] ,Ing. Sergio Daniel Olmedo [email protected] , Sr. Sergio Daniel Carrara [email protected] . Centro Universitario de Automación y Robótica (C.U.D.A.R) Universidad Tecnológica Nacional - Facultad Regional Córdoba. [email protected] TEL. 0351-4680296-INT 129-36 Resumen: En este trabajo se presentan el metodo y los resultados obtenidos en el desarrollo del software de control para un robot industrial cilíndrico de seis grados de libertad. This paper presents the method and results obtained in a control software development for a six degrees of freedom industrial robot. Palabras Claves Control Robot, Algoritmo PID, Interrupciones, Trayectorias, Interpolación Lineal, Muestras. Página 1/17 Introducción El presente software ha sido desarrollado en el marco del proyecto “Desarrollo de un robot con arquitectura de control abierta”, en el cual se propone re funcionalizar un robot industrial de seis grados de libertad optimizándolo para aplicaciones académicas. Como material disponible para el proyecto se cuenta con la estructura electromecánica de un robot del tipo cilíndrico de seis grados de libertad, marca ACMA Robotique donado por la empresa Renault Argentina. Dentro de este contexto se procede al desarrollo del presente software cuya tarea es la de controlar los actuadores de las articulaciones para que el tool center point ejecute la trayectoria programada representado por puntos espaciales. Conceptos Básicos Robot: Según la definición de la Asociación de industrias Robóticas: “Un robot industrial es un manipulador multifuncional reprogramable, capaz de mover materias, piezas, herramientas o dispositivos especiales según trayectorias variables reprogramadas para realizar tareas diversas”. Una clasificación de tipos de robot es la que se presenta a continuación: Tipo A Manipulador de control manual o telemando. Tipo B Manipulador automático con ciclos preajustados, regulación mediante fines de carrera o topes : Control con PLC, accionamiento neumático, eléctrico o hidráulico. Tipo C Robot programable con trayectoria continua o punto a punto. Carece de conocimientos sobre su entorno. Tipo D Robot capaz de adquirir datos de su entorno, readaptando su tarea en función Página 2/17 de estos. También se hace una clasificación según generación 1ª Generación Repite la tarea programada secuencialmente. No toma en cuenta las posibles alteraciones de su entorno. 2ª Generación Adquiere información limitada de su entorno y actuar en concecuencia. Puede localizar, clasificar y detectar esfuerzos y adaptar sus movimientos en concecuencia. 3ª Generación Su programación se realiza mediante el empleo de un lenguaje natural. Posee capacidad para planificación automática de tareas La estrategia actual de control desarrollada sitúa al Robot del proyecto en la primera generación y se clasificaría como de Tipo C. Grados de Libertad: Es el numero de movimientos relativos que puede ejecutar una articulación con respecto a otra. El grado de libertad de un robot viene dado por la suma de los grados de libertad de sus articulaciones. Transmisores: Elementos encargados de transmitir el movimiento desde el actuador a la articulación. Reductores: Elemento encargado de adaptar el par y la velocidad de las salida del actuador. Actuadores: Generan los movimientos de los elementos del Robot según las ordenes dadas por el Control. Sensores: Son los elementos que permiten al Robot tener un conocimiento de su propio estado como el del entorno. Cinemática del Robot: Página 3/17 Estudia el movimiento del robot con respecto a un sistema de referencia. Realiza una descripción analítica del movimiento espacial del robot como función del tiempo, sin conciderar las fuerzas o pares que producen dicho movimiento. El estudio cinemático se divide en dos problemas: -Cinemática Directa: Es aquella que conociendo los ángulos o desplazamientos de las articulaciones determina la posición del Tool- Center point. -Cinemática Inversa: Es aquella que a partir del conocimiento de la posición del Tool Center point determina la configuración que debe adoptar el robot. Configuración: Se entiende por configuración la posición angular o lineal de todas las articulaciones del Robot. Tool Center Point: Punto central de la herramienta, o punto de interés para la trayectoria. Dinámica del Robot: La dinámica se ocupa de la relación entre las fuerzas que actúan sobre un cuerpo y el movimiento que en el se origina. Path: Lugar de puntos en el espacio de articulaciones. Trayectoria: Es un Path donde se especifican las leyes de tiempo, se especifican aveces velocidades y aceleraciones en cada punto. Generador de Trayectorias: El generador de trayectorias es el algoritmo encargado de producir a partir de un camino o path una secuencia temporal de puntos. PATH Limites Dinámicos del manipulador Generador de Trayectorias Trayectoria de articulaciones como f(t) Restricciones de Entorno Tipo de Control: Página 4/17 Control Monoarticular: Se desprecia la interacción entre los grados de libertad del Robot. Control Multiarticular: Se concidera al Robot como un sistema multivariable y se toman en cuanta los efectos producidos sobre el control por la configuración del Robot. Desarrollo: El problema que se ataca con este desarrollo es el de conseguir que el Robot siga una trayectoria previamente programada. Con este trabajo se ha obtenido un control del tipo monoarticular capaz de realizar una interpolación del tipo lineal entre puntos, y de adaptar las velocidades de los distintos ejes de manera tal que lleguen al punto de consigna deforma simultanea. El diagrama del sistema de control es observado en la figura, donde se destacan los siguientes elementos: 1- Algoritmo de control: PID implementado digitalmente dentro de una computadora personal, el lenguaje de programación utilizado es el Borland C trabajando con un sistema operativo tipo DOS. 2- Salida de Control: Para obtener la salida de control se utiliza una placa de conversión Digital analógica desarrollada en el Centro CUDAR, con una resolución de 12 Bits. 3- Drive Intermedio: Se ha denominado así al circuito electrónico que toma la señal analógica provista por la placa y la transforma en una modulación de ancho de pulsos, la cual actúa sobre los Drivers de potencia. 4- Drivers de Potencia: Consta de una llave H con transistores de potencia tipo MOSFET, los cuales operan a una frecuencia de conmutación de 20Khz, esto permite la eliminación de la interferencia sonora producida en algunas llaves con frecuencia de conmutación audible. Circuito de Realimentación: 5- Actuador: Esta formado por un Motor de Corriente continua con escobillas. Página 5/17 6- Encoder Optico: Este es el elemento sensor, el cual esta montado de forma solidaria con el eje del motor. 7- Placa Decodificadora: Es la que detecta los pulsos de los Encoders Opticos y los entrega a las placas contadoras. 8- Placas Contadoras: Estas placas están formadas por contadores de 12 bits, estos contadores se incrementan con la llegada de pulsos desde las placas decodificadoras. 9- La entrada de datos se produce a través de una placa de adquisición. PID (Digital) Conversor D/A Contadores Driver Intermedio Dec odific ador Motor Llave H ENCODERS Figura 1 Arquitectura del Software: El software implementado puede ser dividido en varios módulos a saber: 1- Modulo Critico. Cierre de lazo en Tiempo Real. 2- Modulo de interpolación Lineal. Página 6/17 3- Modulo de visualización. El orden de mención de los módulos esta íntimamente relacionado con su jerarquía o prioridad. Archivo de Trayectoria El modo en que los puntos de referencia son ingresados el programa, actualmente estos puntos se obtienen de un archivo del tipo texto con la siguiente distribución: Punto1_eje1 Punto1_eje2 Punto1_eje3 Punto1_eje4 Punto1_eje5 Punto1_eje6 Punto2_eje1 Punto2_eje2 Punto2_eje3 Punto2_eje4 Punto2_eje5 Punto2_eje6 Punto3_eje1 Punto3_eje2 Punto3_eje3 Punto3_eje4 Punto3_eje5 Punto3_eje6 Punto4_eje1 Punto4_eje2 Punto4_eje3 Punto4_eje4 Punto4_eje5 Punto4_eje6 Punto5_eje1 Punto5_eje2 Punto5_eje3 Punto5_eje4 Punto5_eje5 Punto5_eje6 Donde los puntos son dados en pulsos de encoders con referencia a una posición inicial conciderada como punto 0.La equivalencia métrica es 80 pulsos por milímetro lineal o en caso de los ejes que producen rotaciones un grado equivale a 92 pulsos de encoder. Se ha desarrollado una aplicación para levantar curvas y polilineas generadas en AUTOCAD y descargarlas con el formato anteriormente especificado, estas pruebas se han realizado con éxito en dos ejes lineales del robot. Modulo critico El modulo critico es el encargado de cerrar en tiempo real el lazo de realimentación de posición de la articulación, para tal fin realiza la implementación de un algoritmo tipo PID con control de wind-up.La ecuación de control implementada es la siguiente: Po(t ) = e(t ) * Kp + Kd * de(t ) + Ki * ∫ e(t )dt dt PID continuo Ec.1 Página 7/17 Kp Pref Kd * d dt Po P_actual Ki * ∫ dt Fig. 2 Diagrama en bloques Donde Po= Señal de salida. e = P _ ref − P _ actual Kp = Constante Proporcional. Kd = Constante Derivativa. Ki = Constante Integral. Técnica de implementación del Algoritmo La variable tiempo toma un papel clave en el algoritmo, la presencia del termino Integral y derivativo hacen mención explícitamente al tiempo, ya que la integración y la derivación son efectuadas con respecto al mismo. El algoritmo de control ha sido implementado dentro de la PC de manera digital, por lo tanto la variable tiempo que aparece como continua en la ecuación debe ser discretizada, y una buena aproximación discreta puede ser la expuesta a continuación. n−1 Pot(n∆t) = Kp* e(n∆t) + Kd * (e(n∆t) − ∑ e(i∆t) / 20) n−20 ∆t n + Ki* ∑e(n∆t) 1 Ecuación discretizada de un PID – Ec 2 Página 8/17 Donde t a sido reemplazado por ∆t que representa el tiempo de muestra del sistema. Esta ecuación presenta algunas diferencias con su contraparte continua, una de ellas es que el termino derivativo tendrá un valor finito aun cuando se presente un escalón en el error, cosa que en la ecuación continua daría un valor infinito. Aun con estas diferencias esta ecuación puede ser conciderada como valida para representar un control PID, siempre y cuando el tiempo de muestra sea mucho menor que constante de tiempo mas chica del sistema a controlar. Si se cumple la condición anterior todo lo tratado por el control clásico en controladores tipo PID continuo puede ser aplicado al PID digital sin ninguna concideración especial. Modelo de Motor de Corriente Continua: A modo de ilustracion se presenta el modelo matematico del motor de corriente continua de dos de los ejes principales del Robot. Las constantes fisicas fueron obtenidas de las especificaciones del fabricante, posteriormente fueron contrastadas a traves de ensayos. Ea[s] K 1 SLa + Ra 1 S ( JS + b) θ[s] SKb Modelo General de un Motor de CC Φref - Nm 145 .10 − 3 A S * 120 µ Hy + 0 .8Ω 2 S 450.10 −6 1 m Kg + S 47.75.10− 6 [m.N .Seg ] [ ] θ[rad] 0.03[Nm] S146.10−3 [VSeg ] 2 Página 9/17 SGN() Efecto Wind-Up Como se observa en la ecuación el termino integral presenta un acumulador de error, al producirce el desplazamiento del robot este termino ira acumulando el error durante la ejecución de la trayectoria, al llegar a la posición deseada esta acumulación debe ser anulada, y eso solo es posible a través de errores negativos, esto produce un sobrepaso en el controlador, que aveces puede no ser tolerado. Una de las técnicas utilizadas para minimizar este sobrepaso es poner una ventana de acción integral, es decir deshabilitar la acción integral cuando el error sobrepase un valor absoluto predeterminado. Esta técnica ha sido implementada con éxito en el algoritmo implementado registrando una notable disminución en el sobrepaso. La inclusión en el algoritmo se hizo prácticamente haciendo cero tanto el acumulador como la e>max Si Acum= 0 Algoritmo constante Ki cuando el error registrado superaba la ventana de control integral. Página 10/17 Las curvas fueron obtenidas con una placa de adquisición de datos, que fue conectada de 9000 10000 8000 9000 7000 8000 7000 6000 6000 5000 5000 4000 4000 3000 3000 2000 2000 1000 1000 0 0 1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 Fig.3 con control anti wind-up forma paralela a la PC de control. 1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 Fig.4 sin control anti wind-up Modulo de interpolación Lineal. La trayectoria a seguir es suministrada como una secuencia de puntos, que indican la posición de cada una de las articulaciones, estos puntos deben ser tomados con una frecuencia de muestra de 100Hz, el algoritmo de control es cerrado con una frecuencia de 1000Hz, por lo tanto se hace necesario interpolar los puntos obtenidos de la trayectoria. La interpolación actual es del tipo lineal, y asegura que todas las articulaciones lleguen al mismo tiempo al punto destino. Ademas de la interpolación entre puntos de trayectoria, se realiza un control del desplazamiento máximo que se solicita a la articulación entre tiempos de muestras, si este desplazamiento es superior a los limites dinámicos del sistema se realiza otra interpolación para obtener puntos intermedios de trayectoria que sean físicamente realizables. Los limites dinámicos son impuestos por los torques máximos que pueden ser desarrollados por los motores, así como la rigidez mecánica de la articulación. Este algoritmo de interpolación ha permitido definir puntos espacialmente alejados obteniendo como respuesta una trayectoria continua, y el arribo simultaneo de los ejes al punto consigna. Página 11/17 A continuación se expone gráficamente lo que se interpreta por trayectoria y el modo en que X Y X Y T Punto de Muestra Movimiento Eje 1 Movimiento Eje 2 T Figura 5 estos puntos son manejados internamente por el programa, para facilitar su interpretación se hace una explicación para dos dimensiones. La trayectoria a seguir por el Tool center Point es la indicada en la gráfica X-Y donde no se considera la variable temporal como parte de la misma, esta trayectoria es proyectado en los movimientos que deberán efectuar cada uno de los ejes en función del tiempo, la combinación de estos movimientos da por resultado la trayectoria deseada. Como la implementación actual del control es monoarticular, una vez obtenidas estos puntos de posición articular los mismos ingresan como consigna al algoritmo de control, que es el encargado de producir el movimiento. Actualmente el modelo de control implementado no toma en cuenta la modificación de los parámetros físicos con la posición de la articulación, es decir variaciones en la inercia, o efectos de acoplamientos entre articulaciones, simplemente considera al modelo constante en todo el recorrido y aplica el control tipo PID anteriormente expuesto. Interpolación lineal inter-punto sin exceso en exigencia de velocidad Página 12/17 Esta definición aplicaremos a la interpolación lineal que realiza el algoritmo para obtener los puntos intermedios del recorrido, recordemos que los puntos de trayectoria están espaciados a una frecuencia de 100Hz y el lazo de control esta cerrado a 1Khz, entre los puntos se realiza una nueva división en 10 partes. P2 P1 X X X X X X X X X X X= Puntos obtenidos por interpolac ion en tiempo real.- T Figura 6 P 2 − P1 ∆T P(nt ) = P 2 + na La obtención de los puntos intermedios se realiza travez del siguiente algoritmo. a= Donde a pendiente. n numero de muestra intermedia, con respecto al ultimo punto cargado. En este punto se puede introducir una conclusión practica obtenida durante el desarrollo del algoritmo, en primera instancia se opto por no leer el punto P2, solo se realizaba diez incrementos del punto P1, con el algoritmo final en donde se incrementan nueve veces la posición y la decima es reemplazada efectivamente por el punto P2 desde el archivo de trayectorias se obtuvo una mejora notable en el seguimiento de la trayectoria, esto es debido a que todos los cálculos utilizan enteros por lo tanto el error es acumulado durante el proceso de interpolación, el uso de entero se adopto por la velocidad necesaria en las operaciones. Interpolación lineal inter-punto con exceso en exigencia de velocidad Página 13/17 Esta situación se presenta cuando los puntos de la trayectoria exigen al control distancias excesivas a cubrir entre muestras, lo que llevaría a exigir aceleraciones extremas a la estructura, para evitar esto se realiza una primera interpolación que obtiene puntos intermedios, se concidera que estos puntos pertenecen a extremos de recta, por lo tanto la trayectoria intermedia debe ser cubierta respetando las proporcionalidades existentes entre los puntos finales.Esta situación es ilustrada en el gráfico siguiente. X P2 X X X X P1 X Puntos introduc idos por el interpolador D distanc ia maxim a entre puntos perm itida .D Y Figura7 Para introducir estos puntos, se opera sobre el archivo de trayectorias el cual contiene la descomposición de la trayectoria en el desplazamiento necesario por eje, se toma el punto que viola la restricción y se lo divide en segmentos de máximo desplazamiento, el numero de segmentos obtenido es aplicado sobre el resto de los ejes, obteniendo de este modo una coordinación lineal en el movimiento. El resultado de la aplicación del algoritmo permite obtener la mejora observada en el siguiente gráfico. X X Y Y Sin compenzacion Con c ompenzac ion Figura 8 Página 14/17 Modulo de visualización: Este es el menos complejo de los módulos y simplemente es utilizado como una forma de seguimiento visual del punto en que se encuentran los ejes, esta rutina es ejecutada con una cadencia 500 veces menor que la del control.Diagrama de flujo general del programa En el diagrama de flujo se observan las funciones síncronas del programa, el algoritmo de control al poseer una prioridad superior fue embebido dentro de la interrupción de timer. Figura9 Página 15/17 Al accionar el algoritmo de control el sistema utiliza los datos de referencia localizados en posiciones de memorias especificas, estas posiciones de memoria solo serán modificadas dentro de la función de actualización de puntos. Para lograr cubrir los requerimientos de velocidad la interrupción de timer de la PC ha sido reconfigurado para actuar con una frecuencia de 12Khz. Al finalizar el programa se realiza una reconfiguracion del sistema, demanera tal que los motores quedan desconectados de los drivers de potensia. Fotografía de Robot industrial de 6 grados de Libertad Figura10 Conclusiones: Con el desarrollo del presente trabajo se confirmo la viabilidad de la utilización de una PC como plataforma de desarrollo para el control de arquitectura abierta propuesto en el proyecto, el cual permitirá la aplicación del sistema como banco de ensayo para el aprendizaje Página 16/17 de robótica, y su posterior aplicación en internet, la frecuencia de cierre de lazo de posicion demostro ser susficiente y los calculos del algoritmo pueden ser realizados olgadamente por una PC. Proyecciones El proyecto pretende incursionar en el campo de la telerobotica, generando un laboratorio virtual de robotica industral, y un laboratorio real formado por el Robot, la PC de control y una PC de monitoreo que permitira atravez de la Internet realizar ensayos y obtener datos precisos de la respuestas obtenidas del sistema, permitiendo fomentar la Robotica dentro del ambito academico. Bibliografia: Katsuhiko Ogata 1993. Ingenieria de Control Moderna. Pag 146-152, 267-276, 234-240. John J. Craig.1984. Introduction to Robotics. Pag16-20, 191-214. Lorenzo Sciavicco/ Bruno Siciliano 1996. Modeling and Control of Robot Manipulators. Rafael Iñigo. Manipulator Robot. Pag 1-5,199-224. A. Barrientos / L. Peñin / C. Balaguer / R. Aracil.1997. Fundamentos de Robotica. Pag. 214,16-44,169-184. Página 17/17