*Article* **Development of a Dedicated Application for Robots to Communicate with a Laser Tracker**

**Dariusz Szybicki \*, Paweł Obal, Paweł Penar, Krzysztof Kurc, Magdalena Muszy ´nska and Andrzej Burghardt**

Department of Applied Mechanics and Robotics, Faculty of Mechanical Engineering and Aeronautics, Rzeszow University of Technology, 35-959 Rzeszow, Poland

**\*** Correspondence: dszybicki@prz.edu.pl; Tel.: +48-(17)-8651843

**Abstract:** The paper presents the concept of operation and methods of using laser trackers in robotics. So far, a small amount of research on software for sharing and exchanging data with trackers has been done. As a result of the identified demand, a proprietary application for communication between the laser tracker and robots, as well as other software, was developed. The developed solution is based on the software development kit (SDK) provided by Leica and the Python language. The structure and functioning of the developed software were described in detail. The software meets the goals set at the beginning of the design process regarding online communication with the tracker and using the universal, popular TCP/IP standard. The functioning of the developed software was shown in the paper in a few examples related to manipulating robots and mobile robots. The capabilities of the developed software were described, as well as the planned work on its development.

**Keywords:** robot; laser tracker; design of robotic system; mobile robot; measurement in robotics

#### **1. Introduction**

According to the 2022 IRF (International Federation of Robotics) report, based on 2021 numbers, the still dominant industries in terms of robot applications are electrotechnical/electronics (137,000 robots were installed in production), automotive (119,000 units) and engineering ones (64,000 units). Based on the 2020 IRF report about the use of industrial robots [1], the use of robots in machining, deburring, and grinding is growing significantly. Due to the aforementioned facts, one of the challenges of robotics is to increase the accuracy and repeatability of industrial robots. This will make it possible to perform advanced machining or assembly tasks. In certain areas, it will be possible to replace costly CNC machines. Methods to improve the accuracy and repeatability parameters of robots are numerous. Improving stiffness, modifying control systems, or using external systems for measuring and path correction. Using laser trackers is one way to accurately measure TCP orientation position and online correction for industrial robots. A laser tracker is a tool that enables various types of geometric measurements in three-dimensional space. It can be used for automated position control as well as, e.g., for 3D scanning of objects. Its most important elements are the laser interferometer and the absolute rangefinder. Due to their accuracy, robotics trackers are used in testing the accuracy and repeatability of manipulating robots and for their calibration [2–4]. Laser trackers in robotic measurements are used for a variety of applications. In the paper [5], the authors present an innovative methodology for measuring the susceptibility of articulated serial robots, and the laser tracker is used to measure the system's response.

In paper [6], the laser tracker was used to measure the deflection of the robot end effector during comparative tests and optimization of the robot position using static and dynamic stiffness models for various milling scenarios.

The authors of the papers [7,8] ponder how to increase the accuracy of industrial robots with the help of the Leica Absolute Tracker AT960 (Hexagon, Stockholm, Sweden). They propose new methods of calibrating robots with tools in their workplace. These

**Citation:** Szybicki, D.; Obal, P.; Penar, P.; Kurc, K.; Muszy ´nska, M.; Burghardt, A. Development of a Dedicated Application for Robots to Communicate with a Laser Tracker. *Electronics* **2022**, *11*, 3405. https:// doi.org/10.3390/electronics11203405

Academic Editor: Piotr Szymak

Received: 15 September 2022 Accepted: 19 October 2022 Published: 20 October 2022

**Publisher's Note:** MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

**Copyright:** © 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https:// creativecommons.org/licenses/by/ 4.0/).

methods improve positioning accuracy by compensating for the identified parameters. The accuracy of the robots, along with the reduction in calibration time, are key factors in the success of robotic production systems.

In paper [9], the authors discuss assembly operations in the aviation industry, which are time-consuming and require high accuracy. They emphasize that robotic assembly is a good solution that increases productivity, but they point out that the poor accuracy of industrial robots limits their use. They propose to improve it by adding an accurate online 3D positioning system, which consists of the KEYENCE LJ-V7200 vision system (Keyence, Osaka, Japan) and the Leica AT-960 + T-Mac TMC-30B (Hexagon, Stockholm, Sweden) tracking system.

Paper [10] investigated the ability of a laser tracker to measure the relative position and orientation between two mobile Stewart platforms simulating the movement of ships at sea. These ships are exposed to disturbance from waves and have cranes equipped with active compensation systems on board, which keep the cargo at a certain height from the seabed.

In paper [11], a laser tracker was used to improve the accuracy of cable-driven parallel robots. Inaccuracies are caused by deviations in cable lengths caused by elongation, elasticity, or creep.

In paper [12], the authors focus on modeling, measuring, and identifying the change in the kinematic chain of serial articulated industrial robots based on thermomechanical deformations caused by self-heating caused by drives. The assessment of the change in the positioning accuracy of the ABB IRB 1600 (ABB Ltd., Zürich, Switzerland) robot was carried out using a Leica AT960 laser tracker and a FLIR SC640 (FLIR, Wilsonville, OR, USA) thermal imaging camera.

The authors of the work [13] used a laser tracker to improve the absolute accuracy of the ABB IRB 1600 industrial robot. They developed an advanced calibration model that significantly reduced position errors. Similar work was carried out by the authors of [14], who focused on building calibration systems easily adaptable to each robot type. A computer system was built to develop and implement a calibration system. Subsequently, experimental trials were carried out using the IRB2000 robot, which resulted in a large accuracy improvement. Similar works on calibration and improvement of accuracy were carried out by researchers [15–18]. The use of trackers in robotics, however, often goes beyond accuracy testing and calibration. The subject of real-time tracker compensation is discussed in [19,20].

In paper [19], the authors described the idea of compensation for production systems by using external metrological systems to compensate machine tools and robots in real-time. On the other hand, in the article [20], they used direct feedback from the position and orientation of the end effector with the Leica laser tracker to develop an algorithm that allowed for moving along paths at a speed of 100 mm/s with an RMS of only 0.11 mm.

The compensation for errors in production processes in the aviation industry is the subject of article [21]. The authors of that paper show a method of maintaining high accuracy of robot manipulation by continuously tracking the position and orientation of the mounted tool while minimizing errors. The study of parameters of industrial robots with the use of trackers during contact operations is the subject of [22,23]. In paper [22], researchers evaluate the performance of robots during deburring, grinding, and cutting operations in terms of quasi-static path accuracy and repeatability. In article [23], the authors investigate the modal properties of industrial robots during the milling process using a tracker. The applications of laser trackers in robotics mentioned so far concern manipulating industrial robots. In the segment of mobile robots, laser trackers are most often used for calibration or as a position verification tool. Paper [24] presents a method of autonomous loading, transporting, and unloading large objects using a non-holonomic mobile manipulator. The Faro Vantage S6 laser tracker was used to calibrate and verify the operation of the target vision system.

A tracker for calibrating a six-legged walking robot with an integrated parallel manipulator was used in [25]. The authors of this work, after applying the proposed tracker method for validation, identified the kinematic parameters of the entire robot, and the accuracy of the movement of each leg and manipulator was significantly improved. In [26], a laser tracker was used to track the trajectory of a mobile robot based on linkage suspension. Using a tracker allowed for the trajectory of the physical prototype of a mobile robot to be registered and analyzed.

The subject of applications related to recording and sharing data from trackers is discussed by the authors less often than using them to measure accuracy and repeatability. Applications are most often created by manufacturers of individual trackers and are used for metrology. Proprietary software for data sharing and communication with laser trackers is often created. An example of such a solution was shown by the authors of [27]. They developed a real-time control system for the position and orientation of industrial robots using a laser tracker. Via the developed real-time interface, position data is acquired in millisecond cycles and is used to calculate the current errors of the robot path. The EtherCAT bus and a dedicated software solution were used for data transmission between the Leica tracker and the robot controller. Similar research work was presented in articles [28,29]. In these works, the authors show the software they developed for communication with a laser tracker, along with examples of applications. The paper [29] shows the most advanced example of the functioning of an application working behind a PC and communicating with a robot via KUKA RSI (robot sensor interface). The software runs on a Windows PC and supports communication with the laser tracker via Ethernet using the FARO SDK for the laser tracker.

As for other applications of laser trackers, in the paper [30], a laser scanner, alongside a manipulator and a 3D scanner, was used as part of a system for determining the position of small assembly points on large-scale components. The authors indicate that the developed method of a large-scale 3D measurement reduces the maximum and average calibration error of the measurement system by about 55% at a measurement radius of 7 m. An analogous use of trackers is presented in the paper [31]. The paper describes the use of trackers for particle accelerators. Due to their mobility and accuracy, they are used to determine the position of magnets, which is a critical part of its construction and requires tolerances of millimeters at distances of tens of meters. The paper [32] describes the use of multiple trackers forming a trilateration network to improve the accuracy of measuring the flatness of the surface ofa5m diameter ring. The effect of the positioning of the trackers, their number in the network, and differences in the height of the measurement head on the accuracy of po-measurement were presented. In the case of measuring flatness with two trackers placed in the center of the ring, whose height difference is 1 m, the measurement accuracy is ±6 μm.

Laser trackers are used in the construction of devices that require very high-precision manufacturing. Papers [33] discuss the use of a tracker for the precise positioning of particle accelerator systems. To increase precision, several trackers can be combined into a single system, as shown in the example of positioning a high-energy photon source High Energy Photon Source (HEPS) system [34].

Laser trackers can be used not only to validate the accuracy of the manipulators themselves. They are also used to determine the accuracy of various calibration instruments interfacing with industrial robots, such as the case described in the paper [35], where the authors checked the accuracy of a robot's TCP automatic self-calibration instrument.

Another interesting use of a laser tracker is the work [36] where the authors proposed using the tracker to measure the position of the drill stem of a drilling rig. By measuring the ground part, the authors could estimate the shape of the hole drilled by the rig.

The authors of article [37] developed a method of using a laser tracker to program paths of industrial robots. While working on this method, it turned out that it would be useful to develop a universal application that makes tracker data available to various types of robots. In the solution presented there, the data with the positions measured by the tracker was saved on a PC and then loaded from this computer by the robot controller. The presented solution was not universal and was cumbersome to use. In connection with the problem described, work was started on the development of an own application that provides data from the tracker. Software for manipulating robots, mobile robots, and data transferring to popular software used, among others, in robotics, namely the Matlab-Simulink package, was designed and developed. The idea behind the tracker and the developed software will be discussed later. Examples of its applications will also be presented.

#### **2. Characteristics of the Tracker and the Method of Recording and Sharing the Measured Parameters**

Measuring with a laser tracker is often considered a coordinate measurement method. It allows for precise measurements of the position of a selected point in three directions simultaneously. These devices are used in geodesy, scanning large-size objects in 3D, and automated control in industry. When using a laser tracker (Figure 1), it is necessary to install a mirror reflecting the laser beam, the so-called sphere-mounted retroreflector (SMR).

**Figure 1.** Measuring with a laser tracker.

Research work on the own software was carried out with the use of the Leica AT960 absolute laser tracker. It is a very accurate device that specifies its accuracy as a maximum permissible error (MPE). The maximum permissible error (MPE) is defined in the ISO 10360-10: 2016 standard as the highest value of the measurement error allowed in the specification for a given measurement. Table 1 shows the tracker specification according to ISO 10360-10: 2016, Annex E.

**Table 1.** The maximum permissible error of the tracker.


The described tracker and its equipment are part of the industrial robotics laboratory of the Department of Applied Mechanics, Rzeszow University of Technology. The tracker and robots located in the laboratory are used to design and program stations dedicated to aviation industry needs. The tracker was used in the station's design to control the outlet guide vanes (OGV) described in [38]. Tracker measurements were useful when designing a module for geometrical measurements of jet engine blades described in [39]. Geometric measurements taken with a tracker turned out to be useful during the development of digital twins for the purposes of training with the use of virtual reality; this subject was described in [40]. In the mentioned works, the tracker served only as a metrological tool for measuring the geometry of a robotic station or workpieces. The aforementioned work related to programming robots using a tracker caused the need to expand the tracker's capabilities and develop its software.

The tracker was delivered with two types of software offered by the manufacturer. The basic tool for operating the Leica tracker is the Leica Tracker Pilot program (Figure 2a). The program is a graphical interface between the user and the tracker controller. It allows the user to enter all settings into the tracker, save measurements as text files, and perform maintenance and calibration. After establishing a connection with the tracker, the program displays status information, sensor states, and measurement values of the currently tracked object.

(**a**) (**b**)

**Figure 2.** Available tracker software: (**a**) Tracker Pilot software window; (**b**) Inspire software window.

The triggering of measurements depends on the selection of one of the 7 measurement profiles:


The software allows the user to save the collected measurement data to a CSV file. In addition, it also has several tools for checking the measuring accuracy of the tracker

head, reflectors, and measuring probes. Sudden temperature changes, as well as various mechanical influences, may adversely affect the accuracy of the device. Therefore, in addition to checking the accuracy of the Tracker Pilot, it is possible to perform a compensation procedure, which allows for maintaining high accuracy of measurements. The software does not have any tools for the visualization and processing of collected data.

The second program provided by the tracker manufacturer, called Inspire (Figure 2b), a metrology program, is used for this purpose. The software allows the user to create measurement procedures, automating the process of not only data acquisition but also the processing and generation of measurement reports on their basis. The software automatically connects to the measurement devices and supports all 7 measurement trigger profiles for the tracker. The great advantage of this software is the ability to define the dimensions of the shape of the stands for measuring reflectors. Then the software automatically converts the position of the measured point to the point of contact of the stand with the measured surface. The bases can come in various shapes depending on their purpose. The simplest ones are used to measure flat surfaces. More complex shapes make it easier to measure edges or characteristic points of curved shapes. The software can independently recognize the measured shape based on the arrangement of measurement points and adjust the settings for the detected shape. It also allows the user to import CAD files and has tools to define the relationship between the measurements and the shape pattern. In general, the software is very user-friendly, with a large set of advanced features that are intuitive to use. However, it has its limitations. For T-Mac probe measurements, only positions. For robot-related measurements, recording both position and orientation is very important.

Tracker Pilot software records positions and orientations but does not have any tools to process this data. A tool designed for measurements used in robotics is the RoboDyn software, which allows the user to determine the base frame of reference, the tool center point (TCP), based on measurements from the tracker. The software can also measure the accuracy of an industrial robot and perform calibration and compensation of its parameters. In addition, the tracker can work with many other types of software, such as PolyWorks®, Metrolog X4, DM Works, Silma/X4-iRobot, or RoboDK.

All of the software types mentioned above have their advantages and disadvantages. Unfortunately, none of them offers convenient and fast online communication with various types of robots and with the Matlab-Simulink package.

Thus, several possibilities for downloading measurement data from the tracker were considered:


Taking measurements and saving the data to a CSV file is possible in both programs supplied with the tracker, which were described earlier. This approach is convenient for a small number of individual measurements. Exporting a large series of measurements, especially continuously triggered measurements, is cumbersome because both programs we tested do not have formatting capabilities for data export. In addition, such an approach precludes the use of data for real device control. A solution designed for such applications is a tracker add-on called RTFP-EC that allows data to be sent over EtherCat protocol at a frequency of 1 kHz. This is an Ethernet-based communication standard. This protocol allows for achieving high speeds of information exchange and can be used for communication in real-time systems [41]. According to studies reported in papers [42–45], EtherCat is one of the most efficient industrial communication standards available on the market. But its implementation costs are lower than Profinet or Powerlink [41]. Many platforms used in robotics, such as the RaspberryPi, support EtherCat, particularly for controlling drives. The Matlab/Simulink environment also has a set of tools for communication over EtherCat. Unfortunately, ABB's robots do not support this communication standard. Therefore, the authors finally decided to use a simple TCP/IP connection, which will allow ABB's robot

controller and other devices and applications that support an Ethernet connection to receive measurement data. Such a connection transfers data at 50 packets per second [46]. This means that for serial measurements with a high trigger frequency, data is buffered and sent every 20 ms, but without maintaining the timing regime. Thus, it is not suitable for real-time applications. On the other hand, it can be used for robotic metrology processes, registration of robot trajectories, and correction of low-dynamic motion trajectories.

The requirements that were set for the development of the new software included:


Analyzing the available possibilities, it turned out that two leading manufacturers of laser trackers, namely Leica and Faro, offer their own software development kits (SDK). Having a Leica tracker, it was decided to use the SDK offered by the manufacturer based on the NET programming platform. Still, it is also available in other programming languages (e.g., Python). The API, i.e., the application programming interface provided by the SDK, has the structure of an object tree. This approach means that the Tracker object is represented by subobjects containing properties, events, and methods. Their feature is the availability of events informing about changes in the tracker's status. The further part of the paper describes the developed application based on the available SDK and using the Python language.

#### **3. The Application of the Developed Software in Robotics**

The developed application was named LeicaConnector.py. It is a TCP server running on a PC under Windows. Devices implementing the TCP/IP interface can connect to it. The server processes the defined TCP frames and performs functions on the tracker based on the API (Figure 3).

**Figure 3.** The concept of an intermediary program between the tracker and the end device.

The implementation of such an intermediary in communication with a Leica device allows for:


The choice of the Python language, in the context of the design requirements set, is determined by its versatility and universality of use, especially in applications related to the Internet of Things and data engineering [47]. Due to the available SDK, there was an opportunity to use, for example, the C# language. However, given that the software runs on commands, an intuitive direction for its expansion is to integrate further measurement devices, i.e., a 2D scanner or another Motion Capture type position determination system. This approach is another point justifying the use of Python, as due to its popularity, many manufacturers are developing their APIs in it. The described approach of software development ultimately leads to the creation of a universal tool for the acquisition and integration of measurement data. Its processing is the domain of data engineering. In this field, Python is the language of first choice due to the multitude of libraries for data processing and visualization. This is another argument for choosing Python.

The LeicaConnector.py program is based on a configuration file in which, among others, the settings of the graphic interface are saved, the client command codes are assigned to the functions they perform, and the network settings are defined, i.e.,

*[TCP] Ip = 192.168.123.11 Port = 50007 [TRACKER] Ip = 192.168.123.31*

The [TCP] section defines the IP number and port of the server being created, to which the clients connect. The [TRACKER] section defines the default Leica device IP or the simulator name, as shown in the section of the configuration file (the line marked in green is a comment). The LeicaConnector.py interface comprises six sections, identified as A–F in Figure 4.

**Figure 4.** Program interface.

In section A, there is a tracker checkbox. The list of available devices can be updated by selecting the Discover Tracker button. Connection with the selected device takes place by selecting the Connect button, and the correctness of the connection is indicated in the Status field. Section B contains basic information about the configuration of the Tracker, related to the selected target and its configuration (ProbeFace and Tips), the measurement status, and the selected measurement profile. This can be selected by the client by sending the appropriate command in the form of a data frame with the appropriate code. The program allows the user to select several profiles:


In the case of the continuous time and constant distance profile, the configuration frame has a parameter that defines, respectively, the time interval between measurements or the change of the distance for which the measurement will be triggered. Although the default, triggering or ending the measurement is triggered by the client by sending a frame with a defined code. In section C, buttons allow the user to perform these actions from the GUI level. The Clear Text button clears the window in section F, where program logs are placed. Section D contains information about the configuration of the TCP server being created and the list of clients that are connected to it. The client who connected first has the right to issue commands. Subsequent customers only receive the measurement data. Section E is used to select a target and configure it if more than one tip is defined in the tracker controller. In this section, the user can select a measurement profile. This is equivalent to executing the appropriate command by the client. In the case of a continuous time profile and a constant distance, the set interval or distance value results from the value entered in the Const Profile field. Section F is a window where the logs of the program are displayed. LeicaConnector.py requires the following:


In the case of communication with a client in the local network, the IP number of the host should be specified in the IP parameter. Two types of frames are exchanged between the LeicaConnector.py proxy and the client using a TCP/IP connection.

The first type of frame consists of four fields (Figure 5):



**Figure 5.** Basic LeicaConector proxy frame.

A special frame of the first type is the frame with code 210 (Figure 6), the parameters of which param1-param3 correspond to the coordinates of the measuring point (target). Their values (returned by the tracker), due to conversions to integers, are scaled by the constant value of k.


**Figure 6.** Measurement data frame.

When the Laser tracker works with T-MAC probes, the orientation of the T-MAC probe is returned in the form of a quaternion in addition to the position of the point in the tracker's coordinate system. In this case, the measuring frame (Figure 7) has code 211, and its fields are not only positions (x, y, z fields) but also values of the quaternion coefficients (a, b, c, d) scaled by the constant *m*.


**Figure 7.** Extended measurement data frame.

The assumed values of the constants are, respectively, k = 1000 and m = 10,000. Changing them requires modifying the GainPoz and GainRot constants in the configuration file. The frame codes are three-digit numbers, where:


The following command codes and the associated confirmation or error codes were adopted in the developed application:


The example shows how LeicaConnector.py communicates with the client when using a stationary measurement profile. It is assumed that the used retroreflector is visible to the tracker.


In the example shown, the client sends a frame with code 110, which corresponds to triggering the measurement in the stationary mode (the default). In response, LeicaConnector.py sends a frame with the code 210, the next fields of which are the coordinates of the measuring point on the x, y, and z axes. Their values are multiplied by 1000. Hence: x = 1000, y = 1523.234, z = 5432.984. Then (step 4), the client sends another frame with the code 110, requesting another measurement in stationary mode. This one is passed in step 5.

The developed application allows for handling possible communication errors, handling various methods of triggering measurements, and measuring in stationary mode with the T-MAC touch probe. The following part shows the application of the developed software in robotics.

#### **4. Examples of Applications of the Developed Software**

The software presented in this paper was originally developed to communicate with ABB's industrial robots. While working on the aforementioned paper [37], an idea emerged to provide data transmission from a laser tracker. That article concerned using a laser tracker to program the paths of industrial robots, and there is no need to quote the results here. It is important that after developing the software, the communication diagram of the industrial robot laser tracker was modified (Figure 8).

**Figure 8.** Communication diagram between Laser Tracker and Robot ABB.

The introduced modification allows the user to avoid the need to read text files with data. In addition, data transmission is faster, and the algorithms introduced in the future to the application will allow for the automatic determination and translation of robot coordinate systems.

In the further part of the paper, an example of the use of a laser tracker to determine the position of mobile robots is presented in the example of two constructions: a 4-wheel mobile robot with mecanum wheels and a 4-leg mobile GO1 robot.

The Department of Applied Mechanics and Robotics has a 4-wheeled mobile Panther robot manufactured by Husarion, equipped with mecanum wheels. The Raspberry Pi 4 microcomputer with the ROS system, connected via the CAN bus with the STM microcontroller implementing the lower control layer, is responsible for high-level control. Moreover, the robot allows hardware access to motors and encoders and implements the lower control layer using the rapid design environment based on the dSpace signal processor. This approach allows for the implementation of research work on traffic control algorithms or identification of the mathematical model.

In the described example, the Leica laser tracker was used to determine the position of the mobile robot in relation to the tracker coordinate system during the movement (Figure 9), which was carried out in the so-called joystick control mode. This feature is ROSenabled. Successive positions of the mobile robot, understood as positions related to its design of the retroreflector, were saved in the Matlab software using the LeicaConector.py program (Figure 10a). In this case, the laser tracker determined the retroreflector positions in a time-related trigger mode with an interval of 0.1 s.

In mobile robotics, it is important to measure the position on the XY plane. During the drive of a 4-wheel mobile robot with mecanum wheels, measurement samples of the reflector's position were recorded. For the assumed time interval, the first 130 samples correspond to 13 s of the motion of the mobile robot. On this basis, the path of the robot's characteristic point was determined (Figure 11), related to the retroreflector in the tracker system.

The experiment in which the laser tracker determined the position of the robot while moving was carried out in a rectangular corridor. There is a tracker at one of its ends. The second one was the initial position of the mobile robot, as shown in Figure 11. The length of the radius vector

$$\left|\stackrel{\rightarrow}{\mathbf{r}}\right| = \sqrt{\mathbf{x}^2 + \mathbf{y}^2} \tag{1}$$

of the robot's characteristic point for its initial position in the tracker coordinate system is approx. 11 m and for the end position its value is approx. 3.3 m. Moreover, it can be seen from Figures 10b and 11 that the robot's movement was towards the tracker. The path determined by the tracker indicates that the angle between the corridor axis and the OX axis of the tracker system is determined by the relationship

$$\Theta = \arccos\left(\frac{\mathbf{x}\_0}{\left|\stackrel{\rightarrow}{\mathbf{r}}\right|}\right) \tag{2}$$

where x0 is the coordinate of the robot's initial position determined in the first measurement; it is approx. −46.5◦, which is marked in the diagram in Figure 10b.

**Figure 9.** Positioning a 4-wheel mobile robot with mecanum wheels using a Leica laser tracker.

**Figure 10.** Test stand diagrams: (**a**) cooperation of a laser tracker and Matlab software in determining the position of a 4-wheel mobile robot with mecanum wheels; (**b**) scheme of a measurement experiment.

**Figure 11.** The path of the robot characteristic point related to the retroreflector.

Applying a homogeneous transform describing a rotation on a plane having the form

$$
\begin{bmatrix} \mathbf{x}\_{\mathrm{T}} \\ \mathbf{y}\_{\mathrm{T}} \\ 1 \end{bmatrix} = \begin{bmatrix} \cos\theta & \sin\theta & 0 \\ -\sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \mathbf{x} \\ \mathbf{y} \\ 1 \end{bmatrix} \tag{3}
$$

it is possible to determine the path of motion of MRK in the xTyT coordinate system related to the tracker, whose axis OX is parallel to the corridor axis (Figure 10b). The resulting trajectory is shown in Figure 12.

**Figure 12.** The path of the robot characteristic point related to the retroreflector in the transformed coordinate system.

Figure 12 shows that the 4-wheeled mobile robot with mecanum wheels changed its position in relation to xT during the movement. Changes in the position along the yT axis result from imprecise control and skidding of the mecanum wheels.

The example discussed here shows the possibility of using a laser tracker to determine the position of a mobile robot in relation to the adopted coordinate system. Moreover, the known time interval between measurement triggers allows for the determination of the remaining kinematic parameters of the robot. Using the finite difference method, the value of the velocity vector of the characteristic point of the robot with which the retroreflector was associated in the xTyT system was determined. Its course is shown in Figure 13. The waveform shows that the robot movement started before the 2nd second. Velocity values remain negative because its projection on the axis is opposite to the axis direction. The observed changes in the velocity value during the movement are caused by the use of the joystick control mode.

**Figure 13.** Robot characteristic point speed related to the retroreflector in the transformed coordinate system.

The UNITREE 4-legged GO1 robot, shown in Figure 14, is the second structure, the path of which was determined using a laser tracker.

**Figure 14.** UNITREE 4-legged GO1 robot.

The robot weighs 12 kg, and its maximum speed is 4.7 m/s. The design is supported by the Rasberry pi 4 microcomputer and NVIDIA Nano chips, which are associated with five cameras. The construction includes a joystick that allows the user to control the robot and perform predefined movements or select modes, e.g., climbing/descending stairs. From a programming point of view, it is important that Unitree provides a ROS-based API. Like the 4-wheeled mobile robot, the GO1 robot moved along the corridor during the tests (Figure 15). However, in this case, an obstacle with a height of about 77 mm was added. Its presence is to test the ascending/descending stairs mode.

**Figure 15.** Scheme of a measurement experiment for the GO1 robot.

Proceeding analogously to the previous example, the path of the GO1 robot controlled by a joystick on the xy plane was determined, as shown in Figure 16a. Figure 16b shows the path in the transformed coordinate system. In this case, the angle θ ≈ 41.5◦.

**Figure 16.** The path of the characteristic point of the GO1 robot related to the retroreflector in (**a**) the original coordinate system; (**b**) transformed coordinate system.

The fact that the GO1 robot overcame an obstacle placed in the test environment can be seen in the z-coordinate (in the system related to the tracker) of the GO1 robot characteristic point. Its course is shown in Figure 17a. Figure 17b shows the velocity of the characteristic point of the GO1 robot. The presented example shows the legitimacy of using the developed application and the laser tracker to record the trajectory of a walking robot.

**Figure 17.** Graphs of (**a**) the course of the coordinate value on the OZ axis; (**b**) the velocity of the characteristic point of the GO1 robot with which the retroreflector is associated.

#### **5. Discussion**

The presented article is primarily of an engineering nature. The solution review performed was based on our own need for some software to share laser tracker data for robots. Different methods of performing a literature and solution review can be adopted. Here, the process was based on searching for applications useful in industrial and mobile robot research. According to the authors, the available commercial solutions and those described in the articles proved unsatisfactory and lacked versatility.

The adopted criteria the developed software was to comply with were based on the preference for using the Matlab package, ABB industrial robots, and Raspberry pi microcontroller-based mobile solutions. It can be assumed that, for example, in Scilab software, Kuka robots, and STM family microcontrollers, the criteria could be slightly different. Due to the need to develop a totally new application, the Python language and TCP/IP protocol were chosen. The choice made was based on the advantages of the solutions presented and experience in programming in Python and implementing projects using the TCP/IP protocol. Competing solutions based on, for example, the C# language and the EtherCAT standard are possible, but the advantages of the selected solutions proved decisive for the authors.

The developed and characterized software is in the development stage. It meets the adopted criteria and performs the main functions. However, it requires adding functions to expand its capabilities. There is a lack of visualization of measured positions, the ability to import CAD files, and the recalculation of positions with respect to a coordinate system other than the tracker has not yet been implemented. A particularly useful feature will be to recalculate the coordinates of measured points relative to the base system of an industrial robot. This function will appear in version 2.0 of the software and allow for the measurement and direct recording of points useful for programming robot paths or correcting workpiece positions. One of the novelties presented in the article is the selection and identification of tracker applications in robotics. Among the many possible applications of trackers, the authors have limited the examples to this field. In addition, for applications in robotics, the authors formulated specific criteria that the software that shares data from the tracker should comply with. Performance review, along with the advantages of programming languages and communication standards possible to use in such a project, can also be considered a novelty. The software itself is also new, with the characteristics of its construction and operation. After adding the above-mentioned necessary functions, it will be made available to Leica and all interested parties, along with the source code for its use and development. The authors hope that the developed software will be used in solutions where online robot-tracker laser communication from Leica is necessary.

#### **6. Conclusions**

The paper presents the concept of operation and methods of using laser trackers in robotics. The analysis shows that trackers can be successfully used to track the movement of mobile robots. They allow for precise measurements of traffic parameters. An interesting and intensively developed topic is the real-time correction of paths of manipulation robots. The conducted analysis indicates that the applications of trackers are described very widely; however, there is no characteristic of work on the development of software for sharing and exchanging data with trackers. A real-time data exchange tracker is a device that supports TCP/IP communication allowing for building advanced, very precise solutions in various fields. The shortcomings in the tools available on the market and our own demand resulted in developing our own software. The developed solution is based on the SDK provided by Leica and the Python language. The structure and functioning of the developed application have been described in detail. The software meets the goals set at the beginning of the design process regarding online communication with the tracker and the use of the universal popular TCP/IP standard, thanks to which it enables data transfer to most devices available on the market; especially industrial PLCs and robot controllers from various manufacturers. Python, a general-purpose, high-level programming language

with an extensive library package, allows for adding new functionalities to the application. As part of further work, it is planned to expand the program with the automatic creation of coordinate systems and positions measured in relation to them. For applications in manipulative robotics, adding options related to determining the TCP of the robot with the use of a tracker, base system, and calibration of selected robots are planned. In the discussed application, it is planned to add functions related to the correction of TCP online position based on data from the tracker. The real-time correction will be performed based on the position of the robot controller and the position of the tracker. For the correction, it is also planned to use other data sent from the robot in the TCP/IP standard, namely parameters related to the contact force or the process being carried out.

**Author Contributions:** Conceptualization, D.S., P.O. and P.P.; methodology, K.K., M.M. and A.B.; software, P.P. and P.O.; validation, M.M. and D.S.; formal analysis, K.K. and A.B.; investigation, P.O.; resources, P.P.; data curation, P.O.; writing—original draft preparation, D.S.; writing—review and editing, M.M. and K.K.; visualization, P.P. and K.K.; supervision, A.B.; project administration, D.S.; funding acquisition, A.B. All authors have read and agreed to the published version of the manuscript.

**Funding:** This research received no external funding.

**Data Availability Statement:** Data is contained within the article.

**Conflicts of Interest:** The authors declare no conflict of interest.

#### **References**


### *Article* **TCP Parameters Monitoring of Robotic Stations**

**Andrzej Burghardt 1,\*, Dariusz Szybicki 1, Piotr Gierlak 1, Krzysztof Kurc 1, Magdalena Muszy ´nska 1, Artur Ornat <sup>2</sup> and Marek Uliasz <sup>2</sup>**


**Abstract:** The impulse for writing the paper is the observation of the works related to the implementation of robotization of processes such as machining, glue application, welding and painting. The abovementioned processes, in addition to the correct implementation of the trajectory, require the definition of various parameters (e.g., speed) in the robot's software. In the trajectories where the reconfiguration of the robot arms is observed, there are significant errors in the implementation of the defined speed. Robotic technology suppliers, in the event of speed disturbances, manually increase the defined speed value or experimentally select other parameters. It is a cumbersome process, and the lack of information about the process parameters makes it time-consuming and inaccurate. In this paper, one representative process is selected, namely machining performed with various tools by ABB robots. In order for the robotic process to be controlled, it is necessary to compare the defined path with the speed profile. Then, the speed parameters can be controlled and corrected. The approach proposed in the paper allows for improving the quality of implemented robotic processes. It presents the available IT tools for station monitoring and how to use them. The advantages of the proposed solutions and their limitations are shown in the examples of implementation of robotic stations in the industry.

**Keywords:** signal analyzer; tune master; test signal viewer; robot monitoring

#### **1. Introduction**

The motivation of the article is related to previous experiences in the robotization of processes such as machining, gluing, welding, and painting, where it is very important to ensure a defined speed. The currently encountered robots are characterized by the implementation of a path with a very high repeatability in the absence of ensuring a defined speed of movement. This also results from the provisions of the PN-ISO 9283 standard. The occurrence of significant reconfiguration of the robot arm causes large errors in the implementation of the defined speed. Robotic station integrators in the event of speed disturbances increase the defined speed value based on experience. The process of selecting these parameters is time-consuming and requires experience and dedicated tools.

In order to improve the control of a defined robotic process, it is necessary to control the defined path and observe the given speed profile. Then, we can control and correct the speed parameters. All parameters for evaluating the robot path for ABB robots are available in RobotStudio. Other parameters, such as speed, acceleration, contact forces, energy consumption, etc., can be recorded using additional software. The Signal Analyzer option embedded in RobotStudio enables the registration of the robot's kinematic parameters, displacements, velocities and accelerations, both joint parameters and parameters of the TCP (in accordance with the ISO 10218-1: 2011 tool center point—a point defined for a given application, taking into account the coordinate system of the mechanical interface), point motion in various reference systems, and recording of energy consumption, while all

**Citation:** Burghardt, A.; Szybicki, D.; Gierlak, P.; Kurc, K.; Muszy ´nska, M.; Ornat, A.; Uliasz, M. TCP Parameters Monitoring of Robotic Stations. *Electronics* **2022**, *11*, 3415. https:// doi.org/10.3390/electronics11203415

Academic Editors: Piotr Szymak, Stanisław Hozy ´ ˙ n and Paweł Piskur

Received: 30 August 2022 Revised: 3415 Accepted: 18 October 2022 Published: 21 October 2022

**Publisher's Note:** MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

**Copyright:** © 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https:// creativecommons.org/licenses/by/ 4.0/).

the abovementioned data can be saved over a wide time horizon at the station and with a remote method using network communication.

Other external programs for monitoring the operation of robotic stations are Test Signal Viewer, which is designed to measure mainly signals related to the operation of the force control add-on; it gives the option of measuring the force vector in different directions of a defined reference system.

The latest of these is the external Tune Master program, which, in addition to a friendly interface, allows for recording the parameters listed in the previous programs, and additionally allows for recording the parameters of regulators and damping, both for the robot's drive units and for added external systems.

The tools listed above are implemented depending on the problem. The study considered the use of the Tune Master add-on for the selection of the process of robotic machining of the ADT gear body, and the Test Signal Viewer program for monitoring the forces in the process of machining the V2500 engine diffuser.

The Signal Analyzer software was used to control the accelerations affecting the Keyence laser scanner in the processes of controlling the execution of rays and deburring the sharp edges of the aircraft gearbox housing, and in measuring the path correction points during robotic processing of cast iron castings.

The approach proposed in the article enables improving the quality of the robotic processes carried out. It presents the available IT tools for monitoring the parameters of robotic stations and how to use them. On the examples of the implementation of robotic stations in the industry, it shows the advantages of the proposed solutions and their limitation.

#### **2. State of Knowledge**

Almost every leading manufacturer of robots on the market offers tools that allow for recording the working parameters of robots. For example, Kuka offers the KUKA.ProcessScreen software for the visualization, monitoring, and continuous documentation of various types of robotic production processes in real time. It enables data management and documentation, and includes simple tools for analysis. Another tool offered by KUKA AG is the KUKA Connect analytical platform. It allows access to data using a web browser (Google Chrome, Safari, Microsoft Edge) or a mobile application. In this way, databases on the operation of robotic systems can be built and accessed in real time. KUKA iiQoT is the software based on the cloud, in which, thanks to the use of IIoT (Industrial Internet of Things), it is possible to view all interesting information in real time, for both one and many robots.

Another robot manufacturer, Fanuc, offers universal MT-LINK software for monitoring the parameters of not only industrial robots, but also CNC machine tools and other mechanical units.

There are a number of programs that enable the collection and analysis of data from machines and devices in the industry, including robots. These are, for example, SCADA Asix, DASYLab, or the aforementioned MT-LINKs. It is worth paying attention to solutions dedicated only to robots, such as the IXON application, supporting such robot brands as ABB, Aubo, Automata (Eva robot), Comau, Doosan, Epson, FANUC, Hanwha, Kawasaki, KUKA, Mitsubishi, Nachi, Omron, OTC Daihen, Panasonic, Sawyer, Stäubli, Universal Robots (UR+), Yaskawa, and KEBA.

This paper describes the possibilities and the way of using the ABB software for recording parameters of robotic processes.

The most readily available and frequently used data acquisition software is an add-on that is an integral part of RobotStudio called Signal Analyzer.

Its use is very wide, e.g., in article [1] a method of optimizing the energy consumption of robotic stations is presented. The problem is formulated as reducing energy consumption by finding the optimal execution time and sequence of the robot's movements. The result shows a 12% reduction in energy consumption without increasing the cycle time of the stations. A similar problem was discussed in [2], where the change of the acceleration ramp values and the speed of movement of the TCP point were used while maintaining a constant time. An alternative method of minimizing energy consumption can be found in [3], which proposes an algorithm that creates a smooth, collision-free path, taking into account energy consumption. The method of planning the probabilistic road map (PRM) path and the optimization algorithm based on the Dijkstra algorithm were used for this.

Another example is the planning of paths and modeling of robots used in foundries [4] or the optimization of their movement in industrial processes [5]. Other industrial applications include monitoring of laser cutting stations [6].

New information technologies such as virtual reality are used for training [7]; the possibility of virtual generation of complex traffic paths [8] requires knowledge of minimal digital recording of the movement of robotic stations. Obtaining such data is possible thanks to the aforementioned Signal Analyzer program, and this type of application is included in [9].

Together with the development of the addition of force control in ABB robots, the Test Signal Viewer software was launched on the market, dedicated as a solution for monitoring, controlling, and recording the signals of controllers with the IRC5 system [10,11]. The software was mainly designed to record the force values from sensors manufactured by ATI Industrial Automation. Therefore, the main applications of this software are related to processes where forces must be controlled. The main applications are force monitoring in the processes of machining [12] or polishing [13–15]. Robotic joining technologies in which forces play an important role also make extensive use of the capabilities of the Test Signal Viewer software. This applies, for example, to resistance welding (RSW) [16], or the recently very popular friction welding (FSW) [17,18]. It is also worth mentioning that the speed of data recorded by the software allows for vibration and noise analysis [19].

Other examples include assembly operations [20] or manufacturing technologies using robotic plastic processing, i.e., roboforming [21]. The use of additional force control enables the robot to be programmed by guiding the effector by hand [12].

A very original solution for the implementation of a device for energy recovery and storage on a working robot can be found in [22], in which the discussed software was used for analyses.

A newer tool for signal analysis is the Tune Master software consisting of four modules. The first one, called Robot, is designed for the analysis and selection of the dynamic coefficient responsible for damping the oscillations, which significantly improves the implementation of the planned path. The second one, called Additional Axis, has the functionality to display and modify configuration parameters for each mechanical unit in the system. For external mechanical units, it is possible to estimate the friction coefficient to identify parameters in the statistical model using the least squares method. We have the possibility to analyze quantities such as the total moment of inertia, total Coulomb friction, total viscous stick for the motor, gear and arm, and the angle between the center of rotation and the center of gravity. In addition, we have the ability to define the parameters of the PID controller, and define the values of deceleration and acceleration ramps.

The last two modules are Servo Gun and Log Signals, which are used to work with signals generated by mechanical units. Thanks to their application, it is possible to analyze and control the condition of a given machine. They allow for creating reports on the process and showing the influence of external factors on the process.

In the following subsections, the paper presents solutions using Log Signals to monitor and record quantities such as velocity and linear and angular acceleration of robot elements, values of forces, and moments, both driving and resulting from contact, e.g., a tool workpiece. Unfortunately, only one article [23] concerning the accuracy and noise immunity of the IMU sensor installed on a robot was found in the literature on the Tune Master Log Signals software application available to the authors.

Summing up, each of the robot manufacturers offers tools for analyzing and recording signals related to the robot's operation. In the case of their insufficient functionality, universal commercial tools can be used. In our work so far, during the implementation of

robotic stations equipped with ABB robots, three dedicated tools have been used, and they are presented in the following subsections.

#### **3. Application of Diagnostic Software in Industrial Examples**

During many years of work with applications implemented with the use of ABB robots with the IRC5 controller, in practice many tasks would be very time-consuming or impossible to implement. Processes related to force control, minimization of energy consumption, and machining require at a certain stage of implementation information about the process parameters and the possibility of their monitoring and registration. This allows for understanding the phenomena, drawing conclusions and correctly implementing the defined task. Below are presented examples of using RobotStudio Signal Analyzer, Test Signal Viewer, and Tune Masters for the implementation of robotic industrial solutions.

#### *3.1. RobotStudio Signal Analyzer*

The production of parts or components of aircraft engines from the point of view of the plant's order portfolio is characterized by stability over a wide time horizon. Longterm orders for a strictly defined number of parts, on the one hand, allow for long-term production planning and provide a certain financial stability; on the other hand, they do not allow for product development or increasing the number of manufactured components in order to increase profits. The only possibility of increasing the profits from production is to carry out the production process with the least amount of human work and the lowest energy consumption. It is an impulse for optimization efforts that directly translates into the economic result of the enterprise. One of the elements of cost reduction is the optimization of electricity consumption, which we implement for robotic stations using the RobotStudio software add-on called Signal Analyzer.

The process of minimizing energy consumption is presented with the example of a real robotic station used to control the quality of outlet guide vane (OGV) castings. As part of the work to minimize energy consumption, the process parameters were recorded and the changes in the speed of the TCP point and acceleration changes were searched for, so as to minimize energy consumption while maintaining a constant process time. The robotic station this paper concerns is the equipment of the Research and Development Laboratory for Aerospace Materials (Figure 1).

The selection of process parameters allowing for the reduction of total energy consumption by the robotic system was based on the dependence on electricity. The value of the torque produced by the robot's drives is related to the description of the dynamics of the object and depends on acceleration and speed as well as resistance to motion. Summing up, changes in speed and acceleration of movement of the robot's TCP point affect the drive torque in the robot's joints and thus the drive currents, which translates into energy demand [2].

Because the entire program for controlling the thickness of the OGV airfoils of the robotic station includes over 3000 movement instructions, and the execution time is approx. 15 min, the method of selecting accelerations and speeds is illustrated by a simplified real example. Let us assume that the robot's TCP is moved from P1 to P2 (these are the TCP robot trajectory points). Figure 2a shows the point motion parameters such as speed and acceleration, power consumed by the system, and total energy. By changing the motion parameters of the point, namely increasing the speed and decreasing the acceleration value, we can reduce the energy consumption of the system (Figure 2b).

It should be noted that the time needed to travel from P1 to P2 is constant because we assume that the working cycle time of the robotic station is not extended, which is very important in our considerations.

The change of the robot's TCP point motion parameters, its monitoring and registration were carried out using RobotStudio software and the Signal Analyzer add-on. It is a tool that allows for recording a series of defined values at a speed of 40 times per second. The

values of recorded parameters can be observed online in the scaled graphs or saved as text files or \*.xls files. An example of the application window is presented in Figure 3.

**Figure 1.** Robotic station for controlling the thickness of OGV airfoils.

**Figure 2.** *Cont*.

**Figure 2.** Parameters of the movement of the TCP point and work parameters of the robotic station: (**a**) speed, acceleration, power consumed by the system, and total energy; (**b**) changing the motion parameters of the point, increasing the speed, and decreasing the acceleration value reduce the energy.

**Figure 3.** An example of RobotStudio Signal Analyzer application window.

Defining accelerations and decelerations in the RAPID language is possible by defining the percentage value of acceleration and the percentage value of the increase of acceleration. The method of changing the accelerations set by the AccSet function is presented in Figure 4. Figure 4a shows nominal acceleration values, at a maximum for a given station structure. Percentage change of their values is possible, e.g., by using the AccSet function with parameters. The first parameter corresponds to the limitation of the nominal acceleration value as a percentage. In Figure 4b, for example, the acceleration value is reduced to 30% of the maximum acceleration value. The second parameter corresponds to the value of the speed of acceleration increase. In the example in Figure 4c, the acceleration gain is limited to 30% of the standard value.

**Figure 4.** Methods of defining accelerations: (**a**) nominal acceleration values; (**b**) the acceleration value is reduced to 30% of the maximum acceleration value; (**c**) the acceleration gain is limited to 30% of the standard value.

In the work on reducing energy consumption in programmed movement paths, the speed was increased by software, and the acceleration was limited to a constant time.

In the solution proposed in article [2], the choice of parameters was made empirically. The invariable limitation adopted was the path execution time. Acceleration was minimized, and speed was increased until the process was no longer feasible. The most common limitation here was the minimum acceleration value of the robot.

Figure 2 shows a simple example of how it influenced the energy consumption. The same was done for all traffic stages in the real station. The conducted work allowed for reducing the value of consumed energy by 15% while maintaining the process time below 15 min. The proposed method of signal analysis and parameter changes allowed for a 15% reduction in energy consumption by a real robotic station while maintaining the same process execution time. It is worth paying attention to the economic aspect of the cited work, which over a wide time horizon brings significant financial benefits.

#### *3.2. Test Signal Viewer*

The Test Signal Viewer tool allows for selecting the parameters of force control systems. The use of the Force Control (FC) package allows controlling the force exerted by the tool on the workpiece. The use of such a solution enables the robot to interact with the environment by controlling the process using the strategy of FC Pressure or FC SpeedChange. The FC Pressure option enables polishing or grinding of elements with variable geometry

(e.g., castings) while maintaining a constant pressure of the tool on the surface of the workpiece at a constant defined process speed. The idea of this solution is presented in Figure 5a. The use of this function allows the material to be processed at a constant speed and control of the force perpendicular to the processed surface. The tool travel path follows the curvature of the surface.

The FC SpeedChange function (Figure 5b) allows the casting to be machined or the machining allowances to be removed at a speed depending on the existing drag forces. The speed of movement of the robot's TCP point is reduced by the control system when the forces occurring during machining exceed the assumed values. This avoids damage to the workpiece or tool from excessive stress and heat.

**Figure 5.** (**a**) Principle of operation of the FC Pressure function; (**b**) principle of operation of the FC SpeedChange function.

The use of the FCPressure add-on requires the determination of a number of parameters, such as Threshold %, Force Change Rate N/s, Damping-D %, the maximum waiting time for contact (Timeout s), the percentage of the set force with which the robot starts the process (Zero Contact Force %), and the level of filtration for the low-pass filter (Noise level Hz). Regarding parameters, the rate of speed change and the percentage of the set force with which the robot starts the process are correlated with the shape of the trajectory and are selected on the basis of research practice to date. The parameters of the coefficient of force growth and the damping were selected on the basis of the experiment, so that the beginning of the process was characterized by the lack of a cavity in the performed deburring and the resulting treated surface was smooth. The selection of these parameters is related to the type of material being processed as well as the type of tool used and the cutting parameters. Adopting the parameters of the force control system allows for starting testing work aimed at determining the process parameters such as the speed of the TCP point and the value of the contact force between the tool (cutter) and the workpiece. The software tool that allows for monitoring and analyzing the values of sensor forces in different reference systems at different speeds is the Test Signal Viewer software. This software was tested on the machining of parts having a randomly changing shape (the solidification process of the detail introduces a random change of geometry to some extent). This treatment is related to the processing and determination of suboptimal values of the damping factor and the force increase factor. In the research work, the forces and speed of movement of the TCP point were searched for, ensuring the execution of edge deburring within the limits defined by the technological requirements imposed by the PWA 360 standard by Pratt and Whitney. For the tests, a V2500 engine compressor casting made of Inconell 718 was used as a demonstrator. One of the casting elements was selected, namely the so-called triangle-shaped nabe with rounded tips, and the tool used was a multi-flute conical cutter. Photos of the research work are presented in Figure 6.

**Figure 6.** Photos from the research work: (**a**) diffuser view; (**b**) debured naba.

Figure 7a shows the path followed by the robot's TCP point and the system of the adopted reference system in the force control process (Figure 7b).

**Figure 7.** (**a**) View of a trajectory built using RobotStudio; (**b**) a trajectory built using a centered touch panel.

The problem of loss of force control was encountered during the research work (Figure 8a). The manufacturer states that the tool works from the value of the controlled force at the level of 1 N in the Z axis.

For the workpiece, when executing the trajectory along the path (force control in the Z axis of the tool) at the last third turn (Figure 8a), the force control stops working properly. The disturbance of the force control package occurred at the set force of 2 N, and the gradual increase of the feed force minimizes this effect [24]. Figure 8a shows the effect of the decrease in the value of the forces between the tool and the workpiece while moving along a triangular path and Figure 8b shows what the correct trajectory should look like.

It was noticed that the correctness of the performed machining depends on the shape of the surface, and above all, the speed of the TCP point and the contact force. For the defined motion path and the set speed, it was necessary to define the minimum parameters of using the FC Pressure software feature. As a result of the research work, internal documentation was created, specifying for which tools and materials what minimum debris values can be obtained with the use of a robot with the force control software. The entire document was developed as a result of testing and monitoring parameters using the Test Signal Viewer software.

The paper [14] includes optimization of parameters in terms of the width of the deburring performed and the quality of the surface. As an indicator of quality, the sum of squares of lapses relative to the nominal value was proposed, which informs how much error was made in the execution of the deburring. To assess the rate of the shape change (surface quality), an indicator was introduced in the form of the maximum value of the derivative of the function describing the shape change.

**Figure 8.** (**a**) Force registration in case of loss of contact; (**b**) force registration without losing contact.

For this purpose, the deviation from the nominal value was discretized with a set of points. The obtained points were approximated by a third-degree spline function using Matlab/Simulink software. The generated function was then used to determine the proposed quality indicators. The sum of squares of the lapses and the maximum absolute value of the derivative of the error function were used as quality indicators. Juxtaposition of the obtained indicator values allowed for the selection of suboptimal parameters. The resulting parameters in the form of the value of the tool–workpiece contact force and the speed of the TCP at a given nominal value of tool rotation were adopted as the best solution from the available set of solutions. A detailed description of the conducted research is included in [14].

The second problem defined above concerns the selection of the damping and the speed of the force increase. It is related to the quality of the machined surface. As a result of the research work, the indicated parameters were determined for the analyzed diffuser machining process. The experiment consisted in driving along one of the rectangular edges of the sample with a given contact force and recording the force value with variable parameters of the force control system. The course of the experiment is shown in the diagram in Figure 9.

In the first step, the influence of the damping coefficient D on the stabilization of the set force for different values of forces was investigated [25]. In the ABB documentation, the damping coefficient D is a definition of how large a contact force is required for the robot to move at a certain speed. The signals from the force sensor were recorded using the ABB Signal Test Viewer software, additionally exporting the recorded measurements to Matlab

software in order to determine RMS errors. An example of a measurement chart is shown in Figure 10.

**Figure 9.** Course of the experiment.

**Figure 10.** Signals corresponding to the values of forces in various reference systems recorded with the use of Signal Test Viewer software, at the set force 12 N and the damping coefficient D = 100%: (**a**) the signals in the force sensor reference system xS, yS, zS; (**b**) signals in the tool coordinate system xT, yT, zT; (**c**) force error; (**d**) set and actual force.

Figure 10 shows that the signal 209 (related to the direction of the Z axis) along the entire trajectory oscillated around a force command value of 12 N. This value is close to the reference value in this example test. It should be noted that in the initial phase of the robot's contact with the environment, there was a noticeable overshoot of signal 209 to a value close to 17.5 N. The force error diagram shows that throughout the entire measurement, when the manipulator tool was in contact with the workpiece, the force error diagram had quite large oscillations (error values of 2 N and the RMSE value of 1.873567). The second part of the experiment consisted in making and analyzing the measurements with regard to the value of the speed of force changes. A number of tests were performed. An example of a test is presented in Figure 11.

**Figure 11.** Signals corresponding to the values of forces in various reference systems recorded with the use of Signal Test Viewer software, at the set force 12 N and the rate of force increase FC = 75 N/s: (**a**) the signals in the force sensor reference system xS, yS, zS; (**b**) signals in the tool coordinate system xT, yT, zT; (**c**) force error; (**d**) set and actual force.

Figure 11 shows the lack of overshoot in the course of the real force (signal 209). However, this comes at the cost of a higher RMSE mean square error and standard fluctuation. The authors conducted research for selected values of the D coefficient of 150%, 100%, 75%, and 50%. Research was conducted for these coefficients. The results for the coefficient D = 100% are shown in Figures 10 and 11. The selected value of D = 100% was selected experimentally, taking into account the force stabilization and the speed of force change. The appropriate selection of the parameter is an important element in programming, if the manipulator is to perform cutting operations with high accuracy and in a stable manner (this corresponds to the quality of the machined surface) [25–27]. To sum up, the use of the Test Signal Viewer software allows for better use of the Force Control software feature and extends the possibilities of its implementation.

The method of determining the best parameters of damping and rate of force buildup was carried out on the basis of an experimental study, which consisted of making a pass along one edge of a rectangular sample. The value of the tool–sample contact force was assumed, and at different values of damping and rate of force buildup, the correctness of realization of the assumed force was measured.

Thus, the effect of the damping factor D and the force increase factor FC on stabilizing the set clamping force of F = 12 N was tested. Signals from the force sensor were recorded using the ABB Signal Test Viewer application, dedicated to retrieving signal values from ABB's robot controller. Figures 10 and 11 show selected results of the experiment implementation. Figures 10c and 11c show the course of the force value deviation.

Two indicators of the quality of force control implementation were used for the analysis: the root-mean-square error (RMSE) and the standard deviation according to the relationships:

$$
\varepsilon\_{\lambda} = \sqrt{\frac{1}{n} \sum\_{k=1}^{n} \overline{\lambda}\_{k}^{2}} \tag{1}
$$

$$
\sigma = \sqrt{\frac{1}{n} \sum\_{k=1}^{n} \left(\overline{\lambda}\_k - \overline{\lambda}\right)^2} \tag{2}
$$

where: *ελ*—root-mean-square error; *σ*—standard deviation; n—number of samples; k—sample no.; <sup>=</sup> *λk*—contact force error in the k-th measurement; *λ*—arithmetic mean of force value.

In the first part of the experiment, seven tests were performed by varying the damping parameter in the range of 25 ÷ 175%, with a constant force increase factor FC = 50 N/s.

The results of the analysis are presented in the form of a plot in Figures 12 and 13.

**Figure 12.** (**a**) Plot of the root-mean-square error as a function of the value of the damping parameter; (**b**) plot of the standard deviation as a function of the value of the damping parameter.

Figure 12a presents a plot of the root-mean-square error as a function of the value of the damping parameter, while Figure 12b shows a plot of the standard deviation as a function of the value of the damping parameter.

In the second part of the experiment, tests were carried out for eight values of the force increase factor FC in the range of 10 ÷ 150 N/s, with a constant damping factor of D = 100%.

Figure 13a shows a plot of the root-mean-square error as a function of the value of the force increase parameter, and Figure 13b shows a plot of the standard deviation as a function of the value of the force increase parameter.

The smallest values of the root-mean-square error and standard deviation ratios were observed for a damping ratio of D = 75% and a force increase ratio of FC = 30 N/s.

**Figure 13.** (**a**) A plot of the root-mean-square error as a function of the value of the force increase parameter; (**b**) a plot of the effect of changes in the force increase parameter on the standard deviation.

#### *3.3. Tune Master*

Robotization of technological processes related to machining has been carried out in the industry for many years. Robots are used primarily for the operation of CNC machines and the processing of so-called soft materials such as plastics, wood, and aluminum alloys. With the increase in the repeatability and accuracy of robots, the spectrum of their applications is growing. Robots can find application in the automation of manual processes such as deburring, and removal of mold lines on cast elements [28–32]. Due to the low rigidity compared to your CNC, robots will not replace them in the so-called heavy and highly accurate machining. Robots are more and more commonly used where high accuracy is not so important, e.g., in deburring cast iron castings.

As part of the work carried out, a robotic station was developed to machine castings of gearbox housings made as gray cast iron castings made in disposable sand molds. A view of the station model is shown in Figure 14. The station components are described in Figure 15. The idea of the station's operation is based on the use of the IRB1600 robot with a 2D laser scanner, which allows the measurement of fluctuations from the reference model. Then, the position offset of the cutting tool is calculated. The measured workpiece is transported with a five-axis IRBP B250 positioner to the machining zone, the so-called dirty zone. There, the IRB 4600 robot equipped with an electrospindle and tool storage performs the machining of workpieces.

**Figure 14.** Station model.

**Figure 15.** Station diagram: (1) IRB 1600 robot with Keyence measuring head; (2) IRBP B250 five-axis positioner; (3) IRB 4600 robot with electrospindle and force sensor; (4) tool storage; (5) IRB 1600 robot controller; (6) IRB 4600 robot controller; (7) electrical cabinet.

The machined workpiece is a part from the automotive industry in which the time of execution of machining processes is crucial. Therefore, it is important to perform machining as efficiently as possible. In the presented station, the FC SpeedChange software feature was used, which allows, by measuring the force in the cutting direction, for increasing or decreasing the speed of the tool movement. In order to monitor the forces in test work, so as to determine the tool speed change thresholds, parameters such as tool movement speeds and forces in the process must be known. Tune Master software was used to monitor these parameters. An exemplary view of working with the software during tests is presented in Figure 16.

**Figure 16.** *Cont*.

**Figure 16.** Tune Master Log Signal window view: (**a**) registered forces; (**b**) speed ration.

The tuned parameter for this solution was the value of the force at which the robot's TCP feed rate is reduced (Figure 16a, signal 401, red color). This is a very important limiting parameter. With cutting forces (Figure 16a, signal 402, blue color) below the accepted value, the TCP moved with the feed rate specified by the programmer, e.g., 100 mm/s. When the limit value was exceeded, the feed rate was reduced (value 1 corresponds to the speed set by the programmer, picture 16b, signal 403, green color). The limiting force parameter was tuned using Tune Master software. The selection of this parameter was carried out experimentally. The authors set the maximum feed rate specified by the cutting tool manufacturer. Contact forces were then recorded. If the contact force that occurred was safe for the tool then it was taken as a limit and set as a parameter in the software. If this parameter was selected, the cycle time was optimized. Efforts were made to achieve the highest possible TCP feed rate, i.e., the shortest possible machining time for the part. The most important criterion was not to allow damage to the tool. It was checked that the forces during cutting did not exceed the maximum forces allowed by the tool manufacturer. The software and optimization resulted in a machining cycle time of 750 s. On the basis of references from similar projects, it can be assumed that the cycle time without optimization would be 30% longer.

The use of the Tune Master software enabled the optimization and correct programming of the casting machining station, which was implemented in a Kutno foundry powered by Luma Automation. Photos of the work in the laboratory and the implementation in the production plant are presented in Figures 17 and 18.

**Figure 17.** Robotic station during tests in the laboratory.

**Figure 18.** Robotic station in the production plant: (**a**) view of the measuring part; (**b**) view of the machining part.

#### **4. Conclusions**

The paper presented examples of the use of three programs to monitor the operation of ABB robotic stations with the IRC5 controller. Their possibilities, functionalities and industrial examples of use were shown. The presented programs, thanks to the possibility of monitoring, recording, and data processing, can extend the possibilities of implementing robotic stations to more demanding technological processes. The use of the aforementioned IT tools in many cases allows for a significant reduction in the programming time of robots, and in some cases for the optimization of energy consumption, which brings financial gains over a wide time horizon.

In our practice, we have so far used the abovementioned software to carry out such tasks as the development of a robotic process of deburring the edges of parts with variable shape used in aircraft engines with the use of the automatic tool trajectory adaptation system. The work was carried out for the diffuser of the V2500 engine used in Airbus A320 and McDonnell Douglas MD-90 airplanes. Another example is the already mentioned station for measuring the thickness of the segments of the OGVs of the GP7000 engine produced by a wide consortium, including by Pratt and Whitney, used in the Airbus A380 aircraft. In addition, monitoring software was widely used in work on the automation of machining thin-walled aircraft gearbox housings made of light alloys. The research work carried out concerned the deburring of the machined sections of the aluminum ADT housing of the PW1500G engine used in the Airbus A220 aircraft. The aforementioned software was widely used in the selection of parameters for the robotic blade grinding process of the PT6 motor manufactured by Pratt and Whitney. The company also benefited from the work related to polishing the teeth of the FDGS gear wheels. The monitoring of brush wear in the process of deburring the blade locks of the CFM International LEAP engine used in the Airbus A320 and Boeing 737 aircrafts commissioned by Safran Aircraft Engines is another example of the use of monitoring programs. An example of implementation in the automotive industry is the already mentioned work on the development and commissioning of a technology for the production of highly accurate iron castings for the automotive sector, consisting of the machining of cast housings. Research work was commissioned by Luma Automation S.A.

In conclusion, the described possibilities of programs for monitoring robotic processes by ABB can become very valuable information, giving rise to new ideas and solutions, and showing new possibilities of implementing complex processes.

**Author Contributions:** Conceptualization, A.B., D.S. and K.K.; methodology, K.K., P.G. and D.S.; software, A.B., P.G. and K.K.; validation, M.M. and A.O.; formal analysis, M.M. and M.U.; investigation, A.B.; resources, K.K.; data curation, M.U.; writing—original draft preparation, A.B.; writing—review and editing, M.M. and A.B.; visualization, P.G. and K.K.; supervision, A.B.; project administration, P.G.; funding acquisition, A.B. All authors have read and agreed to the published version of the manuscript.

**Funding:** This research received no external funding.

**Data Availability Statement:** Data are contained within the article.

**Conflicts of Interest:** The authors declare no conflict of interest.

#### **References**

