## 1 Introduction
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Feature** & **Traditional Industrial Robot** & **Collaborative Robot** \\ \hline Engagement with humans & Segregated. Operates within a protective barrier, away from humans & Interactive. Operates collaboratively with humans \\ \hline Safety near humans & Not safe. Must work separately & Safe to work with humans \\ \hline Environmental awareness & Cannot dynamically adapt behaviour & Can adapt to changes in the environment \\ \hline Programming flexibility and complexity & Fixed, rudimentary use case programs. Typically reprogrammed infrequently & Flexible, customised use case programs. Potentially reprogrammed frequently \\ \hline Ease of implementation & Arduous. Requires fixed infrastructure & Fast set-up and easy deployment \\ \hline Operational behaviour & Fast and repetitious, mainly task focused & Slow and varied. Focus on task and environment \\ \hline Footprint/Portability & Large footprint, fixed location & Small footprint, mobile \\ \hline Purchase cost & Relatively expensive to purchase & Relatively inexpensive to purchase \\ \hline Profitability & Needs medium to large-volume production & Profitable at low-volume production \\ \hline Investment prospect & Slow return on investment & Fast return on investment \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Comparison between industrial robot and cobot capabilities [7; 8; 9]. cobots are typically reprogrammed on a more regular basis [12] as a consequence of their operational flexibility. Identifying the need for a simplified cobot programming method, [PERSON] et al. [12] proposed the implementation of a flowchart-based programming environment. [PERSON] et al. [13] found that to increase cobot autonomy, the complexity of the industrial application and the worker's knowledge of the task should be considered when choosing programming features. [PERSON] et al. [14] presented a task-level programming solution using a skill-based system, with the instruction of cobots by operators with no previous robotic experience. The skills, in this context, refer to generic controls related to cobot capabilities rather than operator skills. To narrow the skills gap between robotics experts and workers who lack programming expertise, a system using expert frames, which focus on specific cobot operational aspects, was proposed. One of these frames relates to program quality and identifies syntax errors, unused code and missing parameters or code segments. An interactive interface allows operators to visualise a cobot operation and modify behaviour in response to feedback data received [15]. Understanding the contributing elements would be beneficial to systematically analyse the effectiveness of existing cobot programming and control methods. However, reviews on foundation data, including existing and proposed cobot programming and control methods in the literature, their intended users and the types of programmable cobot tasks, appear deficient. Furthermore, research on the relationship between cobot programming skills requirements and task complexity is lacking. These are the research gap questions this study intends to address:  
1. What are the common programming and control methods for cobots in the existing market and literature? 2. What bearing does the complexity of a cobot task have on the skills required to program the cobot to perform that task? 3. How effective are cobot programming and control methods in the existing market and literature? Who is the most appropriate worker to implement the methods, and have the methods been suitably developed for that worker?