Industrielle styresystemer - Wiki
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 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 wanted to make the position of the end-effector of our digital representation match the actual end-effector position on Cabot. A communication fieldbus was needed, 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. This would make the interaction with the system more natural, because of its complex dynamics could be visualized at the same time as using it as an input. The first idea was to simply publish the position of the blue cube to the PLC, and it should then dynamically move to the target position. The implementation of this went well, and we decided to add more features. A feature list of what can be done from blender now is: