# An Overview of Industrial Robots Control and Programming Approaches
## 4 Innovative Control Approaches
### External Trajectory Generator  
As outlined in Section 3, there may be situations where fine motion control is needed, such as for industrial applications requiring specific geometric paths and/or motion laws \begin{table}
\begin{tabular}{l l l l l} \hline \hline
**Ref.** & **Tool Name** & **Environment** & **IR Controller** & **Pros/Cons** \\ \hline
[30] & mxAutomation & PLC & KUKA & All IR commands; easy integration; robust and reliable \\ \hline
[20] & N.D. & PC & KUKA/Comau/Adept & Limited number of IR commands; easy integration \\ \hline
[28] & RAP & PC (Robotstudio) & ABB & Not all IR commands; tested with one slave IR controller \\ \hline
[29] & ABB PC SDK & PC & ABB & Code editing (no command streaming); easy integration \\ \hline
[27] & Fanuc PCDK & PC & Fanuc & Remote variables editing; simple command streaming (e.g., run prog) \\ \hline
[36] & JOpenShowVar & PC & KUKA & Remote variables and structures editing (no command streaming) \\ \hline
[37] & KCT & PC (Matlab) & KUKA (RSI) & Functions for motion planning/control (no command streaming) \\ \hline
[32] & RCV Toolbox & PC (Matlab) & KUKA/Kawasaki & Limited number of IR commands; good command buffer \\ \hline
[33] & pyadept & PC (Python) & Adept & All IR commands; good decoupling between coordinator and slave \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Examples of external coordinators from literature. to be imposed/monitored at the end-effector. Ready examples are robotic machining, handling of delicate objects, precise assembly, and inspection. With reference to Table 1, in such cases, an external coordinator is no longer a valid solution as it only supports the robot's native motion instructions (e.g., joint and linear/circular movements) and fully exploits the internal trajectory planning module to determine the motion profiles via proprietary (inaccessible) algorithms. A readily applicable solution, often proposed due to the little intervention required on the robotic system, is the integration of an external trajectory generator. Obviously, in order to proceed in this direction, the IR controller must first be equipped with proper real-time interfaces that allow externally guided motions. In practice, these interfaces must ensure fast and robust cyclic communication with the external device (e.g., an industrial PC or PLC, as shown in Figure 2b) in charge of the trajectory computation. Adopting this framework, the external position data, eventually computed with a closed-loop approach based on the information received from additional sensors (position or force sensors, as shown in Figure 4), must be cyclically streamed to the robot controller at a specific rate. Since the robot motion is calculated without all the consolidated algorithms and well-tuned parameters of the original robot controller, in sensor-assisted operations, the robot can move unexpectedly due to incorrect signal definition or hardware fault (e.g., sensor malfunctioning). Consequently, proper security checks and safety procedures should be adopted to reduce the risk of danger. Some of the market-available add-on technology packages that allow real-time robot control are the KUKA Robot Sensor Interface (RSI), the ABB External Guided Motion (EGM), and the Fanuc Dynamic Path Modification (DPM). With the RSI, the data exchange can be performed either via Ethernet (UDP/IP protocol) or the I/O system of the robot controller (fieldbus). The RSI System supports two cycle rates, i.e., respectively, 12 ms and 4 ms. The position information must be sent to the RSI module within each cycle, and the received signals influence the robot's movement. To prevent possible damages and respect the servo drive's physical limitations, the RSI also monitors and eventually decreases the commanded correction value. ABB EGM offers the same functionalities but is split into two separate operation modes: (i) EGM Position Guidance and (ii) EGM Path Correction.