Proyecto de automatización
Habilidades aprendidas
Conclusiones y trabajo a futuro
Preparación de pedidos en un almacén
Contexto del proyecto
Segundo año de carrera y se nos plantea un nuevo reto en la asignatura de Proyecto RII 2: Desarrollo y Programación. El reto consiste, al igual que el curso pasado, en realizar una propuesta realista de automatización.
El proyecto planteado se sitúa en un almacén de dispositivos tecnológicos el cual quiere automatizar el proceso de realización de los pedidos de una determinada sección del almacén.
La propuesta
La automatización optimiza el montaje y transporte de cajas, mejorando la eficiencia y reduciendo el esfuerzo físico de los trabajadores.
- Selección y apertura de cajas: Un robot colaborativo monta y encinta las cajas.
- Colocación de dispositivos: Un robot industrial coloca los dispositivos en las cajas.
- Transporte de cajas: Las cajas llenas se transportan a la siguiente fase de la línea de envío.
Fase 1. Análisis y definición
📝 Descripción del proceso automatizado
La estación interactúa con el entorno mediante conexiones indirectas (MQTT). Además, todos los datos necesarios se encuentran almacenados en una Base de Datos SQL.
Los pedidos que se realizan se gestionan optimizando el llenado de las cajas mediante Algoritmos de Programación Avanzada.
Hay un robot colaborativo que se encarga del montaje y encintado inferior de las cajas con la ayuda de una Box Erector Station.
La caja montada se coloca en la primera cinta y es transportada a la zona de llenado, donde un robot industrial va colocando en su interior los dispositivos deseados de las estanterías.
Una vez llena la caja, esta está lista para ser transportada a la siguiente fase del almacén.
Las cintas transportadoras son controladas por medio del uso de dispositivos empotrados (ESP32-S3). Estos dispositivos se encargan de sensorizar la estación, gestionar los actuadores y establecer flujos de control del proceso.
Elementos principales del proceso
- Robot colaborativo: Se encarga de montar las cajas de pedidos y colocarlas en la cinta transportadora. Utiliza sensores para detectar la presencia de cajas y se activa mediante MQTT.
- Robot industrial: Realiza la tarea de pick & place de los dispositivos en las cajas. Está montado sobre un eje lineal y opera en una zona de trabajo segura.
- Sensorización y actuadores: Incluye sensores de presencia de cajas, sensores al inicio y final de la cinta, un retenedor al final de la cinta y una cámara para la lectura de códigos QR. Estos dispositivos son gestionados por dos ESP32 mediante comunicaciones MQTT.
🗣️ Relaciones entre los dispositivos, robots y el personal
🖇 Modelo de datos relacional para la Base de Datos
Fase 2. Equipamiento y Layout
Estación robotizada
Para la automatización son necesarios varios robots: un robot industrial y un robot colaborativo, además de varios sensores de presencia, una cámara de lectura QR, una etiquetadora, dos cintas transportadoras y elementos de seguridad como vallas, mamparas y botones de emergencia. Estos dispositivos se integran para optimizar el montaje y transporte de cajas, mejorando la eficiencia y reduciendo el esfuerzo físico de los trabajadores.
💭 Personalización de herramientas
La herramienta utilizada para el llenado de las cajas se basa en un modelo ya existente en la Librería de RoboDK.
Hemos modificado la herramienta para que se adapte a las necesidades del proyecto. Ahora cuenta con tres ventosas independientes entre sí que permiten realizar un ‘pick’ personalizado para los diferentes dispositivos de las estanterías.
📏 Normativa y regulación
- Impacto en los puestos de trabajo: La automatización cambiará las funciones de los empleados, estos serán reubicados y recibirán nuevas tareas para trabajar en colaboración con la estación automatizada, es por ello que deberán tomarse las medidas de seguridad pertinentes.
- Regulaciones y estándares: Son varias las normativas aplicables, como la Directiva Europea de Máquinas 2006/42/CE y la ISO 12100, que aseguran la seguridad de los robots industriales y colaborativos.
🚷 Elementos de seguridad
Se identifican y previenen riesgos ergonómicos, mecánicos y eléctricos. Se implementan medidas de seguridad como botones de emergencia para detener el proceso.
El área de trabajo del robot industrial está acotada por las estanterías, una puerta vallada y mamparas de seguridad.
Para asegurar un correcto llenado y transporte de las cajas, se implementan ciertas medidas para asegurar un correcto funcionamiento del proceso.
Fase 3. Programación
📢 Comunicación entre los elementos
La estación interactúa con el entorno mediante conexiones indirectas (MQTT). Los robots y los microcontroladores envían información de interés a través topics concretos. Asimismo, se suscriben a los topics donde puedan encontrar información relevante para llevar a cabo sus tareas.
Los robots realizan la conexión a través de scripts de Python que usan la API de RoboDK.
Los microcontroladores se han programado en el entorno de Arduino IDE (C/C++), y la conexión vía MQTT ha sido sencilla de implementar gracias al gestor de librerías que proporciona la aplicación.
🗄️ Base de datos
Por falta de tiempo no se pudo desarrollar de una Base de Datos capaz de ser integrada con los demás elementos de la estación.
En su lugar, todo aquel proceso que requería cierta información de la Base de Datos se le proporcionaba de forma manual. De esta manera se constataba el correcto funcionamiento del resto de elementos del proyecto.
💻 Programación de las ESP32
Los microcontroladores se han programado en el entorno de Arduino IDE (C/C++). Gracias al gestor de librerías que proporciona la aplicación, se ha podido lograr la concurrencia de tareas, la gestión de la cámara para la lectura de QR y la comunicación vía MQTT entre otras cosas.
🎯 Programa que calcule las posiciones de place con PRA
Se trata de un algoritmo simplificado al que se aporta una lista de dispositivos que se desean introducir en una caja, la lista se procesa para conseguir una secuencia de llenado que sería almacenada en la Base de Datos hasta que el proceso requiera de esa información.
El lenguaje de programación utilizado para el desarrollo de esta solución es C++, a través del entorno MVSC. El software calcula una solución rápida mediante programación voraz, pero de cara al futuro sería interesante implementar otros algoritmos de programación avanzada (PRA), en concreto de programación dinámica, para calcular una distribución óptima de los dispositivos.
Algoritmo de Colocación de Dispositivos (GitHub).
🦾 Simulación en RoboDK
Gracias a RoboDK se ha podido realizar una simulación realista del entorno, conectando los sensores del mundo real con ella a través de mensajes vía MQTT.
Con esta simulación sirve para obtener tiempos de ciclo y el espacio requerido entre otras cosas.
Fase 4. Documentación y Feria de Proyectos
🗒 Presupuesto
A la hora de realizar el presupuesto, se incluyeron los costes asociados tanto al hardware como al software, asimismo se detallan los costes de instalación, formación, y mantenimiento de la estación.
El coste inicial es de aproximadamente 112.000 €, con un gasto anual de 45.000 € los primeros años.
El jueves 30 de mayo de 2024 tuvo lugar la Feria de Proyectos de Robótica y Ciencia de Datos.
Ese día tuvimos la oportunidad de exponer nuestros proyectos tanto a la comunidad universitaria y representantes de las empresas colaboradoras.
Esta feria supuso una experiencia enriquecedora y sirvió como fuente de motivación a más de un grupo durante la realización de los proyectos.
Habilidades aprendidas
Conclusiones y trabajo a futuro
Este proyecto ha supuesto un desafío muy grande ya que, se debían aplicar los conocimientos adquiridos en múltiples asignaturas y relacionarlos de forma tal que se lograse una propuesta coherente, funcional y rentable. La parte más desafiante del proyecto, aun así, ha sido un factor externo, el tiempo. Esto se debe a que, por mucho que el proyecto tuvo sus complicaciones, lo más difícil del mismo era lograr sacar suficiente tiempo para compaginar la realización de este trabajo con otros entregables de otras asignaturas.
Por tanto, a lo largo del desarrollo de este proyecto, además de poner en uso y mejorar nuestros conocimientos adquiridos en asignaturas como programación avanzada y sistemas empotrados, también ha sido posible mejorar aspectos como la gestión del tiempo y la organización.
Agradecimientos
Este proyecto no hubiese sido posible sin la ayuda de Marina Vallés (Programación de Robots), Juan Francisco Blanes, Joan Josep Fons y Eduardo Vendrell (Proyecto Proyecto RII 2: Desarrollo y Programación). También cabe mencionar la labor de las compañeras de trabajo Ángela Espert, Carla Hidalgo y Lourdes Francés.
Conclusiones principales del proyecto
- Reducción del espacio físico empleado: Reducir el espacio empleado para la preparación de los pedidos para así poder aumentar el stock de productos disponible al máximo.
- Proceso mejorado: La automatización ha reducido los tiempos de producción, se ha optimizado el llenado de las cajas y se han reducido la cantidad de errores en los pedidos a cero.
- Mejorando la calidad de trabajo: Evitar que los trabajadores padezcan de TME al reducir la cantidad de movimientos repetitivos y el transporte de las cajas llenas de una sección del almacén a otra.
Trabajo a futuro
- Formación del personal: Continuar con la capacitación de los empleados para asegurar una integración fluida y eficiente con el robot colaborativo. Establecer mecanismos de comunicación adecuados para realizar un correcto reabastecimiento de cajas sin montar y bandejas vacías.
- Expansión del proyecto: Considerar la ampliación de estanterías con dispositivos o aplicar la automatización a otras áreas de la fábrica para aumentar la variedad o cantidad de pedidos respectivamente.
- Mejora continua: Evaluar y actualizar continuamente los sistemas y procesos para adaptarse a nuevas tecnologías y necesidades.