la computación en la robótica

15
Instituto Tecnológico de Chihuahua División de Estudios de Posgrado e Investigación La computación en la robótica Nombre: Marcos Samuel Gómez García No. de control: G10061257 Chihuahua, Chihuahua Junio de 2011

Upload: samuel-gomez

Post on 05-Jul-2015

2.187 views

Category:

Documents


0 download

DESCRIPTION

Control de un robot motoman a través de una computadora haciendo uso del puerto paralelo.

TRANSCRIPT

Page 1: La computación en la robótica

Instituto Tecnológico de Chihuahua

División de Estudios de Posgrado e Investigación

La computación en la robótica

Nombre: Marcos Samuel Gómez García

No. de control: G10061257

Chihuahua, Chihuahua Junio de 2011

Page 2: La computación en la robótica

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.

Page 3: La computación en la robótica

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.

Page 4: La computación en la robótica

Controlador XRC

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

Page 5: La computación en la robótica

Teach Pendant

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

Page 6: La computación en la robótica

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.

Page 7: La computación en la robótica

Robot Motoman

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,

Page 8: La computación en la robótica

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

Page 9: La computación en la robótica

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.

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.

Page 10: La computación en la robótica

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

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

Page 11: La computación en la robótica

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

Page 12: La computación en la robótica

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.dll” la 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 “Paralelo” en 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

Page 13: La computación en la robótica

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:

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

Page 14: La computación en la robótica

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

Page 15: La computación en la robótica

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/