1 Introduction

Usually, we use Denavit-Hartenberg (D-H) method to analyze the kinematics of robot. The key of this method is to establish a set of D-H parameters which indicate the relationship of the coordinate systems of all joints [1]. There are a lot of studies on the serial chain industry robots, however few studies are on such industry robots with complex structures. For example, a kind of large universal industry robot with hybrid hinge structure allows its arm to move backwards in low energy consumption. The motion law of this robot differs from that of other robots and its D-H parameters cannot be determined easily. Two solutions are proposed to deal with this special structure. One is to transform the structure into equivalent serial joints (revolute or prismatic joints). Then we can determine the D-H parameters one by one based on D-H theory [2]. The other is to transform closed chains to open chains so that we can calculate the relationship between the active and passive joints. Then, the complex structure is transformed into simple serial structure [3]. The first method needs to analyze the characteristics of every joint in this hybrid hinge, thus it is sophisticated and error-prone [4]. Meantime, in the second method, although a general theory to analyze all closed chains is introduced, the breakdown structure is not presented and this theory is not verified by experiments. Considering these two methods, it will be easier for us to determine the relationship between coordinate systems of joints if we know the kinematics characteristic of the special structure. Hence the motion characteristic of the special structure is analyzed based on the closed-to-open chain theory in the paper. Then the coordinate systems are directly established at each active joint. The advantage of the method is that it can avoid judging the motion of each kinematic pair in the structure [5]. In addition, it is convenient to build the simulation model mentioned below.

2 Kinematics characteristic of new-type robot

Figure 1 shows the large universal robot—ZX165U of Kawasaki Company. Such robots can keep the translation motion of its end-effector when it is palletizing. During this process, fewer motors work, thus less energy is consumed. Furthermore, the damper settled on the base is an important component to keep the object stable and safe in the whole process [6]. All joints except the joint 2 (JT2) are the same as those in usual robots. In this paper, we will only discuss how the spinning of joint 2 affects the kinematics characteristic of the whole robot [7, 8].

Fig. 1
figure 1

Industry robot consisting of hybrid hinge structures

Firstly, we theoretically analyze the kinematics characteristic of the special structure. Figure 2a demonstrates a mixed system consisting of closed chain structure. There are n links and L i is the name of a certain mid-link in the system. Figures 2b, c are two kinds of logic open-chain systems generated from Fig. 2a. The producing mode of these two open-chain systems is shown as following [3, 9]. All links with which the closed chain intersects with outside world are determined (such as L m and L m+4 in Fig. 2a). And then all parallel links connected to these links (L m and L m+4) are figured out. Thus we can easily choose two different routes (from L m to L n ), where no parallel link exists. Finally, two logic open-chain systems are generated according to corresponding selected routes. As a result, all non-redundant links exist in the logic open-chain systems, as shown in Figs. 2a, b.

Fig. 2
figure 2

Closed-chain system and open-chain systems

Considering the characteristic of the robot we are studying, there are totally 8 links. So n will be equal to 8 if m is equal to 1 (see Fig. 2). The degree of freedom (DOF) (N) is equal to 6 (the number of active joints), and the number of passive joints (P) is equal to 3. We assume the variables of the active joints as \( q_{{{\text{A}},i}} \) (i = 1, 2, ⋯, 6) and the variables of the passive joints as \( q_{{{\text{P}},j}} \) (j = 1, 2, 3). In the theoretical basis and research scope of rigid body dynamics, rigid displacement is only determined by the six active joints exclusively [10]. The relative equation is

$$ q_{{{\text{P}},j}} = q_{{{\text{P}},j}} \,(q_{{{\text{A}},1}} ,q_{{{\text{A}},2}} \cdots ,q_{{{\text{A}},6}} ),\quad j = 1,{ 2},{ 3}. $$
(1)

Equation (1) shows the displacement dependency between passive and active joints, which can be written as

$$ q_{{{\text{P}},j}} = q_{{{\text{P}},j}} (q_{ 1} ,q_{ 2} , \cdots ,q_{ 9} ), \quad j = 1, 2,{ 3}.$$
(2)

There are other two geometric constraints. One is that link L m+1 is fixed on the base. The other is that the closed chain is a parallelogram structure. Consequently, from Eq. (2) we can obtain

$$ - q_{ 4} = - q_{ 5} = q_{ 3} = q_{ 2}.$$
(3)

Namely, the L m+2 moves the same as the L m+3 does. So the manipulator fixed on the link L m+5 keeps executing translation consistently.

Figure 3 shows the simulation model of the robot. Only the joint 2 is rotating in the simulation process. Figure 3a shows the initial state of the robot meaning that all the angles of joints are 0. Figures 3b, c demonstrate the corresponding status of the robot when the joint 2 moves π/4 clockwise and anticlockwise respectively. The manipulator keeps translation motion all the time, which is consistent with the actual situation (see Fig. 3).

Fig. 3
figure 3

Motion status of robot manipulator when only JT2 moves to 0, −π/4 and π/4

Now, we can make a conclusion that the end-effector of the robot executes translation motion while all joints are fixed except the rotating joint 2.

3 Kinematics analysis

The aim of kinematics analysis is to describe the kinematic relationship between joints and end-effector. The analysis solutions can demonstrate how to control robot motion, and establish the dynamic equation and the model for error analysis [11, 12].

3.1 Forward kinematics and homogeneous transformation

The position of joints and orientations of rigid bodies can be described by coordinate systems fixed on joints [10]. So we build coordinate system on every active joint [12].

In Fig. 4, the coordinate system of ZX165U robot is established. First of all, the coordinate system 1 is established and it coincides with the base coordinate system 0. For convenience, the Z axis is parallel to the axis of each rotating joint and the direction of Z axis is determined by the rotation direction and fixed conventionally by right hand rule. The second axis is exactly consistent with one of the certain axes in previous coordinate system. Finally, the last axis is determined by the right hand rule again.

Fig. 4
figure 4

Homogeneous coordinate system of Kawasaki ZX165U

The dimension parameters in the coordinate system are shown in Fig. 4, in which the axes Z 1Z 6 are consistent with the revolute joints JT1–JT6, L 1 = 670 mm, L 3 = 1 100 mm, L 4 = 270 mm, L 5 = 288 mm, L 6 = 1 100 mm, L 7 = 228 mm.

According to homogeneous transformation formula

(4)

we can obtain all matrices: \({}_{1}^{0} {\user2{T}},\,{}_{2}^{1} {\user2{T}},\,{}_{2t}^{2} {\user2{T}},\,{}_{3{\textit{t}}}^{2{\textit{t}}} {\user2{T}},\,{}_{3}^{3t} {\user2{T}},\,{}_{4}^{3} {\user2{T}},\,{}_{5}^{4} {\user2{T}},\,{}_{6}^{5} {\user2{T}},\,{}_{\text{e}}^{6} {\user2{T}}\). The character “e” represents end-effector coordinate; refers to the transformation relationship from the coordinate i−1 to i; refers to the revolution relationship from the coordinate i−1 to i; D refers to the translation vector from the coordinate i−1 to i. In Fig. 4, for example, coordinate system 1 shifts L 2 distance along the +Y, and shifts L 1 distance along the +Z, then anticlockwise rotates π/2 around the +Y. Then it can be transformed to coordinate 2. The transformation matrix is

$${}_{2}^{1} {\user2{T}} = {\user2{T}}_{Z} \left( {L_{ 1} } \right){\user2{T}}_{Y} \left( {L_{ 2} } \right){\user2{R}}_{Y} \left( {\pi / 2} \right),$$
(5)

where T Z (L 1) and T Y (L 2) refer to translation matrices; L 1 and L 2 are translation lengths along the corresponding axes; R Y (θ) refers to rotation matrix; θ is anticlockwise rotation angle around the +Y.

When other matrices are computed, the transformation matrix from end-effector coordinate to base coordinate is obtained [13, 14]. The solution to the forward kinematics is as follows

$${}_{\text{e}}^{ 0} {\user2{T}} = {}_{1}^{0} {\user2{T}}{}_{2}^{1} {\user2{T}}{}_{2t}^{2} {\user2{T}}{}_{3t}^{2t} {\user2{T}}{}_{3}^{3t} {\user2{T}}{}_{4}^{3} {\user2{T}}{}_{5}^{4} {\user2{T}}{}_{6}^{5} {\user2{T}}{}_{\text{e}}^{ 6} {\user2{T}} = \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {n_{x} } \\ {n_{y} } \\ {n_{z} } \\ 0 \\ \end{array} } & {\begin{array}{*{20}c} {o_{x} } \\ {o_{y} } \\ {o_{z} } \\ 0 \\ \end{array} } & {\begin{array}{*{20}c} {a_{x} } \\ {a_{y} } \\ {a_{z} } \\ 0 \\ \end{array} } & {\begin{array}{*{20}c} {p_{x} } \\ {p_{y} } \\ {p_{z} } \\ 1 \\ \end{array} } \\ \end{array} } \right],$$
(6)

where

$$\begin{aligned} n_{x} =& c_{ 6} (c_{ 1} c_{ 4} - s_{ 1} s_{ 3} s_{ 4} ) - s_{ 6} \left( {c_{ 5} \left( {c_{ 1} s_{ 4} + c_{ 4} s_{ 1} s_{ 3} } \right) \, + c_{ 3} s_{ 1} s_{ 5} } \right), \hfill \\ n_{y} = &c_{ 6} \left( {c_{ 4} s_{ 1} + c_{ 1} s_{ 3} s_{ 4} } \right) - s_{ 6} (c_{ 5} (s_{ 1} s_{ 4} - c_{ 1} c_{ 4} s_{ 3} ) - c_{ 1} c_{ 3} s_{ 5} ), \hfill \\ n_{z} = &s_{ 6} (s_{ 3} s_{ 5} - c_{ 3} c_{ 4} c_{ 5} ) - c_{ 3} c_{ 6} s_{ 4} , \hfill \\ o_{x} = &- c_{ 6} \left( {c_{ 5} \left( {c_{ 1} s_{ 4} + c_{ 4} s_{ 1} s_{ 3} } \right) \, + c_{ 3} s_{ 1} s_{ 5} } \right) - s_{ 6} (c_{ 1} c_{ 4} - s_{ 1} s_{ 3} s_{ 4} ), \hfill \\ o_{y} =& - c_{ 6} (c_{ 5} (s_{ 1} s_{ 4} - c_{ 1} c_{ 4} s_{ 3} ) - c_{ 1} c_{ 3} s_{ 5} ) - s_{ 6} \left( {c_{ 4} s_{ 1} + c_{ 1} s_{ 3} s_{ 4} } \right), \hfill \\ o_{z} =& c_{ 6} (s_{ 3} s_{ 5} - c_{ 3} c_{ 4} c_{ 5} ) \, + c_{ 3} s_{ 4} s_{ 6} , \hfill \\ \end{aligned}$$
$$ \begin{aligned} a_{x} =\,& s_{ 5} \left( {c_{ 1} s_{ 4} + c_{ 4} s_{ 1} s_{ 3} } \right) - c_{ 3} c_{ 5} s_{ 1} , \hfill \\ a_{y} =\,&s_{ 5} (s_{ 1} s_{ 4} - c_{ 1} c_{ 4} s_{ 3} ) \, + c_{ 1} c_{ 3} c_{ 5} , \hfill \\ a_{z} =\,& {\text{c}}_{ 5} {\text{s}}_{ 3} + {\text{ c}}_{ 3} {\text{c}}_{ 4} {\text{s}}_{ 5} , \hfill \\ p_{x} =\,& L_{ 3} s_{ 1} s_{ 2} - L_{ 6} c_{ 3} s_{ 1} - L_{ 5} s_{ 1} - L_{ 7} c_{ 3} c_{ 5} s_{ 1} + L_{ 7} c_{ 1} s_{ 4} s_{ 5} + L_{ 7} c_{ 4} s_{ 1} s_{ 3} s_{ 5} , \hfill \\ p_{y} =\,& L_{ 5} c_{ 1} + L_{ 6} c_{ 1} c_{ 3} - L_{ 3} c_{ 1} s_{ 2} + L_{ 7} c_{ 1} c_{ 3} c_{ 5} + L_{ 7} s_{ 1} s_{ 4} s_{ 5} - L_{ 7} c_{ 1} c_{ 4} s_{ 3} s_{ 5} , \hfill \\ p_{z} =\,& L_{ 1} + L_{ 4} + L_{ 3} c_{ 2} + L_{ 6} s_{ 3} + L_{ 7} c_{ 5} s_{ 3} + L_{ 7} c_{ 3} c_{ 4} s_{ 5} , \hfill \\ \end{aligned} $$
(7)

where s i  = sin θ i , c i  = cos θ i , s ij  = sin (θ i +θ j ), c ij  = cos (θ i +θ j ), i, j = 1, 2, ⋯, 6 .

3.2 Inverse kinematics

The issue of robot inverse kinematics is to calculate all the corresponding joint angles when the pose and location of robot are given [13]. In other words, the joint variables θ i (i = 1, 2, ⋯, 6) can be determined based on kinematics equation if the values of n, o, a, p and the needed geometric parameters are known [14]. Equation (7) is used to get the solution to the inverse kinematics equation. This paper determines the first three joint variables θ i (i = 1, 2, 3) by means of algebraic method, and the common inverse transformation method [15] is used to determine the last three joint variables θ i (i = 4, 5, 6).

First of all, there is only θ 1 left and other variables are eliminated by elimination method [16, 17] for Eq. (7), such as

$$ p_{x} - L_{ 7} a_{x} = - s_{ 1} (L_{ 5} + L_{ 6} c_{ 3} - L_{ 3} s_{ 2} ), $$
(8)
$$ p_{y} - L_{ 7} a_{y} = c_{ 1} (L_{ 5} + L_{ 6} c_{ 3} - L_{ 3} s_{ 2} ), $$
(9)
$$ p_{z} - L_{ 1} - L_{ 4} - L_{ 7} a_{z} = L_{ 3} c_{ 2} + L_{ 6} s_{ 3} . $$
(10)

Assume

$$ A = L_{ 5} + L_{ 6} c_{ 3} - L_{ 3} s_{ 2} . $$
(11)

Equation (11) is substituted back into Eqs. (8) and (9). Thus Eq. (12) is obtained.

$$ \left\{ \begin{array}{l} A^{ 2} = \,(p_{x} - L_{ 7} a_{x} )^{ 2} + (p_{y} - L_{ 7} a_{y} )^{ 2} , \hfill \\ { \sin}\;\theta_{ 1} = - (p_{x} - L_{ 7} a_{x} )/A, \hfill \\ { \cos}\;\theta_{ 1} = (p_{y} - L_{ 7} a_{y} )/A, \hfill \\ { \tan}\;\theta_{ 1} = - (p_{x} - L_{ 7} a_{x} )/ \, (p_{y} - L_{ 7} a_{y} ), \hfill \\ \end{array} \right. $$
(12)

therefore,

$$ \theta_{ 1} = { \arctan}\;( - (p_{x} - L_{ 7} a_{x} )/ \, (p_{y} - L_{ 7} a_{y} )),\theta_{ 1} \in [ - 2\pi , 2\pi ]. $$
(13)

In Eqs. (10) and (11), the quadratic components of both sides are added together, and we get

$$ A{ \sin}\;\theta_{ 2} - B{ \cos}\;\theta_{ 2} = C, $$
(14)

where \( B = p_{z} - L_{1} - L_{4} - L_{7} a_{z} ,C = L_{6}^{2} - (L_{3}^{2} + L_{5}^{2} - 2L_{5} A + A^{2} + B^{2} )/2L_{3} . \)

Substituting sin φ=A and cos φ=B into Eq. (14) leads to

$$ \left\{ \begin{aligned} D{ \cos}\; \left( {\theta_{ 2} + \varphi } \right) = C, \hfill \\ D =& \sqrt {A^{2} + B^{2} } . \hfill \\ \end{aligned} \right. $$
(15)

Thus,

$$ \theta_{ 2} = {\text{arccos}}\left( {C/D} \right) - \varphi ,\theta_{ 2} \in [ - \pi / 3,{ 5}\pi / 1 2]. $$
(16)

We can substitute θ 2 into Eqs. (10) and (11) and obtain

$$ \theta_{ 3} = { \arctan }\;((B - L_{ 3} \times { \cos}\;\theta_{ 2} )/(A + L_{ 3} { \sin}\;\theta_{ 2} - L_{ 5} )),\theta_{ 3} \in [ - 2\pi / 3,{ 25}\pi / 1 8]. $$
(17)

Also θ 4, θ 5, θ 6 are determined as follows.

Equation (18) is deducted by multiplying both sides of Eq. (6) with all inverse transformation matrices from joint 1 to joint 3,

$$ {}_{3}^{3t} {\user2{T}}^{ - 1} {}_{3t}^{2t} {\user2{T}}^{ - 1} {}_{2t}^{2} {\user2{T}}^{ - 1} {}_{2}^{1} {\user2{T}}^{ - 1} {}_{1}^{0} {\user2{T}}^{ - 1} {}_{\text{e}}^{ 0} {\user2{T}} = {}_{4}^{3} {\user2{T}}{}_{5}^{4} {\user2{T}}{}_{6}^{5} {\user2{T}}{}_{\text{e}}^{ 6} {\user2{T}} . $$
(18)

So we get the equation below:

$$ \left[ {\begin{array}{*{20}c} {n_{3x} } & {o_{3x} } & {a_{3x} } & {p_{ 3x} } \\ {n_{3y} } & {o_{3y} } & {a_{3y} } & {p_{ 3y} } \\ {n_{3z} } & {o_{3z} } & {a_{3z} } & {p_{ 3z} } \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {c_{6} s_{4} + c_{4} c_{5} s_{6} } & {c_{4} c_{5} c_{6} - s_{4} s_{6} } & { - c_{4} s_{5} } & { - L_{7} c_{4} c_{5} } \\ {s_{5} s_{6} } & {c_{6} s_{5} } & {c_{5} } & {L_{6} + L_{7} c_{5} } \\ {c_{4} c_{6} - c_{5} s_{4} s_{6} } & { - c_{4} s_{6} - c_{5} c_{6} s_{4} } & {s_{4} s_{5} } & {L_{7} s_{4} s_{5} } \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] .$$
(19)

The left part of Eq. (19) contains known joint variables i.e., θ 1, θ 2 and θ 3, while the other side contains the joint variables θ 4, θ 5 and θ 6 to be solved. As a result,

$$ \left\{ \begin{gathered} c_{ 5} = a_{z} s_{ 3} + a_{y} c_{ 1} c_{ 3} - a_{x} s_{ 1} s_{ 3} , \hfill \\ \theta_{ 5} = {\text{arccos }}(a_{z} s_{ 3} + a_{y} c_{ 1} c_{ 3} - a_{x} s_{ 1} c_{ 3} ),\theta_{ 5} \in [ - 1 3\pi / 1 8, 1 3\pi / 1 8]. \hfill \\ \end{gathered} \right. $$
(20)

Get rid of the singular solution, θ 5=0,

$$ \left\{ \begin{gathered} - c_{ 4} s_{ 5} = s_{ 3} c_{ 1} a_{y} - s_{ 3} s_{ 1} a_{x} - c_{ 3} a_{z} , \hfill \\ \theta_{ 4} = {\text{arccos }}((c_{ 3} a_{z} - s_{ 3} c_{ 1} a_{y} + s_{ 3} s_{ 1} a_{x} )/s_{ 5} ),\theta_{ 4} \in [ - 2\pi ,{ 2}\pi ], \hfill \\ \theta_{ 6} = {\text{arccos }}((s_{ 3} o_{z} + c_{ 3} c_{ 1} o_{y} - c_{ 3} s_{ 1} o_{x} )/s_{ 5} ),\theta_{ 6} \in [ - 2\pi ,{ 2}\pi ]. \hfill \\ \end{gathered} \right. $$
(21)

4 Analysis of simulation

Model simulation can verify the correctness of the kinematic analysis, and provide intuitive understanding and rigorous data [1, 18]. The robot model discussed in this paper is built relying on the powerful function of the MATLAB platform.

4.1 The toolbox and the model

There are two qualified requirements [19, 20]. The first one is to build an accurate robot model. The second one is to control the model for communication. With module database, we can build a complex mechanical model to realize the simulation of the mechanical structure. Meantime, driver and the sensor modules are effective ways to connect Simmechanics with Simulink [21, 22].

As shown in Fig. 5, the model system can simulate the system controlled by the designed GUI. As shown in Fig. 5, there are six active joints, three passive joints and three fixed joints.

Fig. 5
figure 5

Generated model in Simmechanics

Fig. 6
figure 6

Module chart of Kawasaki ZX165U robot

Figure 6 shows the module chart of the robot (Kawasaki ZX165U).

The following functions are included in the designed GUI (see Fig. 7):

Fig. 7
figure 7

GUI designed for controlling the robot model

  1. (i)

    controlling the process of simulation;

  2. (ii)

    forwarding and reviewing the information of joint angle;

  3. (iii)

    obtaining the information of manipulator pose and then saving the data.

4.2 Verification of the kinematics analysis

Figure 8 shows the picture of the real robot ZX165U. In experiment, the end-effector of the robot goes through two different ways, among which one looks like the letter “W” while the other looks like an “S” (see Figs. 9 and 10).

Fig. 8
figure 8

Physical picture of the robot ZX165U

Fig. 9
figure 9

Real and simulation “W” paths

Fig. 10
figure 10

Real and simulation “S” paths

The ZX165U robot can be driven to any arbitrary points in a reachable space as long as a set of appropriate values (joint angles or poses) are settled. In this experiment, five groups of data about points which indicate joint angles are put into the controller. Then the controller controls the robot to pass through these five points by linear interpolation (see Fig. 9) and curve interpolation (see Fig. 10). During this process, the pose and position of manipulator can be obtained at each corresponding point from teaching pendant. Then we let the robot model follow the same process by using the same data of 5 points mentioned above, but this time we use GUI to input data. Intuitively, the paths are drawn in a 3D coordinate system which only involves position values of robot but does not involve pose data. Figure 10 indicates the reverse.

From Figs. 9 and 10, it can be apparently seen that the actual path matches the simulation path within a certain range of minor errors. These minor errors cannot be noticed unless the paths are magnified by many times. As a matter of fact, the accuracy is already close to 0.02 mm, as shown in Tables 1 and 2.

Table 1 Values of the end-effector pose calculated from six angles (forward kinematics)
Table 2 Angles of six joints calculated from the end-effector pose (inverse kinematics)

We selected five arbitrary sets of data from process above and put all information in Table 1. Table 2 shows the data indicating inverse kinematics that are obtained in different ways. When the real and simulation robots move to the same designated pose and position, the data of their joint angles will be recorded. In Tables 1 and 2, “r-” and “s-” stand for words “real” and “simulation” respectively.

In Table 1, the mean error between simulation result and actual result is 0.0206 mm with the maximum error of 0.037 mm. Specifically, the position errors are 0.0258 mm, 0.0218 mm and 0.0142 mm corresponding to X, Y and Z. Such precision can satisfy any industrial requirement. O, A and T stand for X, Y, Z Euler angles, respectively. Furthermore, the pose error is almost negligible. Actually, we can never see the robot moving when it is shifted by a tiny distance. In Table 2, the mean error is 0.0011° by rough calculation with the wrong data—No.5 without JT4. It means that the model robot can reach a certain point within an acceptable error range (tiny error is incognizable). Just as mentioned in the previous section, the kinematics analysis is absolutely correct and can be proved by the comparison analysis of the data.

5 Conclusions

This paper analyzes and verifies the kinematics characteristic (translation motion) of a new-type robot with a mixed hinge structure. On the basis of that, the kinematic analysis can be easily carried out. Then the kinematic equation is established and solved with homogeneous transformation theory. The robot model built with kinematic equation solution can be used for simulation and acquire the simulation data via a designed GUI. Five groups of these data are selected, analyzed and compared. The error between real data and simulation data is calculated through the analysis. As shown in Tables 1 and 2, the errors are slight, which means that the simulation of the model can absolutely meet the actual requirement. Furthermore, the correctness of kinematics analysis is proved on the basis of the appropriate data analysis. This article hopes to provide some inspiration for those who are studying or going to study this kind of robot with a hybrid hinge structure.