Está en la página 1de 7

MEMORIAS

Comunicacin entre
RobotStudioLeapmotion para el
control de robot industrial
Pedro Andrey Can (1), Pedro Crdenas (2), Oscar Rodrguez (3)

(1) pacanonj@unal.edu.co
Ingeniera Mecatrnica Universidad Nacional de Colombia
Bogot, Colombia

(2) pfcardenash@unal.edu.co
Profesor Asociado, Universidad Nacional de Colombia
Bogot, Colombia

(3) oscar.rodriguez@uptc.edu.co
Profesor, Universidad Pedaggica y Tecnolgica de Colombia

MEMORIAS

198 IV CONGRESO INTERNACIONAL DE INGENIERA MECATRNICA Y AUTOMATIZACIN - CIIMA 2015 /


MEMORIAS

Comunicacin entre
RobotStudioLeapmotion para el
control de robot industrial
RESUMEN

E
Palabras clave: n este artculo se muestra el trabajo desarrollado para
Telerobtica; interaccin, lograr la comunicacin entre una aplicacin desarrollada
manipulador; LeapMotion; en Windows, el programa RobotStudio y el controlador
SDK ABB; Pythonfor Net IRC5 de la marca ABB. La aplicacin desarrollada implementa
dos kits de desarrollo de software (SDK); uno de estos permite
obtener datos del dispositivo Leapmotion el cual detecta la
posicin de la mano y retorna una coordenada en el espacio,
el otro kit de desarrollo permite la manipulacin de datos
RAPID (Lenguaje de programacin implementado por ABB)
y el envo de comandos de ejecucin desde la aplicacin al
programa RobotStudio y al controlador IRC5.

Envigado (Colombia), 21 y 22 de octubre de 2015 199


MEMORIAS

I. INTRODUCCIN no es una tarea trivial y requiere de especial atencin


por parte de los ingenieros de programacin [3].
En el mbito de la robtica industrial est pre-
sente la necesidad de lograr procesos de manera Se plante la pregunta de cmo lograr las aplica-
sencilla e intuitiva; dado que estos actualmente re- ciones deseadas y que tan flexibles podran llegar a
quieren ya sea personal capacitado o el tiempo para ser estas y para esto se busc desarrollar una apli-
capacitar a los mismos. El desarrollo de aplicaciones cacin que permitiera controlar el desplazamiento
que permitan una interaccin de manera eficiente de un robot industrial de modo que el usuario solo
entre el usuario y la mquina, sin llegar a necesitar necesitara mover la mano en un espacio determina-
conocimientos especficos, lograra que la imple- do para lograr recorridos por el robot idnticos a los
mentacin de los procesos sea mucho ms sencilla realizados. Finalmente como se presentan diversos
en cuanto a requerimientos de programacin dis- tipos de procesos se plantean las bases necesarias
minuyendo as tiempos y costos de proceso. para que cualquier persona pueda crear una aplica-
Los mtodos de programacin intuitivos para sis- cin correspondiente a su necesidad.
temas robotizados nace del anlisis de sistemas in- Con el objetivo de desarrollar nuevos mtodos
dustriales, donde incluso observando que los siste- de programacin de robots industriales que dismi-
mas robotizados en la industria se enfocan en tareas nuyan el tiempo y la complejidad asociada al pro-
repetitivas ofreciendo mayor velocidad, precisin y ceso de ingeniera se han estudiado recientemente
perceptibilidad es evidente que sistema de produc- nuevas tecnologas de interaccin humano-mqui-
cin robusto requiere de la capacidad de adaptar la na para servir como un mtodo de programacin
configuracin de una celda de trabajo a nuevas ta- mas natural [4] [5]. Los mtodos naturales de comu-
reas. Debido a esto, los robots entes dinmicos capa- nicacin como voz y gestos son de especial inters
ces de adoptar nuevos roles dentro de las cadenas en esta rea de investigacin por el potencial que
de produccin optimizando los procesos [6].
representa que una persona con poco entrena-
Fig. 1. Arquitectura del sistema miento pueda ser capaz de programar un sistema
robotizado [2] [8].
Los gestos son expresiones visuales naturales
de una persona que desea transmitir informacin
al robot para que este realice un trajo especifico
[7]; estos gestos pueden ser identificados utilizan-
do elementos de captura de imgenes, analizando
movimientos y gestos bsicos que son traducidos al
lenguaje de mquina y alimentados en tiempo real
a un controlador robtico [3] .
Este trabajo se enfoca en la deteccin de la inte-
raccin humana en el espacio para controlar la ci-
El proceso convencional de programacin de ro- nemtica de un brazo robotico industrial dentro del
bot industriales contempla la planeamiento de tra- entorno de programacion offline de robots indus-
yectorias, anlisis de configuracin y solucin num- triales. El mtodo propuesto permite al usuario ope-
rica del problema cinemtico inverso que requiere la rar el robot controlando la trayectoria del efector fi-
dedicacin de personal especializado en la configu- nal mediante gestos manuales haciendo uso de una
racin de los equipos [2]. En el diseo de un plan de aplicacin desarrollada en torno a la adquisicin de
trabajo robusto donde el robot sea capaz de adaptar- datos de un sensor de movimiento y su enlace al
se a nuevas tareas y configuraciones de su entorno software de programacin de robot industriales.

MEMORIAS

200 IV CONGRESO INTERNACIONAL DE INGENIERA MECATRNICA Y AUTOMATIZACIN - CIIMA 2015 /


MEMORIAS

El artculo esta organizado como sigue, en las de mensajes JSON( JavaScript Object Notation). Un
Seccin II se describe la configuracin del sistema, cliente JavaScript es habilitado para el uso de men-
en la seccin III se muestra la integracin de los di- sajes JSON y destina el seguimiento de datos como
ferentes componentes como una sola aplicacin. Fi- un objeto JavaScript. Figura 3.
nalmente en la seccin V se presentan los resultados
Fig. 2: Arquitectura Interfaz Propia LeapMotion
y conclusiones de la aplicacin desarrolla.
II. ARQUITECTURA DEL SISTEMA

En la figura 1 se presenta el concepto total de la


aplicacin desarrollada. Se utiliza un sensor de movi-
miento Leap Motion para capturar ciertos movimien-
tos que realiza la mano. Para interactuar con el sen-
sor Leap Motion es necesario disponer del conjunto
de libreras SDKLeapmotion. El sensor se conecta a
un PC a travs de el puerto UBS3. Adicional en el PC
debe estar instalado el software de programacin
offline de robots ABB, denominado RobotStudio, al
igual que el conjunto de libreras PC-SDK de ABB.
Fig. 3. Arquitectura Interfaz WebSocket
A. Sensor leap Motion
El software de Leap Motion corre como un ser-
vicio en Windows o como daemon en Mac o Linux
este se encarga de conectar el controlador del dis-
positivo a travs de puerto USB. Las aplicaciones
habilitadas acceden al servicio de Leap Motion para
recibir los datos de seguimiento pertenecientes al
movimiento.
El SDK de Leap Motion provee dos variedades de
API (Application Programming Interface) para obte-
ner los datos de seguimiento desde el servicio Leap
Motion: una interfaz propia y una interfaz WebSoc-
ket. La interfaz propia es una librera dinmica que
uno puede usar para crear nuevas aplicaciones. La B. Software RobotStudio
WebSocket interfaz permite la creacin de aplica-
ciones web. RobotStudio es una aplicacin de PC destinada
1) Interfaz de Aplicaciones Propias: Las aplicacio- al modelado, la programacin fuera de lnea y la si-
nes de interfaz propias son provistas a travs de una mulacin de clulas de robot.
librera dinmica. Esta librera se conecta al servicio RobotStudio le permite trabajar con un contro-
de Leap Motion y provee el seguimiento de datos a lador fuera de lnea, que constituye un controlador
la aplicacin desarrollada. Figura 2. IRC5 virtual que se ejecuta localmente en su PC. Este
2) Interfaz WebSocket: El servicio de Leap Motion controlador fuera de lnea tambin se conoce como el
corre como un servicio WebSocket sobre el domi- controlador virtual (VC). RobotStudio tambin le per-
nio de localhost en el puerto 6437. La interfaz We- mite trabajar con un controlador IRC5 fsico real, que
bSocket provee los datos de seguimiento en forma simplemente se conoce como el controlador real.

Envigado (Colombia), 21 y 22 de octubre de 2015 201


MEMORIAS

Cuando RobotStudio se utiliza con controladores trolador deseado y poder asignar una posicin (x, y,
reales, se conoce como el modo online. Al trabajar z) de forma manual, que corresponder a la posicin
sin conexin a un controlador real o mientras est del efector final de robot en lnea con el controlador.
conectado a un controlador virtual, se dice que Ro- El objetivo de la aplicacin de consola es selec-
botStudio se encuentra en el modo fuera de lnea.[9] cionar de manera automtica un controlador en li-
PC SDK permite a los integradores de sistemas, nea y detectar la posicin de la mano mediante el
terceros o usuarios finales aadir sus propias interfa- sensor Leap Motion. Las coordenadas obtenidas se-
ces de operador personalizadas para el controlador ran enviadas al controlador del robot de modo que
IRC5. Tales aplicaciones personalizadas se pueden este replique el desplazamiento de la mano.
realizar como aplicaciones de PC independientes, Para ambas aplicaciones se sigue el diagrama de
que se comunican con el controlador de robot so- flujo mostrado en la figura 4. En la aplicacin de in-
bre una red. terfaz la lectura de la coordenada se realiza de un
Se debe esperar un tiempo de respuesta mnimo dato ingresado por el usuario final y en la aplicacin
para un controlador real en el orden de 10-100 mili- de consola este dato es provisto por el sensor Leap
segundos, lo que significa que duras exigencias de Motion de manera automtica.
tiempo real no pueden ser satisfechas en cualquier Cada aplicacin se ejecuta en paralelo con un
plataforma. [10] programa en lenguaje RAPID cargado previamente
I I I. D E S C R I P C I N D E S O F T WA R E E en el controlador, ya sea virtual o real, este progra-
I M P L E M E N TA C I N ma debe tener definidas la variables de manera glo-
bal que van estar sujetas a modificacin posterior
A. Configuracin
por parte de la aplicacin. El programa RAPID se
No fue necesaria ninguna configuracin espe- mantendr en ejecucin hasta que la aplicacin le
cifica para realizar las aplicaciones en C# ya que Vi- enve una seal de stop. El diagrama correspondien-
sualStudio provee las herramientas necesarias para te a este programa se puede observar en la figura 5.
el desarrollo de las mismas. En el caso de las apli-
caciones desarrolladas en Python posteriormente a C. Operacin
la instalacin se necesito descargar varios comple- El programa del Leap Motion se configura tipo
mentos que se listan a continuacin: interrupcin de manera que cada vez que el usuario
PyQt4 Permite el uso de interfaces desarrolla- ingrese la mano en el campo de lectura del sensor
das en QtCreator se ejecute una rutina la cual es la encarga de leer el
Pythonfor.NET Permite el uso de libreras de C dato de la posicin de la palma de la mano, trans-
# en Python formar las coordenadas obtenidas al espacio de tra-
bajo del robot y finalmente enviar estos valores al
B. Programas desarrollados cdigo RAPID.
La metodologa implementada para el desarrollo El movimiento del robot se programa mediante
de la aplicacin se realiz en dos lenguajes de pro- la instruccin MoveL que desplaza el TCP con una
gramacin distintos, C# y Python, en ambos lengua- orientacin constante de manera lineal. Los parme-
jes se cre una aplicacin de consola y una aplica- tros necesarios para ejecutar la instruccin son un
cin de interfaz generada por VisualStudio para C#y dato robtarget, que contiene la informacin del pun-
QtCreator para Python. to al que se desea ejecutar el desplazamiento con
El objetivo de la aplicacin con interfaz es listar una orientacin definida, un parmetro de velocidad
todos los controladores tanto virtuales como reales y un dato que contiene la informacin de herramien-
que este en lnea con el host y mostrar las caracte- ta usada. Uno de los parmetros del dato robtarget
rsticas de cada uno, para luego seleccionar el con- es una variable de tipo pos; esta variable contiene

MEMORIAS

202 IV CONGRESO INTERNACIONAL DE INGENIERA MECATRNICA Y AUTOMATIZACIN - CIIMA 2015 /


MEMORIAS

las tres coordenada del punto al cual se quiere des- denada enviada en el espacio operacional del robot.
plazar. Desde la aplicacin se accede va Ethernet al El tiempo mnimo se obtuvo enviando una coorde-
controlador de robot y es cambiado el valor de la va- nada muy cercana a la posicin inicial, para esta
riable tipo pos, de modo que cada vez que se ingrese prueba se aumento solo la coordenada x en 0.1 mm
un nuevo valor el robot se desplace a este. y se obtuvo un tiempo aproximado de 60 ms. Este
Fig. 4. Diagrama de flujo de la aplicacin tiempo hace referencia al tiempo de comunicacin
y al tiempo que toma ejecutar la instruccin de mo-
vimiento; dichas pruebas se realizaron variando el
parmetro de velocidad del robot y se obtuvieron
valores similares. El cdigo implementado en RAPID
se puede observar a continuacin y la interfaz en la
figura 6. Respecto a la relacin entre el movimiento
de la mano dentro del espacio de captura del sensor
y el movimiento en el espacio operacional del robot
es ajustada a travs de escalizacin, sin embargo
para determinar la precisin en los movimientos no
se cont con elementos externos de medicin por
tanto hacer una relacin entre el movimiento de la
mano el extremo del efetor no tiene lugar.

Fig. 5. Diagrama de flujo programa RAPID

Las pruebas realizadas implementando el sensor


Leap Motion estuvieron limitadas a diversos factores
tanto fsicos como de software. Fsicamente se tuvo
que limitar la velocidad del robot debido a que, a ve-
locidades altas y por la cantidad de mltiples coor-
denadas provistas por el sensor, el robot presenta-
ba vibraciones y sobreactuacin en posiciones fijas;
esto se soluciono limitando la velocidad del TCP del
I V. R E S U LTA D O S robot en un rango de 100mm/s a 200mm/s. Debido
a que el sensor retorna una coordenada en un tiem-
En el presente trabajo se describe la metodo-
loga para integrar el sensor de movimiento leap po de 5ms y la ejecucin del movimiento toma un
motion y el entorno de programacin y simulacin tiempo mnimo de 60ms se perdi fidelidad en el se-
de robots industriales robot studio. Los resultados guimiento de la trayectoria para solucionar esto se
obtenidos de pruebas a partir de esta metodologa plante el uso de una pila de estructura fifo, que al-
permitieron desarrollar tiempos mnimos de ejecu- macene las coordenadas provistas por el sensor Leap
cin del movimiento del robot. La prueba realizada Motion, con un vaciado total de la pila cada cierto
se baso en enviar una coordenada desde la aplica- intervalo de tiempo; en este caso se mejora el segui-
cin al cdigo RAPID y medir el tiempo requerido miento de la trayectoria pero se pierde la sensacin
para el desplazamiento del punto inicial a la coor- de movimiento en tiempo real de la aplicacin.

Envigado (Colombia), 21 y 22 de octubre de 2015 203


MEMORIAS

V. C O N C LU S I O N E S AGRADECIMIENTOS

Es difcil realizar un seguimiento idntico de la A la Universidad Nacional de Colombia a travs


trayectoria de la mano por parte del robot debido a de las DIB por el programa de Semilleros de inves-
que los tiempos de ejecucin del movimiento exce- tigacin. A Colciencias por la beca de doctorado de
Pedro Fabin Crdenas.
den los tiempos de deteccin por parte del sensor; lo
que impide que se recorran todos los puntos detec- REFERENCIAS
tados, para solucionar este inconveniente se sugiere [1] Wen, R., Tay, W. L., Nguyen, B. P., Chng, C. B., & Chui,
que el seguimiento no se realice en tiempo real. C. K. (2014). Hand gesture guided robot assisted surgery based
on a direct augmented reality interface. Computer Meth-
La realizacin de aplicaciones intuitivas se ods and Programs in Biomedicine, 116(2), 6880. http://doi.
puede lograr limitando la funcionalidad de las org/10.1016/j.cmpb.2013.12.018
mismas y considerando los posibles errores que [2] Ganapathyraju, S. (2013). Hand gesture recogni-
se puedan presentar durante la ejecucin, para tion using convexity hull defects to control an industrial ro-
bot. 2013 3rd International Conference on Instrumentation
esto el programador debe tener claro el proceso Control and Automation (ICA), 6367. http://doi.org/10.1109/
a realizar y las restricciones necesarias para evitar ICA.2013.6734047
un caso de falla esto genera poca flexibilidad en [3] Lambrecht, J., Kleinsorge, M., & Krger, J. (2011).
las aplicaciones y hace necesario una aplicacin Markerless gesture based motion control and programming of
industrial robots. IEEE International Conference on Emerging
especfica para cada proceso. Technologies and Factory Automation, ETFA, 14. http://doi.
org/10.1109/ETFA.2011.6059226
Fig. 6. Interfaz realizada en VisualStudio y en QtCreator [4] Kruse, D., Radke, R. J., & Wen, J. T. (2013). A Sensor
based Dual Arm Tele Robotic Manipulation Platform. 2013 IEEE
International Conference on Automation Science and Engineer-
ing (CASE), 350355.
[5] Neto, P., Pereira, D., Pires, J. N., & Moreira, a P. (2013).
Real Time and Continuous Hand Gesture Spotting : an Ap-
proach Based on Artificial Neural Networks.
[6] Cerlinca, T., & Vlad, V. (2012). A Human Robot Interac-
tion based approach to automation in industrial manufactur-
ing. EPE 2012 - Proceedings of the 2012 International Confer-
ence and Exposition on Electrical and Power Engineering, (Epe),
2934. http://doi.org/10.1109/ICEPE.2012.6463602
[7] Lin, H., Liu, Y., & Lin, Y. (2013). Intuitive Kinematic Con-
trol of a Robot Arm via Human Motion. Procedia Engineering,
00(1st ICM), 16. http://doi.org/10.1016/j.proeng.2014.06.362
[8] Mohammad, Y., & Nishida, T. (2014). Learning interac-
tion protocols by mimicking understanding and reproducing
human interactive behavior. Pattern Recognition Letters, 000,
19. http://doi.org/10.1016/j.patrec.2014.11.010
[9] Manual del operador RobotStudio 6.01
[10] Application manual PC SDK RobotWare 5.14

MEMORIAS

204 IV CONGRESO INTERNACIONAL DE INGENIERA MECATRNICA Y AUTOMATIZACIN - CIIMA 2015 /

También podría gustarte