# An Overview of Industrial Robots Control and Programming Approaches
## 4 Innovative Control Approaches
### External Coordinator  
Approaches that adopt the stream of instructions to the robot controller offer an intuitive programming interface to the operator, which avoids any vendor-specific robot programming language. Robots are programmed in a higher-level environment (e.g., PLC editor or Python) running on an external device, and the elaborated instructions are progressively transmitted to the robot controller, where an interpreter written in its native language is implemented [20]. For this purpose, a standard PC may be used as no real-time communication with the robot is required to transmit instructions and to read/write variables, structures, and registers. Following the schematic reported in Figure 2b, in the last decade, technologies have been developed to stream data and commands between robots and external devices. These can be divided into commercial packages (already released on the market) and research-oriented packages (still under development/refinement). The Fanuc PC Developer's Kit (PCDK) [27] falls into the first group. This is a tool that enables communication of information and instructions between an external PC and a Fanuc robot controller (R-J3 and R-J3 BiB). Some of the PCDK's actions are reading/writing variables and numeric registers, testing, setting, and configuring inputs and outputs, reading/writing positions, and loading/saving programs. Similar solutions offered by ABB are presented in [28; 29]. These customized applications run on an external PC that communicates with the robot controller over a network by means of specific handshaking  
Figure 2: Schematic of the innovative IR control approaches. (**a**) External coordinator, (**b**) External trajectory generator, and (**c**) Open controller. routines. Recently, robot manufacturers have introduced new technologies that make it possible to dynamically stream a sequence of commands to the robot using an external PLC, such as mxAutomation (KUKA), motoLogix (YASKAWA), uniVAL (Staubli), and PLC Motion Interface (Fanuc). The main benefit is that all programming tasks can now be performed through an external PLC (Figure 3), allowing robots and other devices installed in the production plant to be managed from one centralized location (i.e., using the PLC as the external coordinator). These technologies essentially consist of two main parts: (i) a server program that runs on the robot controller and waits for commands coming from the external PLC, and (ii) a coordinator program that runs on the PLC. By employing such PLC libraries provided by the robot vendors, all the original robot commands and parameters are packed into the corresponding data format and subsequently streamed via fieldbus, UDP, or TCP/IP to the server. Here, the received packets are interpreted and then executed, and specific parameters and messages are sent back to the PLC. The use of a single, centralized, robust programming environment extends manufacturing flexibility, facilitates the commissioning of big plants, and reduces their installation and maintenance costs as it lowers the number of interventions and specialized personnel. KUKA mxAutomation appears in [30], where the authors present the use of visual-programming environments that allow the automatic generation of KRL (KUKA Robot Language) code, subsequently copied to the robot. This file-based workflow causes delays between file definition and execution, highlighting the need to link the external computer with the robot directly. mxAutomation is considered a potential solution since it enables the stream of all KUKA commands and feedback data. An industrial application is reported in [31], where two KUKA robots, i.e., one articulated Agilus robot and one LBR iiwa collaborative robot, are remotely controlled to work in a collaborative way to assist workers in lifting heavy loads. The authors call attention to the need to reach an optimal size of the commands' buffer.