Introducción
En la actualidad se ve a la robótica como un campo de trabajo muy amplio desarrollando
nuevas tecnologías en una serie de áreas interdisciplinarias como la cinemática, la dinámica, la
planificación de sistemas, el control y la inteligencia artificial. Los sistemas robóticos están
siendo desarrollados cada vez más con mayor autonomía, por lo que implica un
reto involucrarse en este auge tecnológico. El campo de la robótica es muy amplio, así por
ejemplo la vemos unida a la esfera productiva, a la investigación científica, a la medicina. De
acuerdo a su uso y aplicación estos tienen diversas características[1].
La producción de los robots se destaca por traer consigo una disminución de la mano de obra;
además ayuda a una mayor calidad del producto acabado, a la rapidez de la producción. Casi
siempre, en la industria, los robots se unen a otras máquinas aportando mayor eficiencia en la
producción. En la esfera científica, muchos de ellos son utilizados para hacer investigaciones
en el campo donde el hombre se le hace difícil ir, tal vez por un medio hostil o tal vez
demasiado peligroso. En el ámbito industrial, específicamente en las pequeñas y medianas
empresas, se crea la necesidad de incentivar a la adquisición de estas tecnologías para
utilizarlas en aplicaciones como el apilamiento de estructuras, tareas de soldadura, pintura,
trazado, corte y perforación de placas metálicas. Sin contar aquellas aplicaciones más
complejas como son la industria de servicios, incluyendo los médicos, agricultura, etc.
Para lograr que un robot realice un tarea lo más precisa posible se requiere de varios
elementos: los actuadores encargados de generar la fuerza para darle movimiento a las piezas
mecánicas del manipulador, sensores que permiten medir las características del mundo
que rodea al robot, modelos cinemáticos para evaluar la posición y orientación del extremo,
generadores de trayectorias que incluyen los valores de posición, velocidad, tiempo invertido,
tipo de trayectoria, etc. fijados por el usuario, el tipo de control implementado que puede ser
PID, adaptivo, predictivo, par calculado, entre otros.
En la Universidad de Oriente, no existen mecanismos robóticos instalados para el desarrollo de
trabajos científicos. Específicamente en la Facultad de Ingeniería Eléctrica, en el departamento
de Control Automático fue donado un pequeño robot, se trata del robot ArmX K-680, el cual
cuenta con un software propio para establecer la comunicación con una PC, pero los
movimientos realizables por el robot a través del mismo se fundamentan en la medición de
tiempo, no existiendo la posibilidad de implementar un control de posición adecuado para
cada una de las articulaciones. La ejecución de tareas desde esta interfaz no posibilita además
variar la velocidad con que se realizan los movimientos, limitando de esta forma las
aplicaciones del robot, tampoco se cuenta con opciones de programación y memorización de
tareas y seguimiento de trayectorias motivo por el cual no se explotan las potencialidades del
manipulador.
Esta investigación tiene como objetivos la obtención de los modelos directo e inverso de la
cinemática, el diseño e implementación de una placa impresa para incorporar la electrónica
necesaria para realizar el control del manipulador y el diseño e implementación de una interfaz
gráfica de usuario para la comunicación del Robot ArmX con la PC utilizando una tarjeta de
desarrollo Arduino.
Planificación de Trayectorias
La planificación de trayectorias es la búsqueda de una sucesión de posiciones para un robot,
que permitirán llevarlo desde un estado inicial a uno final, entendiéndose por estado a la
descripción de la ubicación del robot referida a un marco de referencia absoluto.
La configuración que adquiere una determinada trayectoria queda definida por la distribución
de los obstáculos a lo largo de todo el espacio de trabajo, y por supuesto, por la geometría del
robot y sus capacidades de movimiento. De esta manera, la topología del ambiente de trabajo
restringirá el espacio libre de obstáculos en el cual se pueden expresar las posibles trayectorias
para alcanzar el estado final deseado.
Generalmente, se recurre a una representación realizada a partir de la discretización del
espacio del ambiente de trabajo, con lo que se extrae una representación segura, es decir, se
tendrá la garantía de que el espacio libre podrá ser ocupado por el robot (sin riesgo de
colisión), por lo tanto, es necesario que tal discretización se haga en base a las características
geométricas, tanto del robot como de los obstáculos.
Existen dos formas básicas para especificar el movimiento:
Suministrando puntos consecutivos e ignorando la trayectoria espacial que describe el robot
entre cada dos puntos.
Especificando el camino que debe unir los puntos mediante una determinada trayectoria, tal
como una línea recta o un círculo, que debe describir el robot en el espacio de trabajo.
La primera alternativa, denominada tradicionalmente control punto a punto, sólo tiene interés
práctico cuando los puntos están suficientemente separados, ya que en caso contrario, la
especificación sería muy tediosa. Por otra parte, los puntos tampoco pueden estar muy
separados pues entonces el riesgo de que se generen movimientos imprevisibles o no
controlados, es grande.
En el control punto a punto, el sistema de control automático del robot debe realizar la
interpolación entre los puntos especificados, de forma tal que, posteriormente sea posible
realizar el control de movimientos para que el robot pase por dichos puntos.
La segunda estrategia se denomina control de trayectoria [Link] este caso, el sistema de
control debe hacer que el robot reproduzca lo más fielmente posible la trayectoria
especificada.
Suponiendo que la trayectoria que debe seguir el robot se especifica en el espacio cartesiano,
existen dos alternativas para su ejecución:
Definir los lazos de control directamente en el espacio cartesiano y controlar el robot para que
se anule el error de seguimiento de trayectoria en este espacio.
Transformar la trayectoria del espacio cartesiano al espacio de las variables articulares y
controlar la evolución de cada una de las variables articulares definiendo los lazos de control
en este espacio.
El primer caso es comúnmente empleado en robots móviles, donde la curvatura del camino
generado en el espacio cartesiano está directamente relacionada con la variable de control
que se emplea para el seguimiento de trayectorias.
Los sistemas de control de los manipuladores robotizados industriales suelen convertir las
especificaciones desde el espacio de trabajo a un conjunto de valores deseados para las
variables articulares, empleando para ello la cinemática inversa. De esta forma, el problema de
planificación de trayectorias se plantea normalmente en el espacio articular, en cuyo caso se
trata de especificar la posición, velocidad y aceleración para cada una de las articulaciones. En
general, las trayectorias deben ser suaves, lo que implica restricciones sobre las derivadas.
Normalmente, se exige que al menos la primera derivada sea continua, pudiendo exigirse
también la continuidad de derivadas de orden superior.
El problema de la planificación de trayectorias debe resolverse en tiempo real. Por lo tanto,
también se trata de que la generación de trayectorias sea computacionalmente eficiente. En
robots manipuladores, la generación de trayectorias articulares suele realizarse en tiempos de
orden de los milisegundos o decenas de milisegundos.
Tipos de Trayectorias
Trayectorias Punto a Punto
En este tipo de trayectorias cada articulación evoluciona desde su posición inicial a la final sin
realizar consideración alguna sobre el estado o evolución de las demás articulaciones.
Normalmente, cada actuador trata de llevar su respectiva articulación al punto de destino en
el menor tiempo posible, pudiéndose distinguir dos casos: movimiento eje a eje y movimiento
simultáneo de ejes.
Movimiento de Eje a Eje. Sólo se mueve un eje por vez. Comenzará a moverse la primera
articulación, y una vez que ésta haya alcanzado su punto final, lo hará la segunda, y así
sucesivamente. Este tipo de movimiento obviamente da como resultado un mayor tiempo de
ciclo, teniendo como única ventaja un menor consumo de potencia instantánea por parte de
los actuadores.
Movimiento Simultáneo de Ejes. Los actuadores comienzan simultáneamente a mover las
articulaciones del robot a una determinada velocidad. Dado que en general, tanto las
distancias a recorrer como las velocidades serán diferentes, cada articulación terminará su
movimiento en un instante diferente.
El movimiento del robot no terminará sino hasta que se alcance por completo el punto final, lo
que se producirá en el momento en que el último actuador se detenga por completo. De esta
manera, el tiempo total invertido en el movimiento del manipulador coincidirá con el tiempo
invertido por el eje que más tiempo emplee en realizar su movimiento particular, por lo cual,
generalmente el resto de los actuadores fuerzan su desempeño generando elevadas
velocidades y aceleraciones, viéndose finalmente obligados a esperar a la articulación más
lenta.
Por los motivos expuestos, las trayectorias punto a punto sólo están implementadas en robots
muy simples o con sistemas de control muy limitados.
Trayectorias Coordinadas o Isócronas
Para evitar que algunos actuadores trabajen forzando sus velocidades y aceleraciones,
teniendo que esperar el término del movimiento de la articulación más lenta, puede hacerse
un cálculo previo. Si se conoce de antemano cuál es la articulación que tomará más tiempo en
detenerse, entonces se puede adecuar el movimiento del resto de las articulaciones para que
todas inviertan el mismo tiempo en sus movimientos, con lo cual se conseguirá que todos los
eslabones del robot se detengan simultáneamente. De esta forma, todas las articulaciones se
coordinarán, comenzando y terminando su movimiento al mismo tiempo, adaptándose a la
más lenta. Gracias a esto, el tiempo total invertido en el movimiento es el menor posible, y no
se exigirán aceleraciones y velocidades elevadas a los actuadores de manera inútil.
Trayectorias Continuas
En este caso, es preciso calcular de manera continua las trayectorias en línea recta o en arco
de círculo; pues la trayectoria que sigue el extremo del robot es especificada por el usuario.
Una vez realizada la planificación de trayectorias, es necesario generar los movimientos
concretos y controlarlos para mantener al robot en la trayectoria planificada.
Trayectorias por Interpolación
Antes de planificar una generación de trayectoria, es necesario especificar la configuración
inicial y final del manipulador robotizado.
Especificaciones a considerar:
Posición inicial, donde la velocidad y aceleración son generalmente nulas.
Posición de despegue.
3.1- GENERACIÓN DE TRAYECTORIAS
Para realizar una tarea determinada el robot debe moverse desde un punto inicial a uno final.
Este movimiento puede ser realizado según infinitas trayectorias espaciales. De todas ellas hay
algunas que, bien por su sencillez de implementación por parte del control cinemático o bien
por su utilidad y aplicación a diversas tareas, son las que en la práctica incorporan los
robots comerciales. De este modo, puede encontrarse que los robots dispongan de
trayectorias punto a punto, coordinadas y continuas [1,2,6-8].
3.1.1- Trayectorias Punto a Punto
En este tipo de trayectorias cada articulación evoluciona desde su posición inicial a la final sin
realizar consideración alguna sobre el estado o evolución de las demás
[Link], cada actuador trata de llevar a su articulación al punto de
destino en el menor tiempo posible, pudiéndose distinguir dos casos: movimiento eje a eje y
movimiento simultáneo de ejes.
3.1.2.- Trayectorias Coordinadas o Isocronas
Para evitar que algunos actuadores trabajen forzando sus velocidades y aceleraciones,
teniendo que esperar después la conclusión del movimiento de la articulación más lenta,
puede hacerse un cálculo previo, averiguando cuál es esta
articulación y qué tiempo invertirá. Se ralentizará entonces el movimiento del resto
de los ejes para que inviertan el mismo tiempo en su movimiento, acabando todos ellos
simultáneamente. Se tiene así que todas las articulaciones se coordinan comenzando y
acabando su movimiento a la vez, adaptándose todas a la más lenta. El tiempo total invertido
en el movimiento es el menor posible y no se piden aceleraciones y velocidades elevadas a los
actuadores de manera inútil. Desde el punto de vista del usuario la trayectoria que describe el
extremo del robot no es significativa, siendo ésta impredecible, aunque como es obvio, un
conocimiento del modelo y control cinemático del robot permitiría su cálculo.
3.1.3.- Trayectorias Continuas
Cuando se pretende que la trayectoria que siga el extremo del robot sea conocida por el
usuario (trayectoria en el espacio cartesiano o de la tarea), es preciso calcular de manera
continua las trayectorias articulares. Típicamente, las trayectorias que el usuario pretende que
el robot describa son trayectorias en línea recta o en arco de círculo. El resultado será que
cada articulación sigue un movimiento aparentemente caótico con posibles cambios de
dirección y velocidad y sin coordinación con el resto de las articulaciones. Sin embargo, el
resultado conjunto será que el extremo del robot describirá la trayectoria deseada.
Para el manipulador ArmX se implementaron todos los tipos de trayectorias mencionados
anteriormente, vale destacar que para el caso de la trayectoria continua se diseñó un
generador de trayectoria lineal basado en la ecuación paramétrica de una recta en tres
dimensiones (13), donde:
Pi: punto inicial
Pf: punto final
n: cantidad de puntos intermedios deseados por el usuario.
Instrucciones en un robot
MÉTODOS DE PROGRAMACIÓN DE ROBOTS
PROGRAMACIÓN DE ROBOTS
Un robot industrial es básicamente un manipulador multifuncional
reprogramable, lo cual permite su adaptación de manera rápida y económica a
diferentes aplicaciones. La programación de un robot se puede definir como el
proceso mediante el cual se le indica a éste la secuencia de acciones que deberá
llevar a cabo durante la realización de su tarea Estas acciones consisten
generalmente en moverse a puntos predefinidos y manipular objetos del entorno.
DURANTE LA EJECUCIÓN DE UN PROGRAMA SE INTERACCIONA CON LA
MEMORIA DEL SISTEMA
Con el sistema de control cinemático y dinámico del robot, encargados de dar la
señal de mando a los accionamientos del robot a partir de las especificaciones
del movimiento que se les proporciona. Con las entradas-salidas del sistema,
logrando la sincronización del robot con el resto de las máquinas y elementos
componen su entorno. Por lo tanto, el sistema de programación es la herramienta
con la cual el usuario puede acceder a las diversas prestaciones del robot.
MÉTODOS DE PROGRAMACIÓN
Programar un robot consiste en indicar paso por paso las diferentes acciones
(moverse a un punto, abrir o cerrar la pinza, etc.) que éste deberá realizar
durante su funcionamiento, la flexibilidad en la aplicación del robot y, por lo tanto,
su utilidad van a depender en gran parte de las características de su sistema de
programación. Actualmente no existe normalización en relación a los
procedimientos de programación de robots, cada fabricante desarrolla su método
particular, el cual es válido solamente para sus propios robots. Existen varios
criterios para clasificar los métodos de programación. Algunos lo hacen según la
potencia del método, y otras lo hacen según el sistema utilizado para indicar la
secuencia de acciones a realizar, éste último es el más ilustrativo al momento de
dar a conocer las alternativas existentes para programar un robot.
SEGÚN ESTE ÚLTIMO CRITERIO, UN ROBOT PUEDE SER PROGRAMADO
POR:
Programación Textual Programación por guiado.
PROGRAMACIÓN TEXTUAL
Este método de programación permite indicar la tarea al robot a través de un
lenguaje de programación específico Un programa se entiende como una serie
de órdenes que son editadas y posteriormente ejecutadas, por lo tanto, existe un
texto para el programa.
LA PROGRAMACIÓN TEXTUAL SE PUEDE CLASIFICAR EN TRES NIVELES:
Nivel robot • si las órdenes se refieren a los movimientos a realizar por el robot.
Nivel objeto • si las órdenes se refieren al estado en que deben ir quedando los
objetos.
Nivel tarea • si las órdenes se refieren al objetivo a conseguir.
NIVEL ROBOT: Se debe especificar cada uno de los movimientos que ha de
realizar el robot, como velocidad, direcciones de aproximación y salida, apertura
y cierre de la pinza, etc. También es necesario descomponer la tarea global en
varias subtareas.
Disminuye la complejidad del programa. La programación se realiza de manera
más cómoda, ya que las instrucciones se dan en función de los objetos a
manejar. Una planificación de la tarea se encargará de consultar una base de
datos y generar las instrucciones a nivel de robot.
Nivel Objeto
El programa se reduce a una única sentencia, ya que, se especifica qué es lo
que debe hacer el robot en lugar de cómo debe hacerlo. Nivel Tarea
PROGRAMACIÓN GESTUAL O GUIADO La programación por guiado o
aprendizaje consiste en hacer realizar al robot, o a una maqueta del mismo, la
tarea, registrando las configuraciones adoptadas para su posterior repetición en
forma automática. Para guiar al robot por los puntos deseados se utilizan
distintas soluciones:
Guiado Activo
Esta posibilidad permite emplear el propio sistema de accionamiento del robot,
controlado desde una botonera o bastón de mando (conocido como joystick) para
que sea éste el que mueva sus articulaciones.
Básico
• El robot es guiado por los puntos por los cuales se desea que pase durante la
fase de ejecución automática del programa Extendido • Permite especificar, junto
a los puntos por los que deberá pasar el robot, datos relativos a la velocidad, tipo
de trayectoria, precisión con la que se quiere alcanzar los puntos, control del flujo
del programa, atención a entradas/salidas binarias, etc ATENDIENDO A LA
POTENCIA DEL SISTEMA, SE HABLA DE GUIADO BÁSICO Y GUIADO
EXTENDIDO.
Guiado Pasivo: Si los actuadores del robot están desconectados y el
programador aporta en forma directa la energía para mover el robot, se habla de
un guiado pasivo.
EXISTE EL GUIADO PASIVO DIRECTO Y EL GUIADO PASIVO POR MANIQUÍ
• El programador puede tomar el extremo del robot y llevarlo hasta los puntos
deseados a través de las trayectorias más adecuadas. Directo • La dificultad
física de mover toda la estructura del robot se resuelve a través de este
procedimiento Maniquí
LENGUAJE DE PROGRAMACIÓN
• METODO DE PROGRAMACION TEXTUAL GESTUAL O GUIADO NIVEL DE
ROBOT (V+, RAPID) NIVEL DE OBJETO (RAPT)(AUTOPASS)(LAMA) NIVEL
DE TAREA (STRIPS)(HILAIRE ) ACTIVO (ARLA - ABB) PASIVO MANIQUI
(NORDSON) DIRECTO (GAIOTTO)
El sistema de programación es muy versátil. Programación textual se realiza a
partir de la especificación de las tareas que se vallan a efectuar; será el propio
sistema de control el encargado de generar las órdenes concretas para su
ejecución; y no interviene el robot directamente.