## 3 Existing Cobot Programming and Control Methodologies
### Leading Cobot Vendors' Programming and Control Methodologies  
To provide readers with an overview of the landscape of existing cobot programming and control methodologies, Table 5 lists seven leading cobot vendors and details of their programming and control solutions. A selection of generic programming applications, which provide an alternative to many proprietary developments, are also included.  
The _'Intended User Level'_ and _'Intended Task Complexity Limit'_ fields in Table 5 are broadly based on cobot vendors' statements, including those in Section 4.1 of this paper, and practical reviews of the various applications. The aforementioned fields will be the subject of the comparative analysis presented in Section 6. In addition, _Intended User Level_ references the general skill level definitions stated in [80], with unskilled work requiring little to no independent judgement or previous experience to perform simple tasks; semi-skilled may require close attention and coordination abilities for tasks with some complexity, with decisions made by others; and skilled work, which requires judgement and decision-making abilities while performing more complex tasks.  
\begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Cobot Manufacturer** & **Programming** & **Programming Method** & **Intended User Level** & **Intended Task** & **Source Language/Related** \\  & **Interface/Type** & **Programming Method** & **Intended User Level** & **Complexity Limit** & **Language (If Known)** \\ \hline \multirow{4}{*}{
\begin{tabular}{c} Universal Robots \\ [28,60.61] \\ \end{tabular} } & PolyScope & GUI/Hand guide & Unskilled & Low & Proprietary (URP) \\ \cline{2-6}  & URScript & Textual (Script) & Skilled & High & Python, C++, C/, VB, Java \\ \cline{2-6}  & URSim & GUI/Simulation & Unskilled & Low & Proprietary (URP) \\ \hline \multirow{4}{*}{ABB [62, 63, 64]} & Wizard & GUI/Hand guide & Unskilled & Low & Block-based RAPID \\ \cline{2-6}  & FlexPendant & GUI/Simulation & Semi-skilled & Medium & \\ \cline{2-6}  & RAPID & Textual & Skilled & High & Visual Basic \\ \cline{2-6}  & RobotStudio & GUI/Simulation & Semi-skilled & Medium to High & Proprietary (RAPID) \\ \hline \multirow{4}{*}{Fanuc [65]} & TP (Teach Pendant) & GUI/Hand guide & Unskilled & Low & Proprietary (TP) \\ \cline{2-6}  & Karel & Textual & Skilled & High & Pascal \\ \cline{2-6}  & Roboguide & GUI/Simulation & Semi-skilled & Medium to High & \\ \hline \multirow{4}{*}{Festo [66]} & BionicCobot & GUI & Unskilled & Low to Medium & ROS \\ \cline{2-6}  & Festo Robotic Suite & GUI & Semi-skilled & Medium & Python/ROS \\ \cline{2-6}  & RoboCM & GUI/Simulation & Semi-skilled & Medium & Proprietary \\ \hline \multirow{4}{*}{Kuka [67]} & iOKA OS & GUI/Hand guide & Unskilled & Low & Linux kernel \\ \cline{2-6}  & KUKA Work.Visual & GUI/Textual & Skilled & High & \\ \cline{2-6}  & KRL (KUKA & & & & \\ \cline{2-6}  & Robot Language) & GUI/Textual & Skilled & High & Pascal \\ \cline{2-6}  & Kuka Sunrise & Textual & Skilled & High & Java \\ \cline{2-6}  & Kuka Sim/SimPro & GUI/Simulation & Semi-skilled & Medium to High & Proprietary \\ \hline \multirow{4}{*}{Yaskawa [68, 69, 70]} & Direct Teach (DT) & Hand guide & Unskilled & Low & Proprietary \\ \cline{2-6}  & Smart Pendant & GUI/Hand guide & Unskilled & Low & Proprietary \\ \cline{2-6}  & INFORM II & GUI/Textual & Skilled & High & C \\ \hline \multirow{4}{*}{Omron [71]} & ACE (Automatic Control & \multirow{2}{*}{GUI/Hand guide} & Unskilled & Low & C\# \\  & Environment) & & & & \\ \cline{2-6}  & eV+ & Textual & Skilled & High & MS-DOS/Unix Script \\ \cline{2-6}  & ACE Emulation Mode & GUI/Simulation & Unskilled & Low & C\# \\ \hline \multirow{4}{*}{Generic cobot programming applications (Rob