LiDAR-Based Maintenance of a Safe Distance between a Human and a Robot Arm

This paper demonstrates the capabilities of three-dimensional (3D) LiDAR scanners in supporting a safe distance maintenance functionality in human–robot collaborative applications. The use of such sensors is severely under-utilised in collaborative work with heavy-duty robots. However, even with a relatively modest proprietary 3D sensor prototype, a respectable level of safety has been achieved, which should encourage the development of such applications in the future. Its associated intelligent control system (ICS) is presented, as well as the sensor’s technical characteristics. It acquires the positions of the robot and the human periodically, predicts their positions in the near future optionally, and adjusts the robot’s speed to keep its distance from the human above the protective separation distance. The main novelty is the possibility to load an instance of the robot programme into the ICS, which then precomputes the future position and pose of the robot. Higher accuracy and safety are provided, in comparison to traditional predictions from known real-time and near-past positions and poses. The use of a 3D LiDAR scanner in a speed and separation monitoring application and, particularly, its specific placing, are also innovative and advantageous. The system was validated by analysing videos taken by the reference validation camera visually, which confirmed its safe operation in reasonably limited ranges of robot and human speeds.


Introduction
Human-robot collaboration (HRC) has become important in industry in recent years, due to the demand for increased flexibility in production environments. In small, and medium-sized, enterprises, particularly, the use of robotic arms has often proved to be uneconomical due to the typically small batch sizes.
The technical specification ISO/TS 15066:2016 [1] provides principles and requirements for the design of HRC applications. One of the four HRC scenarios described therein is called speed and separation monitoring (SSM). The short definition of SSM from this technical specification is also used in this paper: "The robot arm maintains a minimum distance towards the human during the execution of its task to avoid physical contact with the human". This minimum distance is called the protective separation distance (PSD). It is, by definition, the minimum distance which assures that the robot system has the necessary deceleration capability to stop before colliding with a human in the HRC workspace [2]. The PSD is updated in real time after each robot or human movement. It is important to ensure the PSD is as short as possible to avoid unnecessary deceleration and increase HRC efficiency. The introduction of Industry 4.0 concepts brings newer regulatory safety challenges within industrial intelligent human-robot collaboration, as proposed in [3]. Our

Materials and Methods
The presented research aimed at evaluating the performance of a proprietary 3D LiDAR scanner prototype and the associated ICS. The testbed, shown in Figure 1, was set up at the premises of FANUC ADRIA [32]. It includes a FANUC industrial robot arm, the operation of which is controlled in real time by a FANUC robot controller. A human (either an operator or an intruder), an animal, another dynamic obstacle (hereafter, we use the term intruder for all these categories), or a group of them, is also present in the HRC workspace, where he/she/it moves according to pre-prepared relevant scenarios. The workspace is monitored by a 3D LiDAR scanner. The acquired point clouds and the positions of the robot system (the robot arm with a tool and a workpiece), obtained from the robot controller, are processed in real time by the ICS on its associated computer. Although it would be best to place the sensor above the workspace, this is often not possible indoors due to limited height. We placed it out of the robot's reach, on the side where collision between the robot arm and a human was most likely to occur. We defined the distance so that the sensor could still detect all the reference objects defined in Standard EN IEC 61496-3:2019 [33].

Devices, Materials and Validation Software
A new 3D sensor system represents the core of the proposed SSM application. It consists of a proprietary 3D LiDAR scanner prototype (Figure 2a) developed by FOKUS TECH [34], and the ICS, implemented mostly at the Faculty of Electrical Engineering and Computer Science at the University of Maribor. The employed LiDAR scanner was actually developed for safety and inspection applications on railways [35], and, here, we wanted to validate its usability in some different fields as well. It has an operating range of 10 m, detection (horizontal × vertical) angle 40 • × 40 • , horizontal resolution of 0.1 • or 0.3 • , a vertical resolution of 0.1 • to 0.9 • , and an operating temperature range from 5 • C to 40 • C. It operates at 230 V AC with power consumption of 150 W. Table 1 lists the choices of resolutions (transformed into scan lines and samples per line) and scanning speeds in frames per second (fps) available.  The ICS was programmed in C++ and installed on a NanoPi M4V2 single-board computer with a Linux operating system in the presented testbed. The hardware connection between the LiDAR scanner and the ICS computer was by means of an Ethernet cable. The LiDAR scanner pushes the point cloud data in real time as broadcast UDP packets. Every packet contains data for 150 points, along with the timestamp. An EtherNet/IP CIP protocol [36] was utilised for communication with the robot controller. The latter sends the robot joint coordinates and grip status every 8 ms. Commands for robot speed changes are sent in the opposite direction, computed by the SSM or motion prediction ICS modules.
A robot arm, FANUC M-20iD/25 ( Figure 2), was used in the described experiments. It was provided by FANUC ADRIA, together with the robot controller, R30iB Plus ( Figure 2). It is a 6-joint articulated arm with a slim design (curved J2 arm) to enable greater access, with a 57 mm diameter large hollow wrist, internal cable routing, a reach of 1831 mm, and a load capacity of 25 kg. The FANUC ROBOGUIDE software [37], which was used for verification of the developed kinematic model of the robot arm, was also provided by FANUC ADRIA. The robot arm is equipped with a gripper with metal fingers, which carried a wooden cube with sides of 20 cm and weight 0.5 kg (Figure 2b).
An optical camera and a polyester canvas (3 m × 3 m) with printed dots were also used in the system validation setup (Figure 2b). Due to the relatively low scanning speed of the LiDAR scanner, an ordinary camera was sufficient (we recorded videos with 24 fps and image resolution of 1280 × 720 pixels). In the first experiment, a test dummy was used, while our early experiments with a human intruder included a table as an additional safety barrier between the human and the robot. The third point's coordinate is its distance from the sensor. The optimal location of the sensor is determined according to the size of the HRC workspace and the geometry of the viewing pyramid. It is in the range 3 to 8 m from the workspace. The coordinates of all the acquired points are then converted into the right-handed Cartesian coordinate system of the sensor, such that x ∈ [MinX, MaxX], y ∈ [MinY, MaxY] (see Table 1), the Z-axis coincides with the central laser beam (x = 0, y = 0), the horizontal X-axis points to the left, and the Y-axis is defined by Z × X. The distances are measured in metres. In the initialisation phase, the sensor's coordinate system and the robot base coordinate system are registered as described in Section 2.2.1. This is followed by uniform spatial subdivision that arranges the LiDAR points into a regular voxel grid [38]. Structured geometric data with simple topology can be processed in a much easier and quicker way than an unstructured point cloud, and, thus, importantly, the subsequent modules are facilitated. Before the registration, the user enters the ICS settings, which include the LiDAR scanning speed, voxel size, the decision as to whether to use a semi-automatic or direct registration method, measurements for the direct registration (if chosen), and the decision as to whether to use predictions (plus the prediction time delay if predictions are used). The three initialisation blocks are coloured yellow in Figure 3. The other modules (coloured green), which are performed in a loop for each acquired LiDAR frame (the SSM loop in the continuation), are described in separate subsections, except for the conversion to the Cartesian coordinate system, which has already been considered above. The forward kinematics (FK) is described in Section 2.2.2, geometric data segmentation in Section 2.2.3, and motion prediction in Section 2.2.4, while the protective separation distance (PSD) calculation, and speed and separation monitoring are considered in Section 2.2.5.

Geometric Data Registration
The geometric data registration (termed, in short, the registration) is a procedure that determines the transformation that optimally maps two point sets [39]. They are supposed to represent the same scene and must overlap at least partially. In the presented ICS, the registration aims to align the previously time-synchronised LiDAR point cloud and the robot triangulated irregular network (TIN) model [40]. The latter was constructed from the robot arm specifications and put into the appropriate pose by using the robot controller data and the robot's forward kinematic model (Section 2.2.2). The registration is performed in the application initialisation phase. The results remain valid until the location or orientation of the sensor or robot base changes. The possible slowness of the method is, consequently, not problematic. However, the results are crucial for all further steps of the ICS, and, therefore, a high level of accuracy is required. The registration, thus, uses the highest possible LiDAR resolutions (the first line in Table 1). On the other hand, higher frame rates, and, consequently, lower resolutions are, typically, used in the SSM loop.
The registration task is to find the transformation matrix M, which registers points given in the source coordinate system within the target coordinate system. In our case, the former corresponds to the sensor's local coordinate system CS S , while the latter is the robot base coordinate system CS R (referred to as K 0 in Section 2.2.2). As both CS S and CS R address the same physical space, a reasonable requirement is that they share the same measurement units and the same orientations. Thus, M may be considered a rigid transformation, and its content is determined by three translations and three rotations along/around the coordinate axes. The role of registration is to determine the parameters of these six transformations with the best possible accuracy. Several radically different approaches were adapted and tested in the research presented.
Comprehensive reviews of general automatic registration methods can be found, as, for example, in [39,41,42]. Such methods find the transformation by aligning two (or more) geometric data sets, where one is chosen as the target. Two well-rated open-source solutions, PCL [43,44] and TEASER++ [31,45] were tried, but they require strong similarities between the source and target data sets (e.g., a similar number of points, spatial resolution, and points distribution), which our robot TIN model and LiDAR data point cloud could not meet. This task can be facilitated by using some a priori knowledge of the scene, e.g., by first aligning the floor planes (large flat surfaces at the edge of the scene) and then one or more cross-sections parallel to the floor. While this concept is correct, it depends on the input data too much, and is also time inefficient, so we opted for a semi-automatic method rather than automatic ground detection [46,47].
The semi-automatic method requires the user to select three non-collinear points, A, B and C, interactively in both CS S and CS R . The assumption was made here that these two triplets, clicked in two views of a computer-rendered scene, represented the same triplets in the physical world. Furthermore, we assumed that the triplet from the point cloud was also present in the TIN model, but the opposite was not guaranteed. It therefore made sense to select the points in CS S first. This triplet was then used in Equation (1) to establish an intermediate coordinate system CS I with the origin O and orthogonal unit coordinate vectors U, V and W, as shown in Figure 4. Then, M was computed as a composition of two transformations-M S2I from CS S to CS I , and M I2R from the latter to CS R . Note that the system of Formula (1), and the interpretation from Figure 4, must be employed separately for (1) The transformation M I2R from CS I to CS R is given in homogeneous coordinates as the composition of a 3D rotation Rot R and translation Tran R (O R ), as shown in Equation (2): The matrix M I2S from CS I to CS S can be generated in the same manner, but the inverse M S2I , as shown in Equation (3), is actually needed: M is then obtained by Equation (4) as the composition of M S2I and M I2R : In practice, the user is not able to click two triplets of points in a manner that would ensure they coincided perfectly in the physical world. Consequently, there are two intermediate coordinate systems: CS S2I obtained from CS S through the transformation M S2I from Equation (3), and CS R2I computed from CS R by the inverse of M I2R from Equation (2). The complete transformation is shown in Equation (5): M IS2IR is generally unknown rigid transformation from CS S2I to CS R2I . In Equation (4), the identity matrix is used instead, introducing an error which depends strongly on the user's skill and precision. A slight improvement can be achieved by assuring congruency of the two triangles formed by the triplets. The M IS2IR remains unknown, but the error is usually reduced in this way.
Alternatively, the direct registration method can be employed, which determines M by measuring the transformation parameters in the physical world. It usually achieves more accurate results than the semi-automatic method, but it requires more operator time and effort. In the considered setup, the x-axes of CS S and CS R were both horizontal, which meant that only two rotations were needed. Thus, M was determined with 5 parameters: α is the difference between the sensor's and the robot's azimuth, ϕ is the sensor's inclination, and O S2R is the origin of CS S , expressed in CS R . However, the sensor is out of reach of the robot arm, and the origin of CS R is hidden inside the robot, disabling direct physical measuring of the coordinate differences between both origins. The problem was solved by using an auxiliary point P, which can be determined as P S in CS S , and as P R in CS R . In the experiment, the sensor's mirrors were blocked and P S = (0, 0, r S ) was, thus, acquired with the central laser beam. A green visible laser was used to enable the robot arm to touch precisely the same point, this time acquired as P R = (P R .x, P R .y, P R .z). The same central beam could be utilised to determine α, while ϕ must be measured manually. The entire setup is shown in Figure 5. The transformation matrix M is given by Equation (6): The unknown coordinates of O S2R in the last column can be determined from the data acquired by the described measurements using Equation (7):

Robot Arm Forward Kinematics
The forward kinematics (FK) of the robot arm determine the positions of the robot tip or robot tool centre point (TCP) in the robot base or world coordinate system for given values of the robot arm joint parameters. The forward kinematic (FK) model serves as a basis to determine the motion and locations of all the links of the robot system. These results are crucial for alignment of the time-synchronised robot TIN model with the LiDAR data in the geometric data registration (Section 2.2.1) and point cloud segmentation (Section 2.2.3) steps, and for subsequent tasks of prediction of the robot's location (Section 2.2.4) and controlling the robot's speed with respect to PSD (Section 2.2.5).
The FK model for the articulated FANUC M-20iD/25 robot arm was developed using the traditional Denavit-Hartenberg approach [48]. It determines the coordinate systems in a systematic way through a sequence of transformations between them, described by homogeneous 4 × 4 transformation matrices. The first coordinate system K 0 is at the robot base and the last one is K 6 at the robot tip, or K T at the robot TCP. K 0 to K 6 are shown in Figure 6a. The intermediate coordinate systems, K 1 to K 5 , correspond to individual robot joints. The procedure determines K 0 and the positive directions of the robot joints' motion, as well as the robot pose and K 6 (or K T ) when all robot joints are in a zero position. The transformation matrices T 1 0 , T 2 1 , T 3 2 , T 4 3 , T 5 4 , and T 6 5 were determined by Equation (8): where the following values of the Denavit-Hartenberg parameters were used: a 1 = 75 mm, a 2 = 840 mm, a 3 = 215 mm, d 4 = 890 mm, and d 6 = 90 mm (see Figure 6a). Equation (9) gives the FK model of the robot arm without a tool: This model must be equivalent to the FK model implemented within the FANUC robot controller. This was verified by the FANUC robot simulation software ROBOGUIDE [37]. Numerous repertoires of joint position values q 1 to q 6 from Equation (8) were used. A perfect match was confirmed between K 6 , determined by ROBOGUIDE, and K 6 , calculated with our FK model.
In our test setup, the robot arm manipulated a load with the shape of a cube, so it was equipped with an appropriate gripper. Therefore, the robot tool coordinate system K T was added to the FK model, as shown in Equation (10): T T 6 = Tran(x, xt) · Tran(y, yt) · Tran(z, zt) · Rot(z, Rt) · Rot(y, Pt) · Rot(z, Wt).

Geometric Data Segmentation
Before the ICS calculates distances between the robot and any intruders, these latter must be found in the LiDAR point cloud. This is the role of geometric data segmentation, which is performed after the LiDAR coordinate system CS S has been aligned with the robot's K 0 and the controlled HRC workspace voxelised. The segmentation operates in two phases.
The robot is first extracted from the initial scene, which is expected to be free of intruders. The voxels within the bounding boxes of the robot's parts represent the robot, while the remaining material voxels represent either static obstacles or noise. Here, a voxel is considered to be a material voxel if it contains at least one LiDAR point, otherwise it is an empty (air) voxel. This initial segmentation, free of intruders, may also be repeated for different FK-controlled robot poses, to detect eventual material voxels obscured by the robot in previous positions. The static obstacles do not change till the end of the robot programme. Figure 7a shows the material voxels classified as the robot (yellow), static obstacles (green), and noise (red). The latter includes connected areas consisting of nonrobot material voxels, the number of which is below a selected threshold (e.g., 5). Note that green voxels, and, thus, static obstacles near the robot tip belong to the gripper and load, which were not included in the kinematic model when these images were captured. In subsequent frames, the robot is identified in the same way, although its pose might be changed in accordance with FK. Furthermore, the static obstacles remain the same as in the initial frame and can simply be neglected, as the detection of distances between the robot and the static environment has to be provided by the robot's software and not by the ICS. What is left is noise and eventual intruders. The smaller connected segments (below the threshold) correspond to the former, and the bigger ones represent the intruders. The latter are coloured magenta in Figure 7b.

Motion Prediction
In the presented research motion prediction aimed to assess locations of observed objects in the near future (after t sensor , which is the time interval between two consecutive sensor frames) by using the real-time and near-past locations of the observed objects, and to utilise the obtained results to improve the PSD computation (Section 2.2.5). Furthermore, the times of predictions were synchronised with the times of completing the acquisitions of individual sensor frames, which meant that the next frame was actually predicted exactly at the moment when the acquisition of the current one was completed. The use of the motion prediction is optional, as seen from the ICS concept in Figure 3. We further required that the motion prediction method was fast enough (and, consequently, relatively simple, as it was executed periodically at the sensor frame rate) to keep the whole ICS running in real time. There were two types of moving objects that needed to be considered in our ICS: robot links and intruders. A single intruder was predicted in the current solution.
Prediction of the intruder's location considers the following situations: 1. The intruder has just been detected, and is thus present in a single frame only. The prediction is that he or she is moving directly towards the robot with a standard fast walking speed of 1.6 m/s [49]; 2.
There are already two consecutive frames containing the intruder. The constant speed of the intruder between the two frames is computed. The prediction is that the intruder continues motion with unchanged speed in an unchanged direction; 3.
There are already three or more consecutive frames containing the intruder. The intruder's locations from the last three slides are used to assess trends in how the speed and motion direction are changing. These trends are then used in predicting the future position. The intruder's trajectory in this case is a quadratic Bézier curve, i.e., a parabolic arc.
The robot's positions can be predicted in the same way, but it makes sense to take advantage of the fact that its motion is programmed. Although the robot controller cannot provide the ICS with the robot's future coordinates in real time, the robot's programme and, consequently, the trajectories of its links, are, of course, known before the collaborative work starts, and can be provided to the ICS in advance. For this purpose, we used a simple programme written in KAREL (Pascal-based programming language for FANUC robots) [50], which enveloped the actual robot's programme and recorded all the internal robot parameters with a chosen time step (8 ms, which corresponded to the frequency of sending the robot controller's data to the ICS) in a single file. This recording was, thus, performed at realistic robot speeds (set in the robot programme) in the initialisation phase, before the ICS started the SSM operation. This meant that the robot links' locations were actually not predicted, but read, from the list of previously computed locations. The ICS, thus, "predicts" the robot's joints' positions in the following manner: 1.
The robot controller reports the current robot joint coordinates. ICS uses FK to translate them into the positions of the corresponding links; 2.
The ICS must synchronise the real-time trajectory and the stored one. In the described setup, we used a very limited repertoire of the robot's velocities (0%, 50%, 80% or 100% of the original speed from the robot programme), so ICS was able to determine how many stored positions should be skipped from the current one simply; 3.
In the same manner, the recorded positions may be skipped to reach the "predicted" position at a selected future moment.
Note that, at the scanning speed of 4.8 fps, the time interval t sensor corresponded to 26 recorded trajectory positions at full robot speed, 13 positions at 50% speed, and 20.8 positions at 80% speed. Consequently, the latter required interpolation between the 20th and 21st positions.
Motion prediction, realised in this way, is particularly useful if the relative speed of the robot towards the human, or vice versa, is increasing faster than it was before the previous scan frame was processed. This happens when the amplitude or direction of the velocity increases, or the robot and the human simply approach each other in an oblique, rather than a frontal, direction.

Speed and Separation Monitoring
The protective separation distance (PSD) is, by definition, the minimum distance which assures that the robot system has the necessary deceleration capability to stop before colliding with an intruder in the HRC workspace [2]. The PSD depends on the robot's speed and the intruder's speed, and their directions at the moment of observation. Consequently, it changes all the time. Generally, it is computed separately for all pairs of movable parts (robot link/tool/load, intruder's part), but we considered the intruder as a single rigid body. The PSD is computed by Equation (11), described in [1]: where S H , S R , and S S represent the intruder's change in location, the robot system's reaction time, and the robot system's stopping distance, respectively. C is the intrusion distance safety margin based on the expected human reach. Z R is the robot position uncertainty, which can be negligible due to its small amount (typically 0.1 mm), and Z D is the intruder position uncertainty (e.g., due to point cloud registration error, voxelisation, and low scanner resolution). We used a simplified Equation (12), where S H , S R , and S S are replaced with the robot and intruder speeds: where v r is the robot system's speed towards the intruder, v h is the intruder's speed towards the robot system (maximal value 1.6 m/s), t sensor is the time between two sensor scans, t ICS is the delay caused by ICS data processing, and t stop is the robot's smooth stopping time after the stop command is received. We used t stop = 0.512 s, which is the smooth stop time for the FANUC M-20iD/25 robot at the highest robot arm tip speed 2 m/s and the maximal load 25 kg. However, the actual stopping time in our tests with fifty times lighter load and lower robot tip speed was significantly shorter (which increased the chance for false positives, but did not affect the false negatives). Each robot link is represented by the corresponding object-aligned bounding box (aligned with the axes of the local coordinate system of the considered robot joint), while a vertical cylinder, called a safety buffer, is used for the intruder. It has the height of the intruder, extended at the top by half of a voxel's side d. Its central axis CA goes through the centre of gravity computed for the set IV of the intruder's voxels, and its radius r is the dynamically-updated distance from CA to the most distinct voxel v from IV, extended by half of a voxel's side diagonal, as shown in Equation (13): The concept of PSD is closely related to the SSM principle. SSM prescribes that the speed of the robot system must be related to PSD, so that, at any time, the robot has the necessary deceleration capability to achieve a complete stop before coming into contact with an intruder, despite the fact that the intruder is moving towards the robot arm [2]. Due to the limited repertoire of robot speeds used, the optimal speed can be selected easily by checking all the choices and selecting the optimal one. The SSM algorithm is as follows:

1.
Determine PSD for the current situation for all four robot speeds.

2.
Set D = distance between the robot and the intruder.

3.
Choose the maximum PSD below D and set the v r = robot speed related to that PSD.

If (Predictions are used) then
Predict the positions after time ∆t by using the robot speed v r . Determine PSDs for the predicted situation for robot speeds not exceeding v r . Set D = distance between the predicted positions of the robot and intruder. Choose the maximum PSD below D and update v r accordingly.

5.
Send v r to the robot controller.

Validation of the Protective Separation Distance Calculation
We tested the SSM functionality of our ICS in several test scenarios (Section 3.1) with different parameter values. However, self-validation cannot ultimately confirm the performance and safety of the system. An additional validation was needed using a reference measuring device. We decided to carry out tests using the COVR ROB-MSD-3 safety protocol [51], which we were involved in developing in the past. An optical camera was mounted at a height of h Camera m above the part of the workspace where the most intensive HRC activity was expected. It recorded videos with 24 fps and an image resolution of 1280 × 720 pixels. Canvas with a grid of dots was spread on the floor. The dot diameters were 2 cm and the spacing between the centres of the dots was 5 cm. By counting the dots, we determined the distances x Man and y Man between the robot and the intruder in two horizontal coordinate directions, from which we then calculated the Euclidean distance SD Man (Figure 8a). The label Man stands for "measured manually". However, HRC action does not usually take place on the ground, where SD Man was measured. The latter was, therefore, only a projection of the actual distance SD Test at height h Test . This distance was calculated using Equation (14), and is illustrated in Figure 8b. The idea of the validation test was simple. After the robot arm stopped, the intruder also immediately stopped to avoid a collision. It was important that the intruder's speed remained unchanged till this moment. The recorded video was then processed off-line (Figure 9a,b). SD Test was determined from the first frame after the robot stopped. It was then compared with PSD from Equation (12). In fact, we could use a simplified form, Equation (15), since v r and v h were both 0 after the stop. The test was successfully passed if SD Test > PSD, which meant that the robot and the intruder stayed far enough apart that the PSD was not violated. Equation (15) suggests that the validation criterion could be satisfied trivially by choosing low values for the user parameters C, Z R , and Z D . However, these values were not only for validation purposes, but primarily to ensure the functionality of the SSM by the ICS. They could only be changed by the user during the ICS initialisation phase, while the ICS had the possibility to affect the PSD calculation during the operation by adjusting v r in Equation (12) only. The intruder's speed v h could also change dynamically, but the ICS had no impact on it.
Note that the ICS could also be validated additionally, or alternatively, by measuring the time t stop_Man taken by the robot from the start of braking to a complete stop. For this purpose, the last two video frames should be identified, in which the robot still moves at nominal speed. The validation test was passed when t stop_Man < t sensor + t ICS + t stop .

Test Scenarios
We identified four scenarios which addressed all possible types of collisions between the robot system and a human intruder in a controlled HRC workspace practically. In all four scenarios, the robot stopped safely and avoided a collision with the intruder. However, there were situations where the distance between the stopped robot and the intruder was very close, certainly below the PSD. An analysis is done in Section 3.2. Table 2  Note that the load was not included in the FK model. TCP was, thus, considered in the measurements, as shown in Figure 9b. Furthermore, we ignored the intruder's feet, which were not relevant for the experiment. Consequently, one or two lower voxel layers were not taken into account in Equation (13), when calculating the intruder's safety buffer.

Validation Results of the Protective Separation Distance Calculation
In all five considered examples of scenario 1, the test was comfortably passed. However, the results in the column SD Test were scattered between 21.1 and 31.9 cm. This was due, mostly, to the fact that the ICS computed the safety buffer (Equation (13)) in the voxel space, while the measurements were performed in the physical space. The distances between the robot and the intruder at the start of the robot braking could, for example, differ by d · √ 2 ≈ 14.1 cm. The lower deviations of the SD Test from PSD in Scenario 3 were due to the fact that, here, the intruder was facing the robot with his shoulder, which was indeed his closest point to the robot. Namely, he usually approached the robot frontally in scenario 1. The test failed in example 7, which was due to the violation of the safety margin (see Section 4).
As expected, we encountered major problems in the validation of Scenario 4. The test failed in cases 10 and 11, where the fingers of the intruder's left hand were approaching the robot slightly in front of the right hand, making the detection unreliable.
The prediction mode was used in all 12 cases. However, the robot's speed was actually reduced by the prediction only in cases 8, 9, 11 and 12, where the human and the robot were approaching each other obliquely. In case 8, the prediction actually prevented the PSD violation. In cases 9 and 12, the human had already stopped while the robot was braking, so the prediction was not decisive. In case 10, the human's hands were not detected at all, so there was a violation of the PSD. In case 11, the hands were detected too late, when even the predictive mode did not help anymore.
Note that the description of the validation protocol [51] also presents a case of Scenario 2 where only 6 of 10 iterations passed the test. Higher speeds would require a higher sensor frame rate to enable the robot to start braking earlier.

Protective Separation Distance Calculation
Of course, we were not able to validate the methods and test setups of other authors with the described protocol. However, we managed to obtain data to compare the PSD, calculated by our method, with those of two reference methods, on a few selected pairs (v h , v r ). The results are shown in Table 3. Although the two reference methods involved different robots, safety sensors and test setups, the results were, nevertheless, comparable. To stop safely, our robot can, in most cases, start braking at a very similar distance from the human as the robot in the reference method [12] from 2021. In the latter, C, Z R and Z D were completely ignored, otherwise the results would be even closer together. The calculated PSD in the slightly older method [13] from 2012 was mostly longer.

Discussion
A new hybrid method for speed and separation monitoring in human-robot collaboration applications was introduced in the paper. It aligns, peridocally, the geometric data acquired by a LiDAR scanner and an FK-controlled TIN model constructed from the robot specifications and real-time positions obtained by the robot controller. The aligned datasets then serve for scene segmentation, PSD computation and SSM. The presented system passed tests successfully in four realistic scenarios. Furthermore, it was validated against the COVR ROB-MSD-3 safety protocol [51], demonstrating that the tested LiDAR scanner has satisfactory performance to provide real-time HRC workspace safeguarding in reasonably limited ranges of the robot's and intruder's speeds. However, the employed scanner, the ICS, and test setup are still in the prototype phase only. Let us conclude the paper with some further clarifications on the current results, and possible improvements and adjustments to the risk assessments of potential applications. When the validation test reports Failed, the utilised safety protocol [51] prompts the tester to try to identify the reasons for the test failure. These reasons may be the following: • Grey zones. A grey zone is an area in the HRC workspace which cannot be safeguarded all the time due to obstacles between the sensor and this area. • Inability to detect narrow objects. A human arm is a reference object, requiring that two scanning rows or columns at the operational distance should not be more than 5-6 cm apart [51]. • Safety margin violation. This critical situation can arise if an intruder suddenly appears from a grey zone, or is already present close to the robot when the ICS activates the SSM. • Low sensor scanning speed. If t sensor is too long, the speed and direction of movement of the human or robot may change in two consecutive sensor frames in such a way that it is no longer possible to stop the robot in time. • "Out-of-range" v r , v h and/or weight of the load. The validation confirmed the safe operation in reasonably limited ranges of robot and human speeds. The maximum v r = 2 m/s and load capacity of 25 kg were given in the robot arm FANUC M-20iD/ 25 specifications. However, the maximum v h was not defined strictly, and depended on the physical limitations of the individual. PSD = 2.971 m at the standard fast walking speed v h = 1.6 m/s, v r = 2 m/s (see Table 3) and load of 25 kg ensured that the robot arm with a reach of 1.831 m would stop at least 32 cm from a human, which is outside the required minimum PSD = 20 cm (Table 2). On the other hand, human speeds above 1.6 m/s do not guarantee safe operation, as the calculated PSD is often above the dimensions of the workspace, which usually results in safety margin violation.
In future work, it is also worth addressing the following challenges that were not detected directly by the validation procedure: • Advances in models and calculations. The distances from each robot's voxel to the closest intruder's voxel could be found easily, but this calculation would increase t ICS significantly. Therefore, only the local coordinate systems' origins of the robot's joints are considered in the current version of the ICS. The tests in Section 3 were accelerated, additionally, by considering only TCP (see Figures 6b and 9b and Equation (10)), which was indeed the closest to the intruder in most cases. Furthermore, circular moves of the robot links were interpolated linearly. The error compensation was included in the parameter C. • False negatives. Detection of false negatives usually occurs when the calculated PSD is too high, due to the oversizing of individual parameters. Some of these cannot be determined accurately. For example, we used t stop = 0.512 s, which corresponds to the worst-case value (at the highest v r and heaviest load). It is highly important to estimate such parameters in a manner to increase the PSD and not to decrease it. The efficiency may be sacrificed for the good of safety, while the opposite is not allowed. Note that false negatives can also be met during validation, due to the estimation that the intruder and the robot are operating at approximately the same h Test . • Multiple intruders. Two intruders forming a connected voxel region are identified as one. The number of intruders detected may vary through time as they move closer or further apart. This makes tracking impossible. As a consequence, the prediction mode is only useful in situations with a single intruder. Particularly dangerous are situations where an intruder suddenly appears from a grey zone behind another intruder. • Motion prediction. The predictions improve safety slightly by forcing the robot to brake earlier and preventing it from accelerating too soon. They can also make the robot's operation smoother and more efficient. With the current sensor capabilities, a single prediction one frame ahead is acceptable. In general, however, intermediate predictions in the interval between two frames and predictions several frames ahead could also be useful, depending on t sensor , t ICS , v r , and v h .
The following modifications need to be considered to address the above problems and challenges in the future: • An overhead LiDAR scanner and/or multiple scanners represent the only reasonable way to address grey zones. This approach can also significantly improve, or even enable, the detection of multiple intruders when they are not too close to each other. The registration of data from multiple sensors is conducted in the initialisation phase. Therefore, only a slight extension of t ICS is expected, due to the merging of segmented point clouds. Of course, the sensors must be synchronised, as the point clouds to be merged are assumed to be acquired at the same time. In addition, each sensor must be able to distinguish its own reflected laser beam from beams from other sensors. Wearable sensors are a possible alternative, but represent too large a deviation from the presented concept. • Higher sensor resolution would improve detection of narrow objects. • Safety margin violation can be addressed partly, together with grey zones. Besides this, the detection of potential intruders is required before the robot is started, which places additional requirements on the synchronisation of the robot and sensors. • Higher sensor scanning speeds means a simple replacement of the presented prototype LiDAR scanner with some off-the-shelf product. The increased frame rate would make changes between two consecutive frames more predictable. Consequenlty, a higher v h could be allowed, if reasonable in the limited workspace dimensions. Furthermore, a higher scanning speed is also a prerequisite for advanced intermediate and multiple predictions. Finally, the commercial LiDAR scanners typically have an integrated IMU that could, importantly, unprove the accuracy of the proposed direct registration method (Section 2.2.1). • Improved specifications of the system parameters could reduce the number of false negatives detected. • Most of these modifications would increase t ICS and, consequently, require a more powerful computer. The latter would also enable the use of advanced models and calculations.