T03 - UR3e Controlling
UR3e Control is a simple use case to create an AAS Digital Twin (DT) of a UR3e, then to monitor and control it. In detail, the robotic arm can move and change from one pose to another. When the UR3e DT receives a pose number, it controls the physical UR3e to change the pose accordingly.
Requirements
The following components are required:
Network 192.168.56.0/24
UR3e 6-axis robot
Computer with pre-installed Papyrus4Manufacturing
LocalSEA T03 Kit including some read-to-run software components
The following knowledge are required:
Basic about Networking
Basic about Java + Eclipse IDE
Basic about Docker
Basic about UR3e teach pendant utilisation
Deployment Instructions
In this example, computer has the IP address 192.168.56.11, and UR3e has the IP address 192.168.56.6. After downloading the T03 Kit, decompress it to get the two packages: (1) ur3e_v0.1.tar.gz contains a dockerized UR3e controller program to control the physical UR3e, and (2) T03-Ur3e.tar.gz contains the AAS model design to be built and run UR3e AAS DT.
UR3e setup
Turn on the UR3e using its teach pendant. Create a simple program as shown on Figure 1. The program should have four if-else clauses corresponding to the possible four values of two digital output bits (00, 01, 10, 11). They lead to four situations, in which UR3e changes its pose.

Launch the program on UR3e.
On the computer, install and run the Docker image for UR3e controller with the following commands:
$ docker load -i ur3e_v0.1.tar.gz
$ docker run -it --net=host --rm ur3e_controller:v0.1 /app 192.168.56.6
The expected result is shown in Figure 2. A server runs a simple
UR3e controller program exposed at the endpoint: http://192.168.56.18:1067

UR3e DT setup
On the computer, extract T03-Ur3e.tar.gz with the following command:
$ tar -xzvf T03-Ur3e.tar.gz
Open Papyrus4Manufacturing and import the project as in Figure 3. The AAS Design Diagram shows the basic elements of the project. Note that users can see property pose inside submodel Basic.

In Model Explorer, right click on the AssetAministrationShell UR3e,
choose AAS, then click
Generate Asset Administration Shell Basyx code (AAS).
When a new project AAS_UR3e is generated, users open the file
DynamicElementsWorkspace.java inside the package basic and modify
functions get_Basic_pose( ) and set_Basic_pose( ) as follows.
public Integer get_Basic_pose() {
// Work with your Dynamic Property here.
Integer defaultVar = Integer.valueOf(connectedDevices.ep_http.readValue("/state").strip());
return defaultVar;
}
public void set_Basic_pose(Integer inputVar) {
connectedDevices.ep_http.writeValue("/pose", inputVar.toString(), "PUT");
}
To run the AAS server including the UR3e AAS DT in Project Explorer, right click on AASServer.launch, choose Run As, then click AASServer.
Verification
If all the above setups are correct, then the UR3e AAS DT is connecting to the UR3e controller. The aim is to send command to UR3e AAS DT to control T3WP through the AAS API.
To get the pose of UR3e, use the following command:
$ curl http://127.0.0.1:8080/aas/submodels/Basic/submodel/submodelElements/pose/value
To set the pose of UR3e from 0 to 3 with the following command:
$ curl -X PUT -d <POSE> \
http://127.0.0.1:8080/aas/submodels/Basic/submodel/submodelElements/pose/value