Você está na página 1de 15
Instituto Tecnológico de Chihuahua División de Estudios de Posgrado e Investigación La computación en la

Instituto Tecnológico de Chihuahua

División de Estudios de Posgrado e Investigación

La computación en la robótica

de Posgrado e Investigación La computación en la robótica Nombre: Marcos Samuel Gómez García No. de
de Posgrado e Investigación La computación en la robótica Nombre: Marcos Samuel Gómez García No. de

Nombre: Marcos Samuel Gómez García

No. de control: G10061257

Chihuahua, Chihuahua

Junio de 2011

Introducción

Hoy en día las computadoras son parte indispensable en la vida del ser humano. Con las computadoras se pueden simplificar muchas tareas, factor que las ha hecho tan atractivas

y necesarias. Es común encontrar computadoras en las empresas ya que con estas se

pueden realizar ciertas funciones en un menor tiempo en que lo haría un ser humano sin la ayuda de ellas. Una de las desventajas de las computadoras es que aunque posean inteligencia artificial solo sirven para el proceso y control de datos, es aquí donde entran los robots, los cuales pueden auxiliar en tareas que requieren algún esfuerzo físico. Aunque existen herramientas que pueden ser operadas por un ser humano para realizar

trabajos que requieren una fuerza física mayor, los robots pueden realizar el mismo trabajo pero sin la intervención de un humano ya que tienen la capacidad de realizar tareas peligrosas debido a que poseen una inteligencia artificial parecida a la de las computadoras.

Si bien algunos robots en la actualidad tienen una inteligencia artificial muy avanzada, aún

existen robots que realizan tareas simples pero necesarias como es el caso de los robots dentro de la industria manufacturera. Son robots que agilizan la producción y que además protegen al trabajador de realizar tareas peligrosas. Generalmente los fabricantes de

estos robots proporcionan un controlador predeterminado para cada tipo de robot por lo que la interacción usuario-robot se ve limitada a lo que el fabricante disponga. Es aquí donde se podría integrar una computadora personal para el manejo del robot y para el procesamiento de los datos provenientes del mismo. En este documento se describe una forma de lograr dicha integración haciendo uso de diversas herramientas de propósito general.

Justificación

Esta práctica se realiza con la finalidad de conocer algunos de los elementos básicos necesarios para poder lograr interactuar con un robot a través de una computadora personal. Se pretende personalizar lo más posible la forma en que se integrarán todos estos elementos, esto con el fin de hacer un sistema modular al cual se le puedan agregar componentes adicionales en caso de que se requiera.

Metodología

Se estudiarán las características del robot para entender su modo de operación, para esto se realizarán varias prácticas en donde se programará al robot de manera que sea capaz de realizar distintas rutinas. Inicialmente la comunicación con el robot se dará a través del controlador proporcionado por el fabricante y se reproducirán las actividades contenidas en el manual de usuario, las cuales servirán como ejercicios de práctica. Una vez que se aprenda a operar el robot mediante el controlador, se procederá a realizar la comunicación con la computadora. Primeramente se realizarán las conexiones físicas, por lo que se analizará que tipo de interfaces de comunicación pueden ser útiles para dicho fin y se elegirá la que más se adecúe a la ocasión. El siguiente paso después de haber seleccionado el canal de comunicación entre computadora y robot será desarrollar un software de aplicación con el cual el usuario podrá interactuar. Esta interface de usuario deberá permitir enviar comandos al robot y además mostrar en pantalla el estado de las señales emitidas por el mismo.

Controlador XRC

Controlador XRC Figura 1. Controlador XRC El controlador XRC permite operar al robot mediante el procesamiento

Figura 1. Controlador XRC

El controlador XRC permite operar al robot mediante el procesamiento de señales de entrada y salida. Entre sus funciones está el mantener íntegro el flujo de datos, la conversión numérica de las coordenadas de sistema, la activación y control de servos, la

coordinación de funciones lógicas y el abastecimiento de corriente eléctrica hacia el robot. El controlador posee un panel frontal desde el cual se pueden enviar instrucciones de operación básicas hacia el robot. Ese mismo panel contiene indicadores luminosos, los cuales sirven para informar al usuario sobre las actividades que se están realizando tanto en modo de operación como en modo de programación. Los indicadores y botones que posee el controlador son:

- Modo de operación

- Modo de programación

- Modo remoto

- Botón Inicio

- Botón Hold

- Activar servos

- Botón de paro de emergencia

- Indicador de alarma

Teach Pendant

Teach Pendant Figura 2. Descripción de los componentes del Teach Pendant La interacción con el robot

Figura 2. Descripción de los componentes del Teach Pendant

La interacción con el robot desde el panel del controlador está orientada al monitoreo y a la puesta en marcha de operaciones básicas. Para poder realizar tareas más avanzadas se utiliza un aditamento conocido como Teach Pendant, desde el cual se pueden ingresar los programas de las rutinas que el robot deberá seguir. Dentro de las funciones principales que se pueden realizar con el Teach Pendant está el posicionamiento del robot, programación de rutinas, monitoreo de entradas y salidas, configuración de los modos de operación, calibración de servos, selección de tipo de coordenadas, entre otros. El Teach Pendant consta de un panel con botones, los cuales permiten ingresar datos y navegar por el menú. También cuenta con una pantalla que muestra el menú y sus distintas opciones. Interactuar con el menú es muy intuitivo una vez que se conocen los principios básicos ya que las opciones que se muestran en pantalla son gráficas y explícitas.

La interfaz de usuario del Teach Pendant ofrece varios modos de navegación a través del menú, estos modos son definidos como medida de seguridad para separar las funciones del operador de

las funciones de programación y mantenimiento. Existen opciones en el menú que solo se habilitan cuando se ingresa en modo de mantenimiento. Para ingresar a este modo es necesaria una clave, esto con el fin de proteger tanto al robot como al operador y prevenir algún tipo de accidente en caso de una mala administración.

Programas Este tipo de controladores utiliza el lenguaje Inform II para la creación de los programas. Este lenguaje es muy parecido al lenguaje ensamblador ya que para cada comando se coloca primero la instrucción y luego el componente adicional, por ejemplo para mover el robot de una coordenada a otra se utilizaría la siguiente línea de código:

MOVJ VJ=50.00 Todos los programas comienzan con la etiqueta NOP y terminan con la etiqueta END. La estructura de un programa típico sería la siguiente:

0001 NOP

0002 MOVJ VJ=25.00

0003 END

Antes de cada instrucción se encuentra un número identificador, el cual indica cuantas instrucciones van hasta el momento. Así como el lenguaje ensamblador, Inform II soporta instrucciones tales como IF, saltos, llamadas a subrutinas, pero además permite activar salidas y recibir entradas directas del robot. Las salidas se identifican con la instrucción OUT y las entradas con la instrucción IN. Las salidas y entradas pueden ser tanto analógicas como digitales.

Robot Motoman

Robot Motoman Figura 3. Robot Motoman UP6 Los robots que ofrece la compañía Yaskawa son diversos,

Figura 3. Robot Motoman UP6

Los robots que ofrece la compañía Yaskawa son diversos, en esta ocasión se trabajará con un brazo robótico. Este tipo de robots son altamente utilizados en las industrias manufactureras debido a que son útiles para realizar distintas tareas tales como cargar piezas, ensamble, soldadura, pintura, entre muchas otras más. Estos robots al igual que muchos tienen cierta libertad de movimiento a distintas velocidades dependiendo del tipo de servos que posean. En este caso el robot tiene 6 servos los cuales le permiten seguir trayectorias en 3 dimensiones, 3 de ellos están destinados al movimiento del brazo y los otros 3 para el manejo de la herramienta la cual va colocada en el extremo del brazo. Las herramientas que se pueden agregar al robot son diversas y pueden ser activadas mediante válvulas eléctricas, neumáticas, mecánicas y la combinación de estas dependiendo de las necesidades del usuario. Las herramientas más utilizadas son de soldadura y de colocación de piezas. En el caso particular del robot que se encuentra en las instalaciones del Instituto Tecnológico de Chihuahua se tiene asignada la salida OUT5 del controlador para activar la válvula electroneumática la cual se encarga de abrir o cerrar una pinza de sujeción de piezas, además cuenta con sensores de presencia que indican cuando se abre o cierra la herramienta, estos sensores envían información sobre el estado de la pinza. El sensor de la pinza del lado izquierdo está conectado a la entrada IN04 del controlador mientras que el del lado derecho está conectado a la entrada IN05. El robot responderá a los programas contenidos en la memoria del controlador, de esta manera seguirá una trayectoria definida ya sea en una rutina simple o cíclica dependiendo de lo programado. El robot puede seguir trayectorias lineales, circulares y elípticas según sea necesario,

las trayectorias circulares son las más utilizadas debido a la maniobrabilidad que se presenta al utilizarlas. Las colisiones están previstas, por lo que se cuenta con un sistema de paro de emergencia en caso de que ocurra alguna. Los servos se desactivarán una vez que los sensores de choque se activen y no podrán activarse de nuevo hasta que el usuario corrija el problema manualmente y proceda a energizar de nuevo los servos una vez que el robot se encuentre fuera de cualquier situación de daño.

Interface de comunicación

Hasta el momento se ha visto la manera de operar al robot a través del controlador porporcionado por el fabricante. Controlar al robot de esta manera es válida y efectiva pero si se piensa llevar un registro más dinámico de las actividades que realiza el robot se debe pensar en incluir una herramienta que permita recibir datos por parte del robot e interpretarlos a conveniencia. Una computadora personal puede servir para este fin, pero se necesita de un canal de comunicación entre PC y robot. Existen varias formas de poder lograr tal comunicación, pueden utilizarse protocolos o estándares ya definidos como RS-232, Ethernet, Wi-Fi, IEEE 1284 entre otros.

Puerto paralelo Dentro del área de automatización se utiliza frecuentemente el puerto paralelo para poder comunicar las computadoras con robots y otros dispositivos. La preferencia por este puerto se debe a la gran cantidad de posibles instrucciones que pueden ser enviadas a través del mismo. A diferencia del puerto serie que solo puede enviar un carácter sencillo a la vez, por el puerto paralelo se pueden enviar palabras completas de n bits de longitud así como utilizar pines destinados al control de los datos que se envían. La configuración más común de este puerto se da al utilizar conectores de 25 pines. 8 de esos pines están destinados para el envío de datos, los cuales corresponden a los pines del 2 al 9 y se identifican con una letra D, desde el menos significativo que sería el pin 2 (D0) hasta el más significativo que sería el pin 9 (D7). Estos pines solo sirven como pines de salida por lo que existen 5 pines asignados para la lectura de datos, estos pines van del 10 al 15 excepto por el pin 14. Estos pines de entrada se representan por una letra E donde uno de ellos (pin 11) se encuentra en estado negado al momento de ser activado. Además de los pines de entrada y salida el puerto paralelo cuenta con otros 4 pines destinados al control de los datos, estos pines sirven tanto de

salida como de entrada y son los pines: 1, 12, 16 y 17, los cuales se encuentran en estado negado al momento de su activación exceptuando el pin 16. La letra que los representa es la C. Quedan libres los pines del 18 al 25 por lo que estos van conectados directamente a tierra.

al 25 por lo que estos van conectados directamente a tierra. Figura 4. Configuración del puerto

Figura 4. Configuración del puerto paralelo de 25 pines

Puerto paralelo-Controlador XRC Para lograr la interacción entre la computadora y el robot será necesario hacer las conexiones debidas desde el puerto paralelo de la computadora hacia el controlador del robot. Cada pin del puerto será conectado a los respectivos conectores del controlador. El conector CN12 contiene pines de entrada y salida correspondientes a las funciones que se pueden encontrar en el panel frontal del controlador. Estas funciones pueden ser activadas con una señal de voltaje de 24V por lo que es necesario un circuito de amplificación de voltaje ya que el voltaje que emite y admite puerto paralelo es de 5V.

Figura 5. Circuito que convierte una señal de 5V a 24V Figura 6. Configuración del

Figura 5. Circuito que convierte una señal de 5V a 24V

Figura 5. Circuito que convierte una señal de 5V a 24V Figura 6. Configuración del conector

Figura 6. Configuración del conector CN12 del Controlador XRC

La siguiente tabla muestra a que pin de los conectores del controlador corresponden los pines del puerto paralelo en el caso del robot que se encuentra en el Instituto Tecnológico de Chihuahua:

Pin

Función

1 (-C0)

Sin uso

2 (D0)

Alarm Reset - A2 (CN12)

3 (D1)

Select Remote Mode - B3 (CN12)

4 (D2)

Select Teach Mode B4 (CN12)

5 (D3)

Select Play Mode A3 (CN12)

6 (D4)

Servo ON(CN5) - EXSVON1+,EXSON1-, EXSVON2+,EXSVON2- (CN05)

7 (D5)

Call Master Job B2 (CN12)

8 (D6)

Start B1 (CN12)

9 (D7)

Sin uso

10 (S6)

Teach Mode Selected A11 (CN12)

11 (-S7)

Play Mode Selected B11 (CN12)

12 (S5)

Servo is ON A8(CN12)

13 (S4)

Remote Mode Selected A10 (CN12)

14 (-C1)

Sin uso

15 (S3)

Running B8(CN12)

16 (C2)

Sin uso

17 (-C3)

Muestra indicadores de operación o programación según su estado

18-25

Tierra

Figura 7. Tabla de relación entre pines del puerto paralelo y pines del conector CN12

Interface de usuario Una vez que se tienen las conexiones debidas entre puerto paralelo y controlador será necesario un software de aplicación para poder manipular los datos que se envían y se reciben a través del puerto. Para este fin se desarrollará una aplicación en Visual Basic 6.0 y se agregará una librería al proyecto la cual permitirá la comunicación entre la aplicación

de Visual Basic y el puerto paralelo sin tener que adentrarse de manera exhaustiva en el código de conversión de datos entre compilador y componentes de hardware. La librería utilizada lleva por nombre Inpout32.dllla cual es compatible con sistemas operativos de Microsoft anteriores a Windows XP. Para hacer uso de esta librería se debe crear un nuevo proyecto de Visual Basic 6.0, agregar un módulo y colocar las siguientes líneas de código en él:

Public Declare Function Inp Lib "C:\Paralelo\inpout32.dll" _ Alias "Inp32" (ByVal PortAddress As Integer) As Integer Public Declare Sub Out Lib "inpout32.dll" _ Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

Se puede observar en la primera línea una ruta de directorio. Esta ruta indicará la dirección en donde se encuentra alojada la librería en el disco de almacenamiento de preferencia, en este caso se colocó en una carpeta cuyo nombre es Paraleloen la unidad C: del sistema. Teniendo agregado dicho módulo se procede al desarrollo de la interfaz con la cual interactuará el usuario. Para enviar datos por el puerto se utiliza la instrucción OUT seguida de la dirección de salida del puerto y después separado por una coma se coloca el dato a ser enviado en formato decimal. Por ejemplo en la siguiente línea se enviará un 1 lo que corresponde a enviar ceros en todos los pines a excepción del pin 2 (D0).

Private Sub Button_Click() Out &H378, 1 End Sub

Los pines del puerto se activan en cantidades de potencias de 2, por ejemplo si se quiere activar el pin 5 habría que enviar un 8 por el puerto. Al querer enviar un 9 se activarían el pin 5 y el pin 2 ya que sería la sumatoria de 8+1. Para el caso de lectura de datos se utiliza la instrucción INP, la cual leerá los datos contenidos en la dirección del puerto que se le determine. Por ejemplo las siguientes líneas de código harán posible

leer los datos que haya en las direcciónes 379 y 37A que son las direcciones asignadas al registro de control y estado del puerto paralelo.

Dim dato As Byte Private Sub Button_Click() Dato = Inp(&H379) Dato = Inp(&H37A) End Sub

Una vez identificado cada pin del puerto paralelo se podrá diseñar una interfaz gráfica la cual active las salidas y entradas del puerto dependiendo de las opciones que el usuario elija. Una posible interfaz podría ser la que se muestra en la imagen:

posible interfaz podría ser la que se muestra en la imagen: Figura 8. Interfaz de usuario

Figura 8. Interfaz de usuario para el control del robot desde la computadora

Para utilizar el software de aplicación personalizado en vez del controlador, se debe de seleccionar la opción de Modo Remoto, así de esa manera el control del robot pasa al dispositivo remoto que esté conectado al controlador. Antes de comenzar a utilizar esta aplicación se debe de dejar programado en la memoria del controlador un programa conocido como Master Job, el cual será llamado desde la interfaz gráfica

y es el que se ejecutará una vez que se ponga al robot en modo de operación y que se elija la opción de Iniciar. Con una interfaz gráfica ejecutándose en la PC crecen las posibilidades de integrar aplicaciones para expandir las funciones de interacción con el robot. Por ejemplo se puede tener otra aplicación destinada al control de una banda transportadora de piezas, la cual posea un sensor que de aviso a la interface de que la pieza se encuentra lista para ser tomada, así de esa manera se podría enviar una señal a través de sockets entre la aplicación de la banda transportadora y la aplicación del robot para comenzar a sujetar piezas al tiempo que la banda se detiene. Posiblemente se podría integrar una aplicación que maneje bases de datos para llevar un control de las piezas que han sido transportadas, entre otras tareas, ya quedaría a las necesidades y a criterios del usuario final.

Resultados y trabajo a futuro

Se logró el objetivo principal el cual era controlar al robot desde una computadora personal, aunque se vio limitada la forma de enviar instrucciones al robot debido a los pocos pines de salida que posee el puerto paralelo. Sería buen ejercicio el conectar alguno de los pines de salida del puerto a salidas directas del robot para poder controlar el comportamiento de las herramientas del mismo sin tener que depender por completo de lo contenido en el Programa Maestro definido en el Teach Pendant. Ya que se ha podido controlar al robot a través de la computadora haciendo uso de conexiones y aplicaciones personalizadas sería interesante buscar que aplicaciones comerciales pueden ser útiles para lograr la interacción con el robot. Uno de los paquetes orientados al desarrollo de aplicaciones para robots es Microsoft Robotics Studio. Esta suite permite crear programas en un lenguaje visual en el cual se pueden utilizar servicios para controlar el flujo del programa. Como función adicional se pueden realizar simulaciones de entornos reales para probar como se comportaría el robot ante diversas situaciones. Lo interesante de este entorno de desarrollo es que es compatible con otras plataformas de Windows tales como Visual Studio.NET, SQL Server, Microsoft Windows Foundation, etc. Ya se ha comenzado el desarrollo de aplicaciones orientadas a la automatización y a la manufactura haciendo uso de esta suite por lo que Microsoft Robotics Studio parece prometedor

y lo mejor de todo es que es un software de libre distribución por lo que no hay que pagar grandes cantidades de dinero para poder tener un buen entorno de desarrollo al alcance.

Sitios de interés

Microsoft Robotics Studio: http://www.microsoft.com/robotics/ Yaskawa Motoman Robotics: http://www.motoman.com/