Skip to content

DIAG-Sapienza-BPM-Smart-Spaces/AIDA

Repository files navigation

AIDA tool

Linux Python Sapienza Licence

AIDA (Adaptive InDustrial APIs) is a tool for the composition of Industrial APIs for resilience manufacturing.

The proposed technique generates a plan for a manufacturing process by orchestrating manufacturing actors which are depicted as services. Services are also called Industrial APIs and are managed by the Industrial APIs platform.

Architecture

  • Design GUI: graphic tool to model manufacturing actors and goal
  • Controller: composing the manufacturing actors
  • Enactor: acting as a middleware between controller and Industrial API
  • Industrial API: realizing the services wrapping the manufacturing actors

IndustrialAPI

  • The controller interact with the Industrial API through REST API to retrieve service specification and current status and request the execution of an action by a service.
  • The services are connected to the server via websocket
  • Services connect to the server to register and execute actions

Preliminaries

We assume the user uses a UNIX-like machine and that has Python 3.10 installed.

  • To set up the virtual environment install Pipenv (pip install pipenv), then execute
pipenv install --dev
  • Start a shell within the Python virtual environment (to be done whenever a new terminal is opened):
pipenv shell
  • Install the Python package in development mode:
pip install -e .
sudo apt install xterm
  • Install Python GUI Tkinter module:
sudo apt install python3-tk
cd planning
git clone https://github.com/aibasel/downward.git
cd downward
./build.py
  • Generate Python client from OpenAPI v3.0 specification (maybe you need to change permissions of the script file):
cd IndustrialAPI/actors_api_lmdp_ltlf/openapi_client_script
# chmod 777 generate-openapi-client.sh
./generate-openapi-client.sh

cd IndustrialAPI/actors_api_plan/openapi_client_script
# chmod 777 generate-openapi-client.sh
./generate-openapi-client.sh

Run the tool

To run the tool you need to run the GUI script

cd GUI
python Adaptive.py

Design time

A design time frame allows to model both services (.sdl) and manufacturing goal (.tdl). Such models are usually saved in specific folders inside saved_models.

Run time

A run time frame allows to generate and execute the optimal policy (plan). The set-up of this phase depends on the selection of a proper configuration file. config_files contains some configuration files.

License

The software is released under the MIT license.

About

A tool for composition of services in smart manufacturing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published