Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Our visualization pipeline:

At first we were uncertain about what system we wanted to use to visualize Cabot. At first we tested simple visualization and a GUI in CodeSys, but as CodeSys is a slow program we wanted to use third-party software. We knew that we had two main options, ; Ignition and CDP-Studio. Both of which are new software packages to all of the group members and it would require a communication protocol. As the project went on we deprioritised deprioritized the visualization and GUI, untill until we heard from another group that they were using Blender. Blender is a 3D graphics program with no built in support for communication with other software, but has great modelling tools and rendering capabilities. Since blender has a Python API, and we now had MQTT setup, we decided to give it a go., even though it is not software made for this, its possible to adjust the program to our needs. While the 24_7 CDP-Studio Dashboard was being developed, the blender script and visualization was developed in parallel. Lets go into the details of the Blender pipeline.
Info

Responsible: Magnus

Visualization


Digital-Twin in Blender:

First of all we created the digital double as seen in the image on the right. As most parts of our digital double does not need to be dimensionally accurate, such as the motor size and the end-effector, it was a simple modelling job. The dimensions of the aluminum profiles has to be accurate though, so they were created

with that in mind.

accordingly. Motor and driver 3D-models were taken from the official Omron website, where they offer CAD files for free. Now for the important part, the communication and methods we implemented to make the visualization behave as a digital twin and UI for our system.


We

Now that the digital double was created, we

wanted to make the position of the end-effector of our digital representation match the actual end-effector position on Cabot.

MQTT

A communication fieldbus was needed

for this, so we created a script using the Blender API for this task.Using the Python library Paho-Mqtt we created the subscriber client in blender. The data is formatted as 3 floats split by commas. So to change the position of the end-effector in the 3D-viewport we used the Blender Python API.

, and we chose MQTT because of its python libraries we could use in Blender. Creating the script requires some knowledge about the BPY (Blender python api). As we had experience with this from earlier projects, we made a subscriber script first, which listens to updates from the PLC publisher. The messages are formatted in the most logical way: "x,y,z". Some adjustments were also made to make the coordinate system from the system work in the visualization.

The python libraries used for the MQTT software was paho-mqtt. This library helps make subscriber and publisher clients, which is exactly what we needed. After testing of the subscriber went well, we figured why not make blender our main UI system as well. We need ed

Image Added