#### Abstract

Posture-position control is the fundamental technology among multilegged robots as it is hard to get an effective control on rough terrain. These robots need to constantly adjust the position-posture of its body to move stalely and flexibly. However, the actual footholds of the robot constantly changing cause serious errors during the position-posture control process because their foot-ends are basically in nonpoint contact with the ground. Therefore, a position-posture control algorithm for multilegged robots based on kinematic correction is proposed in this paper. Position-posture adjustment is divided into two independent motion processes: robot body position adjustment and posture adjustment. First, for the two separate adjustment processes, the positions of the footholds relative to the body are obtained and their positions relative to the body get through motion synthesis. Then, according to the modified inverse kinematics solution, the joint angles of the robot are worked out. Unlike the traditional complex closed-loop position-posture control of the robot, the algorithm proposed in this paper can achieve the purpose of reducing errors in the position-posture adjustment process of the leg-foot robot through a simple and general kinematic modification. Finally, this method is applied in the motion control of a bionic hexapod robot platform with a hemispherical foot-end. A comparison experiment of linear position-posture change on the flat ground shows that this method can reduce the attitude errors, especially the heading error reduced by 55.46%.

#### 1. Introduction

The adaptability of multilegged robots to rugged and complex terrain is mainly reflected in position-posture and gait adjustment. The research on position-posture control of the robot is generally divided into open-loop and closed-loop position-posture control. In terms of open-loop control, Jimenez et al. observed the position posture changes of the robot body through sensors, solved the foothold coordinates of the target horizontal posture and target position, and realized posture control. Actually, it was only intermittent posture and position correction method [1, 2]. Loc et al. adjusted the robot body to a specific height and posture according to the estimated tilt of the support surface [3]. Lee and Orin paid attention to the position of the robot body and the searching algorithm of the foothold and did not involve the adjustment of the robot posture [4]. These control methods lack accuracy, although these are relatively simple. In the research of closed-loop control, some researchers achieved attitude control of multilegged walking robot using central pattern generator, such as Kimura et al. [5, 6] and Liu et al. [7]. Others designed the posture control systems based on the controlled contact force; for instance, Yoneda et al. [8, 9], Huang and Krapp [10], and Chen et al. applied the inverse velocity kinematics into the position-posture control of a hexapod robot [11]. Corral et al. achieved position-posture control through studying the supporting foot slippage and the viscoelastic dissipative contact force of the passive walking biped with flat feet [12]. Aoki et al. developed a robot QRoSS, which completed rolling motion and position-posture control by stretching and contracting the legs [13]. Mandava and Vundavilli developed an adaptive torque-based PID controller with the help of MCIWO-NN and PSO-NN algorithms to transform position-posture [14]. Corral et al. changed the settings of a hexapod robot leg trajectory for adjusting posture-position by optimizing consumed energy and leg trajectory during each leg transfer [15]. A variety of sensors need to be installed on the robot to obtain sensor signals, which increases the amount of calculation and the control complexity, although these methods better achieve precise position-posture control. Considering that some robots do not need very high precision position-posture control when performing tasks in the natural environment, a position-posture control algorithm for multilegged robots based on kinematic correction is proposed in this paper. Firstly, the position-posture adjustment of the robot is regarded as two independent processes of translation and rotation of the center of gravity (COG) of the body, and then the coordinate positions of the footholds relative to the body are obtained through relative motion between foot-tip and COG during these processes. Finally, the angle of each joint of the robot is obtained to achieve position-posture transformation based on the corrected inverse kinematics. The purpose of this algorithm is to reduce the attitude errors of the robot during adjustment and help prevent the robot from rolling, twisting, slipping, or simply going off trajectory. This algorithm applies motion decomposition and synthesis to the position-posture adjustment of the robot and only corrects the trajectory of the root joint of the robot, simplifying the solution and correction process. And the whole process is solved offline, without external feedback signal for real-time adjustment, improving control stability and reducing control difficulty. Compared with the ordinary open-loop position-posture algorithm, the proposed algorithm has greatly improved the control accuracy; and compared with the closed-loop position-posture algorithm, the calculation amount and control complexity are reduced. In order to verify the effectiveness of the algorithm in this paper, a comparison experiment of linear and position-posture change in flat ground was performed on a bionic hexapod robot platform with hemispherical foot-ends.

#### 2. Materials and Methods

In the process of robot position-posture adjustment, the ideal state is that the foot-end of the robot is in point contact with the ground. In other words, the position of the foothold is unchanged, as shown in Figure 1(a). However, in practice, robots often make nonpoint contact when contacting the ground. In this paper, the robot with hemispherical foot-end is taken as an example. During the position-posture adjustment process, the roll of the hemispherical foot-end causes its actual foothold position to change and the adjustment error of the robot, as shown in Figure 1(b). Also, when the rolling effect is extended to a whole robot with more than one leg, the rolling feet placed in different postures cause error in the different legs sufficient to make the body roll, twist, slip, or simply go off trajectory. The rolling effect also makes the joints fight one another, which causes link stresses. Therefore, this paper proposes a position-posture control algorithm for multilegged robots based on kinematic correction.

**(a)**

**(b)**

The hexapod robot experimental platform is shown in Figure 2(a); the leg structure parameters are shown in Figure 2(b). This robot has six legs which are symmetrically distributed on both sides of the body of the robot, and one leg has three rotator joints with a hemispherical rigid foot-tip with radius of 10 mm. Each joint is driven by a servo motor, and the servo motors are controlled by an ARM controller (see [16] for more details). According to the position coordinate of foot-tip of the robot, the position coordinate of the COG of the body and the attitude angles of the robot and the joint angles of the robot are calculated and transmitted to the microcontroller based on the position-posture calculation algorithm. The above process is carried out before the adjustment. When the position of the robot is adjusted, the microcontroller controls the movement of the eighteen joints with the calculated joint angles in the computer. At the same time, the attitude sensor continuously detects the attitude of the robot body and continuously uploads the attitude data to the computer. And the computer receives the attitude data uploaded by the lower computer in real time and displays them.

**(a)**

**(b)**

**(c)**

##### 2.1. Kinematics Correction of Hemisphere Foot-End

Due to the inconsistency between the ideal and the actual foothold when using a hemispherical foot-end, the root joint is offset. In this paper, the method is used to calculate the actual reference foothold of the supporting phase leg in any posture and its ideal corresponding foothold on the ground through the assumption that the “foot-end does not slide relative to the ground,” and achieve correction of the root joint trajectory. As is shown in Figure 3, the dashed line is the ideal foothold, and the solid line is the actual footing position. When the rotation vector of each joint has been obtained, the ideal foothold can be solved according to the forward kinematics in the base reference coordinate system.

According to the analysis of Figure 3, the vector of the reference position of the foot-end iswhere is the position coordinate of the foot-tip under the root joint coordinate system; , , where and represent the *i*th and *j*th joint rotative angles.

Then, you can get the actual foothold:where

Ideal foothold iswhere

Because

Therefore, the angle *φ* between the end link 3 and the ground surface normal can be obtained by (7) and (8):

Becausethen Λ_{x} = 0; and are coplanar, and so

Hence, in the root joint coordinate system, the positive kinematic solution of the ideal foot-end is

Similarly, according to the position of the ideal landing point in the root joint coordinate system obtained above, the rotation angle vector of each joint of the leg can be calculated by solving the inverse kinematics.

It is easy to work out corrected root joint angle:

And , so

By substituting them into Supplementary Materials (6) and Supplementary Materials (9) for correction, the corrected joint angles can be solved, respectively, as is shown in (17) and (18). When the legs represent the front legs of a multifooted robot, (17) is positive, and when the legs represent the middle hind legs of the robot, the equation is negative.

Here, Λ_{y}, Λ_{z}, and *φ* are related to and, which cannot be calculated directly. Here, they can be obtained by the approximate joint rotation angle before modification; that is, (19) can be obtained by using Supplementary Materials (3), Supplementary Materials (6), and Supplementary Materials (9). Substitute (19) into (17), and (18) is the inverse kinematics solution after modifying the hemispherical foot-end., , , and , where and represent the *i*th and *j*th joint angles before correction.

##### 2.2. Position-Posture Control Algorithm

When the hexapod robot walks in a static and stable gait, three or more legs of the six-legged robot need to be supported at all times to ensure that the robot remains statically stable at all times. We analyzed the position and orientation adjustment algorithm with all six legs of the robot in the supporting phase [17]. In the robot position-posture adjustment, each known parameter is usually obtained by using the world coordinate system {*W*} as the reference coordinate system, as is shown in Figure 4. In this paper, we assume that the target attitude rotation matrix is , the current coordinates of the COG of the robot are *G*_{c} (, , ), the target coordinates of the COG of the robot are *G*_{t} (, , ), and the coordinates of the foothold are *F*_{i} (, , ). Taking the body coordinate system {*G*} as the reference coordinate system, the coordinates of the origin can be obtained as (, , ) under the coordinate system {}, where, *i* = 1, 2, 3, 4, 5, 6.

In practice, the attitude of the hexapod robot is given by the Euler angles of the robot body relative to the world coordinate system {*W*}: heading angle *α*, roll angle *β*, and pitch angle *γ*. Therefore, the attitude rotation matrix needs to be solved from Euler angles. The solution process is as follows:

The hexapod robot position-posture adjustment process is divided into body position adjustment and body posture adjustment. The adjustment of the body position can be regarded as the translation process of the COG of the body in a fixed attitude, and the adjustment of the body posture can be regarded as the rotation process of the body around the coordinate axis of the body coordinate system when the COG of the body is fixed. Therefore, the perspective of motion decomposition and synthesis are introduced. First, the robot position-posture adjustment is decomposed into two independent processes: robot body position adjustment and posture adjustment. For these two processes, the positions of the robot’s footholds relative to the body are obtained separately. Then, the final positions of the footholds of the robot relative to the body are obtained by motion synthesis. Finally, inverse kinematics is used to obtain each joint angle of the robot.

Firstly, the position adjustment of the COG of the six-legged robot is considered. Define the COG motion vector . Taking the world coordinate system {*W*} as the reference coordinate system, the foothold of the hexapod robot is unchanged during the position adjustment of COG, and the COG moves to the target position according to the motion vector . From the perspective of relative motion, the process of adjusting COG of the machine is equivalent to the position of COG being unchanged and the foothold of the robot moves according to the motion vector , where . When the body is in the target posture, the motion vector is expressed in the body coordinate system {*B*} as , where

Then, the attitude adjustment of the robot is considered. When the body is in the target attitude, using the body coordinate system {*G*} as the reference coordinate system, the coordinates of foothold *F*_{i} (, , ) are

The COG position adjustment and body posture adjustment process are combined to get a position-posture adjustment process via motion synthesis. After the motion synthesis, the foot-end position *F*_{i} position in the body coordinate system {*G*} is expressed as

So far, the coordinates *F*_{i} (, , ) in the body coordinate system {*G*} of the foothold in the target position-posture are obtained. At the same time, the coordinate (, , ) of the origin coordinate system {} is also known. Therefore, the angle of each joint can be obtained through the modified inverse kinematics equation of the robot. In practice, the position-posture adjustment of the robot can be achieved according to the solved joint angles. The method above is to solve the problem of working out the joint angles of the robot when the hexapod robot has a certain posture. It belongs to the solution process of the position-posture adjustment algorithm. For a hexapod robot in motion, its position and posture need to be adjusted at all times. The adjustment is a continuous process. Working out each joint angle in the current and target position-posture is the basis for this continuous adjustment. At the same time, this process requires planning of the position-posture, that is, the trajectory of the COG and the posture of the robot planning for optimization goals.

#### 3. Results

In order to further verify the validity of position-posture control algorithm, a group of linear position-posture adjustment experiments were performed on a bionic hexapod robot. First of all, the robot is placed on the flat ground, and the robot is in an initial posture-position (the height between the body and the ground is 0.29 m, and the Euler angles are 0°). Then the target pose is set, and the robot is transformed to the target posture-position in a linear way through the pose control algorithm. The coordinates of foothold and the fixed coordinate system of the root joint are shown in Tables 1 and 2.

The planned trajectory of the COG of the body is represented by (24); the planned trajectory of the position-posture of the body is described by (25), and the coordinate of the COG [, , ] is

In the same way, the posture trajectory of the robot is also obtained by linear programming. Euler angles [*α*_{j}, *β*_{j}, *γ*_{j}] are

The robot position-posture adjustment experiment lasted 4 s. The Euler angles of the initial attitude relative to the world coordinate system are heading angle *α*_{c} = 0°, roll angle *β*_{c} = 0°, and pitch angle *γ*_{c} = 0°. The Euler angles of the termination attitude relative to the world coordinate system are heading angle *α*_{o} = 5°, roll angle *β*_{o} = 8°, and pitch angle *γ*_{o} = 5°. The initial coordinate of the COG is [0 0 0.29]. The end point coordinate of the COG is [0 0 0.22]. The movement state of the hexapod robot every 0.5 s is shown in Figure 5. As the experiment progresses, the six-legged robot adjusts its position-posture until the experiment ends at 4 s. The actual robot attitude value obtained by the attitude sensor during the experiment is shown in Figure 6.

**(a)**

**(b)**

**(c)**

**(d)**

**(e)**

**(f)**

It can be seen from the experimental results that a brief abrupt change occurs at the beginning adjustment because the algorithm is open-loop control, but this does not affect the final results. Compared with the uncorrected position-posture adjustment, the proposed algorithm reduces adjustment errors and fits more closely with the planning trajectory. The error of heading angle is reduced by 55.46%; the error of rolling angle is reduced by 5.68%; and the error of pitching angle is reduced by 1.8%.

#### 4. Conclusion and Discussion

When a robot moves in a complex and dynamic natural environment, it must quickly and continuously adjust its posture to adapt to the environment to prevent falls. Therefore, an efficient posture control method plays a vital role in the movement of a robot in the complex natural environment. Ordinary open-loop pose control strategies [1–3] are difficult to meet the outdoor motion requirements of ground robots resulting from lacking accuracy. Most closed-loop position-posture control strategies are based on sensor feedback, such as using force sensor feedback [1, 8–10, 14], attitude sensor feedback [11, 13, 15, 16, 18], and visual sensor feedback [19], but it is complicated to achieve the adjustment function in practice. This paper proposes a simple and effective position-posture control algorithm that does not require additional sensors and only modifies the inverse kinematics of the robot. The main experimental result is that the error of heading angle has been reduced by 55.46%. And the essential reason why attitude errors decrease is that the rolling effect of the rigid hemisphere foot-tip has been reduced, which can extend to a whole machine with more than one leg, and then this will lead to the consequence that the body roll, twist, slip, or simply go off trajectory. This means that the algorithm can help achieve the goal of preventing the above abnormal movement of the robot. Therefore, this algorithm can not only effectively reduce the robot position-posture adjustment error, but also has simple calculation and efficient control. Meanwhile, this method is also applicable to other different types of round rigid foot-end, such as with round, hemispherical, and cylindrical rigid foot-end. Finally, the validity of the algorithm is verified by the experiment on a comparison experiment of linear position-posture change on the flat ground. The algorithm reduces the attitude error, and it is adaptable for a hexapod robot in the field environment. The limitation of the algorithm is that it is still in the open-loop stage, there will be a short mutation in the initial stage of pose transformation, and the tracking effect is not as good as that of the closed-loop control method. And for different radii of round rigid foot-end, there will be different effects. This paper does not consider these factors or carry out corresponding experiments.

#### Data Availability

All data generated or analyzed during this study are included in this article (and its Supplementary Materials files). The computer code to control the robot is available from the authors upon request.

#### Conflicts of Interest

The authors declare that they have no conflicts of interest regarding the publication of this paper.

#### Acknowledgments

This work was supported in part by the Thirteenth Five-Year Plan Equipment Pre-Research Field Fund under Grant 61403120407, in part by the Shaanxi International Science and Technology Cooperation Project under Grant 2020KW-064, in part by the Fundamental Research Funds for the Central Universities under Grants 300102259308 and 300102259401, and in part by the Open Foundation of the State Key Laboratory of Fluid Power Transmission and Control under Grant GZKF-201923.

#### Supplementary Materials

*Inverse Kinematics Analysis.* Foot-end coordinates under coordinate system.* (Supplementary Materials)*