la computación en la robótica
Post on 05-Jul-2015
2.191 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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
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
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
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.
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 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.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
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
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/
top related