simulator-automatic-warehouse


Namesimulator-automatic-warehouse JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummarySimulator and Digital Twin of an Automatic Warehouse.
upload_time2024-08-04 15:02:51
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords automatic warehouse digital twin ferretto simulator simulator automatic warehouse univr vertimag warehouse
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Simulator Automatic Warehouse

![PyPI - Python Version](https://img.shields.io/pypi/pyversions/simulator-automatic-warehouse?logo=python)
![GitHub Release](https://img.shields.io/github/v/release/AndreVale69/simulator-automatic-warehouse?display_name=release&logo=github)
![PyPI - Version](https://img.shields.io/pypi/v/simulator-automatic-warehouse?logo=pypi)
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/AndreVale69/simulator-automatic-warehouse/.github%2Fworkflows%2Fci.yaml?branch=main&logo=github)
![Read the Docs](https://img.shields.io/readthedocs/simulator-automatic-warehouse?logo=readthedocs)
[![codecov](https://codecov.io/gh/AndreVale69/simulator-automatic-warehouse/branch/andre-branch/graph/badge.svg)](https://codecov.io/gh/AndreVale69/simulator-automatic-warehouse)

Go to the complete documentation: [Simulator Automatic Warehouse doc][21].

## Table of Contents

- [Description](#description)
  - [What is an Automatic Warehouse?](#what-is-an-automatic-warehouse)
  - [How it was born](#how-it-was-born)
- [How to Install and Run the Project](#how-to-install-and-run-the-project)
  - [Python Installation](#python-installation)
  - [Basic Example](#basic-example)
  - [Docker](#docker)
- [Benchmarks](#benchmarks)

------------------------------------------------------------------------------------------------------------------------

## Description

The Simulator Automatic Warehouse is a Python library that provides two main functions:
a [digital twin][5] of an automatic warehouse and a simulator of an automatic warehouse.

### What is 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).

### How it was born

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][1] by [Ferretto][2], 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][3] of Verona, 
as part of a thesis project at the University of Verona. 
In addition, [Sebastiano Gaiardelli][6] (mainly) and [Marco Panato][7] 
helped the creator at the beginning of the project.

------------------------------------------------------------------------------------------------------------------------

## How to Install and Run the Project

### Dependencies

| Dependency       | Version      |
|------------------|--------------|
| [pandas][8]      | [2.2.2][9]   |
| [simpy][10]      | [4.1.1][11]  |
| [PyYAML][12]     | [6.0.1][13]  |
| [jsonschema][14] | [4.23.0][15] |

### Python Installation

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][4]:

```bash
pip install simulator-automatic-warehouse
```

Otherwise, you can clone the whole project and install the requirements:

```bash
git clone https://github.com/AndreVale69/simulator-automatic-warehouse
pip install -r requirements.txt
```

### Basic Example

The following code generate a warehouse, create a simulation environment and run a simulation.

```python
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][16] is used.

### Docker

Everything is easier with Docker.
In the GitHub project, there are a [docker folder][17] and use docker compose to build:

```bash
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][18].

------------------------------------------------------------------------------------------------------------------------

## Benchmarks

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:
- [Relationship between simulated actions and mean][19]
- [Standard Deviation][20]


<img src="docs/_static/benchmark-results/relationship_between_simulated_actions_and_media.svg" alt="Relationship between simulated actions and media">

<img src="docs/_static/benchmark-results/standard_deviation.svg" alt="Standard deviation">

[1]: https://www.ferretto.com/en/solutions/vertical-lift-modules-vertimag/
[2]: https://www.ferretto.com/en/
[3]: https://www.icelab.di.univr.it/
[4]: https://pip.pypa.io/en/stable/getting-started/
[5]: https://en.wikipedia.org/wiki/Digital_twin
[6]: https://sbgaia.github.io/
[7]: https://www.linkedin.com/in/marco-panato-vr
[8]: https://github.com/pandas-dev/pandas
[9]: https://github.com/pandas-dev/pandas/releases/tag/v2.2.2
[10]: https://gitlab.com/team-simpy/simpy
[11]: https://gitlab.com/team-simpy/simpy/-/tree/4.1.1?ref_type=tags
[12]: https://github.com/yaml/pyyaml
[13]: https://github.com/yaml/pyyaml/releases/tag/6.0.1
[14]: https://github.com/python-jsonschema/jsonschema
[15]: https://github.com/python-jsonschema/jsonschema/releases/tag/v4.23.0
[16]: https://github.com/AndreVale69/simulator-automatic-warehouse/blob/main/configuration/sample_config.yaml
[17]: https://github.com/AndreVale69/simulator-automatic-warehouse/tree/main/docker
[18]: https://github.com/AndreVale69/simulator-automatic-warehouse/blob/main/docker/docker-compose.yaml
[19]: https://github.com/AndreVale69/simulator-automatic-warehouse/blob/main/docs/_static/benchmark-results/relationship_between_simulated_actions_and_media.svg
[20]: https://github.com/AndreVale69/simulator-automatic-warehouse/blob/main/docs/_static/benchmark-results/standard_deviation.svg
[21]: https://simulator-automatic-warehouse.readthedocs.io/en/latest/

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "simulator-automatic-warehouse",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "automatic warehouse, digital twin, ferretto, simulator, simulator automatic warehouse, univr, vertimag, warehouse",
    "author": null,
    "author_email": "Andrea Valentini <andrea.valentini.0000@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/43/3d/53c1850eba464bd3f4e59fe1e1ceaefab0df79ff365c047ad99f09d845e5/simulator_automatic_warehouse-1.0.1.tar.gz",
    "platform": null,
    "description": "# Simulator Automatic Warehouse\n\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/simulator-automatic-warehouse?logo=python)\n![GitHub Release](https://img.shields.io/github/v/release/AndreVale69/simulator-automatic-warehouse?display_name=release&logo=github)\n![PyPI - Version](https://img.shields.io/pypi/v/simulator-automatic-warehouse?logo=pypi)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/AndreVale69/simulator-automatic-warehouse/.github%2Fworkflows%2Fci.yaml?branch=main&logo=github)\n![Read the Docs](https://img.shields.io/readthedocs/simulator-automatic-warehouse?logo=readthedocs)\n[![codecov](https://codecov.io/gh/AndreVale69/simulator-automatic-warehouse/branch/andre-branch/graph/badge.svg)](https://codecov.io/gh/AndreVale69/simulator-automatic-warehouse)\n\nGo to the complete documentation: [Simulator Automatic Warehouse doc][21].\n\n## Table of Contents\n\n- [Description](#description)\n  - [What is an Automatic Warehouse?](#what-is-an-automatic-warehouse)\n  - [How it was born](#how-it-was-born)\n- [How to Install and Run the Project](#how-to-install-and-run-the-project)\n  - [Python Installation](#python-installation)\n  - [Basic Example](#basic-example)\n  - [Docker](#docker)\n- [Benchmarks](#benchmarks)\n\n------------------------------------------------------------------------------------------------------------------------\n\n## Description\n\nThe Simulator Automatic Warehouse is a Python library that provides two main functions:\na [digital twin][5] of an automatic warehouse and a simulator of an automatic warehouse.\n\n### What is an Automatic Warehouse?\n\nAn Automatic Warehouse, or rather an Automatic Vertical Storage System, \nis a storage system designed to simplify the storage of materials. \nIt is generally used in industrial environments and is designed according to the _goods-to-man_ principle: \nthe products are brought directly to the picking area (called bay).\n\n### How it was born\n\nThis repository was created in 2022 for a bachelor thesis project at the University of Verona, Italy \n(Universit\u00e0 di Verona). \nAfter the creator graduated, he continued to improve the project in order to publish it.\n\nThe inspiration came from the [Vertimag][1] by [Ferretto][2], an Italian company based in Vicenza.\nThe logic of the digitalized warehouse is therefore the same as that of the real Vertimag.\n\nThe digitisation of the warehouse was made possible thanks to the [ICE Laboratory][3] of Verona, \nas part of a thesis project at the University of Verona. \nIn addition, [Sebastiano Gaiardelli][6] (mainly) and [Marco Panato][7] \nhelped the creator at the beginning of the project.\n\n------------------------------------------------------------------------------------------------------------------------\n\n## How to Install and Run the Project\n\n### Dependencies\n\n| Dependency       | Version      |\n|------------------|--------------|\n| [pandas][8]      | [2.2.2][9]   |\n| [simpy][10]      | [4.1.1][11]  |\n| [PyYAML][12]     | [6.0.1][13]  |\n| [jsonschema][14] | [4.23.0][15] |\n\n### Python Installation\n\nThe Simulator Automatic Warehouse requires `Python >= 3.9`.\nPython 3.8 is no longer supported, as Python will end support on 2024-10.\n\nIt's possible to install the package using [pip][4]:\n\n```bash\npip install simulator-automatic-warehouse\n```\n\nOtherwise, you can clone the whole project and install the requirements:\n\n```bash\ngit clone https://github.com/AndreVale69/simulator-automatic-warehouse\npip install -r requirements.txt\n```\n\n### Basic Example\n\nThe following code generate a warehouse, create a simulation environment and run a simulation.\n\n```python\nfrom automatic_warehouse.warehouse import Warehouse\nfrom automatic_warehouse.simulation.simulation_type.warehouse_simulation import WarehouseSimulation\n\n# generate a Warehouse\nwarehouse = Warehouse()\n\n# generate a simulation environment\nsimulation = WarehouseSimulation(warehouse)\n\n# run the simulation\nsimulation.run_simulation()\n\n# print the results\nprint(simulation.get_store_history_dataframe())\n```\n\nNote: if a configuration is not specified as an environment variable or is not updated at runtime, \nthe [default configuration][16] is used.\n\n### Docker\n\nEverything is easier with Docker.\nIn the GitHub project, there are a [docker folder][17] and use docker compose to build:\n\n```bash\ncd docker\ndocker compose up alpine-simulator_automatic_warehouse\n```\n\nThe available docker images are:\n\n- `alpine-simulator_automatic_warehouse`\n- `debian-simulator_automatic_warehouse`\n\nTo change or add some environment variables, edit [docker-compose.yaml][18].\n\n------------------------------------------------------------------------------------------------------------------------\n\n## Benchmarks\n\nHere are some benchmarks run with a private Python library and the following computer specifications:\n - Intel i7-8750H \n - SDRAM DDR4-2666 16GB\n - MZ-76Q2T0 860 QVO SSD 2TB 2.5\"\n - SSD NVMe M.2 128 GB\n - NVIDIA GeForce GTX 1050\n\n| Actions   | Time to process  | Real-time simulation |\n|-----------|------------------|----------------------|\n| 10'000    | 570 milliseconds | 1d. 2h. 48m.         |\n| 63'000    | 3,5 seconds      | 1 week               |\n| 267'900   | 15,3 seconds     | 1 month              |\n| 3'250'120 | 3,1 minutes      | 1 year               |\n\nUse the following links if the images are not displayed:\n- [Relationship between simulated actions and mean][19]\n- [Standard Deviation][20]\n\n\n<img src=\"docs/_static/benchmark-results/relationship_between_simulated_actions_and_media.svg\" alt=\"Relationship between simulated actions and media\">\n\n<img src=\"docs/_static/benchmark-results/standard_deviation.svg\" alt=\"Standard deviation\">\n\n[1]: https://www.ferretto.com/en/solutions/vertical-lift-modules-vertimag/\n[2]: https://www.ferretto.com/en/\n[3]: https://www.icelab.di.univr.it/\n[4]: https://pip.pypa.io/en/stable/getting-started/\n[5]: https://en.wikipedia.org/wiki/Digital_twin\n[6]: https://sbgaia.github.io/\n[7]: https://www.linkedin.com/in/marco-panato-vr\n[8]: https://github.com/pandas-dev/pandas\n[9]: https://github.com/pandas-dev/pandas/releases/tag/v2.2.2\n[10]: https://gitlab.com/team-simpy/simpy\n[11]: https://gitlab.com/team-simpy/simpy/-/tree/4.1.1?ref_type=tags\n[12]: https://github.com/yaml/pyyaml\n[13]: https://github.com/yaml/pyyaml/releases/tag/6.0.1\n[14]: https://github.com/python-jsonschema/jsonschema\n[15]: https://github.com/python-jsonschema/jsonschema/releases/tag/v4.23.0\n[16]: https://github.com/AndreVale69/simulator-automatic-warehouse/blob/main/configuration/sample_config.yaml\n[17]: https://github.com/AndreVale69/simulator-automatic-warehouse/tree/main/docker\n[18]: https://github.com/AndreVale69/simulator-automatic-warehouse/blob/main/docker/docker-compose.yaml\n[19]: https://github.com/AndreVale69/simulator-automatic-warehouse/blob/main/docs/_static/benchmark-results/relationship_between_simulated_actions_and_media.svg\n[20]: https://github.com/AndreVale69/simulator-automatic-warehouse/blob/main/docs/_static/benchmark-results/standard_deviation.svg\n[21]: https://simulator-automatic-warehouse.readthedocs.io/en/latest/\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Simulator and Digital Twin of an Automatic Warehouse.",
    "version": "1.0.1",
    "project_urls": {
        "Changelog": "https://github.com/AndreVale69/simulator-automatic-warehouse/blob/main/CHANGELOG.md",
        "Documentation": "https://simulator-automatic-warehouse.readthedocs.io/en/latest/",
        "GitHub": "https://github.com/AndreVale69/simulator-automatic-warehouse",
        "Issues": "https://github.com/AndreVale69/simulator-automatic-warehouse/issues",
        "PyPI": "https://pypi.org/project/simulator-automatic-warehouse"
    },
    "split_keywords": [
        "automatic warehouse",
        " digital twin",
        " ferretto",
        " simulator",
        " simulator automatic warehouse",
        " univr",
        " vertimag",
        " warehouse"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "88fc3a50f002f7491b9885bff0c1a39667d88372d2a24fb594701f4d9064874d",
                "md5": "a7c5d43caad8bf38f2e70770e2558840",
                "sha256": "bca6d630d88d3be8f46bcfe5e88537f883e2a117e8d228b890872c6619dfb730"
            },
            "downloads": -1,
            "filename": "simulator_automatic_warehouse-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a7c5d43caad8bf38f2e70770e2558840",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 58530,
            "upload_time": "2024-08-04T15:02:49",
            "upload_time_iso_8601": "2024-08-04T15:02:49.917546Z",
            "url": "https://files.pythonhosted.org/packages/88/fc/3a50f002f7491b9885bff0c1a39667d88372d2a24fb594701f4d9064874d/simulator_automatic_warehouse-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "433d53c1850eba464bd3f4e59fe1e1ceaefab0df79ff365c047ad99f09d845e5",
                "md5": "e98e06f15cd7f028d19ca75322de4261",
                "sha256": "40ca3d7681168e15c526ea7467d70b223e22aa1a474d8c571d0b226c016ba1ce"
            },
            "downloads": -1,
            "filename": "simulator_automatic_warehouse-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e98e06f15cd7f028d19ca75322de4261",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 35108,
            "upload_time": "2024-08-04T15:02:51",
            "upload_time_iso_8601": "2024-08-04T15:02:51.937540Z",
            "url": "https://files.pythonhosted.org/packages/43/3d/53c1850eba464bd3f4e59fe1e1ceaefab0df79ff365c047ad99f09d845e5/simulator_automatic_warehouse-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-04 15:02:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "AndreVale69",
    "github_project": "simulator-automatic-warehouse",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "simulator-automatic-warehouse"
}
        
Elapsed time: 2.90817s