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.
- 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
- 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
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 .
-
Install Graphviz to use rendering functionalities. At this page you will find the releases for all the supported platform.
-
Install Lydia. We suggest to install it by building it from source.
-
Install xterm.
sudo apt install xterm
- Install Python GUI Tkinter module:
sudo apt install python3-tk
- Install Fast Downward planner:
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
To run the tool you need to run the GUI script
cd GUI
python Adaptive.py
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.
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.
The software is released under the MIT license.