facultad regional córdoba - Universidad Tecnológica Nacional

Anuncio
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
Descargar