# Enabling End-Users in Designing and Executing of Complex, Collaborative Robotic Processes
## 2 ROBxTASK Overview  
In order to introduce the reader to the general context of this work, we describe user roles, followed by the interaction between roles.  
As briefly mentioned in Section 1, the collaboration platform provides an infrastructure that connects three types of users. This allows to build an organisational workflow to link detailed and hardware-specific implementations with domain experts and robotic end-users.  
The three user roles are described in more detail in Figure 1 and in the following.  
* Robotic Engineer: Users in this role, do not have and do not need any end-user specific know-how. They focus on implementing skills for a specific hardware.
* Robot Co-Worker: Users in this role are focusing on the execution of processes. The robot is a tool only. Users in this role have no specific robotic know-how. For this type of user, the focus is on efficiency and effectiveness of execution.
* Task Designer: Users in this role bridge the gap between end-user domain-specific needs for executions of processes on the one side and robot-specific implementations of tasks that are needed within the processes. Task Designers need know-how in robotic and end-user domain. However, ROBxTASK support eliminates the need for detailed knowledge for users in this role. The tools and approach supports abstraction of details from both domains. Organizational and tooling support includes reuse and sharing of both process models and task module implementations. The task designer is a system integrator on technical level and on organisational level. The platform supports users in this role to collaborate with both other roles. Robotic engineers are contacted to create task-implementations [38] for robotic systems and on the other side robot co-workers need workflows to execute their processes (Figure 2).  
The ROBxTASK platform uses Google's TMBlockly ([[https://developers.google.com/blockly](https://developers.google.com/blockly)]([https://developers.google.com/blockly](https://developers.google.com/blockly)), accessed on 8 May 2023)-Editor on the frontend, which allows users to build appropriate actors/software agents [39; 40; 41] by using the skills of the corresponding robotic devices.  
Figure 1: ROBxTASK user roles.  
The full workflow to create and run an application involves all previously described user roles and can be simplified into five steps:  
1. Robotic Engineer: Implement skills and register a robot on the platform. An engineer needs to implement a server application (e.g., ROS action Server or OPC UA Server), create a JavaScript Object Notation (JSON) based registration file containing all available skills of the target robot, and register the device on the platform.
2. Task Designer: Select a robot target platform for task programming.
3. Task Designer: Create a task design in the Blockly task design editor by using the available robotic skills and combining task modules in any way. May also design a distributed process using multiple robots/robotic devices (see Figure 3).
4. Task Designer: Save the task design project.
5. Robot Co-Worker: Start the project download and run the generated program agents/ actors locally. Note that all robots should be in the same intranet for shared execution.  
Figure 2: ROBxTASK Task and Process Design and Exchange Environment.