GENESIS V11 - robot 3D visualization example

GENESIS V11 - robot 3D visualization example

Info
This article explains how to connect joint position data to a 3D model to visualize robot movements in a GraphWorX display. It contains two sample screens with a SCARA robot cell model as attachments - one with datasources connected to real robot data and another with simulated values.
Notes
Communication with robots is not covered in this article. You can find an example of configuration for a CR800-D robot controller in this article: Iconics Genesis V11 - MELFA connection + Asset Builder - gathering data from a standalone robot (CR800-D controller)


1. Importing the robot model


The first step is to import the 3D model of the SCARA robot into GraphWorX. The robot model is imported in the OBJ (Object File) format. If required, the model of the complete working cell can also be imported.




Before configuring the robot’s motion, the imported model may require some preparation. Unnecessary elements can be removed from the model to reduce its complexity and improve the performance of the visualization. The model should contain only the components required for representing the robot and its movement.

2. Adjusting the model scale and position


After importing the model, the scale and position of individual components may be incorrect and must be adjusted:



This can be done in properties of the added objects:



All robot components should have the correct proportions and be positioned relative to each other according to the actual robot structure.

3. Creating the robot model hierarchy


The next step is to create the appropriate hierarchy of the robot components in the GraphWorX project tree. Each component associated with a subsequent robot axis should be nested inside the component representing the previous axis.
For example:


This structure ensures that the movement of an upper-level component is inherited by all components located below it. As a result, when the first axis rotates, all subsequent parts of the robot move together with it.

A model example before hierarchy configuration:


After:


Selected parent-child robot axis components highlighted in 3D view:



4. Configuring Rotation dynamics for robot joints


After creating the hierarchy, the rotation of individual robot joints can be configured. For each rotating component, the appropriate rotation axis must be defined. The rotation center should also be positioned exactly at the corresponding robot joint. Correct positioning of the rotation center is essential for obtaining realistic robot movement.
For each axis, the following parameters are configured:
  1. rotation axis,
  2. rotation center,
  3. rotation direction,
  4. allowed range of movement.
The DataSource parameter must then be connected to the Asset property/data tag containing the current joint position value from the robot.

Example of rotation dynamic configuration for Joint 1:


5. Configuring Location dynamics for linear joints (SCARA robot screw)

To visualize linear movements of a SCARA robot's screw the Location dynamic can be used. Instead of rotating the corresponding component, the component is translated along the appropriate axis.
The configuration includes:
  1. translation axis,
  2. reference position,
  3. minimum and maximum position,
  4. data source controlling the translation.
Example configuration:


6. Adding interactive functions to the 3D model


Beyond basic axis kinematic animations, additional interactive elements and cell dynamics ca be added to enhance the user experience and realism of the digital twin. Some examples are included in the attached samples.

6.1. Enclosure Door Dynamics


To simulate physical interaction with the working cell, rotation dynamics are applied to the safety doors. This allows the operator to animate opening and closing the cell doors based on discrete state variables or interactive clicks. In the example below the model door is opened after the operator clicks on it (Pick action switches a local variable connected to the Rotation dynamic of the object). In a real-world application this value could also come from a status variable from the machine.



6.2 Emergency Stop Implementation


An Emergency Stop (E-Stop) function is integrated into the attached sample visualization using two distinct trigger methods tied to the same safety variable:
  1. 2D Button: A dedicated push-button control on the 2D interface panel triggering the emergency stop sequence.
  2. 3D E-Stop Element: A Pick Dynamic assigned directly to the 3D model component representing the physical button on the cell panel, allowing operators to click directly on the 3D element.
The simulated version of the model stops its movement after the E-Stop is triggered, which is also shown on the annotation controls.


6.3 Using and hiding annotations


To provide diagnostic information without cluttering the 3D workspace, dynamic status indicators are attached to specific robot joints. This can be done by adding a dedicated Annotation control:


Dynamics can then be added to an annotation just like any other control (changing texts, colors, adding Process Points to display numerical values etc.). They can also be hidden using a local variable connected to a Hide dynamic:



7. Adding a 3D display to an existing visualization

After creating a GraphWorX display with a 3D view of your machine, you can easily insert it into your existing displays using a GraphWorX Viewer control. For example, a new tab with the 3D display can be added to sample robot data screens from this article: