# Solving Inverse Kinematics of the Shotcrete Manipulator Based on the Plane Two-Link Model and Trajectory Planning

Authors: Chunlei Luo; Yi He; Shitu Abubakar
Journal: Journal of Robotics
 (2020)

---

## Abstract

Traditionally, the construction of tunnel support is to manually move the manipulator through the remote control. During the manual construction process, there is a large rebound rate and a reduction in the compactness of the concrete. Skilled operators can obtain better shot blasting quality, but training of a skilled worker is costly. In this study, an automatic shotcrete manipulator is proposed to complete spraying and improve the spraying quality. The model of the manipulator is simplified into a planar two-link manipulator, solved the inverse kinematics of the shotcrete manipulator, and implemented the automatic trajectory planning process. By simplifying the complex mechanical arm structure model into a simple planar two-link manipulator model, the inverse kinematics of the shotcrete manipulator is solved, and automatic trajectory planning software is developed, which can better help construction and reduce injury to personnel’s health and can also help the construction party save materials and improve economic efficiency and construction efficiency.


---

## Body

## 1. Introduction

Due to the large number of tunnel excavations and constructions in the construction of subways, high-speed rail, trains, and highways, the use of concrete wet spray machines is required to complete the tunnel support. The State Council of China had issued and implemented the “13th Five-Year Plan for the Development of Modern Comprehensive Transportation System” on February 3, 2017, see Table1 for related indicators. The manual hand-held shotcrete or remote-controlled robotic arm shotcrete is commonly used in the current construction industry, and the quality (rebound rate and thickness) and efficiency of the construction depend on the technical ability of the workers. Often, manual construction will cause a large rebound rate. Thus, there is a lot of waste in the tunnel construction, which increases the construction cost [1]. The intensive labor resulted in workers’ fatigue, which cannot guarantee high construction efficiency. In addition, workers who work in dusty environments for a long time (see Figure 1) are prone to occupational hazards [2].Table 1
Main indicators for the development of comprehensive transportation during the “13th Five-Year Plan.”
Operating mileage2015 (year)2020 (year)IncreaseRailway operating mileage (10,000 km)12.1152.9High-speed railway operating mileage (10,000 km)1.931.1Highway operating mileage (10,000 km)45850042Expressway operating mileage (10,000 km)12.4152.6Operating mileage of urban rail transit (km)330060002700Figure 1
Construction site.Many algorithms have been proposed for the automatic control of industrial robotic arms, involving inverse kinematics, trajectory planning, motion planning, force control, and so on. Some general 6-degree-of-freedom inverse kinematics can solve the inverse solutions of some robotic arms that meet the Pieper principle [3]. Because inverse kinematics requires tedious matrix calculation processes and clever operation skills, a symbolic inverse kinematics solver is proposed [4]. For situations where formula methods cannot be used to solve inverse kinematics, numerical methods can be used [5]. Different trajectory planning methods are proposed to enable the robotic arm to produce continuous motion with excellent kinematic performance [6–8]. However, for the automatic control of the shotcrete manipulator, other aspects need to be considered.Many researchers have studied the remote operation mode of the shotcrete manipulator, data acquisition during shotcrete, simulators, etc. These studies can help workers perform shotcrete [9–11]. Different methods have been proposed to automate the shotcrete process [12–14]. Girmscheid and Moser demonstrated fully automatic shotcrete robot (Meyco). The manipulator has 8 degrees of freedom. Due to the complex mechanical structure of the shotcrete manipulator, a closed solution cannot be obtained. Therefore, it can only be solved iteratively. In this study, they set up three different modes for the shotcrete manipulator to adapt to different tunnel surface environments after blasting, including the manual mode, semiautomatic mode, and fully automatic mode. The blasting area is divided differently, and mobile spraying is performed at different speeds to ensure the designed thickness. Nabulsi et al. [13] also studied Putzmeister PM-407. This manipulator has 5 degrees of freedom. It uses incoupling and iterative techniques to solve inverse kinematics. When normal vectors cannot be extracted correctly, the surface of the design tunnel is used directly to calculate the normal vector. In such studies, a large number of matrix operations are used to solve inverse kinematics, and only numerical solutions can be provided.The objective of this research is to model and develop an analytical solution of the shotcrete trolley of Henan Gengli Engineering Equipment Company. The manipulator has 7 degrees of freedom. By reducing the complex structure model of the robot arm to a simple planar two-link manipulator model, the inverse kinematics can be solved based on the analytical solution. Based on this, the motion trajectory of shotcrete was planned, and the control platform was developed. The structure of this paper is as follows. Section2 studies the inverse kinematics of shotcrete manipulators in combination with shotcrete motion and presents theoretical relationships. Section 3 explains how to perform effective trajectory planning and analyzes the sudden changes in joint angles in motion. Section 4 develops a robot control platform based on the derived inverse kinematics formula and trajectory planning and verifies the correctness of the analytical solution and the rationality of trajectory planning. Section 5 presents the conclusions.


## 2. Inverse Kinematics

The shotcrete manipulator depicted in Figure2 has 8 degrees of freedom, and the end nozzle has one degree of freedom designed for the craft, and the movement mode is to rotate around the axis to ensure the uniformity of shotcrete. This degree of freedom is not in the control system of the manipulator. Also, there are two moving joints in the same direction. Since these two moving joints control the displacement in the same direction, they are regarded as one moving joint in the inverse kinematics model. In order to reduce the rebound of the concrete as much as possible and improve the uniformity and compactness of the shotcrete, it is necessary to keep the nozzle and the sprayed surface vertical and, at the same time, keep the nozzle and the sprayed surface at a distance of 1.5 to 2 meters [15]. The principle of the structural design of the shotcrete manipulator is to facilitate the operation of the worker, and the automatic control of the manipulator is not considered. Thus, the inverse kinematics of the shotcrete manipulator may not meet the design principles of the industrial manipulator. For example, the axes of the last three joints intersect at a point so that the inverse kinematics of the shotcrete robotic arm has a closed solution. Although the axis of the shotcrete robot that we studied meets the intersection of the axes of the last three joints, it introduces redundant degrees of freedom when controlling the position of the nozzle.Figure 2
Structural model of the shotcrete manipulator.


### 2.1. Kinematics Model of the Shotcrete Manipulator

The Denavit and Hartenberg (D-H) modeling method was used to construct the coordinate system of the shotcrete manipulator as shown in Figure3, the D-H parameters are given in Table 2, and the added nozzle coordinate system describes the target position and the sprayed surface angular relationship and distance. The two moving joints are merged into one joint and described by coordinate system 4.Figure 3
Kinematic model of the shotcrete manipulator.Table 2
D-H parameters for the shotcrete manipulator.
Joint no.αi−1 (°)ai−1 (mm)di (mm)θi (°)Angle limit (°/mm)1000θ1−180∼18029000θ20∼7030a2−d3θ3−20∼1104−900d400∼46005000θ5−180∼18069000θ6−120∼12070aede0−The initial values areθ1 = 0, θ2 = 1.5500, θ3 = 88.4500, d4 = 3406.0, θ5 = −90, and θ6 = 0. The constant values are a2 = 3272.0, d3 = 452.5, ae = 442.0, and de = 398.1.


### 2.2. Inverse Kinematics Solution

In the inverse kinematics solution, the coordinate systeme of the nozzle is not considered, which simplifies the solution process. Forward kinematics can be described as(1)T60=T10θ1T21θ2T32θ3T43d4T54θ5T65θ6=r11r12r13Pxr21r22r23Pyr31r32r33Pz0001=RP01,where(2)T10θ1=cθ1−sθ100sθ1cθ10000100001,T21θ2=cθ2−sθ20000−10sθ1cθ1000001,T32θ3=cθ3−sθ30a2sθ3cθ300001−d30001,T43d4=100000−1−d401000001,T54θ5=cθ5−sθ500sθ5cθ50000100001,T65θ6=cθ6−sθ60000−10sθ6cθ6000001.The vectorP is a 3 × 1 position vector, R is a 3 × 3 rotation matrix, and the first, second, and third columns are orthogonal vectors to each other. According to the structure of the manipulator, it is known that the front 4 joints determine the end position, but due to the redundant degrees of freedom, there are 3 known parameters here, and 3 equations can be established, but there are four unknowns, which are not directly solved according to the formula. The 1 to 4 numbers of joint will be solved by shotcrete trajectory analysis combined with geometric methods, and joint 5 and joint 6 will be solved by separating the variables using equation (1).The 1 to 4 numbers of the joint of the manipulator (joint 1, joint 2, joint 3, and joint 4) are described as seen in Figure4. The offset value d3 of joint 3 is ignored here so that joint 2 and joint 3 can be described as a two-link model. The purpose is to be able to analyze the problem more conveniently. By solving the joint angle value using (Px′,Py′,Pz′) under this model, the joint angle value can also be solved in the original coordinate system model. Joint 1 shown in Figure 4 also includes joint 2 at the same time. In order to clearly describe the effect of joints on angle, joint 2 is not expressed, and the same is true in b in Figure 4. The rotation of joint angle 1 can determine the direction of the robot arm, so joint angle 1 can be obtained by the value of the nozzle in the X-Y plane:(3)θ1=Atan2Py′,Px′.Figure 4
Simplified manipulator model 1: (a) top view; (b) front view.
(a)(b)Separating variablesθ1 to obtain equation (4)(4)T10−1T60=c1s100−s1c10000100001r11r12r13Px′r21r22r23Py′r31r32r33Pz′0001,where c1=cosθ1 and s1=sinθ1.Let (2, 1) and (2, 2) elements on both sides of equation (4) be equal.(5)−c6s5=−s1r11+c1r21,(6)−s6s5=−s1r12+c1r22.Equations (5) and (6) are squared and added, respectively, and θ5 can be solved:(7)θ5=arcsin−s1r11+c1r122+−s1r12+c1r222.By dividing equations (5) and (6), θ6 can be solved:(8)θ6=Atan2s1r12−c1r22,−s1r11+c1r21.When computingθ6, sinθ5≠0.The four joint variables determine the position of the tip nozzle and their functional relationship is:(9)P′Px′,Py′,Pz′=fθ1,θ2,θ3,d4.Detailed description of their specific relationship is given through the following formulas:(10)Px′=cosθ1a2cosθ2+d4cosθ2+θ3,Py′=sinθ1a2cosθ2+d4cosθ2+θ3,Pz′=a2sinθ2+d4sinθ2+θ3.As explained earlier, only three joint angles are required to determine the position of the end nozzle. There are four joint angles, and redundant degrees of freedom are introduced. The following is an analysis of the motion trajectory of the shotcrete manipulator to add constraints so that the equation can be solved. There are formulas for calculating joint angle 2 and joint angle 3 without adding constraints; however, they cannot really calculate the joint value:(11)θ3=acosm+n2a2d4,where m=Px′2/cos2θ1 and n=Pz′2−a22+d42. θ1 cannot be equal to −90 degree and 90 degree. Solving the joint 2 angle value is based on the geometric method (see Figure 5):(12)β=Atan2Pz′,sqrtPx′2+Py′2,α=acosl+a22−d422a2sqrtl,θ2=β±α,where l=Px′×Px′+Py′×Py′+Pz′×Pz′. θ2=β±α.Figure 5
Two-link model.α is the angle between link 2 and connection of joint 2 and end point. β is the angle between axis X and connection of joint 2 and end point.The moving area of the spray nozzle at the end of the shotcrete manipulator is divided into four pieces (see Figure6). Due to the limitation of the mechanical structure of the manipulator and the range of motion of the joint, area3 and area4 are areas that the robotic arm cannot reach. When moving joint 4 is completely retracted, d4 is 0. Area2 represents the maximum range that the two links can move when d4 equals to zero. When the nozzle moves in area2, this mode is called mode 1; if we change d4, making it more than the zero distance, the manipulator can reach farther area, and when joint 4 moves to another limit position, d4 equals to the maximum distance. Therefore, area1 implies the movement range of two links when d4 is greater than zero and less than the maximum distance. When the nozzle moves in area1, this mode is called mode 2. There are five movement statuses; statuses 1, 2, and 5 lie in area1, and all of them mean that d4 is greater than zero; statuses 3 and 4 lie in area2; both of them also mean that d4 is equal to zero. If the nozzle moves to area2, then θ2 and θ3 can be solved. If the nozzle moves to area1, the nozzle moves from one position to another. The two appropriate ways to solve the problem are changing the value of joint 2 and joint 3 simultaneously and changing the value of joint 3 and joint 4 simultaneously like CCD algorithm ideas [16]. When the shotcrete manipulator sprays the concrete in the tunnel, the manipulator will move to the back joints as fast as possible to complete spraying because the manipulator has a large amount of inertia. When the mode is changed from mode 1 to mode 2, then d4 is set to zero mile. However, when the mode is changed from mode 2 to mode 1, d4 will be computed according to the position of joint 3 and the desire position:(13)d4=sqrtPxd−Px32+Pyd−Py32+Pzd−Pz32,where Pxd,Pyd, and Pzd are the position components (x, y, z) of the target point and Px3, Py3, and Pz3 are the position components (x, y, z) of coordinate 3 (d3 = 0).Figure 6
Changes in the joint angle during nozzle movement.a2 is the constant distance, and d4 is the moving distance of joint 4.


### 2.3. Kinematic Model considering Offset

In the aforementioned simplified kinematics model, we ignored the offset valued3 between joint 3 and joint 4. The position value P′x,y,z of the end point is different from the actual end point position Px,y,z. Now, considering the offset value d3 (see Figure 7), the formula can be used to calculate the virtual position P′ from the actual expected position P. So, the inverse kinematics formula derived above can describe the actual joint angle value:(14)φ=Atan2d3,sqrtPx×Px+Py×Py−d3×d3,ϕ=Atan2Py,Px+φ.Figure 7
Two-link model (d3 is not equal to zero) in tunnel coordinates. ϕ is the angle between axis Y and connection of joint 2 and end point, and φ is the angle between link 2 and connection of joint 2 and end point.Then, we can compute the virtual desire position (d3  = 0) using the real desire position:(15)Px′=sqrtPx×Px+Py×Py−d3×d3×cosϕ,Py′=sqrtPx×Px+Py×Py−d3×d3×sinϕ,Pz′=Pz,where Px,Py,Pz is the real desire position and Px′,Py′,Pz′ is the virtual desire position.


## 2.1. Kinematics Model of the Shotcrete Manipulator

The Denavit and Hartenberg (D-H) modeling method was used to construct the coordinate system of the shotcrete manipulator as shown in Figure3, the D-H parameters are given in Table 2, and the added nozzle coordinate system describes the target position and the sprayed surface angular relationship and distance. The two moving joints are merged into one joint and described by coordinate system 4.Figure 3
Kinematic model of the shotcrete manipulator.Table 2
D-H parameters for the shotcrete manipulator.
Joint no.αi−1 (°)ai−1 (mm)di (mm)θi (°)Angle limit (°/mm)1000θ1−180∼18029000θ20∼7030a2−d3θ3−20∼1104−900d400∼46005000θ5−180∼18069000θ6−120∼12070aede0−The initial values areθ1 = 0, θ2 = 1.5500, θ3 = 88.4500, d4 = 3406.0, θ5 = −90, and θ6 = 0. The constant values are a2 = 3272.0, d3 = 452.5, ae = 442.0, and de = 398.1.


## 2.2. Inverse Kinematics Solution

In the inverse kinematics solution, the coordinate systeme of the nozzle is not considered, which simplifies the solution process. Forward kinematics can be described as(1)T60=T10θ1T21θ2T32θ3T43d4T54θ5T65θ6=r11r12r13Pxr21r22r23Pyr31r32r33Pz0001=RP01,where(2)T10θ1=cθ1−sθ100sθ1cθ10000100001,T21θ2=cθ2−sθ20000−10sθ1cθ1000001,T32θ3=cθ3−sθ30a2sθ3cθ300001−d30001,T43d4=100000−1−d401000001,T54θ5=cθ5−sθ500sθ5cθ50000100001,T65θ6=cθ6−sθ60000−10sθ6cθ6000001.The vectorP is a 3 × 1 position vector, R is a 3 × 3 rotation matrix, and the first, second, and third columns are orthogonal vectors to each other. According to the structure of the manipulator, it is known that the front 4 joints determine the end position, but due to the redundant degrees of freedom, there are 3 known parameters here, and 3 equations can be established, but there are four unknowns, which are not directly solved according to the formula. The 1 to 4 numbers of joint will be solved by shotcrete trajectory analysis combined with geometric methods, and joint 5 and joint 6 will be solved by separating the variables using equation (1).The 1 to 4 numbers of the joint of the manipulator (joint 1, joint 2, joint 3, and joint 4) are described as seen in Figure4. The offset value d3 of joint 3 is ignored here so that joint 2 and joint 3 can be described as a two-link model. The purpose is to be able to analyze the problem more conveniently. By solving the joint angle value using (Px′,Py′,Pz′) under this model, the joint angle value can also be solved in the original coordinate system model. Joint 1 shown in Figure 4 also includes joint 2 at the same time. In order to clearly describe the effect of joints on angle, joint 2 is not expressed, and the same is true in b in Figure 4. The rotation of joint angle 1 can determine the direction of the robot arm, so joint angle 1 can be obtained by the value of the nozzle in the X-Y plane:(3)θ1=Atan2Py′,Px′.Figure 4
Simplified manipulator model 1: (a) top view; (b) front view.
(a)(b)Separating variablesθ1 to obtain equation (4)(4)T10−1T60=c1s100−s1c10000100001r11r12r13Px′r21r22r23Py′r31r32r33Pz′0001,where c1=cosθ1 and s1=sinθ1.Let (2, 1) and (2, 2) elements on both sides of equation (4) be equal.(5)−c6s5=−s1r11+c1r21,(6)−s6s5=−s1r12+c1r22.Equations (5) and (6) are squared and added, respectively, and θ5 can be solved:(7)θ5=arcsin−s1r11+c1r122+−s1r12+c1r222.By dividing equations (5) and (6), θ6 can be solved:(8)θ6=Atan2s1r12−c1r22,−s1r11+c1r21.When computingθ6, sinθ5≠0.The four joint variables determine the position of the tip nozzle and their functional relationship is:(9)P′Px′,Py′,Pz′=fθ1,θ2,θ3,d4.Detailed description of their specific relationship is given through the following formulas:(10)Px′=cosθ1a2cosθ2+d4cosθ2+θ3,Py′=sinθ1a2cosθ2+d4cosθ2+θ3,Pz′=a2sinθ2+d4sinθ2+θ3.As explained earlier, only three joint angles are required to determine the position of the end nozzle. There are four joint angles, and redundant degrees of freedom are introduced. The following is an analysis of the motion trajectory of the shotcrete manipulator to add constraints so that the equation can be solved. There are formulas for calculating joint angle 2 and joint angle 3 without adding constraints; however, they cannot really calculate the joint value:(11)θ3=acosm+n2a2d4,where m=Px′2/cos2θ1 and n=Pz′2−a22+d42. θ1 cannot be equal to −90 degree and 90 degree. Solving the joint 2 angle value is based on the geometric method (see Figure 5):(12)β=Atan2Pz′,sqrtPx′2+Py′2,α=acosl+a22−d422a2sqrtl,θ2=β±α,where l=Px′×Px′+Py′×Py′+Pz′×Pz′. θ2=β±α.Figure 5
Two-link model.α is the angle between link 2 and connection of joint 2 and end point. β is the angle between axis X and connection of joint 2 and end point.The moving area of the spray nozzle at the end of the shotcrete manipulator is divided into four pieces (see Figure6). Due to the limitation of the mechanical structure of the manipulator and the range of motion of the joint, area3 and area4 are areas that the robotic arm cannot reach. When moving joint 4 is completely retracted, d4 is 0. Area2 represents the maximum range that the two links can move when d4 equals to zero. When the nozzle moves in area2, this mode is called mode 1; if we change d4, making it more than the zero distance, the manipulator can reach farther area, and when joint 4 moves to another limit position, d4 equals to the maximum distance. Therefore, area1 implies the movement range of two links when d4 is greater than zero and less than the maximum distance. When the nozzle moves in area1, this mode is called mode 2. There are five movement statuses; statuses 1, 2, and 5 lie in area1, and all of them mean that d4 is greater than zero; statuses 3 and 4 lie in area2; both of them also mean that d4 is equal to zero. If the nozzle moves to area2, then θ2 and θ3 can be solved. If the nozzle moves to area1, the nozzle moves from one position to another. The two appropriate ways to solve the problem are changing the value of joint 2 and joint 3 simultaneously and changing the value of joint 3 and joint 4 simultaneously like CCD algorithm ideas [16]. When the shotcrete manipulator sprays the concrete in the tunnel, the manipulator will move to the back joints as fast as possible to complete spraying because the manipulator has a large amount of inertia. When the mode is changed from mode 1 to mode 2, then d4 is set to zero mile. However, when the mode is changed from mode 2 to mode 1, d4 will be computed according to the position of joint 3 and the desire position:(13)d4=sqrtPxd−Px32+Pyd−Py32+Pzd−Pz32,where Pxd,Pyd, and Pzd are the position components (x, y, z) of the target point and Px3, Py3, and Pz3 are the position components (x, y, z) of coordinate 3 (d3 = 0).Figure 6
Changes in the joint angle during nozzle movement.a2 is the constant distance, and d4 is the moving distance of joint 4.


## 2.3. Kinematic Model considering Offset

In the aforementioned simplified kinematics model, we ignored the offset valued3 between joint 3 and joint 4. The position value P′x,y,z of the end point is different from the actual end point position Px,y,z. Now, considering the offset value d3 (see Figure 7), the formula can be used to calculate the virtual position P′ from the actual expected position P. So, the inverse kinematics formula derived above can describe the actual joint angle value:(14)φ=Atan2d3,sqrtPx×Px+Py×Py−d3×d3,ϕ=Atan2Py,Px+φ.Figure 7
Two-link model (d3 is not equal to zero) in tunnel coordinates. ϕ is the angle between axis Y and connection of joint 2 and end point, and φ is the angle between link 2 and connection of joint 2 and end point.Then, we can compute the virtual desire position (d3  = 0) using the real desire position:(15)Px′=sqrtPx×Px+Py×Py−d3×d3×cosϕ,Py′=sqrtPx×Px+Py×Py−d3×d3×sinϕ,Pz′=Pz,where Px,Py,Pz is the real desire position and Px′,Py′,Pz′ is the virtual desire position.


## 3. Trajectory Planning

To improve the performance of the manual operation of the shotcrete manipulator, reasonable trajectory planning of the spraying robotic arm is required. The nozzle needs to maintain a distance of 1.5–2 m from the sprayed surface, and the nozzle needs to be vertical to the sprayed surface. Therefore, the end nozzle needs to control position and attitude parameters to represent its spatial pose. For the position parameters, it needs to control 3 parameters (x, y, z), and the attitude parameters need to control 2 parameters (roll and yaw) (see Figure 8). These parameters are specified relative to the base coordinate system. After blasting, the tunnel surface would have been overexcavated and underexcavated as depicted in Figure 9. The overexcavation part requires more concrete construction than the blasted surface, and the underexcavation part needs further processing to enable shotcrete. In normal blasting, the area is sprayed once during the spraying process (from the tunnel side to the other side). During the spraying process, a thick construction can be completed, and the overdigged part is filled. Also, several shots of this area need to be shot back and forth.Figure 8
Roll (α) and yaw (γ) of the shotcrete manipulator for the nozzle during spraying. X0,Y0,Z0 is the coordinate component of the tunnel. (a) Front view. (b) Top view.
(a)(b)Figure 9
Illustration tunnel geometry.


### 3.1. Trajectory Generation

Tunnel models of various sizes were not considered in this research because environmental sensing such as Lidar is not incorporated. It is assumed that the geometric model of the tunnel is a semicircle, and the real blasted surface is not considered when trajectory planning is performed. The attitude of the nozzle is calculated by a mathematical model. In general, the trajectory of the nozzle is rectangular, and this geometry is used in the present study. By manually adjusting the shotcrete manipulator to specify the initial position and the distance between the tunnel trajectories, path length, and tunnel geometry, automatic trajectory planning program can generate a complete shot trajectory (see Figure10(b)). Figure 10(a) specifically shows the detail in trajectory planning. This trajectory is only a schematic diagram, where d is along the arc direction described in the actual trajectory planning.Figure 10
Desired shotcrete trajectory.


### 3.2. Problems in Shotcrete Manipulator Movement

During the inverse kinematics solution, the movement of some joints is restricted, and artificially added constraints may cause joint values to jump during the movement (see Figure11). The shotcrete manipulator in Figure 11(a) is working in mode 1. State 0 indicates that joint angle 3 has reached the limit of positive values. When the shotcrete manipulator continues to move upward, the positive value of joint angle 3 is exceeded. If the shotcrete manipulator cannot meet state 1, it will jump to state 2 and cause the joint values of 2 and 3 to change suddenly. The shotcrete manipulator in Figure 11(b) works in mode 2. State 3 indicates joint 3 has reached the limit of positive values. If the shotcrete manipulator continues to move, the values of joints 2 and 3 will also change suddenly. Because in the shot trajectory planning, linear motion is used, this mode is also one of the reasons that causes the joint value to jump. We propose a solution. When joint angle 3 of the shotcrete manipulator approaches the extreme position, it does not move in the area’s motion mode or a straight line but changes the motion mode or moves in an arc path or combines the two (see Figure 12); this can prevent the angular value of joint 2 and joint 3 from jumping.Figure 11
The problem of movement of the nozzle: (a) nozzle work in mode 1 and (b) nozzle work in model 2.
(a)(b)Figure 12
Solutions to problems in movement of the nozzle: (a) change mode 1 to mode 2 and (b) change model 2 to mode 1 and move in a circular path.
(a)(b)


## 3.1. Trajectory Generation

Tunnel models of various sizes were not considered in this research because environmental sensing such as Lidar is not incorporated. It is assumed that the geometric model of the tunnel is a semicircle, and the real blasted surface is not considered when trajectory planning is performed. The attitude of the nozzle is calculated by a mathematical model. In general, the trajectory of the nozzle is rectangular, and this geometry is used in the present study. By manually adjusting the shotcrete manipulator to specify the initial position and the distance between the tunnel trajectories, path length, and tunnel geometry, automatic trajectory planning program can generate a complete shot trajectory (see Figure10(b)). Figure 10(a) specifically shows the detail in trajectory planning. This trajectory is only a schematic diagram, where d is along the arc direction described in the actual trajectory planning.Figure 10
Desired shotcrete trajectory.


## 3.2. Problems in Shotcrete Manipulator Movement

During the inverse kinematics solution, the movement of some joints is restricted, and artificially added constraints may cause joint values to jump during the movement (see Figure11). The shotcrete manipulator in Figure 11(a) is working in mode 1. State 0 indicates that joint angle 3 has reached the limit of positive values. When the shotcrete manipulator continues to move upward, the positive value of joint angle 3 is exceeded. If the shotcrete manipulator cannot meet state 1, it will jump to state 2 and cause the joint values of 2 and 3 to change suddenly. The shotcrete manipulator in Figure 11(b) works in mode 2. State 3 indicates joint 3 has reached the limit of positive values. If the shotcrete manipulator continues to move, the values of joints 2 and 3 will also change suddenly. Because in the shot trajectory planning, linear motion is used, this mode is also one of the reasons that causes the joint value to jump. We propose a solution. When joint angle 3 of the shotcrete manipulator approaches the extreme position, it does not move in the area’s motion mode or a straight line but changes the motion mode or moves in an arc path or combines the two (see Figure 12); this can prevent the angular value of joint 2 and joint 3 from jumping.Figure 11
The problem of movement of the nozzle: (a) nozzle work in mode 1 and (b) nozzle work in model 2.
(a)(b)Figure 12
Solutions to problems in movement of the nozzle: (a) change mode 1 to mode 2 and (b) change model 2 to mode 1 and move in a circular path.
(a)(b)


## 4. Trajectory Planning Simulation

### 4.1. Verification of Inverse Kinematics

The inverse kinematics solution calculates the current joint angle value based on the previous joint angle vector value and the current motion mode. As it can be seen from Table3, when the shotcrete robot moves in mode 1, the value of joint 4 is constant, and the movement of joints 2 and 3 and joint 1 enables the tip nozzle to reach the desired position. From Table 4, it can be seen that when the shotcrete manipulator moves in mode 2, the value of joint 2 is constant. The movement of joints 3 and 4 and joint 1 enables the tip nozzle to reach the desired position. From Table 5, we can see that the changes of the joint angle are continuous when switching between mode 1 and mode 2. Therefore, it is verified that the inverse kinematics solution combined with trajectory planning is correct.Table 3
Solutions of inverse kinematics in mode 1.
Solution no.θ1radθ2radθ3radd4mθ5radθ6rad10.0800180.456693−0.2279123.4060000.7576251.02976720.0798280.456685−0.2293163.4060000.7583061.03000330.0796380.456667−0.2307033.4060000.7589871.03023940.0794480.456642−0.2320743.4060000.7596681.03047550.0792580.456607−0.2334303.4060000.7603491.03071260.0790680.456566−0.2347693.4060000.7610291.03094970.0788790.456516−0.2360943.4060000.7617101.03118880.0786890.456458−0.2374033.4060000.7623901.031426Pose no.xmymzmRollradPitchradYawrad16.1577670.9477362.294252−0.773213−0.1508692.83349526.1590440.9466542.289542−0.773320−0.1522632.83364236.1603220.9455722.284829−0.773430−0.1536492.83378946.1615990.9444912.280118−0.773545−0.1550282.83393656.1628780.9434092.275403−0.773662−0.1564002.83408366.1641550.9423272.270694−0.773784−0.1577642.83423076.1654320.9412442.265984−0.773910−0.1591202.83437886.1667110.9401632.261270−0.774039−0.1604702.834526Table 4
Solutions of inverse kinematics in mode 2.
Solution no.θ1radθ2radθ3radd4mθ5radθ6rad10.0052810.046679−0.0318883.4404531.0284331.20012620.0051190.046679−0.0332653.4415851.0290131.20076230.0049570.046679−0.0346383.4427231.0295921.20139940.0047940.046679−0.0360113.4438691.0301711.20203850.0046320.046680−0.0373823.4450211.0307491.20267860.0044700.046682−0.0387553.4461791.0313271.20331970.0043080.046683−0.0401283.4473451.0319051.20396380.0041460.046682−0.0414983.4485171.0324821.204607Pose no.xmymzmRollradPitchradYawrad16.7007040.4878960.291913−0.999891−0.3009592.94982826.7019810.4868140.287199−1.000311−0.3018862.95012636.7032590.4857320.282486−1.000733−0.3028102.95042546.7045360.4846500.277768−1.001155−0.3037332.95072456.7058130.4835680.273064−1.001579−0.3046502.95102466.7070910.4824860.268356−1.002004−0.3055662.95132476.7083680.4814040.263644−1.002430−0.3064812.95162586.7096460.4803220.258920−1.002857−0.3073942.951926Table 5
Solutions of inverse kinematics between mode 1 and mode 2.
Solution no.θ1radθ2radθ3radd4mθ5radθ6rad10.0944660.541054−0.2839323.4886240.7060871.01358320.0942710.541054−0.2853173.4884750.7067801.01378130.0940760.3927740.0002743.4060000.7074731.01397940.0938800.399768−0.0148363.4060000.7081661.01417750.0110030.058919−0.0072613.4060001.0079311.17881760.0108380.0466790.0153293.4060001.0085221.17940170.0106740.0466780.0139283.4069001.0091131.17998780.0105090.0466810.0125233.4078081.0097041.180574Pose no.xmymzmRollradPitchradYawrad16.0619551.0288852.647606−0.736393−0.1162842.81894826.0632321.0278032.642895−0.736463−0.1176892.81908236.0645071.0267212.638190−0.7924890.0078692.82233346.0657861.0256392.633476−0.7898170.0003192.82255156.6559900.5257650.456821−0.983323−0.2785222.93895466.6572690.5246830.452097−0.986286−0.2680432.93993476.6585460.5236010.447382−0.986667−0.2690502.94021886.6598230.5225190.442673−0.987049−0.2700552.940503A linear motion path containing two motion modes and conversion between modes is selected to verify the proposed inverse kinematics algorithm. Tables3–5 only provide part of the data on the path to illustrate the correctness of the inverse kinematics algorithm. Solution no. means the calculated joint angle, and pose no. represents the corresponding end point pose.Where step = 0.005 m, the initial position of the movement is(16)θ1=pi×6180,θ2=pi×31180,θ3=−pi×12.16180,θ4=3.5059,θ5=pi×38.38180,θ6=pi×57.52180.The end position is(17)θ1=pi×0180,θ2=pi×3.64180,θ3=−pi×6.24180,θ4=3.4875,θ5=pi×60180,θ6=pi×70180.


### 4.2. Results of Automatic Trajectory Generation

Based on the correct inverse kinematics algorithm and trajectory planning algorithm, we use OpenGL and Qt to develop host computer control software for controlling the shotcrete manipulator (see Figure13). Simulation is included in control software to verify the correctness of the trajectory. If the parameters set are not reasonable, the parameters can be adjusted to regenerate the trajectory. Control software can monitor the motion status of the shotcrete manipulator in real time displaying the real shotcrete manipulator movement in the simulation graphical interface. Control software provides a friendly human-machine interaction interface that is simple and convenient to operate. The design principle of the control system does not change the original-spraying robot arm as much. Additional motion controller communicates with the original motion controller to achieve the motion control of the shotcrete manipulator.Figure 13
Robot control platform software interface.By setting reasonable set of parameters, control software generates a set of executable trajectories, and simulations in software show this process (see Figure14).Figure 14
Motion simulation of the shotcrete manipulator.


## 4.1. Verification of Inverse Kinematics

The inverse kinematics solution calculates the current joint angle value based on the previous joint angle vector value and the current motion mode. As it can be seen from Table3, when the shotcrete robot moves in mode 1, the value of joint 4 is constant, and the movement of joints 2 and 3 and joint 1 enables the tip nozzle to reach the desired position. From Table 4, it can be seen that when the shotcrete manipulator moves in mode 2, the value of joint 2 is constant. The movement of joints 3 and 4 and joint 1 enables the tip nozzle to reach the desired position. From Table 5, we can see that the changes of the joint angle are continuous when switching between mode 1 and mode 2. Therefore, it is verified that the inverse kinematics solution combined with trajectory planning is correct.Table 3
Solutions of inverse kinematics in mode 1.
Solution no.θ1radθ2radθ3radd4mθ5radθ6rad10.0800180.456693−0.2279123.4060000.7576251.02976720.0798280.456685−0.2293163.4060000.7583061.03000330.0796380.456667−0.2307033.4060000.7589871.03023940.0794480.456642−0.2320743.4060000.7596681.03047550.0792580.456607−0.2334303.4060000.7603491.03071260.0790680.456566−0.2347693.4060000.7610291.03094970.0788790.456516−0.2360943.4060000.7617101.03118880.0786890.456458−0.2374033.4060000.7623901.031426Pose no.xmymzmRollradPitchradYawrad16.1577670.9477362.294252−0.773213−0.1508692.83349526.1590440.9466542.289542−0.773320−0.1522632.83364236.1603220.9455722.284829−0.773430−0.1536492.83378946.1615990.9444912.280118−0.773545−0.1550282.83393656.1628780.9434092.275403−0.773662−0.1564002.83408366.1641550.9423272.270694−0.773784−0.1577642.83423076.1654320.9412442.265984−0.773910−0.1591202.83437886.1667110.9401632.261270−0.774039−0.1604702.834526Table 4
Solutions of inverse kinematics in mode 2.
Solution no.θ1radθ2radθ3radd4mθ5radθ6rad10.0052810.046679−0.0318883.4404531.0284331.20012620.0051190.046679−0.0332653.4415851.0290131.20076230.0049570.046679−0.0346383.4427231.0295921.20139940.0047940.046679−0.0360113.4438691.0301711.20203850.0046320.046680−0.0373823.4450211.0307491.20267860.0044700.046682−0.0387553.4461791.0313271.20331970.0043080.046683−0.0401283.4473451.0319051.20396380.0041460.046682−0.0414983.4485171.0324821.204607Pose no.xmymzmRollradPitchradYawrad16.7007040.4878960.291913−0.999891−0.3009592.94982826.7019810.4868140.287199−1.000311−0.3018862.95012636.7032590.4857320.282486−1.000733−0.3028102.95042546.7045360.4846500.277768−1.001155−0.3037332.95072456.7058130.4835680.273064−1.001579−0.3046502.95102466.7070910.4824860.268356−1.002004−0.3055662.95132476.7083680.4814040.263644−1.002430−0.3064812.95162586.7096460.4803220.258920−1.002857−0.3073942.951926Table 5
Solutions of inverse kinematics between mode 1 and mode 2.
Solution no.θ1radθ2radθ3radd4mθ5radθ6rad10.0944660.541054−0.2839323.4886240.7060871.01358320.0942710.541054−0.2853173.4884750.7067801.01378130.0940760.3927740.0002743.4060000.7074731.01397940.0938800.399768−0.0148363.4060000.7081661.01417750.0110030.058919−0.0072613.4060001.0079311.17881760.0108380.0466790.0153293.4060001.0085221.17940170.0106740.0466780.0139283.4069001.0091131.17998780.0105090.0466810.0125233.4078081.0097041.180574Pose no.xmymzmRollradPitchradYawrad16.0619551.0288852.647606−0.736393−0.1162842.81894826.0632321.0278032.642895−0.736463−0.1176892.81908236.0645071.0267212.638190−0.7924890.0078692.82233346.0657861.0256392.633476−0.7898170.0003192.82255156.6559900.5257650.456821−0.983323−0.2785222.93895466.6572690.5246830.452097−0.986286−0.2680432.93993476.6585460.5236010.447382−0.986667−0.2690502.94021886.6598230.5225190.442673−0.987049−0.2700552.940503A linear motion path containing two motion modes and conversion between modes is selected to verify the proposed inverse kinematics algorithm. Tables3–5 only provide part of the data on the path to illustrate the correctness of the inverse kinematics algorithm. Solution no. means the calculated joint angle, and pose no. represents the corresponding end point pose.Where step = 0.005 m, the initial position of the movement is(16)θ1=pi×6180,θ2=pi×31180,θ3=−pi×12.16180,θ4=3.5059,θ5=pi×38.38180,θ6=pi×57.52180.The end position is(17)θ1=pi×0180,θ2=pi×3.64180,θ3=−pi×6.24180,θ4=3.4875,θ5=pi×60180,θ6=pi×70180.


## 4.2. Results of Automatic Trajectory Generation

Based on the correct inverse kinematics algorithm and trajectory planning algorithm, we use OpenGL and Qt to develop host computer control software for controlling the shotcrete manipulator (see Figure13). Simulation is included in control software to verify the correctness of the trajectory. If the parameters set are not reasonable, the parameters can be adjusted to regenerate the trajectory. Control software can monitor the motion status of the shotcrete manipulator in real time displaying the real shotcrete manipulator movement in the simulation graphical interface. Control software provides a friendly human-machine interaction interface that is simple and convenient to operate. The design principle of the control system does not change the original-spraying robot arm as much. Additional motion controller communicates with the original motion controller to achieve the motion control of the shotcrete manipulator.Figure 13
Robot control platform software interface.By setting reasonable set of parameters, control software generates a set of executable trajectories, and simulations in software show this process (see Figure14).Figure 14
Motion simulation of the shotcrete manipulator.


## 5. Conclusions

A simple and effective inverse kinematics calculation method was proposed. Based on this inverse kinematics, trajectory planning of the shotcrete manipulator was realized. The two-link manipulator model is used to solve the inverse kinematics of the 6-degree-of-freedom shotcrete manipulator. The process is simple and efficient, does not require a large number of matrix operations, and can easily be obtained.A combination of the motion trajectory shotcrete manipulator and its control principles is presented. Therefore, reasonable constraints enable the inverse kinematics of the robotic arm to be solved. In the simplified geometry model, it is described that, by giving some initial parameters, spraying trajectory can be automatically generated. Based on the inverse kinematics solution and automatic trajectory generation proposed, manipulator control software was developed using OpenGL and QT, which provides a friendly human-computer interaction interface.In this study, a simple geometry tunnel model is used. In the future, the real tunnel model will be obtained by sensing the environmental information with Lidar. At the same time, the normal vector of the tunnel section after blasting can be calculated to give the attitude of the tip nozzle, which can be more perpendicular to the sprayed surface to a large extent, ensuring a smaller rebound rate and better compaction.



---

*Source: 8844979-2020-09-01.xml*