# An Overview of Industrial Robots Control and Programming Approaches
## 3 Industrial Robot Control System  
Automated production plants are controlled by robust control systems that require little or no human intervention. In general terms, an industrial controller sends commands to the equipment to operate a specific process and receives feedback information that allows it to monitor and determine the correct execution of such commands. Modern production systems are governed and supervised by multiple controllers, namely one or more Programmable Logic Controllers (PLCs) that coordinate the entire process providing I/O exchange, task sequencing, and action triggering, and a group of control units dedicated to single machines or sub-systems (e.g., IRs, Numerical Controls, electric axes, pneumatic/hydraulic actuators and tools, and additional external sensors) [7]. In this way, low-level control logics are still handled and solved locally for each slave controller. In the case of an IR controller, a special architecture comprising both real-time and nonreal-time modules must be implemented in order to be able to process the received requests/instructions and, in parallel, to run advanced motion control algorithms, as shown in Figure 1.  
In particular, adopting a standard IR control approach, the robot's task, namely the sequence of operations and motion to be performed within the programmed working cycle, is defined by the user via a set of instructions coded in a vendor-specific programming language and directly downloaded on the controller unit. Such instructions are progressively read, interpreted, and passed through the path planning and trajectory generation modules [14]. The path planning calculates a feasible path that connects the starting point (i.e., an initial robot configuration) to the endpoint in the end-effector space, whereas the trajectory generator combines geometric and time information and provides as an output of the inverse kinematic problem the motion law in the joint space. Then, the calculated position set-points are cyclically sent to the servo drives, which modulate and deliver the electric current to the servomotors by means of a closed-loop control based on the servomotors' position feedback (i.e., angular encoder mounted on each servomotor). Figure 1: Traditional IR controller schematic. All the described steps are traditionally performed in the IR cabinet, where the servo drives and other electrical components are located. Programming the control logic and the robot task via either online or offline methods (as schematized in Figure 1) is the oldest and most widespread practice in industry. Nevertheless, such rigid approaches lead to the following practical issues (also summarized in Table 1) that strongly impact the IRs' performance and, thus, limit their application in modern, fully reconfigurable production systems. **(1) Time-waste:** Any requested change in a robotic task/sequence/cycle requires an interruption of the plant operation, a manual modification of the robot program, and its subsequent download on the robot controller. Then, before returning the IR to full operability, extra time to reinitialize the system and perform a first movement at a very low velocity is needed by the controller [15; 16; 17], inevitably causing delays in the production system [18]. **(2) Code redundancy:** A modern production line can involve hundreds of robots, each with its own code executed at a local level. In most cases, similar tasks (i.e., procedures within the IR's working cycle) are programmed multiple times within different scripts and downloaded on each IR controller, inevitably increasing the number of robot programs that need maintenance. This condition favors the emergence of failures and increases the time required for any reconfiguration because the operators in charge of updating the code on many stand-alone controllers do not communicate [3; 19].