*Article* **Industrial Robot Positioning Performance Measured on Inclined and Parallel Planes by Double Ballbar**

**Ivan Kuric 1, Vladimír Tlach 1,\*, Milan Sága 2, Miroslav Císar <sup>1</sup> and Ivan Zajaˇcko <sup>1</sup>**


**\*** Correspondence: vladimir.tlach@fstroj.uniza.sk

**Abstract:** Renishaw Ballbar QC20–W is primarily intended for diagnostics of CNC machine tools, but it is also used in connection with industrial robots. In the case of standard measurement, when the measuring plane is parallel to the robot base, not all robot joints move. The purpose of the experiments of the present article was to verify the hypothesis of the motion of all the robot joints when the desired circular path is placed on an inclined plane. In the first part of the conducted experiments is established hypothesis is confirmed, through positional analysis on a simulation model of the robot. They are then carried out practical measurements being evaluated the influence of individual robot joints to deform the circular path, shown as a polar graph. As a result, it is found that in the case of the robot used, changing the configuration of the robot arm has the greatest effect on changing the shape of the polar graph.

**Keywords:** industrial robot; renishaw Ballbar QC20–W; positional analysis; measurement

### **1. Introduction**

The constant increase in automation in industrial areas is also related to the increasing share of industrial robotics applications. According to a press release issued by IFR (International Federation of Robotics), almost two million new robots are expected to be installed in manufacturing plants worldwide between 2020 and 2021 [1]. One of the first steps in creating a robotic application is a selection of a suitable robot according to certain parameters [2]. Key features include workspace size, load capacity, and also the number of controlled axes. Depending on the specific task that will be automated by the industrial robot, the so-called performance criteria are also important.

Performance criteria allow a more detailed look at the robot features. One of the bestknown performance criteria of industrial robots is the pose repeatability, which expresses the ability of the robot TCP (Tool Center Point) to repeatedly return to a defined position in the same direction [3,4]. Pose repeatability is also the performance criterion most frequently mentioned in technical data sheets by industrial robot manufacturers [5]. In addition to the performance criterion above, there are many others, all of which are defined in the ISO 9283 standard. This standard defines the individual performance criteria, the method of their calculation, together with the recommended conditions for their measurement [6].

ISO 9283 is further elaborated on in the respective technical report ISO/TR 13309, which aims to provide an overview of metrological methods and measuring equipment for measuring performance criteria [7]. Numerous scientific papers also deal with the issues related to measurement of the performance criteria of industrial robots. In most cases, these measurements are performed using indicators [8–11], laser trackers [12–14], vision systems [15–17], or laser interferometers [18–20] primarily intended for measuring

**Citation:** Kuric, I.; Tlach, V.; Sága, M.; Císar, M.; Zajaˇcko, I. Industrial Robot Positioning Performance Measured on Inclined and Parallel Planes by Double Ballbar. *Appl. Sci.* **2021**, *11*, 1777. https://doi.org/10.3390/ app11041777

Academic Editor: Subhas Mukhopadhyay Received: 29 January 2021 Accepted: 15 February 2021 Published: 17 February 2021

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

**Copyright:** © 2021 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 properties of CNC machine tools. These measuring devices satisfy the classifications and methods described in the above technical report to varying degrees.

Furthermore, in professional publications, a double ballbar type of a device is experimentally used to measure performance parameters of industrial robots [19,21–23], which, same as the laser interferometers, are primarily intended for evaluating the condition of CNC machine tools [24]. At the Department of Automation and Production Systems, several papers have also been published related to the possibilities of using the given measuring equipment in connection with industrial robots [25–28]. The principle of measurement with the Renishaw Ballbar is based on movement along a circle or an arc with a fixed point of rotation, while a real distance of moving part from the center of the rotation is compared to the ideal one and then the deviations are recorded. Actual measurement utilizes a precise linear encoder [29]. The use of this device in connection with industrial robots is not specified in the standard (ISO 9283) nor in the technical report (ISO/TS 13309) nor in the standard that describes intended usage of such device (ISO 230–4).

The necessity for knowledge of real values of performance criteria is important not only in the creation of a new robotic cell, in connection with the selection of a suitable industrial robot, but also in robotic applications where the industrial robot has been performing a given task already for some time. These are mainly applications that are more demanding on performance criteria, their stability, or predictability of their development thru time. Such tasks are, for example, precision assembly, a dimensional inspection that implements 3D scanners or measuring probes, etc. [25,30]. In such cases, the measurement of performance criteria is necessary to monitor the robot's technical condition or to troubleshoot existing problems. Early detection of changes in the robot's technical condition may prevent a negative impact of these changes on the work process of the robotic application.

The presented paper deals with the measurement of an industrial robot using a double ballbar type of device-Renishaw Ballbar QC20–W. Specifically, its implementation for measurements with a circular motion path located on an inclined plane, resulting in the motion of all six joints of the robot performing a given TCP movement. The measurement conducted in this way provides a significant amount of information about the robot's current technical state, which can be used in connection monitoring or in the troubleshooting process.

#### **2. Motivation**

As indicated in the introduction, several measurements with the Renishaw Ballbar QC20–W involving industrial robots were carried out in the past at the Department of Automation and Production Systems, and the results have been published [25–28]. In most cases, these were basic measurements in the XY plane, parallel to the base plane of the WCS (World Coordinate System) and, at the same time, parallel to the robot base. The measurements were done on Fanuc robots, where the WCS is represented by a fixed coordinate system defined by the manufacturer. The same orientation of the measuring plane in the robot's workspace has been chosen by other authors in their papers too [19,21,22]. The said basic type of measurement requires completing two circular paths in the XY plane in a clockwise direction (CW) and two circular paths in the opposite direction (CCW) [31,32]. Figure 1 shows the course of the motion of the individual robot joints (J1 through J6), during the TCP movement in a circular path in the clockwise direction. The graph shows data that was created in the Creo Parametric 5.0.4.0 program using movement simulation of the model of the Fanuc LR Mate 200iC robot, with the simulation conditions given in Table 1.

**Figure 1.** The course of the motion of the individual robot joints during the TCP movement in a circular path in the XY plane.

**Table 1.** Conditions for creating the circle in the XY plane.


The graph in Figure 1 shows that when the measuring is done in the XY plane, the J4 joint is static for the entire duration of the TCP moving along the circle, therefore, it can be said that the results do not take into account the possible negative effect of the J4 joint motion or that the given results correspond to only one specific position from the range of the J4 joint motion. Regardless of the above statement, the measurement in the XY plane is informative and can be used to evaluate the robot's technical condition. For example, in one of our papers [25], a measurement in the XY plane was used to evaluate the effect of calibration on the accuracy of the resulting movement of the robot's TCP.

In the case of CNC machine tools, to evaluate the effect of movement of all three linear axes (X, Y, and Z), the so-called volumetric analysis, consisting of measurements in three mutually perpendicular planes XY, ZX, and ZY, is used. During the measurement in the XY plane (see Figure 2a) two standard clockwise and two counterclockwise circles are made. In the ZX and ZY planes (see Figure 2b,c) two semicircular paths in the range of 220◦ are measured, again one in the clockwise and the other in the counterclockwise direction [33,34].

**Figure 2.** Circular paths in individual planes for volumetric analysis. (**a**) plane XY; (**b**) plane ZX; (**c**) plane ZY.

To verify the possibilities of the volumetric analysis application on industrial robots, a series of measurements were performed in the past on two industrial robots Fanuc LR Mate 200iD and LR Mate 200iD/7L. The circular path and circular arcs with a radius of 100 mm, necessary for measurement purposes, were created through standard programming commands for Fanuc robots. Further information on the measurement conditions is given in Table 2.


**Table 2.** Measurement conditions for volumetric analysis.

E–117096 and E–109256 represent the serial numbers of the industrial robots used.

The measurements were evaluated in the Ballbar 20 software, with Figures 3 and 4 showing polar graphs of one of thirty repeated measurements for each plane and for both Fanuc robots. In addition to a more detailed analysis of the measurement results, two observations are important for the purposes of this paper.

**Figure 3.** Polar graphs of the volumetric analysis evaluation—LR Mate 200iD.

**Figure 4.** Polar graphs of the volumetric analysis evaluation—LR Mate 200iD/7L.

The first is the "solid line", which is apparent on the polar graphs for the ZX and ZY planes when measured on the LR Mate 200iD/7L robot (Figure 4). This phenomenon occurs due to the continuation of value recording even during the exit at the end of the measurement. As part of the measurement with the Renishaw Ballbar QC20–W, the data recording process is started and ended by entering and exiting the measuring radius. In the case of measuring a circle or a circular arc with a radius of 100 mm, the measurement is started by infeed, a linear movement from the radius of 101 mm to a value of 100 mm, followed by a movement along the circular path itself. On the contrary, after completing a circular path in one direction, the measurement is ended by a feed out, a linear movement to a radius of 101 mm. If the data were also recorded during the feed out from the measuring radius, then this fact is reflected in the already mentioned "continuous line", observed on the polar graph. This phenomenon can be prevented by extending lengths of the infeed and the feed out to more than 1 mm, or by adjusting the speed during these movements. However, in the case of the measurement conducted on the LR Mate 200iD/7L robot, neither of the measures mentioned was effective, and the said phenomenon occurred in all of the thirty repeated measurements. The results of such measurement are skewed

and in order to be used, the data need to be additionally filtered. However, the need for additional filtering results in the necessity for a longer time and more complex processing and evaluation of the measurement. Furthermore, it should be noted that the source of the phenomenon described could also have been the linear sensor used in the measurement. However, in order to refute this claim, further measurements would have to be conducted.

The second of the mentioned observations in the implementation of the volumetric analysis is related to the motion of the industrial robot's individual joints. Figure 5 shows the course of the motion of all six joints of the LR Mate 200iD robot during the TCP movement along a circular path in the ZX plane, within the volumetric analysis. As the graph makes apparent, the J4 joint is static during the entire movement. The situation is the same in the case of the ZY plane. It follows from the above that even in the case of applying the volumetric analysis on an industrial robot, the motion of the J4 joint is not achieved during the measurement.

**Figure 5.** The course of the motion of the individual robot joints during the TCP movement in a circular path in the ZX plane.

In all the presented methods of measurement, whether using a circle or arched paths in the case of the volumetric analysis, the robot's TCP has always moved only in one of some perpendicular planes of the cartesian coordinate system. At the same time, the "Z" axes of the tool coordinate system and world coordinate system were parallel during movement in each of the measuring planes. Therefore, it can be assumed that if both mentioned axes formed a certain angle, the J4 joint would be non-zero and would participate in the given circular motion. One of the possible solutions to achieve the J4 joint motion is to place the desired circle at a certain angle in the robot's workspace. I.e., placing the circle on an inclined plane. With the measurement path designed in this way, it is necessary to verify the correctness of the statement in connection with the J4 joint motion and, at the same time, the possibilities or the ability to conduct measurements with Renishaw Ballbar QC20–W. In the present paper, this hypothesis has been verified, with a positional analysis of the robot's movement in Section 4 by the Creo Parametric 5.0.4.0 system, and inSection 5 by a real measurement done on an industrial robot Fanuc LR Mate 200iC, located in the laboratory of our department.

#### **3. Experiment Preparation**

The LR Mate 200iC robot was chosen to conduct the measurement on, with the selection of the position and orientation of the desired circular path in the robot's workspace being the first step. For this purpose, information from the ISO 9283 standard was applied, where the recommended procedure for measuring performance criteria is based on the so-called ISO cube. It is an imaginary cube, its vertices marked C1 to C8, and it is placed in the robot's workspace, with its edges parallel to the robot's basis or its world coordinate system. Based on the industrial robot type, a plane containing points is placed in the said cube, with the points defining the individual paths used for measuring the performance criteria. In the case of robots with six controlled axes, the inclined plane determined by the vertices C1–C2–C7–C8 is selected (see Figure 6) [6]. For the purpose of the experiment, a

circle required for conducting the measurement with the Renishaw Ballbar QC20–W is be placed on this plane.

As for the circle diameter, a basic nominal radius of 100 mm, which had been used in the past experiments, was chosen so that it would be easier to compare the measurement results. Furthermore, it was necessary to determine the position of the ISO cube or the center of the circle in the Fanuc LR Mate 200iC robot's workspace. The base consisted of the coordinates of the center of the circle, used in the present volumetric analysis (see Table 2). However, this position was adjusted so that when the circle was tilted below the angle of −45◦, the measuring apparatus did not collide with the workbench on which the Fanuc robot was placed. At the same time, the possibilities of the robot arm's reach in the movement along a defined path were also taken into account. As a result, the coordinates of the center of the circle {X = 200; Y = 400; Z = −200} were defined by the Fanuc Roboguide HandlingPRO 8 software.

Two possible configurations of the robot arm correspond to the defined position and orientation of the circle, as well as to the circular path required for the measurement. Specifically, this is a configuration related to the J5 joint position, which is referred to as the N–NOFLIP (joint J5 < 0◦) and, as an F–FLIP (joint J5 > 0◦) position in Fanuc robots [35]. Both configurations are shown in Figure 7. The measurement was done for each of the two possible configurations of the robot arm.

**Figure 7.** Jigs for measuring in two selected measuring plane. (**a**) NOFLIP configuration; (**b**) FLIP configuration; (**c**) NOFLIP configuration.

To carry out practical measurements, two jigs were designed and manufactured through 3D printing. These allowed the measuring apparatus to be clamped to the robot's workbench while maintaining the defined coordinates of the center of the circle. The first of the jigs enabled a measurement at an angle of −45◦ (Figure 7a,b). The second jig was used to conduct a standard measurement in the XY plane parallel to the benchtop (Figure 7c) while maintaining the same coordinates of the center of the circle as was the case with the inclined plane.

The robot's control program was created in such a way that the center of the circle of a given radius was at the beginning of the User Coordinate System (UF) defined concerning the robot's WCS. Through a change in the position or the orientation of the user coordinate system, the program thus created allows a change in the position and orientation of the emergent circle. Thus, the same program is actually used for the desired circle on an inclined plane at an angle of −45◦ and for the circle in a plane parallel to the benchtop. The programs created in this way are to some extent universal, as they can be used for any position and orientation in the robot's workspace and can also be used on another Fanuc robot. The relative position and orientation of the user (UF) and tool coordinate system (TF) used in the conducted experiments are shown in Figure 7.

#### **4. Positional Analysis in the Creo Parametric System 5.0.4.0**

To verify the influence of the selected orientation of the circle on the motion of the robot's individual joints, a positional analysis was created in the Creo Parametric system 5.0.4.0. For the purpose thereof, a simulation model of the LR Mate 200iC robot was created with the kinematic constraints applied. Zero positions of the individual robot joints and their range of motion were defined, corresponding to those of the real robot. The position of the TCP and of the individual coordinate systems was also defined, as was the case with the experiments on a real robot. The simulation conditions are given in Table 3.

**Table 3.** Simulation conditions for positional analysis.


The center of the required circular path was located at the zero of the local coordinate system, while its position relative to the WCS robot is shown in Table 3. The circular path itself was created through an inverse kinematics task, by defining the so-called servomotors in the individual axes of motion of the Cartesian coordinate system. The cosine function was used for the direction of the X and Y axes, with its general shape in the Creo Parametric system being the following (1):

$$\mathbf{q} = \mathbf{A} \cdot \cos \left( 360 \frac{\mathbf{x}}{\mathbf{T}} + \mathbf{B} \right) + \mathbf{C} \tag{1}$$

where the coefficients A = amplitude [mm], B = phase, C = offset [mm] and T [s] represent a period [36]. For the X, Y–axis direction, the required radius of the circle of 100 mm, and the clockwise movement, the given function has the following form (2), (3):

$$\mathbf{q} = 100 \cdot \cos \left( 360 \frac{\mathbf{x}}{360} \right) \tag{2}$$

$$\mathbf{q} = 100 \cdot \cos \left( 360 \frac{\mathbf{x}}{360} + 90 \right) \tag{3}$$

Other axes are defined as constants. Movement in direction of the Z–axis = 0 mm, rotations around the Y and Z axes are also zero (P = 0◦;R=0◦). The rotation around the X–axis has a defined value W = −180◦, which ensures that the Z–axis of the tool coordinate system has the correct orientation and is perpendicular to the measuring plane or the plane in which the required circle is located.

The results of the positional analysis of the course of motion of individual robot joints are shown in the form of a graph in Figure 8. From the individual trend lines, one can see that all joints of the robot, including the J4 joint, participated in the defined motion. The above graph applies to the clockwise movement of the TCP and to the "NOFLIP" robot arm configuration. For the second configuration ("FLIP"), the graph is similar, with all the joints of the robot participating in the movement. The absolute value of the range of motion of each of the robot's joints is shown in the graph in Figure 9. Because the TCP moved along the same path in both configurations, the displayed range value for both configurations is identical.

**Figure 8.** The course of the motion of the individual robot joints during the TCP movement in a circular path in the inclined plane.

**Figure 9.** Absolute angular movement of robot joints during the movement along a circular path on the inclined plane.

The present positional analysis confirmed the hypothesis of the robot's individual joints' motion in connection with the location of the required circle on an inclined plane. The next step was to verify the possibilities of practical implementation of such measurement with the Renishaw Ballbar.

#### **5. Measurement with Renishaw Ballbar QC20–W**

All the practical measurements presented here were carried on an industrial robot Fanuc LR mate 200iC, located in the laboratory of our department. This robot was examined mainly due to its availability. Basic measurement with the Renishaw Ballbar QC20–W and a circle with a radius of 100 mm placed on an inclined plane (see Figure 6) consisted of two series of measurements with ten repetitions. One series for each of the robot's arm configurations. More detailed measurement conditions are given in Table 4.

The robot control program was created by standard programming commands, such as through connecting two semicircles. For the TCP speed during the measurement, the value of 55.33 mm/s was selected and entered into the robot control program. Such speed corresponds to the federate of 3320 mm/min in the Ballbar 20 software. This speed value is based on experiments conducted in the past [26]. Specifically, it was a comparison of two methods of creating a circular path. The first of the methods was based on the already mentioned connection of two semicircles. For the second method, the circle was created as a polygon, representing the most accurate approximation of the desired circle. The speed of 55.33 mm/s was then chosen as optimal for the purposes of the said comparison. Subsequently, further experiments with the Renishaw Ballbar were conducted with this speed value, in addition to the volumetric analysis mentioned in the introduction of this paper. At this speed value, the measurement process itself (circle radius 100 mm) with the Renishaw Ballbar takes approximately 53 s. This is a relatively short measurement time, also suitable for the purposes of industrial robot troubleshooting and monitoring.

**Table 4.** Measurement conditions.


Standard Ballbar 20 software was used to record the measurements, with graphical results in the form of polar graphs shown in Figure 10. By comparing the polar graphs for both robot arm configurations, it is possible to see a significant difference in their shape. The significant difference is also shown in the average value of circularity in Table 5, where the circularity represents the difference between the largest and the smallest radii recorded by the Ballbar during the measurement excluding infeed and feed out. This value is related to the accuracy of the machine in the sense that the higher the circularity value, the worse the accuracy of the machine [37].

**Figure 10.** Polar graphs from measuring a circle on the inclined plane. (**a**) NOFLIP configuration; (**b**) FLIP configuration.



The polar graphs mainly show the squareness error and the scaling error. Both of these defects are characterized by the oval shape of the profile or its "peanut" shape. In the case of a squareness error, the axis of such deformation is inclined by 45◦ or 135◦. In the case of CNC machine tools, this error is caused by the fact that the two axes performing the movement are not perpendicular [38]. The second of these errors, the scaling error, is caused by the different magnitude of the movement increment between the axes and is manifested by the said deformation along the axis of movement [38]. Unlike a CNC machine tool, with industrial robots, the circular motion during the measurement is the result of the simultaneous motion of several or all of the robot's joints. For this reason, these errors can be attributed mainly to the incorrect conversion of Cartesian coordinates, related to the direct kinematic task, and the issue of calibration. Specifically, this is the first level calibration, related to the relationship between the actual position of the robot arm and the information from the encoders in its individual joints [39].

For a more detailed analysis of the measurements, based on the robot's simulation model, a graph was created in Figure 11. This graph shows the range of motion of the robot's individual joints during measurements with both configurations of the robot arm. The graphical representation shows that the movements of the joints J1, J2, and J3 are identical in both configurations. On the contrary, the changes occur only in the orientation of the robot's subsystem, i.e., that of the joints J4, J5, and J6. Based on this analysis, it can be concluded that the change in the shape of the polar graphs (Figure 10) is caused by one of the joints of the robot's orientation subsystem, or a combination thereof.

**Figure 11.** Comparison of the movement of robot joints for both used robot arm configurations.

A more accurate identification of the specific robot joint or joints that adversely affect the measurement results can be addressed in several ways. This involves, for example, limiting the motion of one of the robot's examined joints, or modifying the motion of the joint so that its possible adverse effect is apparent. The graph in Figure 11 shows that the motion of the J6 joint is shifted by 180◦ relative to each other in both configurations. At the same time, the coordinates of the TCP orientation are constant during the entire circular motion and have the following values (W = 180◦;P=0◦;R=0◦). Because the TCP is in the axis of rotation of the J6 joint, the coordinate "R" (rotation around the Z–axis) can influence the way the joint J6 moves.

This theory was first verified in the robot's simulation model. For an arm configuration with J5 > 0◦ (FLIP), a TCP position was defined with the coordinate R adjusted to 180◦. The graph in Figure 12 shows that by applying the said change, the same motion of the J6 joint was achieved as in the NOFLIP configuration. At the same time, there was no change in the J4 and J5 joints.

**Figure 12.** Impact of TCP coordinate modification on the movement of robot joints.

Subsequently, practical measurements were done, with a change applied to individual points of the control program with the adjustment of the coordinate R = 180◦. The conditions of this measurement were identical to the conditions from Table 4, with the number of repeated measurements being ten. The resulting polar graph is shown in Figure 13c. In comparison to previous measurements (Figure 13a,b), it is apparent that the change in the motion of the J6 joint does not affect the shape of the polar graph. This fact is also confirmed by the average value of circularity given in Table 6, while the difference of 20.4 μm can be considered negligible. Based on the presented results, it can be argued that the change in the shape of the polar graph is caused by the joint J4 or J5, or a combination thereof.

**Figure 13.** Polar graphs from measuring a circle on the inclined plane. (**a**) NOFLIP configuration; (**b**) FLIP configuration; (**c**) FLIP' configuration (coordinate R = 180◦).


**Table 6.** Average circularity value for measuring a circle on the inclined plane.

#### *5.1. Measurement in a Plane Parallel to the Robot's Base*

The series of measurements was further supplemented by the measurement of a circular path when the XY plane formed an angle of 0◦ with the benchtop. The second of the already mentioned jigs was used for this measurement (Figure 7c), which ensured that the central position of the circle was identical to its central position in the previous measurements. Compared to measurements on an inclined plane, the ranges of motions of the individual robot joints are different, with the J4 joint not participating in the movement and its rotation has a constant value throughout the measurement. The absolute values of the range of motion of the individual robot joints measured on an inclined plane (at an angle of −45◦) and a plane parallel to the base of the robot (angle 0◦) are shown in the graph in Figure 14.

**Figure 14.** Absolute angular movement of robot joints during the movement along a circular path in both measuring planes.

There are also two possible configurations of the robot arm for the selected position and orientation of the circle. For the configuration with the joint position J5 < 0◦ (NOFLIP), the J4 joint has a constant value of 0◦ throughout the path traveled. The circular path can also be completed with the second configuration, i.e., J5 > 0◦ (FLIP), but in this case, the J4 joint acquires the limit values of its range of rotation, which are +180◦ or −180◦. Such position of the robot arm, with limit values of one of the joints, is unsuitable due to the restriction on further movements, but it can meet the purpose of the measurement. At the same time, to ensure that the range of motion of the J6 joint was the same for all three mentioned positions of the robot arm in the measurement process, the "W" coordinate of individual points forming the circle was again adjusted to 180◦ in the FLIP configuration. The ranges of motions of the J4, J5, and J6 joints, when moving along the circular path, are shown in the graph in Figure 15. Again, as in the previous cases, positional analysis in the Creo Parametric system 5.0.4.0 was used to chart this graph. For the sake of simplicity, the graph does not include the range of motions of the J1, J2, and J3 joints, which are identical for all positions of the robot arm used.

**Figure 15.** Position of robot joints J4, J5, and J6 when measured in the plane parallel to the base of the robot.

Measurements with the Renishaw Ballbar QC20–W were conducted under the same conditions as in Table 4, except for the orientation of the center of the circular path, which is zero (W = 0◦;P=0◦;R=0◦) in the present case. The individual polar graphs are shown in Figure 16 and the average circularity values from ten repeated measurements for each robot arm position used are shown in Table 7.

**Figure 16.** Polar graphs from measuring a circle on the plane parallel to the base of the robot. (**a**) NOFLIP configuration; (**b**) FLIP' −1 configuration (J4 = −180◦, R = 180◦); (**c**) FLIP' +1 configuration (J4 = 180◦, R = 180◦).

**Table 7.** Average circularity value for measuring a circle on the plane parallel to the base of the robot.


When comparing the resulting polar graphs, the first thing to be observed is the similarity between the measurements with the FLIP configuration of the arm. The similarity is also indicated by the value of circularity shown in Table 7, the resulting difference is negligible. During both measurements in the FLIP configuration, the motions of all joints were identical except for the J4 joint, which did not take part in the movement along the circular path but acquired a different limit value in both cases. In the case of Figure 16b, the limit value of the J4 joint was −180◦ and vice versa, when measured as shown in Figure 16c, this limit value was + 180◦. Based on these results, it can be said that the static value of the J4 joint rotation does not affect the measurement results. In terms of measurement errors, both graphs reveal the squareness error and the scaling error.

A fundamental influence on the shape of the polar graph and, at the same time, the value of circularity is exerted by a change in the configuration of the robot arm, i.e., the motion of the J5 joint, which can be seen when comparing the polar graph of Figure 16a with the previous two graphs of Figure 16b,c, respectively. At the same time, in this polar graph of the NOFLIP configuration (Figure 16a), it is possible to observe a smaller manifestation of the squareness error than in other measurements. In terms of the shape of the circular path being affected, the relevant changes can be attributed to the motion of the J5 joint.

#### *5.2. Results Summary*

As part of measurements with the Renishaw Ballbar QC20–W, the possibility of measuring a circular path placed on an inclined plane has been confirmed as viable. The conducted experiments consisted of two series of measurements. The first of them was done with the circle radius of 100 mm, placed on an inclined plane at an angle P = −45◦ concerning the robot's WCS. Two possible arm configurations—NOFLIP and FLIP, exist for the selected position and orientation of the measuring plane. The results of the measurements and their representation in polar graphs show a significant difference in the shape of the circular path between the two configurations. This difference has also been confirmed by the average circularity values in both measurements. Based on the motion analysis of the individual robot joints in connection with polar graphs, the motion of the J4, J5, and J6 joints was identified as a possible source of these errors. Subsequent measurements ruled out the effect of the J6 joint. The mentioned measurement was based on the modification of the robot program so that in two measurements in the FLIP configuration, the motion was different only in joints J4 and J5. The motion of the other joints during the measurement was identical.

The second series of measurements took place with the same radius of the circle −100 mm, but in a plane parallel to the base of the robot or parallel to the workbench. These measurements aimed to further examine the influence of the J4 and J5 joints on the measurement results. With the selected orientation of the measuring plane, the position of the joint J4 is static during the entire travel along the circular path. Depending on the selected configuration, the respective values are 0◦, −180◦, or 180◦. By analyzing the range of motion of individual robot joints and the polar graphs obtained from the measurement, the greatest influence on the deformation of the circular path can be attributed to the selected configuration of the robot arm and especially the motion of the J5 joint.

Although both series of measurements took place in two different orientations of the measuring XY plane, the center of the circular path was the same for both orientations. Partial similarity when comparing the polar graphs obtained in the measurement on an inclined plane and the FLIP configuration, with the polar graph in the second series of NOFLIP measurements and configurations, relates to this fact. This similarity is also indicated by the value of circularity, which takes on values of 409.8 μm, or 389.3 μm at an inclined plane, and a value of 385.2 μm when measured in a plane parallel to the robot base. At the same time, when comparing the ranges of motion of the J5 joint, it is possible to rule out their mutual similarity of motion in the above-mentioned configurations and orientations of the circular path. Based on this, it can be argued that the change in the

shape of the polar graph is influenced not only by the J5 joint but also by the motion of the joint J4. When measuring was done in a plane parallel to the robot base, the mentioned influence of the J4 joint was corrected, as the J4 joint acquired only static values.

#### **6. Conclusions**

Renishaw Ballbar QC20–W is a tool designed and used specifically for troubleshooting CNC machine tools with a Cartesian kinematic system. When used in connection with industrial robots, it is necessary to proceed from the fact that, unlike CNC machine tools, the circular motion required for measurement is created by the simultaneous motion of several or all of the robot joints. Differences in the kinematics of CNC machine tools and industrial robots renders Ballbar software incapable of identifying and evaluating errors of industrial robots. Therefore it is necessary to approach measurements and evaluation differently. In the case of standard measurement of industrial robots, when the measuring plane is parallel to the robot base, not all robot joints move. The same applies to the so-called volumetric analysis, in which the circle in the XY plane is supplemented by two more circular arcs in the mutually perpendicular planes ZX and ZY. The purpose of the experiments of the present paper was to verify the hypothesis of the motion of all the robot joints when the desired circular path is placed on an inclined plane. The impetus for this work was the measurements previously done with the Renishaw Ballbar at the Department of Automation and Production Systems.

The individual experiments described in the paper can be divided into two parts, preceded by setting the conditions for and preparing the experiment. The key step was the choice of the orientation of the measuring plane in the workspace of the selected Fanuc LR Mate 200iC robot. Based on the recommendations of the ISO 9283 standard, which deals, among other things, with the conditions for measuring the operating characteristics of industrial robots, an inclined plane at an angle of −45◦ (rotation around the Y–axis) was chosen in the robot's WCS. The starting points for determining other conditions have already been mentioned in experiments conducted in the past.

In the first part of the experiments, a positional analysis was performed with a simulation model of the LR Mate 200iC robot in the environment of the Creo Parametric software 5.0.4.0. The result is the confirmation of the hypothesis that when placing a circle on the selected inclined plane, all its joints, including the J4 joint, would participate in the circular movement of the TCP robot. Commonly, when the measuring plane is parallel to the robot base, the J4 joint is static throughout the movement. The results of the positional analysis were subsequently used to evaluate the results of measurements. The practical measurements with the Renishaw Ballbar QC20–W are described in the second part of this paper. The analysis of the measurement results was performed using polar graphs and circularity values, which represent one of the possible outputs of the Ballbar 20 software. Two series of measurements were done. In the first series, a circle with a radius of 100 mm was placed on an inclined plane, under the before-mentioned angle. The second series represented measurements in a plane parallel to the robot base. In addition to the measurement conditions, the common feature of all measurements was also the identical position of the center of the circle in the robot's workspace. Only the orientation of the measuring plane has changed. The result is the finding that in the selected position and orientation of the measuring plane, the change in the shape of the polar graph was locally caused mainly by a change in the configuration of the robot arm, which is related to the motion of the J4 and J5 joints. At the same time, the similarity of the results was observed when comparing the two series of measurements, which can be attributed to the just mentioned unchanged position of the center of the circular path.

The measurement on an inclined plane provides mainly a better view of industrial robot properties. The standard measurement of industrial robot properties that utilize the Renishaw Ballbar system is conducted on the plane parallel to its base plane. We used such a measurement method in previous works [25,26,28]. However, the parallel orientation of the measuring plane results in the uneven involvement of individual motors on the overall motion of the TCP. In particular, the joint J4 is static throughout the whole path both for measuring in the parallel plane and for volumetric measurement too. The pro-posed method places the measuring path on an inclined plane, which results in movement that involves all of the robot joints, including J4. The results of such measurements offer better information about the technical condition of the robot including the possible impact of the J4 joint. The presented measurement method can be used in process of industrial robot condition monitoring based on measurements repeated in regular intervals. The changes can be evaluated by changes in the shape of the polar chart. It is important to include all of the possible unwanted effects that can affect the performance of the industrial robot.

#### *Possible Further Work*

The LR Mate 200iC robot used had been calibrated several times in the past, with the application of the so-called Zero position master method. The accuracy of this method is based only on the visual adjustment of the individual joints of the robot to the zero position, using reference marks. Therefore, this calibration method is considered inaccurate, that fact is also pointed out in the Fanuc robot's user manual [40]. The manual emphasizes that the method should only be used in exceptional cases. Such a state of affairs was addressed in the past by refining the calibration, using original calibration data. In connection with the identified influence of the motion of the J4 and J5 joints on the final shape of the polar graph and the overall measurement results, it is possible to look for the cause probably in the still persistent inaccurate calibration of the given robot. Based on this, there is room for further work and repetition of the measurements presented, subject to a more detailed specification of the LR Mate 200iC robot calibration. There is also room for comparison with a robot of a clearly more accurate calibration than that of the robot used in the experiments described in our paper.

It is possible to use Renishaw Ballbar to evaluate individual properties of industrial robots defined in ISO 9283 standard. The double ballbar measuring technique is based on periodical measuring of deviation of the real radius from programmed one during the movement in a circular path. It is possible to utilize such a measurement technique for the evaluation of so-called path accuracy (AT according to ISO 9283) and path repeatability (RT according to ISO 9283). Path accuracy characterizes the ability of a robot to move its mechanical interface along the command path in the same direction n times [6]. Path repeatability expresses the closeness of the agreement between the attained paths for the same command path repeated n times [6]. Measured values are important for the calculation of both mentioned properties. A good example is a measurement on the inclined plane using NOFLIP configuration, measurement conditions are included in Table 4 and the polar graph is shown in Figure 10a. In this case, the average radius of ten repeated measurements (clockwise) was between 99.594 mm and 100.201 mm. In order to reliably determine the values of RT and AT, it is necessary to analyze measurement records more and to define the correct methodology of evaluation. The measurements collected with Ballbar 20 software can be too distorted for this purpose, as the software subtracts estimated eccentricity represented by the first harmonics of the measured profile processed by fast Fourier transformation. For evaluation and calculation of the performance parameters of the industrial robot, it would be necessary to get values declared by its manufacturer as they usually declare only unidirectional path repeatability (RP according to ISO 9283). Another possible way to verify results would be to compare it to measurement using a laser interferometer or a laser tracker.

**Author Contributions:** Conceptualization, Methodology: all authors; Writing—original draft: V.T. and I.Z.; Writing—review and editing: M.C., I.K. and M.S. All authors have read and agreed to the published version of the manuscript.

**Funding:** This work was supported by the Slovak Research and Development Agency under the contract No. APVV–16–0283.

**Institutional Review Board Statement:** Not applicable.

**Informed Consent Statement:** Not applicable.

**Data Availability Statement:** The data presented in this study are available on request from the corresponding author.

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

### **References**


**Haichuang Xia 1, Xiaoping Zhang 1,\* and Hong Zhang 2,3**


**Abstract:** Compared with wheeled and tracked robots, legged robots have better movement ability and are more suitable for the exploration of unknown environments. In order to further improve the adaptability of legged robots to complex terrains such as slopes, obstacle environments, and so on, this paper makes a new design of the legged robot's foot sensing structure that can successfully provide accurate feedback of the landing information. Based on this information, a new foot trajectory planning method named three-element trajectory determination method is proposed. For each leg in one movement period, the three elements are the start point in the support phase, the end point in the support phase, and the joint angle changes in the transfer phase where the first two elements are used to control the height, distance, and direction of the movement, and the third element is used make decisions during the lifting process of the leg. For the support phase, the trajectory is described in Cartesian space, and a spline of linear function with parabolic blends is used. For the transfer phase, the trajectory is described in joint-space, and the joint angle function is designed as the superposition of the joint angle reverse-chronological function and the interpolation function which is obtained based on joint angle changes. As an important legged robot, a hexapod robot that we designed by ourselves with triangle gait is chosen to test the proposed foot trajectory planning method. Experiments show that, while the foot's landing information can be read and based on the three-element trajectory planning method, the hexapod robot can achieve stable movement even in very complex scenes. Although the experiments are performed on a hexapod robot, our method is applicable to all forms of legged robots.

**Keywords:** trajectory planning method; hexapod robots; legged robots; triangle gait

#### **1. Introduction**

With the development of AI technology, mobile robots are appearing more and more frequently in public. According to the motion mode, mobile robots can be divided into wheeled robots [1,2], tracked robots [3], and legged robots [4,5]. In the face of complex environments as well as rugged terrains, legged robots have incomparable flexibility and applicability compared with the other two kinds of robots.

The design idea of legged robots originated from bionics. Inspired by mammals, insects, amphibians, etc., legged robots try to imitate the structure as well as movement mode of different legs [6]. Up to this point, there have been many different kinds of bionic legged robots that were designed and studied. With the support of the U.S. Department of Defense and by imitating a dog, Boston Dynamics developed the quadruped robot BigDog, which possessed strong obstacle crossing ability and could overcome rugged terrain [7]. Inspired by insects, Case Western Reserve University designed a bionic insect robot that could jump, walk, turn, and avoid obstacles in a certain space [8]. In China, also from the perspective of bionics and combining motion control analysis, different kinds of legged

**Citation:** Xia, H.; Zhang, X.; Zhang, H. A New Foot Trajectory Planning Method for Legged Robots and Its Application in Hexapod Robots. *Appl. Sci.* **2021**, *11*, 9217. https://doi.org/ 10.3390/app11199217

Academic Editor: Tibor Krenicky

Received: 18 August 2021 Accepted: 29 September 2021 Published: 3 October 2021

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

**Copyright:** © 2021 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/).

robots were designed by Shandong University [9,10], Harbin University of Science and Technology [11], and Shanghai Jiaotong University [12].

Common legged robots include biped robots, quadruped robots, hexapod robots, and octopod robots. For biped robots , the movement balance is difficult to control [13,14]. Even very simple walking similar to those in humans will become a big challenge for biped robots . For quadruped robots, they are able to walk steadily, but have strong dependencies on each leg [15]. When one of the four legs breaks for some reason, the quadruped robot cannot continue working anymore. In contrast, hexapod robots can still adjust in the case that one leg breaks through an adaptive fault tolerant gait [16]. Up to this point, there is very little work about octopod robots in terms of complex control [17]. All in all, hexapod robots have natural advantages in movement stability and are studied a lot.

In terms of the hexapod robot's stable movement in different terrains, most research realized this by switching gait. Bai et al. presented a novel CPG (center pattern generator) based gait generation for a curved-leg hexapod robot and enabled the robot to achieve smooth and continuous mutual gait transitions [18]. Ouyang presented an adaptive locomotion control approach for a hexapod robot by using a 3D two-layer artificial center pattern generator (CPG) network [19]. These methods all obtained promising results in some aspects, but they could not confront any complex scene because of the limited gait patterns. Our current work, from another point of view, finds a new method to help the hexapod robot improve its movement stability for all kinds of terrains, which is achieved by adaptively planning the foot's trajectory in order to stabilize the robot's attitude. With this method, the gait can remain the same.

To implement the above theory on a physical robot, the robot should have the ability to sense its landing information firstly. In [20], Zha et al. developed a new kind of free gait controller and applied it to a large-scale hexapod robot with heavy load, where sensory feedback signals of the foot position were employed in both the free gait planner and the gait regulator. In [21], Faigl and Cížek presented a minimalistic approach for a hexapod ˇ robot's adaptive locomotion control, which enabled traversing rough terrains with a small and affordable hexapod walking robot, and servomotor position feedback was also used to reliably detect the ground contact point. Up to this point, the problem of how to obtain landing information has not been sufficiently considered as well as studied in most legged robots. In [21], this information was obtained by comparing the joint error and the error threshold. In some other works, based on the robot's dynamic model, joint torque feedback was selected to judge whether the feet had touched the ground [22]. However, the sensors used for such joint torque feedback are always with large volume and high in terms of price, which limits their utility in small robots. To solve these lingering issues, we create a new design of the legged robot's foot by adding a short-stroke inching button in order to obtain accurate feedback of the foot's landing information. By conducting experiments on our designed robot in real environments, this foot sensing structure is proved to be easy to use, with low cost and strong sensitivity.

The rest of the paper is structured as follows. Section II introduces the hexapod robot we designed in detail, including its mechanical structure and electrical structure, especially the new design of the robot's foot sensing structure. To elucidate our method, the robot's mathematic model is firstly given in section III. All details of the foot trajectory planning method including simulation verification are in Section IV. Section V provides the method's application in a triangle gait. Section VI shows the experiment results. Conclusions are finally put forward in Section VII.

#### **2. The Hexapod Robot**

The robot we designed is as shown in Figure 1, where (a) is the hexapod robot prototype, and (b) is its mechanical schematic. For the sake of description, the six legs are numbered as *Leg*1 to *Leg*6 in a counter-clockwise fashion.

D 7KHKH[DSRGURERWSURWRW\SH

E 7KHPHFKDQLFDOVFKHPDWLFRIWKHKH[DSRGURERW

#### **Figure 1.** The hexapod robot.

#### *2.1. The Hexapod Robot's Mechanical Structure*

From the perspective of mechanical structure, the hexapod robot is mainly composed of a body, legs, and feet. Normally, to better guarantee the stability and controllability, the hexapod robot is centrally symmetric.

#### 2.1.1. The Body

For our hexapod robot, its body is composed of two identical plates with the length and width ratio of 2:1. These two plates are placed up and down and are fixedly connected by the hip joints of six legs. Located between the two plates is the battery. The STM32F4 microcontroller, binocular camera and attitude sensor are placed on the top of the upper plate.

#### 2.1.2. The Leg

As in Figure 1b, for each leg, there are three joints from the direction of body to foot tip, which are the hip joint, the knee joint, and the ankle joint. Different joints are connected by links named as *Linki*<sup>1</sup> (between the hip joint and the knee joint), *Linki*<sup>2</sup> (between the knee joint and the ankle joint), and *Linki*<sup>3</sup> (between the ankle joint and the foot tip) for the *ith* leg. For the hexapod robot, the total of 18 degrees of freedom is utilized.

#### 2.1.3. The Foot

To help the robot to sense its foot landing information, this paper creates a new design of the legged robot's foot sensing structure as in Figure 2. A short-stroke inching button is used here. Once one foot touches the ground, the reaction force from the ground will press the short-stroke inching button, and then landing information will be transferred to the controller. When the foot is lifted off the ground, the button is reset and prepares for the next landing. A hemispherical foot tip is designed to ensure that the short-stroke inching button can be pressed regardless of the direction of the foot's fall.

**Figure 2.** The hexapod robot's foot sensing structure.

#### *2.2. The Hexapod Robot's Electrical Structure*

The hexapod robot's electrical structure is shown in Figure 3.

The sensory unit includes five parts as follows.

(1) Binocular camera for object capture and tracking.

(2) Attitude sensor MPU-9250 for measuring the robot's posture. MPU-9250 is a System in Package (SiP) and contains a 3-axis gyroscope, a 3-axis accelerometer, and AK8963, a 3-axis digital compass. As accelerometers and magnetometers have high frequency noise while the gyroscope has low frequency noise, by utilizing their complementary characteristics in frequency and fusing the low-pass filtered accelerometer and magnetometer data with high-pass filtered gyroscope data, the attitude feedback information with high precision can be obtained.


The control unit is STM32, and it outputs the commands to the motion unit, more specifically, the 18 servo motors through serial ports. For each leg, its three servo motors cooperate with each other in a certain time sequence and finally achieve the foot to reach the specified point in space.

**Figure 3.** The hexapod robot's electrical structure.

The hexapod robot's technical specifications are provided in Table 1.


**Table 1.** Technical specifications of the hexapod robot prototype.

#### **3. Hexapod Robot Kinematics Modeling**

The robot's kinematic model can help us quantitatively analyze the robot's velocity, acceleration, attitude, and so on from a mathematical point of view. To establish the kinematic model of the hexapod robot, for each leg *i*, three coordinates are defined at the hip joint ({*Oi*1}), the knee joint ({*Oi*2}), and the ankle joint ({*Oi*3}), respectively, as depicted in Figure 4. The reference coordinate is {*Oi*0}. For each coordinate {*Oij*}(*i* = 1, ··· , 6; *j* = 1, ··· , 3), the *Zij* axis coincides with the axis of the *j*th joint. The *Xij* axis is the common perpendicular between the axes of the *j*th joint and the (*j* + 1)th joint. The *Yij* axis is then determined according to the right-hand rule. In this paper, the kinematic model is based on the DH (Denavit–Hartenberg) method [23], and the parameters are provided in Table 2. Since the six legs are the same, we do not distinguish the leg number *i* anymore, and only the joint number *j* is considered in the description that follows.

**Figure 4.** Coordinates at different joints for each leg.

**Table 2.** Denavit-Hartenberg parameters.


The relative translations and rotations between the (*j* − 1)th and the *j*th joint coordinates are computed by the transformation matrix (1).

$$\begin{aligned} \, \_j\phi\_j^{j-1} \, ^tT = \begin{bmatrix} \cos\theta\_j & -\sin\theta\_j & 0 & a\_{j-1} \\ \sin\theta\_j \cos\alpha\_{j-1} & \cos\theta\_j \cos\alpha\_{j-1} & -\sin\alpha\_{j-1} & -\sin\alpha\_{j-1}d\_j \\ \sin\theta\_j \sin\alpha\_{j-1} & \cos\theta\_j \sin\alpha\_{j-1} & \cos\alpha\_{j-1} & \cos\alpha\_{j-1}d\_j \\ 0 & 0 & 0 & 1 \end{bmatrix} . \end{aligned} \tag{1}$$

### *3.1. The Forward Kinematics*

Based on (1), the transformation matrix from the coordinate {*Oi*3} to {*Oi*0} is the following.

$$\begin{aligned} \,^G T &= \,^0 T\_2^T \,^3 T \\ &= \begin{bmatrix} \cos\theta\_1 & -\sin\theta\_1 & 0 & 0 \\ \sin\theta\_1 & \cos\theta\_1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \cos\theta\_2 & -\sin\theta\_2 & 0 & l\_{11} \\ 0 & 0 & 1 & 0 \\ -\sin\theta\_2 & -\cos\theta\_2 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \cos\theta\_3 & -\sin\theta\_3 & 0 & l\_{12} \\ \sin\theta\_3 & \cos\theta\_3 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \\ &= \begin{bmatrix} \cos(\theta\_2 + \theta\_3)\cos\theta\_1 & -\sin(\theta\_2 + \theta\_3)\cos\theta\_1 & -\sin\theta\_1 & \cos\theta\_1(l\_{11} + l\_2\cos\theta\_2) \\ \cos(\theta\_2 + \theta\_3)\sin\theta\_1 & -\sin(\theta\_2 + \theta\_3)\sin\theta\_1 & \cos\theta\_1 & \sin\theta\_1(l\_{11} + l\_2\cos\theta\_2) \\ -\sin(\theta\_2 + \theta\_3) & -\cos(\theta\_2 + \theta\_3) & 0 & -l\_{12}\sin\theta\_2 \\ 0 & 0 & 0 & 1 \end{bmatrix}. \end{aligned} \tag{2}$$

The coordinate of the foot tip with respect to the coordinate {*Oi*3} is the following.

$$\:^3P\_\mathcal{F} = \begin{bmatrix} \ x\_{\{O\_\mathcal{B}\}} & y\_{\{O\_\mathcal{B}\}} & z\_{\{O\_\mathcal{B}\}} & 1 \ \mathbf{l}^T. \end{bmatrix} \tag{3}$$

Then, the coordinate of the foot tip with respect to the coordinate {*Oi*0} is described in Equation (4).

$$\begin{aligned}{}^{0}P\_{F}&=\,^{0}\_{3}T^{3}P\_{F} \\ &=\left[\begin{array}{cc}\cos\theta\_{1}(l\_{1}+l\_{2}\cos\theta\_{2})-z\_{\{O\_{3}\}}\sin\theta\_{1}+x\_{\{O\_{3}\}}\cos(\theta\_{2}+\theta\_{3})\cos\theta\_{1}-y\_{\{O\_{3}\}}\\ z\_{\{O\_{3}\}}\cos\theta\_{1}+\sin\theta\_{1}(l\_{1}+l\_{2}\cos\theta\_{2})+x\_{\{O\_{3}\}}\cos(\theta\_{2}+\theta\_{3})\sin\theta\_{1}-y\_{\{O\_{3}\}}\sin(\theta\_{2}+\theta\_{3})\sin\theta\_{1}\\ &-y\_{\{O\_{3}\}}\cos(\theta\_{2}+\theta\_{3})-x\_{\{O\_{3}\}}\sin(\theta\_{2}+\theta\_{3})-l\_{2}\sin\theta\_{2}\\ &=1\end{array}\right].\end{aligned}\tag{4}$$

#### *3.2. The Inverse Kinematics*

A geometric method is used in this work for the inverse kinematics analysis. It is intuitive and clear, and the solution can be simultaneously unique by restricted conditions. The leg's diagram for the solution to its inverse kinematics is shown in Figure 5. The angle of CDF is 150◦, resulting from the robot leg's fixed mechanical structure design, as shown in Figures 1 and 4. Based on this diagram and by combing geometric knowledge, we have the following.

$$d = \sqrt{(\sqrt{x^2 + y^2} - l\_{i1})^2 + z^2},\tag{5}$$

$$I\_{i3} = \sqrt{l\_{i3a}^2 + l\_{i3b}^2 - 2l\_{i3a}l\_{i3b}\cos\frac{5\pi}{6}},\tag{6}$$

$$\cos \beta = \frac{d^2 + l\_{i2}^{-2} - l\_{i3}^{-2}}{2l\_{i2}d},\tag{7}$$

$$\cos \gamma = \frac{l\_{i2}{}^2 + l\_{i3}{}^2 - d^2}{2l\_{i2}l\_{i3}},\tag{8}$$

$$\cos \sigma = \frac{{l\_{i3}}^2 + {l\_{i3a}}^2 - {l\_{i3b}}^2}{2l\_{i3}l\_{i3a}},\tag{9}$$

$$
\sin \mathfrak{a} = \frac{-z}{d}.\tag{10}
$$

Thus, the inverse kinematics can be easily obtained as follows.

$$\begin{cases} \theta\_1 = \arctan\frac{\mathcal{V}}{\mathcal{X}}\\ \theta\_2 = \beta - \pi = \arccos\frac{d^2 + l\_3^2 - l\_3 \mathcal{Z}}{2l\_3 d} + \arcsin\frac{\pi}{\mathcal{U}}, \\\ \theta\_3 = \pi - \gamma - \sigma \\\ \quad = \pi - \arccos\frac{l\_3^2 + l\_3^2 - d^2}{2l\_3 l\_3} - \arccos\frac{l\_3^2 + l\_3 \mathcal{Z} - l\_3 \mathcal{Z}}{2l\_3 l\_3}. \end{cases} \tag{11}$$

### **4. The Three-Element Trajectory Determination Method**

For a hexapod robot, planning its foot trajectory is very important, and it will affect the robot's flexibility and stability. While moving, the robot's leg may be in the support phase in order to drive the robot towards a certain direction or off the ground and in the transfer phase. The gait is then realized by switching between the support phase and transfer phase in different sequences. For each leg, its trajectory planning is worth studying in order to enrich the movement of legged robots.

In this paper, we design a three-element trajectory determination method to help the robot plan its foot's movement. The three elements used are the start point in support phase *P*<sup>0</sup> = (*x*0, *y*0, *z*0), the end point in support phase *P*<sup>1</sup> = (*x*1, *y*1, *z*1), and the joint angle changes in transfer phase Δ*θ* = [Δ*θ*1, Δ*θ*2, Δ*θ*3]. *P*<sup>0</sup> and *P*<sup>1</sup> are used to control the height, distance, and the direction of the movement, while Δ*θ* is used to make decisions on the lifting motion of the leg. Applying this method to legged robots, this paper transfers the six variables of *P*<sup>0</sup> and *P*<sup>1</sup> to another three variables that are related to the movement of legged robots, which are height, direction, and distance. Such a transfer is based on some restrictions such as symmetry, equal altitude, vertical landing, etc. Δ*θ* is set according to the feedback information from the foot. The trajectory planning methods in the support phase and transfer phase are different, and they are elaborated separately.

#### *4.1. Trajectory Planning in Support Phase*

By using MATLAB, Figure 6 simulates the trajectory planning process in the support phase, where *J*1, *J*2, and *J*<sup>3</sup> represent the hip joint, the knee joint, and the ankle joint, respectively, while *J*<sup>5</sup> represents the foot tip. *J*<sup>4</sup> is fixed in *Linki*3. In Figure 6a, *P*<sup>0</sup> and *P*<sup>1</sup> are the start point and the end point of the foot, while *O*<sup>0</sup> and *O*<sup>1</sup> are the start point and the end point of the hip joint in Figure 6b.

Traditionally, during the hexapod robot's movement, the angles of the knee joint *J*<sup>2</sup> and the ankle joint *J*<sup>3</sup> are always fixed and not considered. Then, based on the forward kinematics model, the foot will rotate around the hip joint *J*1, and its trajectory is *P* ¯0*P*1, as shown in Figure 6a. When the foot is on the ground, the body needs to move forward with the foot *J*<sup>5</sup> as the fulcrum, and the joint *J*<sup>1</sup> will then move along the trajectory *O* ˘0*O*1, as shown in Figure 6b. As the relative position of the hip joint to the robot's body center remains unchanged, the center of the robot will also move according to *O* ˘0*O*1, which means the robot will shake. Therefore, to ensure accuracy in direction as well as stability while

moving, the hexapod robot's foot trajectory in the support phase should better be a straight line *P*0*P*1, as shown in Figure 6a. Then, *J*<sup>1</sup> will move along *O*0*O*1, as shown in Figure 6b. Here, the robot's moving direction keeps constant to ensure that the robot moves in a straight line.

According to the inverse kinematics model, the foot's trajectory in straight line is planned in Cartesian space. To ensure the robot's speed, the trajectory's continuity, and the servo motor's angular velocity, a spline of linear function with parabolic blends is used in (12).

$$F(t) = \begin{cases} \begin{array}{ll} a\_f t^2 + b\_f t + c\_{f\prime} & 0 \le t \le T\_b; \\ k\_f t + d\_{f\prime} & T\_b < t \le T\_f - T\_b; \\ c\_f t^2 + m\_f t + n\_{f\prime} & T\_f - T\_b < t \le T\_f. \end{array} \end{cases} \tag{12}$$

*F*(*t*) can be *X*(*t*), *Y*(*t*), and *Z*(*t*), which are the foot's coordinates in *X* axis, *Y* axis, and *Z* axis, respectively. *a <sup>f</sup>* to *nf* are the parameters, and they are different for different axes. *Tb* is the movement time of the parabola phase, and it is the same for *X*(*t*), *Y*(*t*), and *Z*(*t*) in order to guarantee the stabilization of movement acceleration. *Tf* is the time of the total support phase. Some restricted conditions are set at the same time in (13).

$$\begin{cases} \lim\_{t \to T\_b^-} F(t) = \lim\_{t \to T\_b^+} F(t), \\ \lim\_{t \to T\_b^-} F'(t) = \lim\_{t \to T\_b^+} F'(t), \\ \lim\_{t \to (T\_f - T\_b)^-} F(t) = \lim\_{t \to (T\_f - T\_b)^+} F(t), \\ \lim\_{t \to (T\_f - T\_b)^-} F'(t) = \lim\_{t \to (T\_f - T\_b)^+} F'(t), \\ F'(0) = 0, \\ F'(T\_f) = 0. \end{cases} \tag{13}$$

Take *X*(*t*) as an example, as *P*<sup>0</sup> = (*x*0, *y*0, *z*0) and *P*<sup>1</sup> = (*x*1, *y*1, *z*1); according to (13), we have the following.

$$\begin{cases} X(0) = \mathbf{c}\_{\mathbf{x}} = \mathbf{x}\_{0\prime} \\ X(T\_f) = \mathbf{c}\_{\mathbf{x}} T\_f^2 + m\_{\mathbf{x}} T\_f + n\_{\mathbf{x}} = \mathbf{x}\_1. \end{cases} \tag{14}$$

By combining all of the restricted conditions, we have the following.

$$\begin{cases} \begin{aligned} a\_{\mathcal{X}}T\_b^2 + b\_{\mathcal{X}}T\_b + c\_{\mathcal{X}} &= k\_{\mathcal{X}}T\_b + d\_{\mathcal{X}}, \\ \frac{1}{2}a\_{\mathcal{X}}T\_b + b\_{\mathcal{X}} &= k\_{\mathcal{X}}, \\ c\_{\mathcal{X}}(T\_f - T\_b)^2 + m\_{\mathcal{X}}(T\_f - T\_b) + n\_{\mathcal{X}} &= k\_{\mathcal{X}}(T\_f - T\_b) + d\_{\mathcal{X}}, \\ \frac{1}{2}e\_{\mathcal{X}}(T\_f - T\_b) + m\_{\mathcal{X}} &= k\_{\mathcal{X}}, \\ b\_{\mathcal{X}} = 0, \\ \frac{1}{2}e\_{\mathcal{X}}T\_f + m\_{\mathcal{X}} &= 0. \end{aligned} \tag{15}$$

For a given robot, when *Tb* and *Tf* are set, the equations above can be solved. The same can be performed for *Y*(*t*) and *Z*(*t*), and the trajectory of the foot in support phase can be obtained and is defined as *G*(*t*) = [*X*(*t*),*Y*(*t*), *Z*(*t*)]. According to the inverse kinematics model in (11), the angle function of the three joints can be obtained and is defined as *θ*S(*t*) = [*θ*1(*t*), *θ*2(*t*), *θ*3(*t*)].

#### *4.2. Trajectory Planning in Transfer Phase*

Transfer phase is the phase when the foot is in the air and moves from the end point of one movement period to the start point of the next movement period. Compared with support phase, the transfer phase has fewer restrictions. The only requirement is that the foot should complete its trajectory in time *Tf* .

The trajectory planning in transfer phase is performed in joint-space. Considering computational simplicity as well as the trajectory's reliability, this paper designs trajectory planning to occur in this phase as the superposition of two functions: one is what we call the joint angle reverse-chronological function and the other is the joint angle changes interpolation function.

#### 4.2.1. Joint Angle Reverse-Chronological Function

We named it as reverse-chronological function because the trajectory planned based on this function is symmetrical with the trajectory in the support phase along the time *t* = *Tf* . As it is planned in joint-space, we provide the joint angle reverse-chronological function as Equation (16).

$$
\theta\_{\rm B}(t) = \theta\_{\rm S}(2T\_f - t) = [\theta\_1(2T\_f - t), \theta\_2(2T\_f - t), \theta\_3(2T\_f - t)].\tag{16}
$$

4.2.2. Joint Angle Changes Interpolation Function

The joint angle changes interpolation function is defined as *θ*P(*t*) = [*θ*P\_1(*t*), *θ*P\_2(*t*), *θ*P\_3(*t*)], where *θ*P\_*j*(*t*), (*j* = 1, 2, 3) is the angle changes interpolation function for the *jth* joint. Considering the continuity of the velocity as well as the acceleration, for each joint, *θ*P\_*j*(*t*) is a quartic polynomial, as described in Equation (17):

$$
\theta\_{\mathcal{P}\_J}(t) = a\_4 t^4 + a\_3 t^3 + a\_2 t^2 + a\_1 t + a\_0. \tag{17}
$$

where *a*<sup>0</sup> to *a*<sup>4</sup> are the parameters of *θ*P\_*j*(*t*) and will be different according to different joints.

To ensure the continuity of the joint angle, the joint angle changes at the start and end time should be zero. To ensure the stability of the joint rotation, the velocity of the joint angle changes at the start, and the end time should also be zero.

$$\begin{cases} \theta\_{\mathcal{P}\\_j}(t)(T\_f) = 0, \\ \theta\_{\mathcal{P}\\_j}(t)(2T\_f) = 0, \\ \theta\_{\mathcal{P}\\_j}(t)'(T\_f) = 0, \\ \theta\_{\mathcal{P}\\_j}(t)'(2T\_f) = 0. \end{cases} \tag{18}$$

To realize the symmetry of the angle changes, we hope that *θ*P\_*j*(*t*) arrives at the set joint angle change Δ*θ<sup>j</sup>* at the middle time of this phase; thus, we have the following.

$$
\theta\_{\mathcal{P}\_{-}j}(\frac{3}{2}T\_f) = \Delta \theta\_j. \tag{19}
$$

Then, the relationship matrices (20) and (21) can be obtained as follows.

$$
\begin{bmatrix} 0\\ \Delta\theta\_f\\ 0\\ 0\\ 0 \end{bmatrix} = \begin{bmatrix} T\_f^4 & T\_f^3 & T\_f^2 & T\_f & 1\\ \left(\frac{3}{2}T\_f\right)^4 & \left(\frac{3}{2}T\_f\right)^3 & \left(\frac{3}{2}T\_f\right)^2 & \frac{3}{2}T\_f & 1\\ \left(2T\_f\right)^4 & \left(2T\_f\right)^3 & \left(2T\_f\right)^2 & 2T\_f & 1\\ 4T\_f^3 & 3T\_f^2 & 2T\_f & 1 & 0\\ 4\left(2T\_f\right)^3 & 3\left(2T\_f\right)^2 & 2\left(2T\_f\right) & 1 & 0 \end{bmatrix} \begin{bmatrix} a\_4\\ a\_3\\ a\_2\\ a\_1\\ a\_0 \end{bmatrix} . \tag{20}
$$

$$
\begin{bmatrix} a\_4 \\ a\_3 \\ a\_2 \\ a\_1 \\ a\_0 \end{bmatrix} = \begin{bmatrix} T\_f^4 & T\_f^3 & T\_f^2 & T\_f & 1 \\ \left(\frac{3}{2}T\_f\right)^4 & \left(\frac{3}{2}T\_f\right)^3 & \left(\frac{3}{2}T\_f\right)^2 & \frac{3}{2}T\_f & 1 \\ \left(2T\_f\right)^4 & \left(2T\_f\right)^3 & \left(2T\_f\right)^2 & 2T\_f & 1 \\ 4T\_f^3 & 3T\_f^2 & 2T\_f & 1 & 0 \\ 4\left(2T\_f\right)^3 & 3\left(2T\_f\right)^2 & 2\left(2T\_f\right) & 1 & 0 \end{bmatrix}^{-1} \begin{bmatrix} 0 \\ \Delta\theta\_f \\ 0 \\ 0 \end{bmatrix} . \tag{21}
$$

Δ*θ<sup>j</sup>* is set according to the real terrain situation. Based on Formula (21), the parameters *a*<sup>0</sup> to *a*<sup>4</sup> can be solved, and *θ*P\_*j*(*t*) is obtained.

By superimposing *θ*B(*t*) and *θ*P(*t*), the trajectory function of the transfer phase *θ*T(*t*) in joint-space is described as follows (22).

$$\theta\_{\rm T}(t) = \theta\_{\rm B}(t) + \theta\_{\rm P}(t) = \left[\theta\_{\rm 1}(2T\_f - t) + \theta\_{\rm P\_{-1}}(t), \theta\_{\rm 2}(2T\_f - t) + \theta\_{\rm P\_{-2}}(t), \theta\_{\rm 3}(2T\_f - t) + \theta\_{\rm P\_{-3}}(t)\right]. \tag{22}$$

By combining *θ*S(t) in support phase and *θ*T(t) in transfer phase together, the total trajectory of one joint during a movement period in joint-space is defined as the dotted line in Figure 7. The red dotted line is *θ*S(t). The blue dotted line is *θ*T(t), and it is the superposition of the green line *θ*B(*t*) and the pink line *θ*P(*t*).

**Figure 7.** Trajectory in joint-space.

#### *4.3. Verification of the Three-Element Trajectory Determination Method*

The trajectory of one foot based on the three-element trajectory determination method during one movement period in Cartesian space is simulated in Figure 8, in which counter clockwise is selected as the positive direction and *Tb* = 0.2, *Tf* = 1.

From Figure 8a, it can be observed that, during the time *t* ∈ (0, *Tf*), the foot's coordinates in *X* and *Z* axes remain unchanged, and the robot only moves along the *Y* axis, which confirms that the robot is moving in a straight line. Figure 8b is the foot's trajectory in space, the straight line is the trajectory in support phase, and the arc line is the trajectory in transfer phase.

**Figure 8.** Trajectory in Cartesian space.

Here, we also provide the angle curve of the three joints as in Figure 9. We can observe that, while moving, all of the three angle curves are continuous and smooth, which further demonstrates the stability and practicability of our trajectory planning method for legged robots.

**Figure 9.** Joints' angle curve.

#### **5. The Three-Element Trajectory Determination Method in Triangle Gait**

The advantage of our designed trajectory method is reflected in the realization that the robot's horizontal posture is maintained during movements. For the three elements, Δ*θ* is set according to the feedback information from the foot. What else needs to be performed is to select the start point *P*<sup>0</sup> and the end point *P*1. Supposing the target height of the robot's body is *Z* , target moving direction is *θa*, and the moving step is *D*, then it can be divided into three steps for our method. The details are described by combining Figure 10.

**Figure 10.** Start and end points selection geometric sketch.

#### *5.1. Stable Point Determination*

First of all, to improve our method's stability and flexibility in triangle gait, in this paper, we treat the stable posture for a legged robot as the posture where *linki*<sup>3</sup> in Figure 1b is perpendicular to the ground and the hip joint's angle *θ*<sup>1</sup> in Figure 5 is simultaneously zero. The foot's point is now called a stable point. As in Figure 10, the points on the line *MN* are all stable points. As *linki*<sup>3</sup> is perpendicular to the ground, by geometric knowledge, we obtain the following.

$$
\theta\_3 = \theta\_2 + \frac{\pi}{3}.\tag{23}
$$

For the foot's inverse kinematics in (11), with the above conditions, there will be only one degree of freedom. To help the hexapod robot adapt to rugged terrains, we set *Z* as input so that we can obtain the expected stable point *P*.

#### *5.2. Start Point and End Point Selection*

After the stable point *P* is determined, what also needs to be performed is to select the start point *P*<sup>s</sup> and the end point *P*<sup>e</sup> of the support phase. For a hexapod robot, it is symmetric, and the triangle gait is simultaneously repetitive. Thus, the stable point during movement will be the middle point of the trajectory in the support phase. Supposing that the target moving direction is *θa*, the trajectory in the support phase is along the line *P*0*P*1, as shown in Figure 10. Ideally, <sup>|</sup>*PP*0<sup>|</sup> <sup>=</sup> <sup>|</sup>*PP*1<sup>|</sup> <sup>=</sup> *<sup>D</sup>* <sup>2</sup> , and the coordinates of *P*<sup>0</sup> and *P*<sup>1</sup> can be computed. In reality, the feet can only reach a limited range (as in Figure 10, the foot of *Leg*6 can only arrive at the points between the two dotted arc lines); thus, the selection of *P*s and *P*e should depend on specific conditions.

Extend *PP*<sup>0</sup> and intersect it with the outer arc at point *H*. Extend *PP*<sup>1</sup> and intersect it with the inner arc at point *<sup>G</sup>*. If min{|*PH*|, <sup>|</sup>*PG*|} ≥ *<sup>D</sup>* <sup>2</sup> , this means both of the points *P*<sup>0</sup> and *P*<sup>1</sup> can be reached, and they can be the selected points. Then, the priority is given to movement stability, and all feet move equidistant around their respective stable points. If <sup>|</sup>*PH*<sup>|</sup> <sup>≥</sup> *<sup>D</sup>* <sup>2</sup> , <sup>|</sup>*PG*<sup>|</sup> <sup>&</sup>lt; *<sup>D</sup>* <sup>2</sup> , this means the point *P*<sup>1</sup> cannot be reached, and the selected points are *<sup>P</sup>*<sup>0</sup> and *<sup>G</sup>*. If <sup>|</sup>*PH*<sup>|</sup> <sup>&</sup>lt; *<sup>D</sup>* <sup>2</sup> , <sup>|</sup>*PG*<sup>|</sup> <sup>≥</sup> *<sup>D</sup>* <sup>2</sup> , this means the point *P*<sup>0</sup> cannot be reached, then the selected points are *<sup>H</sup>* and *<sup>P</sup>*1. If max{|*PH*|, <sup>|</sup>*PG*|} <sup>&</sup>lt; *<sup>D</sup>* <sup>2</sup> , then the trajectory will be the line *HG*. Thus, we have the following.

$$\begin{cases} \text{If } \min\{ |PH|\_{\text{\textquotedblleft}} |PG| \} \ge \frac{D}{\mathcal{T}}, \quad P\_{\text{\textquotedblleft}} = P\_0 \text{ and } P\_{\text{\textquotedblleft}} = P\_{1\text{\textquotedblleft}}\\ \text{If } |PH| \ge \frac{D}{\mathcal{T}}, |PG| < \frac{D}{\mathcal{T}}, \quad P\_{\text{\textquotedblleft}} = P\_0 \text{ and } P\_{\text{\textquotedblleft}} = G, \\\ \text{If} |PH| < \frac{D}{\mathcal{T}}, |PG| \ge \frac{D}{\mathcal{T}}, \quad P\_{\text{\textquotedblright}} = H \text{ and } P\_{\text{\textquotedblleft}} = P\_{1\text{\textquotedblleft}} \\\ \text{If } \max\{ |PH|, |PG| \} < \frac{D}{\mathcal{T}}, \quad P\_{\text{\textquotedblleft}} = H \text{ and } P\_{\text{\textquotedblleft}} = G. \end{cases} \tag{24}$$

Transform the start point (*xP*<sup>s</sup> , *yP*<sup>s</sup> , *zP*<sup>s</sup> ) and the end point (*xP*<sup>e</sup> , *yP*<sup>e</sup> , *zP*<sup>e</sup> ) that were obtained above under the world coordinate to the coordinate {*Oi*0}. Then, the trajectory of each foot can be planned by using the method in Section IV.

#### **6. Experiment on Physical Robot in Real Environment**

#### *6.1. Triangle Gait Designed in Practice*

Traditionally, the movement of a foot can be divided into support phase in (0, *Tf*) and transfer phase in (*Tf* , 2*Tf*). For the triangle gait [24], when the feet of group A move as the support phase, the feet of group B move as the transfer phase and vice versa. In this paper, to better apply our trajectory method for legged robots in complex environments, we added an adjustment phase (AP) at the end of transfer phase so that the robot can adjust its foot position for trajectory planning in the next period to guarantee the accuracy of the movement. The triangle gait then, in practice, is designed as in Figure 11. For different terrains, the time for the adjustment phase Δ*ti* can be different. However, when the feet of one group is in the adjustment phase, the feet of the other group will still be in the support phase in order to leave the following planning process unaffected.


**Figure 11.** Triangle gait designed in practice.

#### *6.2. Movement Control Flowchart*

The movement control flowchart based on the above triangle gait is shown in Figure 12. For any leg, the follow situations may happen. When the leg is in the support phase, judging whether this phase has been completed needs to be performed. If not, keep moving along the planned trajectory; if it is performed, this means that the leg is ready for phase changing. When the foot is not in the support phase but already on the ground, this means that the foot touches the ground or obstacles in advance; here, the foot needs to replan its trajectory based on the ground's height information, which is sensed by the designed foot sensing structure. When the foot is not on the ground, one situation is that the leg is in the transfer phase, then the foot moves along the planned trajectory. The other situation is that the leg has already finished the transfer phase but has not touched the ground, this situation happens when the ground's height is lower than planned. Then, a new height *Z* = *Z* + Δ*Z* is set, and the foot needs to perform new trajectory planning in the adjustment phase based on *Z* information. When all legs are ready for phase changing, the phase is changed, and the robot keeps moving.

**Figure 12.** The movement control flowchart.

#### *6.3. Experimental Results and Analysis*

To prove the effectiveness of our method in complex environment, we situate the robot in two different real scenes.

#### 6.3.1. Slope Experiment

The first scene that we chose is a slope outside with the angle of 7◦. In Figure 13a–c, take *Foot*5 as an example; its trajectory planning is given as the red curve. This curve is similar to the simulated trajectory in Figure 8b except that the heights of the start point and the end point in support phase are not the same. At *t* = 12 s, the *Foot*5 is on the ground, and it is ready for the transfer phase. At *t* = 13 s, we can observe that *Foot*5 arrives at the top of the planned trajectory. At *t* = 14 s, it falls to the ground and enters to the next support phase. This is a typical trajectory planning process. Figure 13d–f show the gait mode. In Figure 13f, at time *t* = 27 s, the *Leg*2, *Leg*4, and *Leg*6 are in the air (transfer phase), while the other three legs are on the ground (support phase). At time *t* = 34 s, as in Figure 13e, the phases are switched, the *Leg*1, *Leg*3, and *Leg*5 are in the transfer phase, and the *Leg*2, *Leg*4, and *Leg*6 are in support phase. The situation in Figure 13f is the same as the one in Figure 13d.

During the robot's slope climbing, we mark its posture with a yellow line. What is worth pointing out is that, during all the movement, the robot can always keep its body horizontal, which is proof of the stability of our method.

Although this experiment is performed on a slope with the angle of 7◦, after conducting a lot of tests, it is proved that the robot can adapt to a slope with any angle as long as the friction is sufficient.

**Figure 13.** Hexapod robot's movement on a slope.
