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:

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.

Figure 1. UR3e program on teach pendant

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

Figure 2. Result when running the Docker image for UR3e controller

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.

Figure 3. Project T01-Ur3e shown on Papyrus4Manufacturing

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