The deployment of robotic production involves complex design and equipment integration. We create a digital entity representing the workspace and all its components, establishing a connection between these digitalia and real devices.

Through trial runs, using both full simulation and connected real equipment, we iteratively refine both the virtual robotic technological complex (RTC) and its corresponding physical counterpart until the desired result is achieved. Subsequently, leveraging the resulting digital twin, we initiate the cyclical execution of technological operations directly within the production process.

In this article, we will explore the creation of a virtual RTC using RCWorkspace app.

Preparation

First and foremost, we need to determine which components will be involved in the production process. We classify them into three types:

  • Robots – Devices that perform changes in the position of various objects in space. Robots operate with spatial values.
  • Tools – Devices that perform various operations. Tools can be controlled; each operation they perform, or its parameters, is defined by an associated numerical operation code (opcode).
  • Parts – All other objects. This category can include both environmental elements, such as tables and storage units, and items directly processed by the RTC to create the finished product.

Additionally, any complex program for controlling a robotic complex implies the existence of separate computational modules for the Intelligent Machine Agent (IMA), which perform data processing using complex algorithms that are difficult to formalize within the IMA itself.

Once we have identified the necessary components, we need to check the availability of the required modules. Let's assume the modules have been provided to us. They may be built into your version of the RCWorkspace application or supplied as external packages.

Check the list of available modules in the settings – here, you can see the quantity for each type and their names by hovering over the number. To connect external modules, tap the button and select the folder containing the external modules. Now all packages (with robot, tool, part, and changer extensions) will be connected.

We are using the standard RCWorkspace distribution. However, we will also need a set of additional modules. You can download it here.

Next, we create a set of production complex components and combine them in the workspace.

Robots

Let's start by adding a simple robot with a 6DOF kinematic type. To do this, tap and in the displayed view, specify the name and model (from the available modules) of the device. All other components will be added in a similar way.


Now, select the robot card and switch to view mode.

For programming controllable devices – robots and tools – a virtual pendant is used, which can be accessed by pressing the button. Single operations are assembled into executable sequences – programs. Adding, deleting, and selecting programs is available in the corresponding area at the bottom of the pendant-inspector or at the top in the case of the Spatial Pendant (visionOS only).


Since the robot operates with spatial values, its control program is a sequence of target positions to which it directs its manipulator.

The workspace parameters – the rotation and position of its origin, as well as its dimensions – are configured in the corresponding menu. We will set its position along the x-axis to 130.

The current position of the robot's end effector is set by sliders – three for the position (x, y, z) and three for the rotation within it (r, p, w). The position is recorded into the program by tapping the button. This manual guidance of the robot and recording of positions is called teaching. In total, we will create three positional programs:


Down
x y z r p w Speed Type
0 0 80 0 90 0 100 Linear
0 0 4 0 90 0 100 Linear


Pass
x y z r p w Speed Type
0 0 4 0 90 0 100 Linear
0 0 80 0 90 0 100 Linear
0 200 80 0 90 0 20 Linear
0 200 50 0 90 0 10 Linear


Return
x y z r p w Speed Type
0 200 50 0 90 0 100 Linear
0 200 80 0 90 0 10 Linear
0 0 80 0 90 0 100 Linear

For all controllable devices (robots and tools), starting program execution and pausing it is available using the button. Each program element has an execution marker – a light dot on the left. During program execution, it is yellow for the currently executing element, and green for successfully completed ones.

If program execution has been paused, it will resume from the current element. To completely reset the execution queue, tap the button.

Statistical data is also available for controllable devices. You can view it by tapping the button. Statistics are displayed as graphs and multi-level nested lists. Enabling statistical data collection is available via the "Enable Collection" switch. The obtained data can be cleared or saved to a preset by tapping the corresponding buttons.

Tools

Next, we add a Gripper tool.

The tool's control program consists of a sequence of operation codes associated with specific operations or their parameters. The opcode value is selected in the menu next to the add button and recorded by tapping it.

In our case, one program is enough for each operation – closing and opening the gripper respectively.


Execution control and statistics collection are similar to those of robots.

Parts

Let's add the following components – a shaft, a sleeve, and a mounting table. Parts can be assigned a color (if they do not have textures) and physical properties.

Let's set the following physical properties for the added parts: Dynamic, Kinematic, and Static.

RTC Building

Next, we place the created components in the workspace. To add, tap the button, after which we specify the position in space. Any installed object can be edited or removed by tapping on it and the edit button .


We install the table (), the shaft (), the sleeve (), and the robot (). We attach the gripper to the robot; to do this, tap and select the available robot. Since there is only one robot, it will be selected.


The next step is programming the RTC. For this, IMA is used. In our case, a simple sequence of five blocks-performers will be sufficient. In the add menu, select the module type and add by tapping button.


Now let's start the assembly execution by pressing the button (similar to other controllable devices). The executing module is highlighted with a gray dot.

After execution, the scene can be reset. To do this, select Reset in the scene menu.

Conclusion

So, we have mastered the basics of creating a digital entity of an RTC. Everything else is effectively an addition to the basic concept – be it the connection to real equipment in the form of a digital twin, or advanced control algorithms for a production complex.