Semantic Interoperability Framework for Digital Twin-Based Virtual Commissioning of Robotic Assembly in Industrialized Construction
Supplementary repository for:
Gallopp Ramírez, Ricardo A., Alwisy, Aladdin, & Issa, Raja R. A. (2026). Semantic interoperability framework for digital twin-based virtual commissioning of robotic assembly in industrialized construction. Automation in Construction, 190, 107095. https://doi.org/10.1016/j.autcon.2026.107095
dtvcframework/
├── README.md
├── LICENSE
├── CITATION.cff
├── aas_models/
│ ├── ExecutionStatus.json
│ ├── JointTrajectoryLog.json
│ └── MotionCommand.json
├── controller_logic/
│ └── DT_Link.mod
└── src/
└── baseline_logger.py
Three submodels define the semantic data exchange layer of the framework:
The CommandID field is the linking key across all three submodels and the RAPID module, ensuring traceability across the full supervisory semantic loop.
DT_Link.mod is an ABB RAPID module that declares Persistent Variables (PERS) corresponding to fields defined in the MotionCommand and ExecutionStatus submodels. These variables are exposed as OPC UA nodes, forming the semantic communication bridge between the DT and the virtual IRC5 controller.
The module implements the three-step command handshake:
- Acknowledge — sets
CommandAcknowledged = TRUEupon detecting a newCommandID - Execute — sets
ExecutionStarted = TRUE, runs motion logic, then setsExecutionCompleted = TRUE - Reset — clears acknowledge and started flags; the Python orchestration client must reset
ExecutionCompleted = FALSEbefore issuing the next command
This framework requires an Asset Administration Shell server to host the submodels. Eclipse BaSyx was deployed via Docker.
Initialize the server using Docker:
docker pull eclipsebasyx/aas-server:latest
docker run -p 8081:8081 eclipsebasyx/aas-server:latestThe orchestrator interacts via BaSyx REST API (PUT/GET) to update ExecutionStatus and JointTrajectoryLog submodels during execution.
Initialize the AAS environment with your submodel IDs before running:
urn:submodel:motioncommand:001urn:submodel:executionstatus:001urn:submodel:jointtrajectorylog:001
DT_Link.mod must be loaded and running in the RAPID task on the ABB IRC5
controller. OPC UA endpoint URLs, node IDs, namespace indices, and certificates
are environment-specific and must be configured locally.
baseline_logger.py demonstrates the structural pattern for:
- Connecting to an OPC UA server
- Reading
ExecutionStatussubmodel fields - Writing logged data to the BaSyx AAS Repository via REST
The following are withheld to protect ongoing research:
- Full orchestration script with live OPC UA subscriptions and BaSyx REST calls
- Real OPC UA endpoint URLs, namespace indices, and node mappings
- Robot station file and USD scene assets
- cuRobo motion planning scripts
See CITATION.cff for the full citation record.
This repository is released under the MIT License. See LICENSE for details.
