Control Application for a Robotic Production Chain with Enhanced Interoperability Using Service Composition with Asset Administration Shell (AAS)
This document provides detailed instructions on how to set up, run, and use the robotic chain control system, which includes Niryo Ned 2 and Wlkata Mirobot robots. It also explains how to utilize the various interfaces provided in the system.
Before you begin, ensure that you have the following:
- Python 3.6 or later installed on your PC.
- Niryo One Robot and Wlkata Mirobot set up and connected.
- OPC UA Server running and accessible.
- Necessary Python libraries installed (see
requirements.txt
).
Clone the repository containing the control scripts to your local machine:
git clone https://github.com/yourusername/robotic-chain-control.git
cd robotic-chain-control
Install the required Python libraries by running:
pip install -r requirements.txt
Ensure the AAS (Asset Administration Shell) file paths are correctly set in the control scripts:
- For Niryo:
ned_aas_file = os.path.expanduser("~/Runchain_Services/NiryoNed2AAS.aas.xml")
- For Wlkata:
wl_aas_file = os.path.expanduser("~/Runchain_Services/WlkataMirobotAAS.aas.xml")
Verify that the OPC UA server URL and namespace are correctly configured in client.py
:
OPC_UA_URL = "opc.tcp://<server-ip>:4840/opcua/"
NAMESPACE = "<namespace>"
Run the main control script:
python Demonstrateur.py
This script will guide you through various prompts to perform different operations such as defining points, loading patterns, and running patterns.
Initialize and calibrate the robots:
chaikmat_ned.setup()
Load and run a predefined pattern:
chaikmat_ned.load_pattern()
Perform a pick and place operation:
chaikmat_ned.pick_my_thing("Square", "Red", 1)
This interface allows you to query the Services submodel to obtain information about service availability and parameters before performing tasks. For example, to check if a pick service is available:
result = chaikmat_ned.service_query(ned_aas_file, "Pick")
print(result)
This interface logs and monitors the activities and performance of various services. The logs are stored in a logfile for analysis:
chaikmat_ned.service_logs("Pick", True, 3.5)
This interface manages the operational states of robotic assets within the AAS, such as Active, Inactive, or Maintenance:
chaikmat_ned.robot_state_update(ned_aas_file, "Active")
This interface enables dynamic configuration of services within the AAS, allowing users to add, remove, and modify service configurations:
chaikmat_ned.configure_service(ned_aas_file, "Pick", "input_value", "output_value", "driver_function", "effector")
The system generates logs for each operation, which are saved in a log file with a timestamp in the filename. These logs provide detailed information about the operations performed and any errors encountered. Ensure to check the log files regularly for monitoring and troubleshooting purposes.
- Ensure all dependencies are installed and the OPC UA server is running.
- Check the configurations in
client.py
and the control scripts. - Refer to the log files for detailed error messages.
Laboratoire Genie de Production (LGP) - Universite de Technologie Tarbes Occitanie Pyrenees (UTTOP) / Ecole Nationale d'Ingenieurs de Tarbes (ENIT) Address: 47, avenue d'Azereix - BP 1629 - 65016 Tarbes CEDEX Contact: +33 (0)5 62 44 27 00