SciELO - Scientific Electronic Library Online

 
vol.22 issue1Application of an Evolutionary Algorithm to solve Job Shop-Open Shop ProblemsA New Method to Improve the Production Process of Boric Acid author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Journal

Article

Indicators

Related links

Share


Información tecnológica

On-line version ISSN 0718-0764

Inf. tecnol. vol.22 no.1 La Serena  2011

http://dx.doi.org/10.4067/S0718-07642011000100012 

Información Tecnológica Vol. 22(1), 93-100(2011)

 

VARIOS

 

Implementación en el Robot Antropomorfo CXN-I del Control Cinemático de Trayectorias Rectilíneas

 

Implementation on the CXN-I Anthropomorphic Robot of a Straight Line Kinematic Control

 

Oscar D. Moran, Federico G. Künning y José A. Cuello

Universidad Nacional de San Luis, Facultad de Ingeniería y Ciencias Económico-Sociales Ruta Nacional #148, extremo norte, (5730) Villa Mercedes, San Luís-Argentina


Resumen

El objetivo del trabajo que se presenta fue implementar el control cinemático para que el extremo del robot CXN-I siga una trayectoria rectilínea controlando la aceleración y velocidad a lo largo de la misma. A la recta definida por dos puntos solicitados por un usuario se le aplica un interpolador de segmento lineal con transiciones parabólicas. Se muestrea esta curva y mediante la cinemática inversa se obtienen las coordenadas articulares que son unidas utilizando un interpolador de polinomios cúbicos. De estas curvas se extraen las variables de control, las cuáles son ingresadas en un modelo computacional, obteniéndose las coordenadas de la trayectoria real e ideal. Basado en los resultados se concluye que se ha logrado implementar el control desarrollado y que este método se podría hacer extensivo a otros tipos de trayectorias y de robots.

Palabras clave: robot, antropomorfo, control cinemático, trayectorias, robot CXN-I


Abstract

The purpose of this work was to implement the kinematic control of the CXN-I robot so it follows a straight line trajectory, controlling both acceleration and speed along it. A linear segment with parabolic transitions interpolator is applied to the line defined by the requested points. This curve is sampled and the joints coordinates obtained through the inverse kinematic equations are then connected using a cubic polynomial interpolator. The references for the control system obtained from these curves are entered into a computer model of the robot, obtaining the cartesian coordinates of the real and ideal trajectory. Based on the results, it is concluded that the implementation of the proposed control was successfully achieved and that this method could be extended to other types of trajectories and robots.

Keywords: robot, anthropomorphic, kinematic control, trajectories,, robot CXN-I


 

INTRODUCCIÓN

Una de las tareas que se les solicitan a los robots industriales es que desplacen el extremo o la herramienta en una trayectoria definida, y una de las trayectorias más requeridas es la rectilínea. Esta tarea es realizada por el control cinemático, el cual, además de realizar la trayectoria deseada, debe ser capaz de realizar la tarea cumpliendo con determinados criterios de velocidad y precisión.

El control cinemático para trayectoria rectilínea es un tema conocido y estudiado. Sin embargo este trabajo realiza un aporte importante ya que muestra una implementacion utilizando herramientas informáticas disponibles en la actualidad.

En el Laboratorio de Mecatrónica (LABME) de la FICES, se ha desarrollado y construido completamente un robot antropomorfo de características didácticas denominado CXN-I y su controlador, en el marco de un proyecto de investigación y desarrollo tecnológico, con el objetivo de experimentar el funcionamiento de los mismos, propendiendo a generar los conocimientos necesarios para el dominio de la rebotica y de esta manera, entre otros objetivos, posibilitar el desarrollo de esta tecnología en la región.

El primer control cinemático implementado en el robot CXN-I fue un control punto a punto. Se tomó como referencia (Moran y Abate, 1994) y se lo modificó aplicando un control trapezoidal de la velocidad articular (Barrientos et al., 2007, Künning, 2006) y como era natural, el siguiente objetivo era desarrollar un control cinemático capaz de realizar trayectorias rectilíneas. En la literatura referida a la rebotica se encuentran soluciones teóricas a este problema que se enfocan en resolver el problema cinemático inverso para que el extremo de un robot siga una trayectoria definida. Trabajos recientes abordan este tema aplicando redes neuronales (Qin y Carriera, 2008), también son aplicados métodos iterativos (Grudic y Lawrence, 1993), métodos numéricos (Ersü y Nungesser, 1983) y soluciones analíticas (Yili etal, 2008; Taylor, 1979).

El diseño y construcción completa del robot CXN-I y de su controlador conlleva a que en la mayoría de los desarrollos que se realicen en el mismo, independientemente de que se puedan utilizar metodologías ya estudiadas y conocidas, deban resolverse problemas particulares de la arquitectura de control del sistema, haciendo casi imposible encontrar las soluciones especificas a estos problemas en la literatura. En similares condiciones se destaca el trabajo presentado por (Yili et al., 2008), que describe la implementacion de la cinemática para un robot manipulador espacial, utilizando un procesador ARM y un co-procesador FPGA, con el algoritmo de CORDIC para resolver las ecuaciones analíticas.

Este trabajo tiene como objetivo mostrar la implementacion del control cinemático del robot CXN-I que permite el movimiento rectilíneo del extremo, en el marco de una estrategia de control para lograr el movimiento suave del extremo y de las articulaciones del mismo.

En el control cinemático desarrollado, a partir de los puntos solicitados por el usuario, se calcula la trayectoria rectilínea en el espacio cartesiano que los une, aplicando un interpolador trapezoidal para la variación de la velocidad del extremo a lo largo de la misma (Barrientos et al., 2007, Craig, 2005). Se muestrea la trayectoria cartesiana a intervalos iguales de tiempo. Aplicando las ecuaciones de la cinemática inversa a cada uno de los puntos muestreados se obtienen sus correspondientes coordenadas articulares. Las coordenadas articulares a intervalos iguales de tiempo son interpoladas utilizando polinomios cúbicos, obteniendo una curva continua para cada articulación. Las curvas continuas para cada articulación son transformadas a variables capaces de ser interpretadas por el sistema de control, en el caso de la arquitectura de control del CXN-I, se obtienen, mediante métodos iterativos, los valores de divisores de frecuencia a escribir en los temporizadores de la placa de adquisición y control.

Para facilitar la comprensión del presente trabajo, la solución al problema se describe para dos grados de libertad, aunque su implementacion se realiza en el robot CXN-I. Se muestra una verificación de la trayectoria real obtenida realizada en un modelo computacional del robot CXN-I.

ARQUITECTURA DE CONTROL

Para el entendimiento del trabajo desarrollado es necesario conocer las características de la arquitectura de control desarrollada.

El sistema de control está físicamente constituido por una PC, y un driver RTA SAC 26 por cada motor paso a paso. La PC cuenta con dos placas de adquisición y control de datos DAQ Axial electrónica PCX I/O que contienen una interfaz programable 8255A y tres contadores/temporizadores programables 8253A.

Los drivers que accionan los motores se comandan a través de la placa PCX I/O, que recibe las instrucciones de control desde el software de aplicación. La Figura 1 muestra un esquema de la arquitectura de control implementada.


Fig. 1: Esquema de la arquitectura de control.

El accionamiento de los motores se realiza mediante trenes de pulsos generados en las placas, que ingresan a los controladores. La cantidad de pulsos y la frecuencia de las señales son proporcionales al incremento de la posición y velocidad angular de los motores respectivamente. También se requiere de una señal de habilitación y de una señal para la selección del sentido de giro. Los trenes de pulsos se generan con los temporizadores programables de las placas PCX I/O configurados en modo generador de onda cuadrada. La frecuencia de salida es generada dividiendo la frecuencia interna de la placa por el valor entero escrito en el registro del temporizador. Estos registros son de 16 bits y los valores escritos en ellos reciben el nombre de divisores de frecuencia.

Con este tipo de arquitectura, el programa de control en la PC, debe calcular y escribir los divisores de frecuencia en la placa PCX I/O. Por ende, el objetivo del programa de control será encontrar, a partir del control cinemático implementado, los valores de divisores de frecuencia adecuados, de tal manera que produzcan el movimiento deseado en el extremo del robot.

MÉTODO DE CÁLCULO

Para facilitar la comprensión del método y para mayor claridad de las figuras mostradas, solución al problema se describe para un robot de dos grados de libertad (GDL).

Ingresadas las coordenadas cartesianas de la posición inicial (Pi) y final (Pf) solicitadas por el operador, y de acuerdo a la resolución espacial del robot CXN-I, el programa de control calcula los valores de las coordenadas cartesianas de los puntos inicial y final realizables (Pi' y Pf') más próximos a los solicitados por el operador.

Una vez obtenidos los puntos inicial y final realizables por el extremo del robot (Pi' y Pf) se debe calcular la trayectoria que seguirá el extremo del mismo a lo largo del tiempo, como se observa en la Figura 2. En este caso, se estableció que el extremo del robot siga una trayectoria rectilínea y que la velocidad obedezca una ley de variación trapezoidal a lo largo del tiempo (Barrientos et al., 2007), comúnmente aplicada al movimiento de las articulaciones en los controles cinemáticos punto a punto. Se utiliza esta ley de variación de la velocidad ya que permite el aumento lineal de la velocidad en el arranque, desde cero hasta alcanzar la velocidad de régimen, y una disminución lineal de la misma hasta detenerse, logrando un movimiento suave y sin trepidaciones del manipulador. En la Figura 3 se observa como varia el desplazamiento d, la velocidad y la aceleración del extremo en función del tiempo para la ley de movimiento utilizada.


Fig. 2: Trayectorias ideal y realizable.


Fig. 3: Desplazamiento, velocidad y aceleración vs tiempo.

Se realiza el muestreo a intervalos iguales de tiempo del desplazamiento, luego, con este valor y con las ecuaciones de la trayectoria rectilínea se calculan las coordenadas cartesianas para cada valor muestreado. En la Figura 4 se observa el muestreo a lo largo de la curva de desplazamiento y en la Figura 5 las coordenadas cartesianas de los puntos muestreados sobre la trayectoria.


Fig. 4: Muestreo sobre la curva de desplazamiento vs tiempo.


Fig. 5: Coordenadas cartesianas de los puntos sobre la trayectoria.

Se aplica la cinemática inversa a cada punto muestreado y se obtienen las coordenadas articulares q correspondientes, Figuras 6 y 7.


Fig. 6: Coordenadas articulares muestreadas para la articulación 1.


Fig. 7: Coordenadas articulares muestreadas para la articulación 2.

A las coordenadas articulares de los puntos muestreados de cada articulación se les aplica un interpolador "spline cúbico" (Barrientos et al., 2007) de tal manera de obtener una curva continua que pase por los puntos muestreados, Figuras 7 y 8.

Por último, para reproducir las curvas interpoladas de las coordenadas articulares muestreadas en los motores y lograr el movimiento deseado del extremo del robot, se deben obtener las variables de control utilizadas por el controlador. Es decir, se deben encontrar los valores de divisores de frecuencia a escribir en los temporizadores asignados a los motores y los sentidos de giro correspondientes (Figuras 9).


Fig. 8: Coordenadas articulares interpoladas para la articulación 1.


Fig. 9: Coordenadas articulares interpoladas para la articulación 2.

Para esto, es necesario encontrar el tiempo en el que cada motor debe efectuar cada uno de sus pasos, que es el valor del periodo de duración del pulso a enviar al drive del motor. Para encontrar este tiempo se utiliza un método iterativo, debido a que la curva continua de las coordenadas articulares está compuesta por tramos de polinomios cúbicos.

Debido a que los divisores de frecuencia son valores enteros de 16 bits sólo se pueden generar un número finito de periodos diferentes. Por ende, se calculan los divisores de frecuencia que produzcan los pulsos de periodos más próximos a los tiempos obtenidos. La diferencia resultante es tenida en cuenta en el cálculo sucesivo de los divisores de tal manera que esta no se vaya acumulando. Las Figura 10 y 11 muestran los valores de las coordenadas articulares de los pasos de los motores de las articulaciones para los valores de divisores de frecuencia calculados.


Fig. 10: Coordenadas articulares de los pasos del motor de la articulación 1 para los valores de divisores de frecuencia calculados.


Fig. 11: Coordenadas articulares de los pasos del motor de la articulación 2 para los valores de divisores de frecuencia calculados.

Los valores de divisores de frecuencia obtenidos son luego enviados a las placas de adquisición y control de datos. En la Figura 12 se muestra la trayectoria real del extremo del robot de 2 GDL que se ha utilizado para ejemplificar el método de cálculo, obtenida de un modelo computacional del mismo.


Fig. 12: Trayectoria ideal y trayectoria real obtenida de un modelo computacional.

RESULTADOS

Debido a que en el laboratorio de mecatrónica no se cuenta con los medios necesarios para realizar la medición precisa de la trayectoria desarrollada por el robot CXN-I, los resultados del control cinemático, que se muestran, se obtuvieron en un modelo computacional del mismo. En la Figura 13 se muestran la trayectoria ideal y la trayectoria real, esta última calculada por el modelo computacional, para ir desde el punto inicial de coordenadas cartesianas Pi = [500, -250, 500] en mm, hasta el punto final de coordenadas Pf = [500, 250, 500] en mm, con una velocidad de 400 mm/s, una aceleración de 800 mm/s2 y utilizando un tiempo de muestreo de 0,1 segundos.

En la Figura 14, se muestran los 2 mm iniciales de las trayectorias. En ella se puede observar con mayor detalle, la desviación que presenta la trayectoria real calculada por el modelo computacional, respecto de la trayectoria ideal.

 


Fig. 13: Trayectoria ideal y trayectoria real obtenida de un modelo computacional del robot CXN-




Fig. 14: Imagen de los 2 mm. iniciales de la trayectoria

Del modelo computacional del robot también se obtiene que para esta tarea, la mayor desviación de la trayectoria real respecto de la trayectoria ideal es de 0,17 mm, que la desviación promedio es de 0,08 mm y que la desviación estándar de la trayectoria real es de 0,008 mm.

En la implementación práctica realizada en el robot CXN-I se observa que el extremo del mismo realiza una trayectoria rectilínea sin que se alcancen a apreciar las imperfecciones que se calcularon en el modelo computacional.

CONCLUSIONES

Se ha logrado implementar el control cinemático de trayectoria lineal para el robot CXN-I, para lo cual a partir del modelo matemático del mismo se obtuvieron las ecuaciones analíticas que permiten realizar este control.

Se realizó la verificación de los resultados obtenidos, para lo cual se desarrolló y utilizó el modelo computacional del robot. Se demostró y comprobó que la trayectoria real obtenida, presenta una desviación, que ha sido medida, respecto de la trayectoria deseada.

Posteriormente el sistema de control se implemento en el robot real CXN-1, observándose el correcto movimiento en una línea recta del extremo del mismo.

Se deduce que este método se podría hacer extensivo a otros tipos de trayectorias y con las adaptaciones de cada caso, podría ser transferido a otros robots.

REFERENCIAS

Barrientos, A y otros tres autores, "Fundamentos de Robótica", 2a edición, 169-183, McGraw-Hill, Madrid, España (2007)        [ Links ]

Craig J. J., "Introduction to Robotics: Mechanics and Control', 3rd ed., 201-230, Englewood Cliffs, NJ: Prentice-Hall, (2004).        [ Links ]

Ersü, E.y D. Nungesser, "A Numerical Solution of the General Kinematic Problem", 1984 IEEE International Conference on Robotics and Automation. Proceedings, 162-168, Atlanta, Georgia, U.S.A., 13 a 15 de Marzo (1984)        [ Links ]

Grudic, G.Z. y P.D. Lawrence, Iterative Inverse Kinematics with Manipulator Configuration Control, IEEE Transactions on Robotics and Automation, 9 (4), 476-486 (1993)        [ Links ]

Künning, F.G. "Desarrollo del Sistema de Control de los Motores para un Robot'. XXo Congreso Argentino de Control Automático, pp6, Buenos Aires, Argentina. (2006).        [ Links ]

Moran, O.D. y F. Abate, "Robot Semi Industrial RSA1". XIV AADECA - Simposio Nacional de Control Automático.942-946, Buenos. Aires, Argentina. (1994).        [ Links ]

Qin C. y M. A. Camera Perpiñán, "Trajectory Inverse Kinematics by Conditional Density Modes", 2008 IEEE International Conference on Robotics and Automation , Pasadena, California, U.S.A., 19 al 23 de Mayo (2008)        [ Links ]

Taylor, Russell H, Planning and Execution of Straight Une Manipulator Trajectories, IBM Journal of Research and Development, 23 (4), 424 - 436 (1979)        [ Links ]

Yili Z. y otros dos autores; "Kinematics Control for a 6-DOF Space Manipulator Based on ARM Processor and FPGA Co-Processor", 2008. INDIN 6th IEEE International Conference on Industrial Informatics, 129-134, Daejeon, Korea, 13 -16 de Julio, (2008)        [ Links ]

Recibido Feb. 17, 2010;

Aceptado Abr. 18, 2010;

Versión Final recibida Jun. 18, 2010

Creative Commons License All the contents of this journal, except where otherwise noted, is licensed under a Creative Commons Attribution License