Uso de la Plataforma LabVIEW en Robot Paralelo para el Proceso

Anuncio
Uso de la Plataforma LabVIEW en Robot Paralelo para el Proceso de Colocación de Liner en
Tapas
""La lógica del programa es bastante transportable
a otras aplicaciones similares""
- Erick Cruz Hernández, ITESM CEM-Instituto Tecnológico y de Estudios Superiores de
Monterrey, Campus Estado de México (http://www.youtube.com/watch?v=i-_MFVowuAs)
El Reto:
Diseñar y desarrollar un sistema que coloque liners en tapas. Los liners están distribuidos de manera aleatoria sobre una banda al igual que las
tapas. Se pretende construir un sistema capaz de identificar cada liner y ensamblarlo en las tapas disponibles. Se requiere efectuar al menos 25
ensambles por minuto.
Lea el Caso
de Estudio
Completo
La Solución:
Se diseñó y construyó un sistema formado por un robot de configuración paralela y una cámara para la identificación de liners. Su posición se
conoce gracias a un encoder. El robot toma los liners por succión y los coloca en las tapas, las cuales son identificadas mediante sensores ópticos.
Autor(es):
Erick Cruz Hernández - ITESM CEM-Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Estado de México (
http://www.youtube.com/watch?v=i-_MFVowuAs)
Guillermo Villareal Pulido - ITESM CEM-Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Estado de México (
http://www.youtube.com/watch?v=i-_MFVowuAs)
Se consideró controlar el sistema mediante una PC haciendo uso de la plataforma de LabView dividiendo al programa principal en tres grandes bloques:
el primero de ellos enfocado a controlar los aspectos de visión, el segundo dedicado a controlar los movimientos del robot y el tercero a formar el búfer de
tapas disponibles.
En la parte del sistema de visión se eligió utilizar una cámara web para la captura de las imágenes. Se escogió la cámara Microsoft Life Cinema con la
cual es posible capturar imágenes de alta definición hasta en 60 cuadros por segundo por lo cual resulta una buena elección en cuanto a su relación
calidad/precio. Para adquirir las imágenes se utilizaron las funciones de NI-IMAQ for USB Cameras disponibles en el sitio oficial de National
Instruments. Debido a que es crítica la sincronización entre encoder y visión se utilizó un “Timed Loop” para este bloque.
Los liners son delgados trozos de cartón cortados en forma circular de color blanco, por lo que se armó una banda de color azul para hacer más sencilla
la identificación de los objetos. El proceso completo de visión es el siguiente: en primer lugar se extrae sólo una parte de la imagen a fin de evitar ruido de
objetos fuera de la banda, después la imagen se convierte a escala de grises y se modifican sus valores de brillo, contraste y gamma para resaltar los
liners. Enseguida se convierte la imagen a binaria mediante la función “IMAQ Threshold”, y ya en binario se eliminan los objetos al borde se borran
pequeñas partículas y también se borran las partículas grandes ya que estas generalmente representan liners encimados. Finalmente se encuentra el
número de círculos mediante la función “IMAQ Find Circles”.
Para cada círculo hallado se obtienen sus valores XY en la imagen y se comparan con un búfer de liners encontrados anteriormente y con ayuda de la
lectura del encoder en la banda se puede saber si el liner encontrado es el mismo de un cuadro anterior de imagen ya que se sabe cuánto avanzó la
banda con respecto al cuadro de imagen anterior y la posición en Y debe ser constante. Si éste es el caso, entonces los datos de posición son sumados
a la entrada correspondiente; en caso contrario se crea una nueva entrada en el búfer con los datos del nuevo liner. El encoder utilizado es el modelo
6FX2001-4NA10 de Siemens. El cual tiene una resolución de 100 ppr.
El otro gran bloque en el programa es el dedicado a los movimientos del robot. Cabe señalar que el robot se realizó utilizando servomotores EX106 de la
marca Robotis. Estos servomotores se controlan utilizando un protocolo de comunicación RS-485 y soportan velocidades de transmisión de hasta
1Mbps. El torque de salida de estos servomotores es de 10N-m y pueden alcanzar velocidades de salida de hasta 70RPM. Una característica importante
de estos servomotores es que cuentan con retroalimentación de posición velocidad, torque y temperatura.
Al inicio del programa se presunta a los servomotores la posición en la que están y mediante métodos de cinemática directa de sistemas cerrados se
calcula la posición XYZ a la que se encuentra el efector final, y con esta información realizamos una interpolación lineal hasta llegar a la posición de
“Home”. El robot permanece ahí hasta que en el búfer de liners encuentra uno que ya ha alcanzado su espacio de trabajo, entonces tomando lecturas del
encoder realiza una trayectoria hasta llegar a la posición del liner, baja y toma el liner utilizando aire comprimido. Para transmitir esta señal se utiliza una
electroválvula.
El tercer bloque en el programa se refiere a un ciclo que toma lecturas de un sensor óptico a fin de encontrar las tapas que fueron previamente alineadas
por medio de guías. La información de posición de encoder para cada tapa encontrada se anexa al búfer de tapas y el ciclo encargado de los
movimientos del robot evalúa si alguna tapa del búfer está dentro del espacio de trabajo del robot, si es así entonces se deposita el liner en la tapa con
una trayectoria de seguimiento de banda para después realizar una trayectoria de salida y regresar finalmente a home para repetir el proceso de recogida
de liner.
El sistema cuenta con botones de pausa, paro, y paro de emergencia, cuando el botó de pausa es presionado el robot se queda en posición de home y
no recoge liners aunque estos lleguen a la región de trabajo. Durante el paro de emergencia el robot se detiene en donde esté y se levanta una luz
indicadora, cuando termina el paro de emergencia el robot verifica su posición actual y ejecuta los movimientos correspondientes a fin de no colisionar
con algún elemento. Existe también un display que despliega los mensajes de estado en el robot así como la cuenta de ensambles realizados.
Es importante señalar que las lecturas de encoder y el accionamiento de electroválvulas, los sensores ópticos y luces indicadoras se realizaron usando el
sistema de adquisición NI USB-6525 el cual tiene ocho entradas y ocho salidas tipo Relay, además una entrada tiene función de contador, y con ella se
tomaron las lecturas del encoder. Finalmente cabe resaltar que para los movimientos del robot es necesario calcular la cinemática inversa del sistema
cerrado correspondiente a fin de conocer el ángulo en cada servomotor para alcanzar la posición XYZ deseada del efector final, esto se hace al llamar un
SubVI en donde se ingresaron las ecuaciones mediante “Formula Node” debido a que ya se tenían programadas anteriormente en lenguaje C.
Conclusión:
Con el uso de una computadora con procesador de doble núcleo fue posible controlar el sistema en su totalidad, realizando las funciones de visión y
reconocimiento, el cálculo de las trayectorias y cinemática inversa del robot así como la correcta lectura del encoder en todo momento, los resultados
fueron satisfactorios consiguiendo incluso hasta 30 ensambles por minuto, un 20% más de lo esperado. La lógica del programa es bastante transportable
a otras aplicaciones similares.
Información del Autor:
Erick Cruz Hernández
ITESM CEM-Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Estado de México (http://www.youtube.com/watch?v=i-_MFVowuAs)
Miguel Bernard 550 Edif 4-501
La Escalera 07320
México
[email protected] (mailto:[email protected])
1/2
www.ni.com
Fig.1. Robot Delta
Fig.2. Proyecto Hardware
Legal
Este caso de estudio (este "caso de estudio") fue desarrollado por un cliente de National Instruments ("NI"). ESTE CASO DE ESTUDIO ES PROPORCIONADO
"COMO ES" SIN GARANTÍA DE NINGUN TIPO Y SUJETO A CIERTAS RESTRICCIONES QUE SE EXPONEN EN LOS TÉRMINOS DE USO EN NI.COM.
2/2
www.ni.com
Descargar