Hace unas semanas bq ha vuelto a ventilarse a gran parte de sus trabajadores, tal y como ya ha hecho en anteriores ocasiones. Dado que ya no queda dentro nadie que me importe un carajo, creo que toca dedicar unas líneas a mis fanuquitos, para recordarlos de vez en cuando 😛
Durante mis dos años en bq estuve siempre vinculado a éste proyecto y le tengo especial cariño, al igual que a los compañeros de grupo y amigos Jose Emilio, Santi -Darkomen- y Chema, con quienes tuve el gustazo de compartir muchas etapas del proyecto.
A explicar de qué iba ésto 🙂
Célula de emsamblaje de memorias USB
Dos brazos robots Fanuc de 6 grados de libertad modelo LRmate 2000iD. Estos robots comparten el alimentador y el sistema de visión. Se usaban como herramientas principales una pinza neumática de Schunk y un generador de vacío con ventosa de Festo. Para la mayoría de memorias se usaba Loctite tenaz para pegar los chips, dosificado con una bomba peristáltica para cada robot a través de una manguera de teflón.
Útiles impresos
¿Algo interesante? Las piezas porta-herramientas, los dedos de las pinzas y los bancos de trabajo sobre los que los robots ensamblan las memorias eran diseñados e impresos en 3D. Cada modelo de memoria tiene su propio banco y juego de dedos. Las impresoras 3D dieron mucho juego en todo el proyecto.
Alimentador
Un alimentador compuesto por una tolva donde se vierten las piezas de las memorias a ensamblar. Una cinta con un motor trifásico que eleva las piezas hasta una primera bandeja. 3 motores de vibración con sus variadores, que se encargan de hacer vibrar las bandejas para esparcir las piezas y separarlas en cada salto -de una bandeja a la siguiente-, acabando la última bandeja sobre una rampa que devuelve las piezas a la tolva inicial.
Visión
El sistema de visión era iRVision, corriendo en el controlador del robot principal (Sí, tenemos uno al que llamamos Maestro y el otro… adivina). Se logró implementar una lógica para superar las limitaciones del software comercial, que impedía la localización de piezas distintas al mismo tiempo. La lógica actuaba sobre el alimentador tratando de encontrar piezas útiles para los siguientes pasos de montaje de ambos robots, que podían tener múltiples caminos y opciones en la decisión de qué pieza les vendría bien. Un robot podría ir montando varias memorias “en paralelo”, o incluso ensamblar las piezas de un mismo modelo de memoria en diferente orden.
Arquitectura y lógica
La arquitectura del sistema y las comunicaciones son un poco particulares. Desde el inicio -con solamente 1 robot- hasta el resultado final, los sistemas se fueron incorporando poco a poco sobre lo ya existente. Se creó entonces un sistema tan caótico como divertido 😛
La lógica de peso está en el robot Maestro, que controla la visión para ambos robots. Además, cada robot tiene su lógica y decisión de movimientos de montaje, una especie de máquina de estados. Estos hablan entre ellos por ethernet para las posiciones localizadas por visión y… por lógica cableada -entradas y salidas digitales a 24V- para comunicar el estado en que se encuentra cada uno y controlar así la visión y los espacios compartidos sin colisionar. Del mismo modo, cada uno actúa sobre su bomba peristáltica, herramientas, etc. El robot Maestro, además, tiene salidas analógicas para actuar sobre los variadores de las bandejas de vibración, y más salidas digitales para la iluminación o la cinta transportadora.
HMI y PLC
Aunque la lógica gorda se encuentra en el Maestro, el sistema tiene una pantalla HMI Weintek, donde el operador puede seleccionar el programa de los robots, la cantidad de memorias a ensamblar, dar la órden de inicio o paro, consultar incidencias, entre otras cosas. Esta pantalla china de apenas 80 pavos se encarga de comunicar prácticamente todos los elementos de la celda entre ellos. Puede hablar con el protocolo GE9030 de los robots por ethernet, haciendo de puente entre los dos robots. La pantalla es esclavo modbus de un PLC AC500 de ABB que se encarga de arrancar/parar/setear el programa por las señales digitales cableadas de control, directas a los controladores de los robots. Éste PLC es el encargado tambien de actuar sobre las balizas luminosas y acústicas, y controlar el vallado.
Checkers
Nuestra querida pantalla, además de ser esclava modbus del PLC, es a su vez maestra modbus de 2 raspberrys, una por robot. Las raspberrys portan una cámara y supervisan el banco de trabajo, son utilizadas para tareas de corrección y rearme. Su programa es desarrollado en python y openCv, y comunica únicamente con la pantalla HMI por modbus, es la pantalla la encargada de hacer llegar esta información a los robots por GE9030.
Ñapas
Si no parece lo suficiente enmarañado y DIY, espera, también se metió una arduino mega para cada robot, con una shield custom para hacer la interfaz de 24V del robot a los 5V de arduino, cada arduino está instalada en el área de trabajo del robot y permite sensar/actuar sobre los bancos de trabajo ya que algunos necesitan la ayuda de un servo, otros tienen un sensor óptico…
Pero sin duda alguna, lo más divertido -y cutre- que incorporan los robots, es un juego de pesitas que se construyeron expresamente para solucionar los problemas de planitud que presentaban las piezas de nuestro proveedor de inyección de plásticos… Se diseñaron e imprimieron bancos y pesas para alojar imanes, y se utilizaban para presionar las piezas tras ser ensambladas mientras el pegamento curaba.
Hasta siempre fanuquitos 🙂