The Self-configurable Manufacturing Industrial Agents (SMIA) is a proposal for the implementation of the concept of the I4.0 Component from the Reference Architectural Model Industrie 4.0 (RAMI 4.0) as an AAS-compliant agent-based Digital Twin (DT). The features of the SMIA approach include:
- free & open-source
- AAS-compliant: standardized approach
- Ontology-based
- easily customizable and extendable
- self-configuration at software startup
- easy to start-up
- containerized solution
The development of the SMIA approach is addressed by Ekaitz Hurtado as part of a PhD thesis in the Control and Systems Integration research group at the University of the Basque Country (UPV/EHU).
Tip
For more details on Self-configurable Manufacturing Industrial Agents see the 📘 full documentation.
The repository of the SMIA project is structured as follows:
- additional_tools: additional tools developed related to the SMIA.
- aas_ontology_reader: this tool contains the source code of a reader capable of analyzing an AAS model based on a given OWL ontology.
- aasx_package_explorer_resources: this tool contains the JSON files to extend the AASX Package Explorer software with the Capability-Skill-Service (CSS) model.
- capability_skill_ontology: this tool contains the ontology for the Capability-Skill-Service (CSS) model in an OWL file. It also provides some ExtendedClasses implemented in Python.
- gui_agent: this tool provides a SPADE agent with an easy-to-use graphical interface. This agent provides several useful functionalities for SMIA usage and execution.
- examples: some examples to facilitate the use of the solution.
- docker_compose_deployment: required files to easily deploy SMIA using the Docker Compose tool.
- smia_extended: an example of files related to a SMIA extension case.
- tutorials: all the resources shown in the SMIA tutorials.
- src: the entire source code of the SMIA software.
- smia: the main Python package for the entire source code of the SMIA.
Important
The project is currently under active development, so new features and bug fixes will be introduced continuously. Therefore, although SMIA is not yet an industry-ready implementation, validations of the approach with different use cases will be conducted during its development.
Multiple ways of running SMIA software are available.
The source code inside the src
folder can be downloaded, and there are two launchers to run the software easily. If the folder where the launchers are located is accessed, it is possible to run SMIA using the following command:
python3 smia_cli_starter.py --model "<path to AASX package>"
Tip
The launcher smia_starter.py
specifies the AAS model manually, so the code must be modified. Just change the line that specifies the path to the AASX package that contains the AAS model. Then it can be executed:
python3 smia_starter.py
The SMIA approach is also available as Python package in PyPI. It can be easily installed using pip:
pip install smia
Note
The PyPI project is available at https://pypi.org/project/smia/.
The PyPI SMIA package contains all the source code and there are determined the necessary dependencies, so they can be automatically installed by pip, so it can run SMIA directly by:
python3 -m smia.launchers.smia_cli_starter --model "<path to AASX package>"
The SMIA approach is also available as Docker image in DockerHub. To run SMIA software the AAS model should be passed as environmental variable:
docker run -e model=<path to AASX package> gcis-upv-ehu/smia:latest-alpine
Note
The SMIA Docker Hub repository is available at https://hub.docker.com/r/ekhurtado/smia.
Note
Discussions page has been set as available to share announcements, create conversations, answer questions, and more.
The SMIA software, as it has been built following an Open Source Software Engineering approach, integrates some mature Python packages.
Package name | Version | License | Has it been modified |
---|---|---|---|
spade | 3.3.3 | MIT | No |
basyx-python-sdk | 1.2.0 | MIT | No |
owlready2 | 0.47 | GNU LGPL licence v3 | No |
GNU General Public License v3.0. See LICENSE
for more information.