Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finalizing OptiMaFlow Documentation #127

Merged
merged 2 commits into from
Oct 13, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 3 additions & 10 deletions docs/optimaflow/glossary.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
!!! danger "This is work in progress!"

# Glossary Optimaflow

## A

**Action Order**:<br />
See [Material Flow](participants/material_flow.md#structure)

**Action Order Step**:<br />
See [Material Flow](participants/material_flow.md#structure)

**Autonomous Mobile Robot (AMR)**:<br />
See [Autonomous Mobile Robot](participants/amr.md#autonomous-mobile-robot-amr)

Expand All @@ -29,11 +24,11 @@ See [Material Flow](participants/material_flow.md)
**Move Order**:<br />
See [Material Flow](participants/material_flow.md#structure)

**Move Order Step**:<br />
See [Material Flow](participants/material_flow.md#structure)

## O

**OptiMaFlow**:<br />
See [OptiMaFlow](introduction.md#what-is-optimaflow)

**Order**:<br />
See [Material Flow](participants/material_flow.md#structure)

Expand All @@ -54,5 +49,3 @@ The nodes of the graph are positions on the traversable area.
**Transport Order**:<br />
See [Material Flow](participants/material_flow.md#structure)

**Transport Order Step**:<br />
See [Material Flow](participants/material_flow.md#structure)
40 changes: 28 additions & 12 deletions docs/optimaflow/introduction.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,45 @@
!!!danger "This is work in progress!"

# Introduction

## Getting started

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.
5 changes: 0 additions & 5 deletions docs/optimaflow/logging.md

This file was deleted.

23 changes: 8 additions & 15 deletions docs/optimaflow/participants/amr.md
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -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.

Expand Down Expand Up @@ -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)

Expand Down
33 changes: 31 additions & 2 deletions docs/optimaflow/participants/material_flow.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
!!!danger "This is work in progress!"

# Material Flow

In OptiMaFlow, we utilize 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.
3 changes: 0 additions & 3 deletions docs/optimaflow/participants/overview.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -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.
Expand Down
2 changes: 0 additions & 2 deletions docs/optimaflow/task_assignment/decentralized.md
Original file line number Diff line number Diff line change
@@ -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).
Expand Down
6 changes: 2 additions & 4 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down