desplazamiento de piezas por medio de dos brazos roboticos mitsubishi movemaster rv m1
TRANSCRIPT
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
DESPLAZAMIENTO DE PIEZAS POR MEDIO DE DOS BRAZOS ROBÓTICOS MITSUBISHI
MOVEMASTER RV-M1 DE FORMA COOPERATIVA
DISPLACEMENT OF PARTS USING TWO ROBOTIC ARMS WITH COOPERATIVE WORK
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS – BOGOTÁ 2013
Jeyson A. Ordoñez B.* Katherine Ortegón L.** Willson Infante M.***
Resumen: Se implementó una aplicación para los brazos robóticos RV-M1 (Movemaster RV-
M1 de Mitsubishi®) del laboratorio de robótica y CNC, realizando un software de control para
el movimiento y organización estratégica de piezas, demostrando la cooperación entre los
dos brazos. A partir de esto se brindan herramientas a la comunidad académica de La
Universidad Distrital Francisco José de Caldas Facultad Tecnológica para el desarrollo de
nuevos usos en cuanto a la robótica cooperativa. Fue necesario implementar un algoritmo
basado en detección de colisiones, implementado directamente en robots articulados RV-M1.
A su vez la implementación de un doble puerto serie configurado desde el lenguaje de
programación JAVA en Netbeans.
Palabras clave: Brazo robot, robótica cooperativa, Automatización, Control de robots,
Sistemas de comunicación, Puerto de serie.
Abstract: We implemented an application for robot arms RV-M1 (Movemaster Mitsubishi RV-
M1 ®) robotics lab and CNC control software made for movement and strategic organization
of parts, demonstrating cooperation between the two arms. From these tools are provided to
the academic community of the University Francisco José de Caldas Faculty of Technology to
develop new uses in terms of cooperative robotics.
* Tecnólogo en Electrónica. [email protected]
** Tecnóloga en Electrónica. [email protected] *** Ingeniero en Control Electrónico. Profesor de Tecnología Electrónica e Ing. En Control, Universidad Distrital Facultad
Tecnológica. [email protected]
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
Key Words: Robot programming, Portable computers, Robot Automation, Robot Control,
Communication systems, Serial port. It was necessary to implement an algorithm based on
collision detection, implemented directly articulated robots RV-M1. In turn, the implementation
of a dual serial port configured in the Java programming language in Netbeans.
INTRODUCCIÓN
La robótica se considera colectiva cuando dos o más robots se encuentran desarrollando una
tarea conjunta. El mayor problema de esta simple definición es el cómo organizar cada robot
y asignarle la función para completar la tarea global. En un sistema centralizado existe un
líder o Maestro que se encarga de limitar las funciones de los otros robots que trabajen para
realizar la misma tarea, de esta manera el Maestro será capaz de trabajar libremente y
asignar procesos al resto del equipo. A partir de esta consideración se implementó en el
proyecto un algoritmo para que los robots RV-M1 trabajaran de forma centralizada, donde
uno es el MASTER y otro el SLAVE.
La actuación coordinada de diferentes robots, en un área de trabajo específica, permite llevar
a cabo tareas no realizables en entornos monorobot, además esto incrementa la eficiencia en
la realización de otros tareas que se pueda realizar con un solo robot. Por otra parte la
coordinación genera un aumento significativo de la complejidad de programación,
planificación y control de todos los elementos que componen el área ya que se es necesario
establecer puntos fijos de ubicación de piezas a trabajar por los dos robots articulados1.
El trabajo cooperativo entre robots puede incrementar la taza de desarrollo y terminación de
tareas, que por su dificultad o por sus características son más complicadas de realizar por
un único robot. A partir de esto se ubicaron las bases de los problemas fundamentales que
se presentan en la realización de tareas por parte de dos brazos robóticos.
1 Jimenez. Detección de colisiones mediante recubrimientos simplificados. 2006.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
La robótica se considera colectiva cuando dos o más robots se encuentran desarrollando una
tarea conjunta. El mayor problema de esta simple definición es el cómo organizar cada robot
y asignarle la función para completar la tarea global, a partir del estudio de tal ciencia se
estableció un sistema de control centralizado que se caracteriza por una unidad central o
maestro el cual se encarga de limitar las funciones de la aplicación, este a su vez es capaz
de trabajar libremente y asignar procesos al otro brazo robótico. Este sistema centralizado
está limitado debido al líder, en términos de recepción, tratamiento y envió de información.
De los siguientes proyectos se obtuvo valiosa información para el desarrollo de este
proyecto:
En el proyecto HERRAMIENTA PARA LA PROGRAMACIÓN Y SIMULACIÓN DE
MOVIMIENTOS DEL MANIPULADOR ROBÓTICO MITSUBISHI MOVEMASTER RV-M12
desarrollado en la Pontificia Universidad Javeriana de Cali – Facultad de ingeniería. Su
objetivo general fue desarrollar una herramienta que permita a los usuarios del manipulador
robótico Mitsubishi Movemaster RV-M1 interactuar con él, de forma simulada o en tiempo
real, para aprender a utilizar el robot y facilitar su programación, con el fin de ejecutar tareas
en entornos académicos e industriales. Según las pruebas realizadas se puede obtener
como resultado una reducción considerable en el tiempo, para crear trayectorias complejas,
de utilización del robot y número de errores. Se ha verificado la precisión de la simulación.
En el área de la robótica cooperativa o de trabajo cooperativo con robots articulados de han
realizado diferentes trabajaos como el proyecto CONTROL DEL EMPUJE DE UNA BARRA
2 Venturello. Pontificia Universidad Javeriana de Cali – Facultad de Ingeniería. 2006
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
USANDO DOS ROBOTS MÓVILES Y VISIÓN ARTIFICIAL3, el cual consistía en empujar
una barra usando dos robots móviles y una cámara de visión artificial como sensor global,
cuyas aplicaciones directas el transporte y manejo cooperativo de grandes objetos. La
solución propuesta involucra a dos robots móviles cuya posición, orientación y velocidad son
obtenidas a través de una cámara ubicada en la parte superior de la escena.
En la universidad Distrital – Facultad Tecnológica también se ha trabajado constantemente
para el desarrollo de aplicaciones con software de simulación tal como el presentado en el
proyecto DISEÑO E IMPLEMENTACIÓN DE SIMULADOR DEL ROBOT MITSUBISHI RV-
M1 PARA EL LABORATORIO DE ROBÓTICA Y CNC4, donde se realizó un software que
permitía al estudiante simular los movimientos del robot Mitsubishi rv-m1 junto con su
espacio de trabajo sobre una mesa de 60cm x 150cm y donde se visualice la posición y
orientación del extremo final y los ángulos de cada articulación del robot. Con esta
herramienta se hace propia la tecnología abierta Open Source, y esto permite el desarrollo
de nuevas tecnologías basado en el conocimiento claro del hardware y el software sin
limitarse a plataformas propietarias.
2. METODOLOGÍA
Para el desplazamiento de piezas por medio de dos brazos robóticos Mitsubishi Movemaster
RV-M1 de forma cooperativa, se desarrolló la implementación y ejecución de:
Primero: Identificación y construcción del área de trabajo para la aplicación, se idealizo un
material que fuese flexible pero muy resistente, para ello se encontró el material llamado
MDF (Tablero de fibra de densidad media), el cual fue amoldado para ubicar los brazos
robóticos Mitsubishi MOVEMASTER RV-M1 de manera precisa, gracias a esto se marcó la
posición respectiva de las fichas para la ubicación en el espacio controlado.
3 Bacca & Caicedo. Universidad Distrital FJC. Revista científica y tecnológica de la facultad de ingeniería. , pp. 70-79,
Octubre, 2007.
4 Quintero & Lopez. Universidad Distrital FJC. Facultad Tecnológica. 2011
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
Segundo: diseño de la estructura a construir con los dos brazos robóticos Mitsubishi
MOVEMASTER RV-M1, se determinó realizar una estructura tipo castillo donde cada pieza
va a ir encarrillada como un muro confinado, se verá el trabajo cooperativo y a su vez el nivel
de dificultad para armar la estructura, esto se realizó en conjunto con el diseño de las fichas
o piezas que el brazo robótico debe manipular, para ello se tuvo en cuenta el alcance de
cada brazo robótico, tanto al extenderse como al contraerse y elevarse, adicionalmente la
capacidad de la pinza fue un aspecto fundamental a la hora del diseño de las piezas, a partir
de esto se determinó que la mejor medida para el grosor de las piezas sería de 3cm,
teniendo en cuenta también el diseño de la estructura. Fueron implementadas cuatro piezas
de distinto diseño.
Tercero: identificación de posiciones y establecimiento de bus de campo a partir de las tareas
realizadas con anterioridad, el siguiente paso era identificar las posiciones exactas de cada
brazo Mitsubishi MOVEMASTER RV-M1 para la construcción de la estructura y del algoritmo
navegación basado en detección de colisiones. Se tuvo en cuenta el área de trabajo del
brazo y la ubicación más accesible de las fichas. En conjunto con la identificación de
posiciones se estableció el respectivo bus de campo, al observar los distintos recursos
disponibles en el laboratorio de Robótica y CNC de la Universidad Distrital Francisco José De
Caldas Facultad Tecnológica, se eligió un bus de campo con ventajas tanto en costo como
en manejo, este se encuentra compuesto de un equipo de cómputo como servidor central el
cual cuenta con dos puertos seriales que serán utilizados para la conexión de los respectivos
brazos robóticos RV-M1.
Cuarto: Aunque la técnica detección de colisiones es más utilizada en el desarrollo de
gráficos interactivos (video juegos, aplicaciones de realidad virtual, etc.) se puede extraer
bastantes recursos para evitar las inconsistencias en el software en cuanto a la interacción
entre los dos brazos robóticos RV-M1, a partir del estudio de esta técnica y realizando las
respectivas pruebas entre los mismos, se construyó un algoritmo de navegación basado en
detección de colisiones ubicando los aspectos más favorables para la aplicación.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
Quinto: bajo el estudio de los parámetros mencionados con anterioridad se realizó el diseño
de la respectiva interfaz gráfica y se eligió el lenguaje de programación más adecuado para
el desarrollo de la aplicación, se estableció la totalidad del código en Java – Netbeans
gracias a las herramientas y programas diseñados con anticipación.
2.1. CARACTERISTICAS GENERALES
2.1.1. Brazo M.RV-M1
El Brazo robótico M.RV-M1 (Figura 2.1) es un dispositivo diseñado para el transporte de
objetos con características particulares (forma, tamaño, etc.), gracias a sus características se
convirtió en el mecanismo principal en el desarrollo de este proyecto.
Figura 2.1. Robot articulado Mitsubishi RV-M1 (Manual del Brazo Robótico M.RV-M1)
El manipulador robot Mitsubishi RV-M1 cuenta con cinco grados de libertad (DOF). Su
capacidad de carga es de 1.2 Kg sin incluir el peso del efector final adaptado a él. El sistema
que permite operar el robot, se encuentra constituido por:
Brazo articulado.
Teaching box (Control manual).
Controlador, cables de conexión.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
El brazo cuenta con cinco articulaciones, (Figura 2.2):
J1: Cintura. Articulación limitada entre -150 y 150 grados.
J2: Hombro. Articulación limitada entre -30 y 100 grados.
J3: Codo. Articulación limitada entre 0 y 110 grados.
J4: Pitch. Articulación limitada entre -90 y 90 grados.
J5: Roll. Articulación limitada entre -180 y 180 grados.
Figura 2.2. Articulaciones del brazo Robótico Mitsubishi RV-M1 (Manipulador robot Mitsubishi - Manual Básico, Universidad Javeriana)
Para poder implementar un área de trabajo compartida se debe estudiar dos características
físicas importantes del brazo robótico, sus dimensiones (Figura 2.3) y el área de trabajo
(Figura 2.4).
Figura 2.3. Dimensiones del Brazo Robótico Mitsubishi RV-M1
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
(Manipulador robot Mitsubishi - Manual Básico, Universidad Javeriana, 2001)
Figura 2.4. Volumen de trabajo del Brazo Robótico Mitsubishi RV-M1 (Manipulador robot Mitsubishi - Manual Básico, Universidad Javeriana, 2001)
El controlador principal (Figura 2.5) es el que permite la interconexión entre el brazo, el
Teaching Box y el ordenador que contiene el software para su programación de movimientos.
Figura 2.5. Parte posterior y frontal del controlador principal del Brazo M.RV-M1 (Manipulador robot Mitsubishi - Manual Básico, Universidad Javeriana, 2001)
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
Por último el Teaching Box es el dispositivo que permite controlar manualmente el robot.
Cuenta con un teclado con las principales funciones. En la Figura 2.6 se puede ver el
esquema físico del Teaching box y en la Tabla 1 los comando que puede enviar al robot.
Figura 2.6. Teaching Box del brazo RV-M1. (Manipulador robot Mitsubishi - Manual Básico, Universidad Javeriana, 2001)
Tabla 2.1. Funciones del Teaching Box. (Manipulador robot Mitsubishi - Manual Básico, Universidad Javeriana, 2001)
El brazo robótico M.RV-M1 se le puede enviar dos tipos de información para que desplace a
cierto punto: la primera forma es dándole las coordenadas exactas del lugar al que tiene que
llegar, sería algo de esta manera enviado por puerto serie:
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
MP+132.1,-25.8,+100.2,-85,0
Este comando MP (Move Position) no garantiza que si el usuario pone coordenadas
aleatoriamente el robot pueda llegar hasta esas coordenadas. Si no está dentro de los
parámetros establecidos el brazo quedará en error5.
La segunda manera es guardando las coordenadas de una posición ya ubicada con el
Teaching Box, el comando para guardar es el siguiente:
PD1, +132.1,-25.8,+100.2,-85,0
Con el comando PD (Position Define) se guarda esa serie de coordenadas en el número que
siguiente a este comando el usuario coloque, solo se pueden guardar hasta el número 699
que serían el total de coordenadas.
Si el robot se encuentra en otras coordenadas, como ya existe una posición previamente
almacenada el usuario al enviar el simple comando MO1 hará que el robot se dirija a las
coordenadas en este ejemplo +132.1,-25.8,+100.2,-85,0. Si existen más posiciones
guardadas previamente, con enviar los comandos MO1, MO2 etc., el brazo se dirigirá a las
diferentes coordenadas.
2.2. Bus de campo
El envió y recepción de la información se realiza utilizando el Protocolo RS232 como bus de
campo particular el cual tiene gran acceso en el laboratorio de robótica y CNC de la facultad
tecnológica de la Universidad Distrital Francisco José de Caldas.
2.2.1. Protocolo RS232
Ante la gran variedad de equipos, sistemas y protocolos que existen surgió la necesidad de
un acuerdo que permitiera a los equipos de varios fabricantes comunicarse entre sí. La EIA
(Electronics Industry Association) elaboró la norma RS-232, la cual define el estándar de los
5 Estado que se genera cuando no se envían parámetros correctos al robot, o no se sincroniza adecuadamente con
Timers. Si el brazo se encuentra en este estado no se moverá y se tendrá que resetear para poder seguir trabajando con él.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
componentes mecánicos, los pines, las señales y los protocolos que debe cumplir la
comunicación serial.6
Todas las normas RS-232 cumplen con los siguientes niveles de voltaje:
Un “1” lógico es un voltaje comprendido entre –5v y –15v en el transmisor y entre -3v y
–25v en el receptor.
Un “0” lógico es un voltaje comprendido entre +5v y +15v en el trasmisor y entre +3v y
+25 v en el receptor.
2.3. Detección de colisiones7
La implementación de algoritmos para la detección de colisiones puede ser muy útil en
aplicaciones en donde es necesario el reconocimiento de la posición de los objetos que
interactúan para un mismo proceso, para esto es necesario tener en cuenta aspectos como
el tiempo, el espacio, la forma del objeto, etc.
A partir del estudio de los objetos implicados en el proceso, se debe tener en cuenta que el
movimiento de los brazos robóticos será de manera simultánea. Sin embargo plasmar este
tipo de situaciones en el entorno programable puede ser bastante costoso pues se tendría
que calcular el momento exacto en el que se producirá la siguiente colisión.
Con el fin de encontrar alternativas para resolver este problema se realizó un estudio para
encontrar la metodología más adecuada para el proceso, la cual consiste en establecer un
incremento de tiempo entre comprobaciones lo suficientemente pequeño para que unos
objetos no pasen a través de otros sin que se detecte la colisión y, en caso de producirse,
permitir volver al paso anterior para determinar detalladamente el punto de contacto
exclusivamente entre los brazo.
6 Ing. Eric López, Tutorial del protocolo RS-232. 7 D. Juan Jiménez. Detección de colisiones mediante recubrimientos simpliciales.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
2.3.1. Movimiento continuo de objetos
Con el análisis anterior se encontró un problema derivado que consiste en que los brazos
adicional al movimiento simultaneo presentan un movimiento de manera continua, en el
entorno programable se plantea el movimiento de los objetos en intervalos de tiempo finitos
o discretos (delta de t). De igual forma el hecho de conocer la posición exacta, el área de
trabajo, el tamaño y la velocidad del brazo son factores de gran ayuda ya que suprime la
cantidad de variables que entran en el proceso de análisis en el software.
El desarrollo de este método consiste en establecer un volumen de barrido en el intervalo de
tiempo considerado, de manera que en primer lugar se compruebe la colisión entre los
volúmenes generados por los brazos. Si se produce interacción entre dichos volúmenes,
puede que se presente colisión o no entre los brazos, pero si no se produce interferencia
sabremos que no ocurrirá entre los objetos. Afortunadamente el movimiento de los brazos se
puede considerar lineal, seguido de una rotación en posiciones estacionarias, con lo que los
volúmenes a estudiar suelen ser más sencillos.
2.3.2. Implementación del algoritmo
Teniendo en cuenta que el objetivo principal es el desplazamiento de piezas por medio de
dos brazo robóticos MOVEMASTER RV-M1 donde se demuestre trabajo cooperativo en un
espacio controlado, se platean los variables conocidas para el desarrollo de este:
Área de trabajo limitada para establecer el espacio controlado.
Procesos que van a desarrollar los brazos para demostrar el trabajo cooperativo.
Bajo el espacio controlado y el proceso a realizar existen posiciones determinadas de
los brazos robóticos MOVEMASTER RV-M1.
Especificaciones técnicas de los brazos robóticos MOVEMASTER RV-M1.
A partir de estas variables fue construido el algoritmo de navegación basado en la detección
de colisiones teniendo en cuenta las características de la técnica descomposición del
espacio. Para poder descomponer el espacio fue necesario establecer y predeterminar el
área de trabajo que compartirán los dos brazos M.RV-M1 Figura 2.7.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
Figura 2.7. Área de trabajo compartida por los dos brazos M.RV-M1.
2.3.2.1. Descomposición del espacio:
En general puede utilizarse para determinar en qué zona del espacio se encuentra un objeto
o parte del mismo, y realizar un test de colisión entre objetos (o partes) solo si ocupan la
misma zona del espacio. Bajo el estudio de los factores implicados en esta técnica y la
aplicación a desarrollar se determinó la utilización de la Rejilla de Voxeles8. Una rejilla es una
partición del espacio en celdas rectangulares y uniformes, es decir, todas las celdas tiene el
mismo tamaño. Cada objeto se asocia con las celdas en las que se encuentra. Para que dos
objetos colisionen deben ocupar una misma celda. Solo debe comprobarse la colisión entre
objetos que ocupen la misma celda.
Normalmente el tamaño de celda de una rejilla se ajusta para que acomode el objeto de
mayor tamaño rotado en un ángulo arbitrario. Para la aplicación el tamaño de la celda es de
8 D. Juan Jiménez. Detección de colisiones mediante recubrimientos simpliciales. Página 30.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
4x4 cm, de esta forma se reduce el esfuerzo necesario para insertar o actualizar los objetos
en la rejilla, así como el número de test de colisión a realizar.
Al tener toda el área de trabajo dividida en partes iguales de 4 centímetros cuadrados, 140
cuadros en área compartida, y aproximadamente 32 cuadros en área de alta posibilidad de
colisión ya que es el área que ocupa la estructura que será armada. Se puede establecer
mediante la longitud paralela al área que ocupa cada brazo, el área en la que los dos brazos
van a interactuar con probabilidad de colisión Figura 2.8.
Una de las figuras que armarán los dos robots será la estructura “Castillo” Figura 2.9.
Al tener ya el área de posible choque y el mayor alcance de cada brazo se puede establecer
un tamaño para las piezas que los brazos manipularán Figura 2.10, y así poder asignar
desde el programa el trabajo conjunto que tendrán que realizar.
Figura 2.8. Rejilla de Voxeles implementada en el área de trabajo compartida por los dos robots RV-M1 con área de probabilidad de colisión.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
Figura 2.9. Plano de la estructura “Castillo”
Figura 2.10. Piezas que manipularán los brazos M.RV-M1
3. DESARROLLO DEL PROGRAMA
3.1 Protocolo de comunicación en el software:
El puerto serial se caracteriza por enviar y recibir bytes de información de a un bit a la vez
esto hace esta comunicación más lenta en comparación a la comunicación en paralela que
permite la transmisión de un byte completo por vez, a pesar de esta debilidad la
comunicación serial es más sencilla y puede alcanzar mayor distancia de comunicación.
En Java se puede encontrar una librería específica para el manejo de comunicaciones a
través de puerto como el serial y paralelo (la librería comm), además de un api de
comunicación serial el cual debe ser instalado. Este código se caracteriza por establecer
distintas clases para facilitar los procesos realizados, de igual forma existen factores
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
importantes a tener en cuenta en el desarrollo de estas clases tales como la configuración de
la velocidad de transmisión y recepción, el número de bits que recibirá, la paridad y las
variables que retornan cada clase para posteriormente ser modificadas a necesidad del
programador.
Las Características generales de envío y recepción de datos que se utilizaron fueron:
Vel. de transmisión: 9600 baudios
Bit de datos: 8
Bit de parada: 1
Bit de paridad: Ninguno
3.1.1. Envió de datos
Los ordenadores de la sala de Robótica y CNC cuentan con dos puertos serial, gracias a
esto se pudo implementar el algoritmo de comunicación que evita tener dos programas
abiertos para poder controlar cada brazo por separado.
Para poder establecer una comunicación con los dos brazos robóticos M.RV-M1 desde un
único programa y así poder controlar la posición simultánea de cada brazo, evitar cualquier
tipo de colisión y controlar los datos que le llegarán a cada brazo fue necesario desde el
lenguaje de programación utilizado en este caso NetBeans9 v.7.0 realizar la debida
configuración para poder enviar y recibir datos por dos puertos serial RS-232. La
configuración más sencilla implementada para poder enviar datos por los dos puertos desde
NetBeans fue duplicar las clases del WriterPort10, ReaderPort11, CronusPort12 y
ActionEvenPort, para poder de esta manera desde la clase principal dar el nombre del puerto
COM a la clase CronusPort.
Al poder configurar los dos puertos serial, se hace el respectivo envió de datos que serán
controlados desde el programa, se enviarán datos como: Reset para cada brazo, posición de
9 Entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación JAVA. 10 Clase para escribir en el puerto.
11 Clase para leer el puerto. 12 Clase para reconocer el puerto por el que se enviarán y recibirán los datos.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
origen mecánico, posición de origen del proceso, posiciones para los procesos, inicio, pausa
y paro de los procesos.
3.2. Implementación del algoritmo de colisión
El algoritmo de colisión implementado para este proceso, es un algoritmo diseñado de la
manera más eficiente de forma que cumpla con el propósito de su implementación debido a
que este proyecto carece de sensores y solo se cuenta con un espacio controlado.
Teniendo ya la rejilla de Voxeles ubicada en el área de trabajo compartido, fue necesario
determinar las posiciones de posible choque y llamarlas de la misma manera dentro
programa, es decir que si para el Brazo 1 la posición (ejemplo MO10) está ubicada dentro del
cuadro F-7, para este cuadro al Brazo 2 le corresponde el mismo nombre de posición
(MO10).
El programa está diseñado de forma que los brazos robóticos M.RV-M1 trabajen de forma
centralizada ya que habrá un brazo denominado MASTER y el otro denominado SLAVE,
Figura 3.1; el brazo MASTER podrá operar libremente dentro del espacio de posible colisión,
el programa determina en qué posición se encuentran los dos brazos, hace una comparación
de posicionamiento simultaneo de cada brazo y enviará las posiciones al brazo SLAVE que
operara de manera restringida.
Figura 3.1. Brazo Master (izquierda) y Slave (derecha).
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
En caso de que los dos brazos se dirijan hacia la misma posición, el brazo MASTER irá
primero, el programa hará el salto para que el brazo SLAVE no se pueda mover hasta que el
brazo MASTER no se mueva de la posición (MO10). Por tanto es necesario aclarar que los
robots no actuarán dentro del campo cadenas cinemáticas cerradas, la cual se establece
cuando varios robots sujetan conjuntamente un mismo objeto.13
Cuando los brazos están moviendo las piezas para su organización hay que tener en cuenta
las características de la Tabla 3.
Organización de los objetos
No conocen el estado de los demás agentes Cooperación Pasiva No son Agentes Inteligentes
Tabla 3.1. Características del modelo de organización de los objetos.
3.3. Pruebas de velocidad de los Brazos Robóticos:
Los tiempos mostrados a continuación, son los tiempos necesarios para mover los brazos
robóticos una distancia de 50 centímetros horizontales o verticales, Tabla 4.
Velocidad predeterminada de los brazos
Prueba 1
Prueba 2
Prueba 3
Prueba 4
Prueba 5
Promedio
SP514 4.9 s 5.1 s 5.1 s 4.8 s 4.9 s 4.96 s
SP6 3.4 s 3.6 s 3.5 s 3.4 s 3.6 s 3.50 s
SP7 2.5 s 2.4 s 2.8 s 2.4 s 2.6 s 2.54 s
SP8 2.0 s 1.8 s 2.2 s 1.9 s 2.1 s 2.00 s Tabla 3.2. Pruebas para determinar velocidades promedio.
Velocidades en cm/s:
SP5 = 10.08 SP6 = 14.28 SP7 = 19.68 SP8 = 25
Se tomaron únicamente las velocidades preestablecidas por el brazo desde el nivel 5 hasta
el nivel 8, los niveles debajo de 4 son velocidades muy bajas para este proceso, y el nivel 9
no se utiliza por recomendación del laboratorista para no exigir al máximo los robots. Según
13 Planificación de movimientos y control de fuerza en entornos multirobot.
14 SP: es el comando que utiliza el robot para establecer la velocidad entre un nivel 1 a 9.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
estos resultados y las pruebas realizadas con la sincronización de los relojes (o Timers) se
decidió establecer la velocidad SP8 como predeterminada. Es de importancia decir que si no
están sincronizado los relojes, como el programa está enviando constantemente información
por cada puerto, el robot recibirá el comando desde que no esté en movimiento, si al robot le
llega algún dato mientras está en movimiento, no realizará la acción que se le indique y
cuando le llegue el siguiente dato probablemente caerá en un error y no se moverá más, por
lo cual se tendría que parar el proceso y reiniciar la pista y los robots a las posiciones de
origen mecánico. Esta es la mayor razón por la cual se la velocidad SP8 es la que mejor se
acopla al desempeño del programa, para no generar ningún error en los robots.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
3.4. Interfaz gráfica
Para el diseño de la interfaz gráfica de usuario se tuvo en cuenta especificaciones del brazo
robótico M.RV-M1 tales como: posición inicial mecánica del brazo, envió y recepción de
datos, carga de posiciones, Reset del brazo. Por otro lado es importante tener en cuenta la
facilidad de orientación a la hora de utilizar la aplicación es por eso que se implementó un
diseño sencillo. A partir de esto se estableció un botón particular para realizar cada proceso
establecido como lo es la construcción de la estructura “Castillo” Figura 3.2, con su
determinada ilustración además de detalles adicionales pertinentes proceso de la aplicación
como son la opción de pausa y paro en caso de presentarse algún fallo en cuanto a los
movimientos de los brazos.
Figura 3.2. Ventana para iniciar construcción del castillo.
El usuario podrá escoger dos opciones principales para la manipulación de las piezas, las
cuales serán: 1.Construcción del Castillo, 2.Organización de carga (Posición de origen
mecánico del brazo M.RV-M1.)
3.5 Desarrollo del programa
Inicio del programa: El programa arranca y permite al usuario poner los brazos en posición
de origen mecánico, enviar un RESET a los brazos, o si no es necesario ninguna de las
anteriores iniciar el programa.
Configuración de los puertos: Desde el programa se crearon llamados de diferentes clases
para poder configurar más de un puerto serial en un solo programa. Inician los Timers.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
Envió de datos: Al iniciar los relojes el programa escribe en los dos puertos diferente
información que será enviada a cada uno de los brazos, esta información son las
coordenadas de cada posición que será necesaria para mover los brazos y organizar las
piezas.
Construcción de la estructura: Cuando el usuario por medio de la interfaz gráfica hace clic
en iniciar se empieza a enviar posiciones determinadas a cada brazo simultáneamente.
Algoritmo de colisión: Por medio de dos vectores se guardó la información de los
movimientos o secuencia que tienen que realizar los brazos. El algoritmo tiene la capacidad
de comparar por medio de un barrido de la string almacenada en cada vector, la posición del
robot Slave con la posición actual del robot Master, si esta es igual el robot Slave no se podrá
mover y hará un salto de movimiento hasta que el robot Master se haya movido de esa
posición.
Fin del proceso: Al terminar de armar la estructura el programa terminará y no se podrá
realizar ningún otro proceso hasta que se resetee, ya que si las fichas no están
correctamente ordenadas los robots no podrán armar las estructuras.
3.6. Diagrama de Bloques
A continuación en la Figura 3.3, se muestra un diagrama de bloques el cual describe paso a
paso el proceso que realiza el programa.
Inicio de los brazos robóticos a la posición de origen del proceso: El programa al iniciar
permite al usuario seleccionar si desea enviar RESET o NST15, a los dos brazos robóticos. El
siguiente paso que el usuario debe realizar es seleccionar la opción posicionar brazos, la
cual enviará los brazos a una posición determinada para los dos brazos que será el origen
para el proceso.
Carga de posiciones: La siguiente ventana tendrá un botón con el cual el usuario cargará
todas las posiciones en los brazos robóticos para poder desarrollar un proceso exitoso.
Menú principal: En esta ventana el usuario podrá escoger cuál de los dos procesos desea
realizar (1: armar castillo, 2: Simulación de proceso de carga).
15 Posición de origen mecánico del brazo M.RV-M1.
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
Figura 3.3. Diagrama de bloques del proceso
Armado de la estructura: El programa enviará los comandos a los brazos robóticos de
manera que armen la estructura que el usuario escogió de manera que los brazos no
colisionen en ninguna oportunidad.
Parar (STOP), Play y Pausa (PAUSE): Al iniciar el armado estará activa una ventana que le
permitirá al usuario pausar el proceso, continuar el proceso o definitivamente parar el
proceso.
Fin del proceso: Es ocurrirá cuando la estructura esté totalmente armada o cuando el
usuario seleccione la opción “Parar”.
3.7 Diagrama de flujo del algoritmo basado en detección de colisiones
A continuación se muestra el diagrama de flujo del algoritmo (Figura 3.4) que se ejecutó en el
programa para detectar posibles colisiones entre los robots, está basado en el principio de
robótica colectiva y malla de Voxeles.
Play/Pausa
Fin del
proceso
Armado de la
estructura.
Menú principal:
Selección del proceso a
realizar por parte del usuario.
Carga de posiciones
para los dos brazos.
Inicio de los brazos
robóticos a la posición origen del
proceso.
Paro
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
Figura 3.4. Diagrama de flujo base para el diseño del algoritmo
4. PRUEBAS Y RESULTADOS
Gracias a la pruebas realizadas con un solo brazo para el armado de estructura de
simulación de carga a una velocidad SP8 se calculó un tiempo promedio aproximado
de 3,5 minutos para finalizar el proceso, por el contrario al implementar los dos brazos
se requirió únicamente de 1,25 minutos, con esto se evidencia beneficio a nivel de
rendimiento que esta aplicación ofrece.
Debido a la ausencia de sensores específicos dentro de la composición física de la
aplicación y gracias a las respectivas pruebas realizadas, se determinó la necesidad
de establecer un tipo de programación organizada y respectivamente estructurada.
Figura 4.1
En el desarrollo de la aplicación fue de gran relevancia la ubicación de cada uno de
los elementos en lugares estratégicos, lo cual da como resultado la necesidad de
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
implementación no de una sino de distintas técnicas para análisis del espacio en este
tipo de aplicaciones (descomposición del espacio, rejillas de Voxeles, etc).
El diseño de la estructura y las piezas a utilizar respectivamente son acorde a las
especificaciones técnicas de los brazos robóticos MITSUBISHI MOVEMASTER RV-
M1 descritas en el cuerpo del documento.
La ampliación del área de trabajo W_SPACE es considerablemente mayor ya que no
solo va a actuar un solo robot RV-M1 sino dos y dependiendo de su ubicación los
robots pueden mover objetos desde distancias mayores.
6. CONCLUSIONES
Ya que esta aplicación no utiliza ningún tipo de sensores es necesario establecer
puntos de ubicación fija de cada ficha ya que esto permite la respectiva delimitación
tanto en área de trabajo como en código programable
A partir de la implementación de algoritmos de detección de colisiones se quiere
establecer un esquema de programación más organizado evitando así inconsistencias
en el software en cuanto a la interacción entre los dos brazos robóticos MITSUBISHI
MOVEMASTER RV-M1
Se debe tener en cuenta que para la conmutación de los puertos se debe establecer
un tiempo base para evitar el bloqueo de la unidad central de procesamiento del
brazo
Es muy importante para este tipo de aplicaciones tener un equilibrio en cuanto a
cantidad de movimientos asignados al dispositivo, gracias a que se plantea un Slave
dependiendo de los movimientos de un Master (control centralizado).
La mejor área de trabajo para los brazos en conjunto se encuentra delimitada
25x19(cm) basada en la construcción de una estructura de dimensiones
25x15x19(cm).
Esta aplicación es una herramienta de gran ayuda para los docentes de ingeniería y
tecnología que trabajen en el área de robótica, programación y redes ya que involucra
todos estos temas, aparte de ser de gran apoyo en el grupo de investigación ROMA
Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido
para continuar con un proceso de implementación de sensores y desarrollo del
algoritmo de detección de colisiones.
Referencias
[1] A. Quintero, C. Florez. “Diseño e implementación de simulador del robot Mitsubishi RV-M1 para el laboratorio de Robótica y CNC”. Bogotá, Universidad Distrital Francisco José de Caldas - Facultad Tecnológica, 2011.
[2] E. Beltrán, “Desarrollo de algoritmos para la coordinación de un sistema de multirobot cooperativo para tareas de búsqueda de fuentes de calor en entornos dinámicos”, Bogotá: Universidad Distrital Francisco José de Caldas, 2011.
[3] E. Bacca, & E. Caicedo, “Control de empuje de una barra usando dos robots móviles y visión artificial”, Bogotá:
Revista científica y tecnológica de la facultad de ingeniería Universidad Distrital Francisco José de Caldas, pp. 70-
79, Octubre, 2007.
[4] A. Carrasco, “Detección y diagnóstico de fallas en robots móviles cooperativos”, Santiago de Chile, Pontificia Universidad Católica de Chile, 2004.
[5] J. Ceballos, “JAVA 2: Interfaces gráficas y aplicaciones para internet”, Madrid, Escuela Politécnica de Alcalá, 2008.
[6] J. Ceballos, “JAVA 2: Curso de programación”, Madrid, Escuela Politécnica Superior Universidad de Alcalá, 2010.
[7] R. Costa, & L. Basañez, “Planificación de movimientos y control de fuerza en entornos MULTIROBOT”, Barcelon, Universidad de Cataluña, 2004.
[8] B. Delgado, “Manual básico manipulador robot Mitsubishi RV-M1”, Cali: Pontificia Universidad Javeriana, 2001.
[9] C. Díaz, “Manipulación cooperativa robot-robot y humano-robot. Aplicación a sistemas flexibles de desensamblado automático”, San Vicente del Raspeig, Universidad de Alicante, 2007.
[10] B. Howard, & T. Erlemeier, “Interface Desing For Offline Robot Programming Whit The Use Of Virtual Simulation”, 2006.
[11] J. Jiménez, “Tesis Doctoral: Detección de colisiones mediante recubrimientos simplificados”, Granada, Universidad de Granada, 2006.
[12] E. Merchán, “Metodología para generación de trayectorias de manipuladores robóticos, su cinemática y dinámica”, Ciudad de México: Instituto Politécnico Nacional, 2000.
[13] MITSUBISHI. (s.f.). ROBOT INDUSTRIAL MITSUBISHI Modelo RV-M1, Manual de operación, Tokio.
[14] M. Modesti, “Sistemas de comunicación por bus de campo”, Buenos Aire, Universidad Tecnológica Nacional, 2003.
[15] M. Pan, M. Liandong, M. Xinhan, M. Huang, & M. Arif, “A PC-Based Open Architecture Controller For Robots (OACR)”, 2005.
[16] J. Venturello, “Herramienta para la programación y simulación de movimientos del manipulador robótico Mitsubishi Movemaster RV-M1”, Cali, Pontificia Universidad Javeriana, 2006.
[17] M. Dorigo, D. Floreano, L. M. Gambardella, F. Mondada, S. Nolfi, T. Baaboura, M. Birattari, M. Bonani, M. Brambilla, & A. Brutschy, “Swarmanoid: un concepto novedoso para el estudio de enjambres robóticos heterogéneos”, Tech. Rep, 2011.
[18] G. A. Di Caro, F. Ducatelle, and L. M. Gambardella, “Las comunicaciones inalámbricas para la navegación distribuida en enjambres de robots”, Sexto Taller Europeo sobre la aplicación de la Naturaleza inspirados en técnicas para las redes de telecomunicaciones y otros sistemas conectados, 2009.
[19] F. Ducatelle, A. Förster, G. A. Di Caro, and L. M. Gambardella, “Navegación de reparto en sistemas multi-robot a través de la comunicación retardo de red tolerante”, Taller de la IFAC sobre Red Robótica, NetRob, 2010.