Año 6, Número 3. Mayo - Agosto 2019


Nueva técnica de programación de robots

Creating a new robot programming technique
Universidad Tecnológica del Norte de Coahuila

Por: Edgar Ovidio Barrón Ramos, Claudia Elena Seguy Fernández, Miriam Zulema González Medrano y Rosendo De Luna Álvarez / Ver en pantalla completa


Resumen

En la actualidad el método más utilizado para la manipulación de robots en el área industrial es el Teach Pendant, dispositivo que actúa como un controlador que está constituido por un teclado alfanumérico de función, y una pantalla de edición.

Como alternativa se propone la implementación de un sensor óptico tridimensional, el cual crea un espacio de realidad virtual para la adquisición de datos de los movimientos de la palma de una mano, transformándolos a un conjunto de posiciones absolutas, a través de una interfaz desarrollada en LabVIEW, enviados a los servomotores para su ejecución por el autómata. Como resultado se obtiene un tipo de programación interactiva con capacidad de adaptarse a mecanismos con “n” grados de libertad; sin embargo, su precisión está condicionada por el rango de sensibilidad (0.7 mm) del Leap Motion y los componentes de los actuadores.

Palabras clave: interfaz, adaptar, robot, control.


Abstract

The Teach Pendant is currently the most used method for handling robots in the industrial area, this device acts as a controller that consists of an alphanumeric function keyboard and an editing screen.

An alternative is proposed, the implementation of a three-dimensional optical sensor is, which creates a virtual reality space with the acquisition of data from the movements of the palm of a hand, transforming the data into a set of absolute positions, through an interface developed in LabVIEW that is sent to servomotors for execution by the automaton. As a result, we obtain a type of interactive programming with the ability to adapt to mechanisms with "n" degrees of freedom; however, its accuracy is determined by the sensitivity range (0.7 mm) of the Leap Motion and the components of the actuators.

Keywords: interface, adapt, robot, control.


Introducción

Desde su aparición, los robots han sido implementados para la mejora continua de diversos procesos, y su adquisición ha tenido un incremento exponencial1 por parte de grandes corporaciones, que cada vez son más “dependientes” de ellos.

Como resultado de su alta demanda, se ha enfatizado en su innovación, productividad y eficiencia, dejando rezagada y con mejoras mínimas la manera en la que interactúan con el usuario y el cómo son programados. Actualmente, y de forma general, existen cinco métodos de programación2:

  • Manual
  • Modo teach pendant
  • Modo guiado
  • Computadora servidor
  • Modo off-line

Dentro de estos, el modo guiado es cada vez menos utilizado debido a que conlleva el trabajo de mover en forma manual al robot a la posición deseada. El método off-line, relativamente moderno, es poco utilizado; éste se apoya en el uso de sistemas CAD. Hoy el 90 % de los robots se emplean con un Teach Pendant4 que es la generación de un código por medio de botones de función, el cual indica al robot los ejes que debe modificar en tiempo real.

Esta propuesta es considerada como una variación del modo guiado, ya que se lleva al robot al lugar deseado, por medio del movimiento de la mano en coacción con el sensor óptico, el cual elimina la carga física que implicaba realizar los movimientos del autómata de forma manual y una vez ahí se guarda la posición que se utilizará posteriormente en el código.

En los últimos 20 años5 han existido modelos que emplean la visión artificial en la generación del código de programación; no obstante, esta se limitaba a la adquisición de información de las partes5 (inspección, identificación, localización, orientación y monitoreo de seguridad) y su empleo exclusivo para la toma de decisiones en lógicas diseñadas. El enfoque moderno de la tecnología visual busca tener una posición jerárquica mayor en el control de equipos y no solo como herramienta de apoyo.

El sensor Leap Motion6 cuenta con dos cámaras y tres leds infrarrojos, lo que le permite tener un rango de operación adecuado para captar en todo momento la posición de la palma de una mano, que posteriormente será traducida a código utilizable. Con una interfaz apoyada en LabVIEW, se convierten y envían las señales resultantes al controlador, que finalmente manipula los servomotores sobre la base de las posiciones retroalimentadas por los encoders.


Objetivo

Aplicar un modelo interactivo que permita al usuario/a de robots omitir la escritura de un código de programación, a través de la digitalización de los movimientos de la mano.


Planteamiento del problema

El Teach Pendant es utilizado para realizar las tareas relacionadas a procesos repetitivos; ha permanecido sin mejoras en su metodología5, contrario a los cambios que ha sufrido la industria, en la cual es cada vez más común encontrar procesos que deben ser modificados rápida y en algunas ocasiones constantemente. Aunado a esto, existen múltiples casos en donde la secuencia de movimientos debe (además de ajustarse al sistema productivo) adecuarse a las necesidades del/la operador/a involucrado/a. Para este nuevo panorama es imperativo contar con una forma de programar que permita hacer cambios de manera simple y que no requiera empleados/as altamente especializados, evitando así gastos innecesarios. Como respuesta a la situación anterior, se implementó este tipo de tecnología, que logra innovar la forma de manipulación de autómatas programables.


Método de trabajo

En este apartado se aborda en detalle el principio de funcionamiento de cada una de las partes que lo integran, así como sus requerimientos:

Sensor Leap Motion

Leap Motion es un dispositivo que implementa tecnología infrarroja con el fin de ubicar, capturar, digitalizar y procesar los movimientos de la(s) mano(s). Su diseño está constituido por dos cámaras CCD (dispositivo de carga acoplada) y tres emisores infrarrojos, con un alto grado de precisión en la variación de las posiciones espaciales.

Requerimientos del sistema

  • Windows 7+ o Mac OS X 10.7+
  • Procesador AMD Phenom II o Intel Core i3/i5/i7
  • 2 GB RAM
  • Puerto USB 3.0 (2.0 compatible)

Especificaciones técnicas

  • Dimensiones: Largo: 78.74 mm, Ancho: 30.48 mm, Alto: 12.7 mm
  • Peso: 45.35 gr.
  • Precisión: ± 0.009906 mm
  • Estándar de conexión: 1 puerto USB 3.0
  • Rendimiento: 200 fps

Brazo robótico

Como prototipo (Fig. 1) se utiliza el Kit para Arduino de la empresa Sunfounder, el cual cuenta con cuatro grados de libertad, cada uno controlado por un servomotor (5 VDC, 30 mA). Para controlar los servomotores es necesario utilizar la placa de expansión, la cual facilita las conexiones y además se alimenta con una fuente externa. La placa de desarrollo Arduino modelo Uno fue utilizada, dada la facilidad de librerías desarrolladas para su uso dentro del entorno de LabVIEW.

Figura 1. Dimensiones de prototipo utilizado

Figura 1. Dimensiones de prototipo utilizado. (Fuente: https://www.robotshop.com/ca/en/robotic-arm-kit-4-axis-arduino.html)

LabVIEW

Es un software que ofrece un enfoque de programación gráfica mediante herramientas útiles para la obtención, análisis y procesamiento de datos.

Requerimientos del equipo de cómputo

Se muestran a continuación:

Tabla 1. Requerimientos del equipo de cómputo

Windows Entorno de usuario Entorno para desarrollador
Procesador Pentium 4M/Celeron 866 MHz (o equivalente) o posterior (32-bit)
Pentium 4 G1 (o equivalente) o posterior (64-bit)
Pentium 4 M (o equivalente) o posterior (32-bit)
Pentium 4 G1 (o equivalente) o posterior (64-bit)
Memoria RAM 256 MB 1 GB
Resolución de la pantalla 1024 x 768 pixeles 1024 x 768 pixeles
Sistema Operativo Windows 10/8.1/8/7 SP1 (32 y 64 bit)
Windows Server 2012 R2 (64-bit)
Windows Server 2008 R2 SP1 (64-bit)
Windows 10/8.1/8/7 SP1 (32 y 64 bit)
Windows Server 2012 R2 (64-bit)
Windows Server 2008 R2 SP1 (64-bit)
Espacio del disco 620 MB 5 GB (Incluye los driver de dispositivo por parte de National Instruments)

Programación

La interfaz de control desarrollada en el software de LabVIEW 2015, requiere el uso de librerías (LabVIEW Interface for Arduino, Leap Motion MakerHub) para establecer una comunicación entre el dispositivo de entrada (Leap Motion) y la placa de control para los servomotores (Arduino Uno).

Figura 2. Adquisición de datos

Figura 2. Adquisición de datos

Primeramente, se obtienen los valores proporcionados por el sensor al posicionar la mano sobre este, por lo que arroja los datos de tres ejes disponibles: Eje ‘X’, Eje ‘Y’, Eje ‘Z’ (Fig. 2) y se almacenan en variables para su posterior procesamiento, lo cual accionara a cada servomotor correspondiente.

Figura 3. Control de servomotor

Figura 3. Control de servomotor

Una vez ajustada la señal de entrada, es posible mandar ese dato a la placa de control para que accione al servomotor correspondiente. Para ello se implementa la estructura que se muestra en la Figura 3. En este caso es para el eje ‘X’, para los demás ejes y el gripper sería una configuración equivalente.

El diagrama de la Figura 4 nos ayuda a configurar el número de servomotores a utilizar; en él se configura cada servomotor, es decir, se le asigna un número de identificación (parte superior), y se le asignan los números que representan las terminales a las cuales van conectados en la placa de control (parte inferior).

Figura 4. Configuración básica para servomotores

Figura 4. Configuración básica para servomotores

Se utilizan tres de los cuatro servomotores para controlar tres ejes (X, Y, Z). Su rango de operación es de 10 a 170 grados, por lo que se debe re-escalar (Fig. 5) el valor proveniente de cada eje para proporcionar la señal adecuada a los actuadores. Con este fin se desarrolló la siguiente estructura.

Figura 5. Ajuste de la señal

Figura 5. Ajuste de la señal

Figura 6. Estructura del rango de operación del gripper

Figura 6. Estructura del rango de operación del gripper

En la Figura 6 se aprecia el acondicionamiento del valor proveniente del sensor, el cual es necesario para accionar el gripper. De la misma forma que en el caso anterior, se tiene que definir el rango de operación para el servomotor, en este caso, por su diseño mecánico, tiene un rango de operación de 75 grados (170-95), lo que representa que el gripper está cerrado a 170 grados y totalmente abierto a 95 grados.

Una vez obtenidos los datos provenientes del sensor, se procede a su almacenamiento, guardando así cada una de las posiciones que posteriormente el brazo robótico ejecutará automáticamente. Para ello se hace uso de la función “Array” y sus componentes para poder construir un arreglo de datos, en la que cada una de sus posiciones guardará los ángulos para cada servomotor.

Figura 7. Ejes definidos de Leap Motion

Figura 7. Ejes definidos de Leap Motion (Fuente: http://blog.showleap.com/2015/05/leap-motion-api/)

Para mover el brazo robótico en el eje deseado, solo es necesario colocar la mano sobre el sensor e ir posicionándola de acuerdo al eje que se requiera (Fig. 7).

Para controlar el servomotor que abrirá o cerrará el gripper, es necesario que con la mano se muestre el gesto adecuado, el cual es como si se estuviese formando una esfera con la apertura y cierre del puño de la mano (Fig. 8).

Gripper abierto

Gripper cerado

Gripper abierto Gripper cerrado

Figura 8. Control del gripper

Una vez que se almacenan los datos en los arreglos, se puede ejecutar el modo ‘Play’ (Fig. 9) y el brazo robótico reproducirá la secuencia previamente guardada. Adicionalmente, se puede monitorear, desde el panel frontal, la posición de cada servomotor.

Figura 9. Visualización del modo Play

Figura 9. Visualización del modo Play


Resultados

Se logró desarrollar un software mediante LabVIEW que puede manejar los datos obtenidos por el LeapMotion sin agregar retrasos perceptibles. Su interfaz cuenta con las siguientes funciones:

  1. Limpieza de datos almacenados.
  2. Guardado de posición actual.
  3. Retorno a home.
  4. Control manual mediante panel frontal.
  5. Control mediante LeapMotion.
  6. Indicadores de valores actuales de la posición de la mano.
  7. Modo play.
  8. Indicadores de la posición de los servomotores controlados.

Dichas funciones son básicas para crear un proceso en un entorno industrial. Además, es capaz de guardar 40 posiciones y repetir el recorrido entre los puntos guardados de manera automática mediante el modo “play” implementado. Es adaptable al tipo de robot con que se cuente y su capacidad de almacenamiento es expandible.

Todo lo mencionado hace prescindible el uso de un Teach Pendant para controlar un robot, resultando más sencillo y rápido el programar una tarea en la maquinaria, así como también su aprendizaje y capacitación para una persona que sea nueva en este ámbito, todo ello siempre y cuando se cumpla con los requisitos de LeapMotion y LabVIEW.


Conclusiones

El desarrollo de esta interfaz de control representa un gran avance en la manera de programar autómatas, ya que ofrece al usuario o usuaria un método más amigable de poder manipular brazos robóticos, además de que el/la operador/a se familiariza rápidamente con el robot y puede desarrollar un proceso productivo de manera rápida y sencilla.

Empero, este sistema puede considerarse incompleto o en proceso de mejora, ya que aún requiere complementarse con algún otro concepto interactivo que facilite la creación de lógicas de toma de decisión, sustituyendo las variables locales por las variables globales (ya que en las pruebas se utilizan las variables locales), con lo cual se podrían sustituir de manera total las dificultades al programar y el Teach Pendant.


Referencias

1. INTERNATIONAL FEDERATION OF ROBOTICS. Global industrial robot sales doubled over the past five years. [Artículo en línea: World Robotics – Industrial Robot Report 2018 published]. [Fecha de consulta: 31 de enero de 2019]. Disponible en: https://ifr.org/ifr-press-releases/news/global-industrial-robot-sales-doubled-over-the-past-five-years
2. KERAMAS, James G. Robot Technology Fundamentals. 1a ed. New York: Delmar Publishers,1999. ISBN: 0827382367
3. British Automation & Robot Association. Robot Programming Methods. [Artículo en línea]. 2017. [Fecha de consulta: 22 de enero de 2019]. Disponible en https://www.ppma.co.uk/bara/automation-explained/robots/robot-programming-methods.html
4. QIAN, Kun; NIU, Jie y YANG, Hong. Developing a Gesture Based Remote Human-Robot Interaction System Using Kinect. International Journal of Smart Home [en línea]. Vol. 7, No. 4, julio 2013. [Fecha de consulta: 23 de enero de 2019]. Disponible en https://pdfs.semanticscholar.org/62d4/a156a8bdd052374b9b08d058452a1afecc24.pdf?_ga=2.11140276.1857734261.1548289971- 1899880718.1548289971
5. MORLEY, Emma C. y SYAN, Chanan S. Teach pendants: how are they for you? Industrial Robot: The International Journal of Robotics Research and Application [en línea]. Vol. 22, No. 4, pp.18-22. Junio 1995. [Fecha de consulta: 23 de enero de 2019]. Disponible en https://doi.org/10.1108/01439919510098416
6. WEICHERT, Frank; BACHMANN, Daniel; BARTHOLOMÄUS, Rudak y FISSELER, Denis. Analysis of the Accuracy and Robustness of the Leap Motion Controller. Revista de la MDPI [en línea]. 14 de mayo de 2013. [Fecha de consulta: 22 de enero 2019]. Disponible en https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3690061/ ISSN: 1424-8220


Fecha de recepción Fecha de aceptación Fecha de publicación
12/03/2019 10/05/2019 31/05/2019
Año 6, Número 3. Mayo - Agosto 2019


Buscador interno de artículos: