diff --git a/docs/optimaflow/glossary.md b/docs/optimaflow/glossary.md index 722ab454..be70191a 100644 --- a/docs/optimaflow/glossary.md +++ b/docs/optimaflow/glossary.md @@ -1,5 +1,3 @@ -!!! danger "This is work in progress!" - # Glossary Optimaflow ## A @@ -7,9 +5,6 @@ **Action Order**:
See [Material Flow](participants/material_flow.md#structure) -**Action Order Step**:
-See [Material Flow](participants/material_flow.md#structure) - **Autonomous Mobile Robot (AMR)**:
See [Autonomous Mobile Robot](participants/amr.md#autonomous-mobile-robot-amr) @@ -29,11 +24,11 @@ See [Material Flow](participants/material_flow.md) **Move Order**:
See [Material Flow](participants/material_flow.md#structure) -**Move Order Step**:
-See [Material Flow](participants/material_flow.md#structure) - ## O +**OptiMaFlow**:
+See [OptiMaFlow](introduction.md#what-is-optimaflow) + **Order**:
See [Material Flow](participants/material_flow.md#structure) @@ -54,5 +49,3 @@ The nodes of the graph are positions on the traversable area. **Transport Order**:
See [Material Flow](participants/material_flow.md#structure) -**Transport Order Step**:
-See [Material Flow](participants/material_flow.md#structure) diff --git a/docs/optimaflow/introduction.md b/docs/optimaflow/introduction.md index b3f2cd5e..9fd955eb 100644 --- a/docs/optimaflow/introduction.md +++ b/docs/optimaflow/introduction.md @@ -1,5 +1,3 @@ -!!!danger "This is work in progress!" - # Introduction ## Getting started @@ -7,23 +5,41 @@ To run OptiMaFlow please download and build the repository as described [here](../getting_started.md). Afterwards, follow the instructions for [OptiMaFlow](../daisi/using.md) in the ns-3 Integration tab. -### Intralogistics +## Intralogistics + +In recent years, the domain of intralogistics has experienced rapid advancements in technology, driven by the fourth industrial revolution, also known as Industry 4.0 [[1]](#references). +Industry 4.0 includes the convergence of physical hardware with cyber-applications, creating a new possible paradigm for warehouse logistics [[2]](#references). +In a *cyber space*, entities have representations as virtual objects enabling +self-organization, synergy, and emergence. +This paradigm is built on design principles such as interconnectivity, information transparency, and decentralized decision-making [[1]](#references). +Autonomous mobile robots (AMRs) have emerged as a key component in this shift towards decentralized decision-making, enabling them to operate autonomously and adapt to changing conditions without centralized control. -Industry 4.0 (I4.0), the fourth industrial revolution, is the unification of the physical (hardware) world with cyber-applications (software) [[1]](#references). -New technologies and applications emerge in the intelligent manufacturing environment, also known as smart factories or cyber-physical production systems (CPPSs) [[2]](#references). -These I4.0-scenarios are built on the design principles such as interconnectivity, information transparency (open interfaces and standards), decentralized decision-making, and technical assistance [[3]](#references). -For instance, a production order (PO) becomes digital and gains access to information of all devices and services of the CPPS. +AMRs utilize a decentralized decision-making process for collision-free navigation, making them highly flexible [[3]](#references). +This flexibility is crucial in addressing the growing need for adaptable and reconfigurable warehouse logistics solutions, particularly in dynamic production lines and in response to disruptions in the supply chain. +AMRs, with their ability to independently make decisions and navigate in a decentralized manner, offer significant advantages in meeting these evolving demands. -### Entities within a CPPS, Agent-based Approach, Participants Overview ## What is OptiMaFlow? -## Interfaces are important +A material flow in OptiMaFlow is a declarative description of the transport of materials. +OptiMaFlow, short for **Opti**mization of **Ma**terial **Flow**s, is responsible for intelligently assigning tasks of a [Material Flow](./participants//material_flow.md) to [Autonomous mobile robots (AMRs)](./participants/amr.md). +Managing the task assignment of an AMR presents challenges, as these problems are typically NP-hard. +The complexity makes finding efficient solutions difficult and computationally expensive. + +In OptiMaFlow, the cyber space consists of Logical Agents [[4]](#references). +Each AMR has its own Logical Agent responsible for managing its physical assets. +Additionally, there are Material Flow Logical Agents, which have no representation in the physical environment. +A Material Flow Logical Agent exists purely in the cyber space and is responsible for securing the successful allocation and execution of a set of tasks. +All together, these Logical Agent communicate with each other to complete the material flow in a self-organized manner. +To address the task assignment challenge, we have implemented both centralized and decentralized algorithms within OptiMaFlow. + ## References -[1] L. Monostori, “Cyber-physical Production Systems: Roots, Expectations and R&D Challenges”, Procedia CIRP, vol. 17, pp. 9–13, Jan. 2014. +[1] M. Hermann, T. Pentek, and B. Otto, “Design Principles for Industrie 4.0 Scenarios”, in 2016 49th Hawaii International Conference on System Sciences (HICSS), pp. 3928–3937, Jan. 2016. + +[2] L. Monostori, “Cyber-physical Production Systems: Roots, Expectations and R&D Challenges”, Procedia CIRP, vol. 17, pp. 9–13, Jan. 2014. -[2] R. Heidel, M. Hoffmeister, M. Hankel, and U. Döbrich, ”The Reference Architecture Model RAMI 4.0 and the Industrie 4.0 component”, VDE Verlag, 2019. +[3] G. Fragapane, R. de Koster, F. Sgarbossa, and J. O. Strandhagen, “Planning and control of autonomous mobile robots for intralogistics: Literature review and research agenda,” European Journal of Operational Research, vol. 294, no. 2, pp. 405–426, Oct. 2021. -[3] M. Hermann, T. Pentek, and B. Otto, “Design Principles for Industrie 4.0 Scenarios”, in 2016 49th Hawaii International Conference on System Sciences (HICSS), pp. 3928–3937, Jan. 2016. +[4] D. Lünsch, P. Detzner, A. Ebner, and S. Kerner, “SWAP-IT: A Scalable and Lightweight Industry 4.0 Architecture for Cyber-Physical Production Systems,” in 2022 IEEE 18th International Conference on Automation Science and Engineering (CASE), Aug. 2022, pp. 312–318. diff --git a/docs/optimaflow/logging.md b/docs/optimaflow/logging.md deleted file mode 100644 index cf50b2c7..00000000 --- a/docs/optimaflow/logging.md +++ /dev/null @@ -1,5 +0,0 @@ -!!!danger "This is work in progress!" - -# Logging - -## OptiMaFlow Logger diff --git a/docs/optimaflow/participants/amr.md b/docs/optimaflow/participants/amr.md index 3fb94120..3828b623 100644 --- a/docs/optimaflow/participants/amr.md +++ b/docs/optimaflow/participants/amr.md @@ -1,15 +1,13 @@ -!!!danger "This is work in progress!" - # Autonomous Mobile Robot (AMR) AMRs are mobile robots that can execute tasks in a logistics context without human interaction. For our purposes they are able to follow a predefined path and also execute special actions they are designed for. -To function in a [CPPS](../introduction.md) every AMR has a [logical](#logical) and a [physical](#physical) component. +To function in a [cyber space](../introduction.md) every AMR has a [logical](#logical) and a [physical](#physical) component. ## AMR Logical Agent -The AMR Logical Agent is a smart participant in the [CPPS](../introduction.md). +The AMR Logical Agent is a smart participant in the [cyber space](../introduction.md). It communicates with other agents using the communication middleware to make intelligent decisions and manages the AMR's tasks. It has multiple components shown in the picture below and described in the following sections. @@ -23,18 +21,13 @@ It has multiple components shown in the picture below and described in the follo The SOLA Connection is a socket enabling the AMR to send and receive messages through the SOLA Network. All sent messages are generated by other components. -And all received messages are forwarded to the Algorithms component. +And all received messages are forwarded to the Algorithms components. -### Algorithms +### Algorithms and Task Management The Algorithms component handles Task aquisition or assignment from [Material Flow Logical Agents (MFLA)](./material_flow.md). -Those Tasks are assigned to AMRs using [centralized](../task_assignment/round_robin.md) or [decentralized](../task_assignment/decentralized.md) Task Assignment Algorithms. -Some Task Assignment Algorithms require cost calculations that are delegated to the Task Management. - When a Task is assigned to an AMR Logical Agent the Algorithms component will forward it to the Task Management. -### Task Management - The Task Management holds assigned Tasks in a queue. Whenever a Task is queued and the AMR is ready to execute it, the Task Management's next Order will be sent to the AMR Physical Asset using the TCP Connection and also send it to the AMR Logical Execution State to manage the Order execution. @@ -64,12 +57,12 @@ The FSM lets the Asset Connector execute the current Functionality and handles p ### Functionality A Functionality is a simple representation of an action the robot can perform. -There are three types of Functionalities that are used to execute Order Steps: +There are three types of Functionalities that are used to execute Orders: - **Move To**: Move to a position. - This does not differentiate between empty movement and transporting a payload and is used to execute a Transport Order Step or Move Order Step. -- **Load**: Load a payload at the current position and is used to execute a Transport Order Step or Action Order Step. -- **Unload**: Unload a payload at the current position and is used to execute a Transport Order Step or Action Order Step. + This does not differentiate between empty movement and transporting a payload and is used to execute a Transport Order or Move Order. +- **Load**: Load a payload at the current position and is used to execute a Transport Order or Action Order. +- **Unload**: Unload a payload at the current position and is used to execute a Transport Order or Action Order. ### Finite State Machine (FSM) diff --git a/docs/optimaflow/participants/material_flow.md b/docs/optimaflow/participants/material_flow.md index 858d490c..76ed8f06 100644 --- a/docs/optimaflow/participants/material_flow.md +++ b/docs/optimaflow/participants/material_flow.md @@ -1,3 +1,32 @@ -!!!danger "This is work in progress!" - # Material Flow + +In OptiMaFlow, we intend to use the [Material Flow Description Language (MFDL)](https://git.openlogisticsfoundation.org/silicon-economy/libraries/mfdl) to describe material flows in a declarative manner. +A material flow is composed of a set of tasks. +Each task consists of multiple orders that are assigned to a single AMR. +The transport order represents the process of picking up an item from location A and transporting it to a designated delivery location B. +Additionally, there are move orders that specify the movement of the AMR within the warehouse, and action orders that describe specific actions such as loading and unloading. +A task with all of its orders will always be assigned to a single AMR. + +## Material Flow Logical Agent + +Material Flow (MF) Logical Agents play a crucial role in coordinating and managing the assignment and execution of tasks within the cyber space. +Unlike [AMR Logical Agents](./amr.md#amr-logical-agent) that represent physical assets, MF Logical Agents solely exist in the [cyber space](../introduction.md#intralogistics). +Their primary responsibility is to ensure the successful assignment and execution of a specific set of tasks. + +To achieve this, MF Logical Agents can communicate with other MF Logical Agents and AMR Logical Agents. +This allows them to assign tasks from their material flow to the appropriate AMRs, considering factors such as availability and efficiency. + +In a decentralized architecture, multiple MF Logical Agents can coexist in the cyber space simultaneously, each managing its own set of tasks. + + +### Algorithms + +Different algorithms can be applied to assign tasks to an AMR using [centralized](../task_assignment/centralized.md) or [decentralized](../task_assignment/decentralized.md) Task Assignment Algorithms. +Some Task Assignment Algorithms require cost calculations that are delegated to the [Task Management](./amr.md#algorithms-and-task-management) of the AMR Logical Agent. +It is necessary to select an Algorithm to give the agent functionality. + + +### SOLA Connection + +The SOLA Connection is a socket enabling the Material Flow Logical Agent to send and receive messages through the SOLA Network. +All sent messages are generated by the Algorithms components and forwarded to those accordingly. diff --git a/docs/optimaflow/participants/overview.md b/docs/optimaflow/participants/overview.md deleted file mode 100644 index a9e905e6..00000000 --- a/docs/optimaflow/participants/overview.md +++ /dev/null @@ -1,3 +0,0 @@ -!!!danger "This is work in progress!" - -# Overview diff --git a/docs/optimaflow/task_assignment/round_robin.md b/docs/optimaflow/task_assignment/centralized.md similarity index 99% rename from docs/optimaflow/task_assignment/round_robin.md rename to docs/optimaflow/task_assignment/centralized.md index fc2a3a3e..92e63a85 100644 --- a/docs/optimaflow/task_assignment/round_robin.md +++ b/docs/optimaflow/task_assignment/centralized.md @@ -1,5 +1,3 @@ -!!!danger "This is work in progress!" - # Centralized Optimization The idea of a centralized optimizer is to store all relevant information centrally in one place. diff --git a/docs/optimaflow/task_assignment/decentralized.md b/docs/optimaflow/task_assignment/decentralized.md index 3b912c13..8267a3a0 100644 --- a/docs/optimaflow/task_assignment/decentralized.md +++ b/docs/optimaflow/task_assignment/decentralized.md @@ -1,5 +1,3 @@ -!!!danger "This is work in progress!" - # Decentralized Task Assignment In the decentralized OptiMaFlow architecture, the task assignment process involves multiple Material Flow Logical Agents, each responsible for managing one or a few [material flows](../participants/material_flow.md#material-flow-description). diff --git a/mkdocs.yml b/mkdocs.yml index 65f8206c..d8236c66 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -52,13 +52,11 @@ nav: - OptiMaFlow: - Introduction: optimaflow/introduction.md - Participants: - - Overview: optimaflow/participants/overview.md - Material Flow: optimaflow/participants/material_flow.md - - AMR: optimaflow/participants/amr.md + - Autonomous Mobile Robot: optimaflow/participants/amr.md - Task Assignment: + - Centralized: optimaflow/task_assignment/centralized.md - Decentralized: optimaflow/task_assignment/decentralized.md - - Centralized: optimaflow/task_assignment/round_robin.md - - Logging: optimaflow/logging.md - Glossary: optimaflow/glossary.md - ns-3 Integration: