Go to the complete documentation: Simulator Automatic Warehouse doc.
The Simulator Automatic Warehouse is a Python library that provides two main functions: a digital twin of an automatic warehouse and a simulator of an automatic warehouse.
An Automatic Warehouse, or rather an Automatic Vertical Storage System, is a storage system designed to simplify the storage of materials. It is generally used in industrial environments and is designed according to the goods-to-man principle: the products are brought directly to the picking area (called bay).
This repository was created in 2022 for a bachelor thesis project at the University of Verona, Italy (Università di Verona). After the creator graduated, he continued to improve the project in order to publish it.
The inspiration came from the Vertimag by Ferretto, an Italian company based in Vicenza. The logic of the digitalized warehouse is therefore the same as that of the real Vertimag.
The digitisation of the warehouse was made possible thanks to the ICE Laboratory of Verona, as part of a thesis project at the University of Verona. In addition, Sebastiano Gaiardelli (mainly) and Marco Panato helped the creator at the beginning of the project.
Dependency | Version |
---|---|
pandas | 2.2.3 |
simpy | 4.1.1 |
PyYAML | 6.0.2 |
jsonschema | 4.23.0 |
The Simulator Automatic Warehouse requires Python >= 3.9
.
Python 3.8 is no longer supported, as Python will end support on 2024-10.
It's possible to install the package using pip:
pip install simulator-automatic-warehouse
Otherwise, you can clone the whole project and install the requirements:
git clone https://github.com/AndreVale69/simulator-automatic-warehouse
pip install -r requirements.txt
The following code generate a warehouse, create a simulation environment and run a simulation.
from automatic_warehouse.warehouse import Warehouse
from automatic_warehouse.simulation.simulation_type.warehouse_simulation import WarehouseSimulation
# generate a Warehouse
warehouse = Warehouse()
# generate a simulation environment
simulation = WarehouseSimulation(warehouse)
# run the simulation
simulation.run_simulation()
# print the results
print(simulation.get_store_history_dataframe())
Note: if a configuration is not specified as an environment variable or is not updated at runtime, the default configuration is used.
Everything is easier with Docker. In the GitHub project, there are a docker folder and use docker compose to build:
cd docker
docker compose up alpine-simulator_automatic_warehouse
The available docker images are:
alpine-simulator_automatic_warehouse
debian-simulator_automatic_warehouse
To change or add some environment variables, edit docker-compose.yaml.
Here are some benchmarks run with a private Python library and the following computer specifications:
- Intel i7-8750H
- SDRAM DDR4-2666 16GB
- MZ-76Q2T0 860 QVO SSD 2TB 2.5"
- SSD NVMe M.2 128 GB
- NVIDIA GeForce GTX 1050
Actions | Time to process | Real-time simulation |
---|---|---|
10'000 | 570 milliseconds | 1d. 2h. 48m. |
63'000 | 3,5 seconds | 1 week |
267'900 | 15,3 seconds | 1 month |
3'250'120 | 3,1 minutes | 1 year |
Use the following links if the images are not displayed: