## 3 Existing Cobot Programming and Control Methodologies
### Controlling Cobots without Formal Programming
#### 3.5.2 Proposed Cobot Control Methods in Recent Literature  
The benefits of assigning cobots to small-batch agile production [81] can be eroded by the requirement for more frequent reprogramming [7], especially if there is a need to continuously hire skilled programmers [12]. However, by simplifying programming and control methods sufficiently, workplace operators, rather than dedicated programmers, could intuitively program the cobots [82]. In this case, there would be greater potential for increased cobot utilisation since the programming role would be open to a broader range of workers. Since cobots are designed to interact closely with human workers, who have extensive knowledge of the task being undertaken, programming the cobots by the same workers would seem to be a logical part of the collaboration. With an emphasis on the task rather than the program, a Skill Based System (SBS) allows a robotic novice worker to use a graphical interface to map skills relating to a task, which equates to individual robotic actions. As shown in Figure 3, these skill entities are used as parameters to initiate the kinaesthetic configuration of a cobot's joints [14]. For some prospective programmers,  
Figure 2: Programming UR5e with the teach pendant and hand guiding by a human operator. however, the first step will be to overcome their fears of programming and technology and accept cobots as collaborative partners rather than their future replacement [19]. One approach in the quest for a more comprehensible programming experience is a block-based interface, where pre-programmed modules can be selected and placed in a desired sequence by novice users, as shown in Figure 4[83]. This type of drag-and-drop interface has two key advantages over text-based programs. Firstly, the blocks, written in simple language, are designed to be intuitively arranged by a novice while providing visual cues as the program develops. This allows the user to focus on the task's workflow rather than the program's syntax, which relates to the second advantage. Each block can be considered a pre-programmed function, which is syntactically correct and, along with the other blocks in a sequence, collectively compilable [84]. Layered Block-Based Interface  
A layered approach to block-based programming provides users with different skill levels and the flexibility to carry out programming tasks with a complexity level that matches their ability. From workers with little technical skill generating basic assembly workflows to those experienced in programming and robotics undertaking more complex programming tasks, a three-layered approach caters for a broad range of user abilities and task complexities in a single system (refer to Table 6) [24]. Figure 4: Block-based programming editor with a virtual industrial robot (Adapted from [83]). Figure 3: An example of a skills-based system with 3 abstraction layers is used to configure cobot joint settings [14] (by permission). A validation process is used between gestures in a task-managed system to prevent undesired sequences from executing. In their work, users can decide to return to a previous save point of the program by way of a predefined human gesture [92]. In these systems, operators would need to be suitably trained on the range of valid speech and gesture commands. Virtual Reality Systems  
Moving further away from traditional programming and closer to a gaming platform, there is an immersive cobot control method. Controlling a physical cobot from a virtual environment is a concept that replaces a standard cobot interface console with a virtual reality (VR) system, which is connected to the cobot's controller mechanism. From within the virtual environment, a human can control a virtual cobot (a virtual representation of a physical cobot), with the inputs stored in a dedicated database so that the cobot's trajectories can be visualised in real-time or reproduced from stored values [93].