Automation project
New skills learned
Conclusions and future work
Order preparation in a warehouse
Project context
Second year of college and we are faced with a new challenge in the subject of RII Project 2: Development and Programming. The challenge consists, as in the previous year, in making a realistic automation proposal.
The proposed project is located in a warehouse of technological devices which aims to automate the process of order preparation for a certain section of the warehouse.
The proposal
Automation optimizes the assembly and transport of boxes, improving efficiency and reducing the physical effort of workers.
- Selecting and opening boxes: A collaborative robot assembles and tapes the boxes.
- Device placement: An industrial robot places the devices into the boxes.
- Transport of boxes: The filled boxes are transported to the next stage of the shipping line.
Phase 1. Analysis and definition
📝 Description of the automated process
The station interacts with the environment via indirect connections (MQTT). In addition, all necessary data is stored in a SQL database.
The orders placed are managed by optimizing the filling of the boxes using Advanced Programming Algorithms.
There is a collaborative robot that is responsible for the assembly and lower taping of the boxes with the help of a Box Erector Station.
The assembled box is placed on the first conveyor belt and transported to the filling area, where an industrial robot places the desired devices on the shelves inside it.
Once the box is filled, it is ready to be transported to the next phase of the warehouse.
The conveyor belts are controlled by using embedded devices (ESP32-S3). These devices are responsible for sensing the station, managing the actuators and establishing process control flows.
Main elements of the process
- Collaborative robot: It is responsible for assembling the order boxes and placing them on the conveyor belt. It uses sensors to detect the presence of boxes and is activated via MQTT.
- Industrial robot: It performs the task of pick & place of the devices in the boxes. It is mounted on a linear axis and operates in a safe work area.
- Sensorization and actuators: It includes box presence sensors, sensors at the beginning and end of the belt, a retainer at the end of the belt and a camera for reading QR codes. These devices are managed by two ESP32s using MQTT communications.
🗣️ Relations between devices, robots and personnel
🖇 Relational Data Model for the Database
Phase 2. Equipment and Layout
Robotic station
For automation, two robots are needed: an industrial robot and a collaborative robot, as well as several presence sensors, a QR reading camera, a labeller, two conveyor belts and safety elements such as fences, screens and emergency buttons. These devices are integrated to optimise the assembly and transport of boxes, improving efficiency and reducing the physical effort of workers.
💭 Customizing tools
The tool used to fill the boxes is based on an existing model in the RoboDK Library.
We have modified the tool to adapt it to the needs of the project. It now has three independent suction cups that allow for customised picking for the different devices on the shelves.
📏 Rules and regulations
- Impact on jobs: Automation will change the functions of employees, they will be relocated and given new tasks to work in collaboration with the automated station, which is why appropriate safety measures must be taken.
- Regulations and standards: There are several applicable regulations, such as the European Machinery Directive 2006/42/EC and ISO 12100, which ensure the safety of industrial and collaborative robots.
🚷 Safety elements
Ergonomic, mechanical and electrical risks are identified and prevented. Safety measures such as emergency buttons to stop the process are implemented.
The industrial robot's work area is delimited by shelves, a fenced door and safety screens.
To ensure proper filling and transport of the boxes, certain measures are implemented to ensure the correct functioning of the process.
Phase 3. Programming
📢 Communication between elements
The station interacts with the environment through indirect connections (MQTT). Robots and microcontrollers send information of interest through specific topics. They also subscribe to topics where they can find relevant information to carry out their tasks.
The robots make the connection through Python scripts that use the RoboDK API.
The microcontrollers have been programmed in the Arduino IDE environment (C/C++), and the connection via MQTT has been easy to implement thanks to the library manager provided by the application.
🗄️ Database
Due to lack of time, it was not possible to develop a database capable of being integrated with the other elements of the station.
Instead, any process that required certain information from the Database was provided manually. In this way, the correct functioning of the rest of the project elements was verified.
💻 ESP32 programming
The microcontrollers have been programmed in the Arduino IDE environment (C/C++). Thanks to the library manager provided by the application, it has been possible to achieve task concurrency, camera management for QR reading and communication via MQTT, among other things.
🎯 Program that calculates place positions with APR
It is a simplified algorithm that is supplied with a list of devices to be introduced into a box, the list is processed to obtain a filling sequence that would be stored in the Database until the process requires that information.
The programming language used for the development of this solution is C++, through the MVSC environment. The software calculates a fast solution using greedy programming, but in the future it would be interesting to implement other advanced programming algorithms (APR), specifically dynamic programming, to calculate an optimal distribution of the devices.
Device Placement Algorithm (GitHub).
🦾 Simulation in RoboDK
Thanks to RoboDK, it has been possible to create a realistic simulation of the environment, connecting real-world sensors with it through MQTT messages.
This simulation is used to obtain duty cycle and the required space, among other things.
Phase 4. Documentation and Project Fair
🗒 Technical budget
When preparing the budget, the costs associated with both hardware and software were included, and the costs of installation, training, and maintenance of the station were also detailed.
The initial cost is approximately €112,000, with an annual expenditure of €45,000 in the first few years.
The Robotics and Data Science Project Fair took place on Thursday, May 30, 2024.
That day we had the opportunity to present our projects to both the university community and representatives of the collaborating companies.
This fair was an enriching experience and served as a source of motivation for more than one group during the implementation of the projects.
New skills learned
Conclusions and future work
This project has been a very big challenge, since the knowledge acquired in multiple subjects had to be applied and related in such a way as to achieve a coherent, functional and profitable proposal. The most challenging part of the project, however, has been an external factor: time. This is because, as much as the project had its complications, the most difficult part of it was finding enough time to combine the completion of this work with other deliverables from other subjects.
Therefore, throughout the development of this project, in addition to putting into use and improving our knowledge acquired in subjects such as advanced programming and embedded systems, it has also been possible to improve aspects such as time management and organization.
Special thanks
This project would not have been possible without the help of Marina Vallés (Robot Programming), Juan Francisco Blanes, Joan Josep Fons and Eduardo Vendrell (RII Project 2: Development and Programming). It is also worth mentioning the work of co-workers Ángela Espert, Carla Hidalgo and Lourdes Francés.
Main conclusions of the project
- Reduction of physical space used: Reduce the space used for order preparation in order to increase the stock of available products to the maximum.
- Improved process: Automation has reduced production times, optimized box filling, and reduced the number of order errors to zero.
- Improving the quality of work: Prevent workers from suffering from MSDs by reducing the amount of repetitive motion and transporting full boxes from one section of the warehouse to another.
Future work
- Staff training: Continue training of employees to ensure smooth and efficient integration with the collaborative robot. Establish appropriate communication mechanisms to properly replenish unassembled boxes and empty trays.
- Project expansion: Consider expanding shelving with devices or applying automation to other areas of the factory to increase variety or quantity of orders respectively.
- Continuous improvement: Continually evaluate and update systems and processes to adapt to new technologies and needs.