Keywords

1 Introduction

In the past twenty years, collaborative robots, commonly known as cobots, are experiencing rapid market growth in the robotic industry. This type of robot is able to physically interact with humans in a shared workspace thanks to sensors, intelligent controls, and other design features such as lightweight materials and rounded edges.

To operate dexterously like a human arm, the cobot is designed with 7 degrees of freedom (DOF) with a structure of anthropomorphic arm. As a redundant manipulator, inverse kinematics of a 7-DOF arm has attracted many researchers. The solution of this arm can be found in a closed form or a numerical one. An analytical solution can be found in case of a non-offset arm [1, 2]. In this case, the shoulder and wrist are considered as spherical joints. Hence, the elbow joint can freely rotate around an axis passing through two spherical joints. Based on this feature, the analytical solution can be found, depending on a freely chosen parameter – free internal motion of an elbow joint around an axis through a shoulder and a wrist that is called swivel angle. In [2], authors chose the swivel angle of the robot arm so that robot configuration is as same as a human arm as possible. One drawback of this approach is the way to deal with singularity and joint limit avoidance.

Another approach for inverse kinematics of a redundant robot is based on Jacobian matrix, in which the inverse problem is solved at velocity, acceleration, or jerk level. A set of linear equations is dealed by pseudo-inverse of Jacobian matrix. The joint variables are then obtained by integrating joint velocities, acceleration, or jerks. In this approach, the advantages of redundancy such as trajectory optimization, obstacle, joint mechanical limits, and singularity avoidance are easily exploited by using null space of Jacobian matrix [3, 5]. This method is simple, however, for 7-DOF anthropomorphic arm the Jacobian matrix is rather large in size.

In this paper, the method based on Jacobian matrix and the analytical method are combined to find the solution of inverse kinematics of a 7-DOF anthropomorphic manipulator without offsets. In this way, the first four joint variables are determined with a Jacobian-based method, and the last three ones based on an analytical method. Some numerical simulations are carried out to verify the effectiveness of the proposed approach.

2 Kinematic Analysis

2.1 Direct Kinematics

Let’s consider a 7-DOF manipulator as shown in Fig. 1. The direct kinematics can be solved systematicly by using the Denavit-Hartenberg (DH) method. The link coordinate systems established with the DH convention and the corresponding DH parameters table are shown in Fig. 1 and Table 1, respectively. In which \(q_{i} ,i = 1,2,...,7\) represents the joint variables.

Fig. 1.
figure 1

7-DOF manipulator and link-frames based on DH convention.

Table 1. DH parameters

The relative homogeneous transformation matrices \({\mathbf{A}}_{i}^{i - 1} (q_{i} )\) are calculated by substituting the DH parameters in Table 1 into the matrix equation for each joint:

$$ {\mathbf{A}}_{i}^{i - 1} (\theta_{i} ) = \left[ {\begin{array}{*{20}c} {\cos \theta_{i} } & { - \sin \theta_{i} \cos \alpha_{i} } & {\sin \theta_{i} \sin \alpha_{i} } & {a_{i} \cos \theta_{i} } \\ {\sin \theta_{i} } & {\cos \theta_{i} \cos \alpha_{i} } & { - \cos \theta_{i} \sin \alpha_{i} } & {a_{i} \sin \theta_{i} } \\ 0 & {\sin \alpha_{i} } & {\cos \alpha_{i} } & {d_{i} } \\ 0 & 0 & 0 & 1 \\ \end{array} } \right]. $$
(1)

The position and orientation of the kth link are given by:

$$ {\mathbf{T}}_{k}^{0} ({\mathbf{q}}) = {\mathbf{A}}_{1}^{0} (q_{1} ){\mathbf{A}}_{2}^{1} (q_{2} ) \ldots {\mathbf{A}}_{k}^{k - 1} (q_{k} ) = \left[ {\begin{array}{*{20}c} {{\mathbf{R}}_{k}^{0} ({\mathbf{q}})} & {{\mathbf{r}}_{Ok}^{(0)} ({\mathbf{q}})} \\ {\mathbf{0}} & 1 \\ \end{array} } \right],\quad k = 1,2,...,7 $$
(2)

Some results of direct kinematic are given as follow:

$$ {\mathbf{r}}_{O1}^{(0)} ({\mathbf{q}}) = {\mathbf{r}}_{O2}^{(0)} ({\mathbf{q}}) = \left[ {\begin{array}{*{20}c} 0 \\ 0 \\ {d_{1} } \\ \end{array} } \right],\quad \quad {\mathbf{r}}_{O3}^{(0)} ({\mathbf{q}}) = {\mathbf{r}}_{O4}^{(0)} ({\mathbf{q}}) = \left[ {\begin{array}{*{20}c} {d_{3} \sin q_{2} \cos q_{1} } \\ {d_{3} \sin q_{2} \sin q_{1} } \\ {d_{1} - d_{3} \cos q_{2} } \\ \end{array} } \right] $$
(3)
$$ {\mathbf{r}}_{O5}^{(0)} ({\mathbf{q}}) = {\mathbf{r}}_{O6}^{(0)} ({\mathbf{q}}) = \left[ {\begin{array}{*{20}c} {d_{3} cq_{1} sq_{2} + d_{5} [(cq_{1} cq_{2} cq_{3} + sq_{1} sq_{3} )sq_{4} + cq_{1} sq_{2} cq_{4} ]} \\ {d_{3} sq_{1} sq_{2} + d_{5} [(sq_{1} cq_{2} cq_{3} - cq_{1} sq_{3} )sq_{4} + sq_{1} sq_{2} cq_{4} ]} \\ {d_{1} - d_{3} cq_{2} + d_{5} (sq_{2} cq_{3} sq_{4} - cq_{2} cq_{4} )} \\ \end{array} } \right] $$
(4)

Remarks: We can see that the position of \(O_{3}\) depends only on \(q_{1}\) and \(q_{2}\); the position of \(O_{5}\) depends only on \(q_{1} ...q_{4}\) and not on \(q_{5}\).

2.2 Singularity Analysis

For any robotic arm using rotational joints, there are always singular configurations in workspace. The kinematic singularities are independent of the coordinate frame. The singularity can be found based on calculating the determinant of Jacobian matrix \(\det ({\mathbf{J}}({\mathbf{q}}))\) = 0 or \(\det ({\mathbf{J}}({\mathbf{q}}){\mathbf{J}}^{T} ({\mathbf{q}}))\) = 0 [5, 8]. However, with the structure of the manipulator as shown in Fig. 1, geometrically, we can see the singularities in some cases as shown in Fig. 2:

  • When the origin O5,6 is on the z0 axis, the joint variable \(q_{1}\) can have any value. This is called a shoulder singularity.

  • When link 3 and 4 are stretched (\(q_{4} = 0\)) out or folded (\(q_{4} = \pi\)), axes z2 and z4 are collinear. The rotation of link 3 has no effect on the motion of the end-effector. This is called an elbow singularity.

  • Similarly, when links 5 and 6 are stretched (\(q_{6} = 0\)) out or folded (\(q_{6} = \pi\)), axes z4 and z6 are collinear. The rotation of link 6 has no effect on the motion of the end-effector. This is called a wrist singularity.

  • The other cases of singularities are the combination of the mentioned singularities.

Fig. 2.
figure 2

Singularities of 7-DOF anthropomorphic manipulator

2.3 Inverse Kinematics

Given a position and orientation of the end-effector \({\mathbf{r}}_{7}^{(0)} \& {\mathbf{R}}_{7}^{0}\), we need to find the joint variables \(q_{k} ,k = 1,...,7\).

Because three axes \(z_{4} ,z_{5} ,z_{6}\) are concurrent at one point (O5 = O6), the Pieper’s method (position and orientation decoupling) can be applied here for inverse kinematics [4]. The position of the wrist is determined from a given position and an orientation of the end-effector as:

$$ {\mathbf{r}}_{5}^{(0)} = {\mathbf{r}}_{6}^{(0)} = {\mathbf{r}}_{7}^{(0)} - d_{7} {\mathbf{R}}_{7}^{0} {\mathbf{k}}_{7}^{(7)} = \left[ {\begin{array}{*{20}l} {x_{5} } \hfill & {y_{5} } \hfill & {z_{6} } \hfill \\ \end{array} } \right]^{T} ,\quad {\mathbf{k}}_{7}^{(7)} = \left[ {\begin{array}{*{20}l} 0 \hfill & 0 \hfill & 1 \hfill \\ \end{array} } \right]^{T} $$
(5)

Analytical Solutions

Considering the triangle O2O3O5, we can find joint angle \(q_{4}\):

$$ \begin{aligned} & d_{3}^{2} - 2d_{3} d_{5} \cos \beta + d_{5}^{2} = l_{2 - 5}^{2} \\ & \Rightarrow \cos \beta = (d_{3}^{2} + d_{5}^{2} - l_{2 - 5}^{2} )/(2d_{3} d_{5} ), & \sin \beta = \sqrt {1 - \cos^{2} \beta } \\ & \Rightarrow q_{4} = \pm (\pi - \beta ) = \pm (\pi - {\text{atan}} 2(\sin \beta ,\cos \beta )) \\ \end{aligned} $$
(6)

where \(l_{2 - 5}^{2} = \;\parallel {\mathbf{r}}_{5}^{(0)} - {\mathbf{r}}_{2}^{(0)} \parallel \; = ({\mathbf{r}}_{5}^{(0)} - {\mathbf{r}}_{2}^{(0)} )^{T} ({\mathbf{r}}_{5}^{(0)} - {\mathbf{r}}_{2}^{(0)} )\). In formula (6), we can take a positive sign or a negative sign depending on the upper or the lower configuration.

The angle α = ∠(O5O2O3) is determined as:

$$ \cos \alpha = \frac{{l_{2 - 5}^{2} + d_{3}^{2} - d_{5}^{2} }}{{2d_{3} l_{2 - 5} }},\quad \Rightarrow \alpha = \arccos \frac{{d_{3}^{2} + l_{2 - 5}^{2} - d_{5}^{2} }}{{2d_{3} l_{2 - 5} }} $$

From the structure of the manipulator, we can see that if the end-effector is fixed, point O3,4 can move a along a circle with the radius of h and center C on the axis through O2 and O5 (see Fig. 1).

Let \({\mathbf{R}} = rot_{{\vec{n}}}^{{}} (\theta )\) be a rotation matrix about axis \(\vec{n}\) an angle \(\theta\):

$$ {\mathbf{R}} = {\mathbf{E}} + \sin \theta {\tilde{\mathbf{n}}} + (1 - \cos \theta ){\tilde{\mathbf{n}}}{\tilde{\mathbf{n}}}. $$

Let \(Cn_{1} n_{2} n_{3}\) be the coordinate system as shown in Fig. 1, \(\vec{n}_{2}\) along the line O2O5, \(\vec{n}_{1} \bot \vec{z}_{0}\), \(\vec{n}_{1} = \vec{n}_{2} \times \vec{z}_{0} /\parallel \vec{n}_{2} \times \vec{z}_{0} \parallel\) and \(\vec{n}_{3} = \vec{n}_{1} \times \vec{n}_{2}\).

If we know center C and radius h, then the position of point O3,4 is determined as:

$$ {\mathbf{r}}_{3,4}^{(0)} = {\mathbf{r}}_{C}^{(0)} + {\mathbf{R}}(\vec{n},\theta )h{\mathbf{n}}_{1} . $$
(7)

Considering the right triangle O2CO3, we have:

$$ O_{2} C = d_{3} \cos \alpha ,\quad h = d_{3} \sin \alpha $$

Unit vector of O2O5 is calculated as:

$$ {\mathbf{n}}_{2} = ({\mathbf{r}}_{5} - {\mathbf{r}}_{2} )/l_{2 - 5}^{{}} $$

By freely choosing \(\theta\), we can find position of point O3 as follows

$$ {\mathbf{r}}_{3} = {\mathbf{r}}_{2} + O_{2} C{\mathbf{n}}_{2} + {\mathbf{R}}\left( {n_{2} ,\theta } \right)h\,{\mathbf{n}}_{1} = \left[ {\begin{array}{*{20}l} {x_{3} } \hfill & {y_{3} } \hfill & {z_{3} } \hfill \\ \end{array} } \right]^{T} $$
(8)

Comparing (8) and (3) one yields

$$ d_{3} \sin q_{2} \cos q_{1} = x_{3} ,\quad d_{3} \sin q_{2} \sin q_{1} = y_{3} ,\quad d_{1} - d_{3} \cos q_{2} = z_{3} $$
(9)

From (9), joint variable \(q_{2}\) can be found as:

$$ \begin{aligned} & d_{1} - d_{3} \cos q_{2} = z_{3} \Rightarrow \cos q_{2} = (d_{1} - z_{3} )/d_{3} , & \sin q_{2} = \pm \sqrt {1 - \cos^{2} q_{2} } \\ & \Rightarrow q_{2} = {\text{atan}} 2(\sin q_{2} ,\cos q_{2} ) \\ \end{aligned} $$
(10)

Formula (10) gives out two solutions of \(q_{2}\) depending on sign of sin(q2). This sign will also decide joint variable \(q_{1}\):

$$ \begin{aligned} & d_{3} \sin q_{2} \cos q_{1} = x_{3} \;\;\, \Rightarrow \;\;\,\cos q_{1} = x_{3} /\left( {d_{3} \sin q_{2} } \right) \\ & d_{3} \sin q_{2} \sin q_{1} = y_{3} \;\;\, \Rightarrow \;\;\,\sin q_{1} = y_{3} /\left( {d_{3} \sin q_{2} } \right) \\ & q_{1} = {\text{atan}} 2(y_{3} /\sin q_{2} ,x_{3} /\sin q_{2} ) \\ \end{aligned} $$
(11)

We can see that if \(\sin q_{2} = 0\) (it means \(q_{2} = 0\) or \(q_{2} = \pm \pi\) and axis z2 coincides with axis z0), then we can not determine \(q_{1}\), even though \(q_{1} + q_{3}\) is known.

If \(\vec{n}_{2} \parallel \vec{z}_{0}\) (it means O5,6 lies on axis z0), vector \(\vec{n}_{1}\) is unidentified. Therefore, we can not find \(q_{1}\) from (11). That is a singular configuration of this robot arm.

Joint variable \(q_{3}\) is determined by comparing \({\mathbf{r}}_{5}^{(0)} - {\mathbf{r}}_{4}^{(0)} = {\mathbf{r}}_{5}^{(0)} - {\mathbf{r}}_{3}^{(0)}\). Knowing positions \({\mathbf{r}}_{5}^{(0)} \& {\mathbf{r}}_{3}^{(0)}\) of O5 and O3, we can find \(q_{3}\) as follows:

$$ {\mathbf{r}}_{O5}^{(0)} ({\mathbf{q}}) - {\mathbf{r}}_{O4}^{(0)} ({\mathbf{q}}) = \left[ {\begin{array}{*{20}c} {d_{5} [(cq_{1} cq_{2} cq_{3} + sq_{1} sq_{3} )sq_{4} + cq_{1} sq_{2} cq_{4} ]} \\ {d_{5} [(sq_{1} cq_{2} cq_{3} - cq_{1} sq_{3} )sq_{4} + sq_{1} sq_{2} cq_{4} ]} \\ {d_{5} (sq_{2} cq_{3} sq_{4} - cq_{2} cq_{4} )} \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {x_{5} - x_{3} } \\ {y_{5} - y_{3} } \\ {z_{5} - z_{3} } \\ \end{array} } \right] $$
(12)

Solving for \(\sin q_{3}\) and \(\cos q_{3}\), we get:

$$ \begin{aligned} & \sin q_{3} = \frac{{ - cq_{1} cq_{2} z_{5} + cq_{1} cq_{2} z_{3} - d_{5} cq_{1} cq_{4} + x_{5} sq_{2} - x_{3} sq_{2} }}{{d_{5} sq_{1} sq_{2} sq_{4} }} \\ & \cos q_{3} = \frac{{d_{5} cq_{2} cq_{4} + z_{5} - z_{3} }}{{d_{5} sq_{2} sq_{4} }} \\ & \Rightarrow q_{3} = {\text{atan}} 2\left( {sq_{3} ,cq_{3} } \right) \\ \end{aligned} $$
(13)

So, the first four joint variables \(q_{1} ,...,q_{4}\) are determined by (11), (10), (13) and (6), respectively. Now, we determine three last joint variables: \(q_{5} ,q_{6} ,q_{7}\). The relative orientation of end-effector respect to link 4 is determined by:

$$ \begin{gathered} {\mathbf{R}}_{7}^{0} = {\mathbf{R}}_{4}^{0} (q_{1} ,q_{2} ,q_{3} ,q_{4} ){\mathbf{R}}_{7}^{4} \Rightarrow {\mathbf{R}}_{7}^{4} = {\mathbf{R}}_{4}^{0T} (q_{1} ,q_{2} ,q_{3} ,q_{4} ){\mathbf{R}}_{7}^{0} \hfill \\ {\mathbf{R}}_{5}^{4} (q_{5} ){\mathbf{R}}_{6}^{5} (q_{6} ){\mathbf{R}}_{7}^{6} (q_{7} ) = {\mathbf{R}}_{7}^{4} \hfill \\ \end{gathered} $$

From direct kinematics we have:

$$ \begin{gathered} {\mathbf{R}}_{7}^{4} = {\mathbf{R}}_{5}^{4} (q_{5} ){\mathbf{R}}_{6}^{5} (q_{6} ){\mathbf{R}}_{7}^{6} (q_{7} ) \\ = \left[ {\begin{array}{*{20}c} {cq_{5} cq_{6} cq_{7} - sq_{5} sq_{7} } & { - cq_{5} cq_{6} sq_{7} - sq_{5} cq_{7} } & {cq_{5} sq_{6} } \\ {sq_{5} cq_{6} cq_{7} + cq_{5} sq_{7} } & { - sq_{5} cq_{6} sq_{7} + cq_{5} cq_{7} } & {sq_{5} sq_{6} } \\ { - sq_{6} cq_{7} } & {sq_{6} sq_{7} } & {cq_{6} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {r_{11} } & {r_{12} } & {r_{13} } \\ {r_{21} } & {r_{22} } & {r_{23} } \\ {r_{31} } & {r_{32} } & {r_{33} } \\ \end{array} } \right] \\ \end{gathered} $$

Solving these equations, one gets \(q_{5} ,q_{6} ,q_{7}\).

Remarks:

free parameter \(\theta\) can be chosen based on additional criteria such as singularity, obstacle, and joint limit avoidance.

Solution Based on Jacobian Matrix

Let \({\varvec{\xi}}^{T} = [{\mathbf{v}}_{E}^{(0)} ,{\varvec{\omega}}_{7}^{(0)} ]^{T}\) be the twist of the end-effector, we have:

$$ {{\varvec{\upxi}}} = {\mathbf{J}}({\mathbf{q}})\dot{\mathbf{q}} \quad \Rightarrow \quad \dot{\mathbf{q}} = {\mathbf{J}}^{\dag } ({\mathbf{q}}){{\varvec{\upxi}}},\quad {\mathbf{J}}^{\dag } ({\mathbf{q}}) = {\mathbf{J}}^{T} ({\mathbf{q}})\left[ {{\mathbf{J}}({\mathbf{q}}){\mathbf{J}}^{T} ({\mathbf{q}})} \right]^{ - 1} $$
(14)

where \({\mathbf{J}}({\mathbf{q}})\) and \({\mathbf{J}}^{\dag } ({\mathbf{q}})\) are Jacobian matrix and its pseudo-inverse [6, 7].

In this paper, Eq. (14) is not used, since Jacobian of a 7-DOF anthropomorphic manipulator is quite bulky. Based on the arm structure, we can see that the redundancy is effective only on the position of O5, when the end-effector is fixed. Therefore, we exploit the following relation instead of (14):

$$ {\mathbf{r}}_{5} = {\mathbf{r}}_{5} ({\mathbf{q}}_{p} )\quad \Rightarrow \quad {\dot{\mathbf{r}}}_{5} = {\mathbf{J}}_{5} ({\mathbf{q}}_{p} ){\dot{\mathbf{q}}}_{p} $$
(15)

where \({\mathbf{q}}_{p} = [q_{1} ,...,q_{4} ]^{T}\).

Applying pseudo-inverse, the solution of (15) is given as:

$$ \dot{\mathbf{q}}_{p} = {\mathbf{J}}_{5}^{\dag } \dot{\mathbf{r}}_{5} ,\quad {\mathbf{J}}_{5}^{\dag } \left( {{\mathbf{q}}_{p} } \right) = {\mathbf{J}}_{5}^{T} \left[ {{\mathbf{J}}_{5} {\mathbf{J}}_{5}^{T} } \right]^{ - 1} $$
(16)

To avoid singularities, pseudo-inverse of \({\mathbf{J}}_{5} ({\mathbf{q}}_{p} )\) is modified by damped least square inverse as:

$$ {\mathbf{J}}_{5}^{\dag } \left( {{\mathbf{q}}_{p} } \right) = {\mathbf{J}}_{5}^{T} \left[ {{\mathbf{J}}_{5} {\mathbf{J}}_{5}^{T} + k{\mathbf{I}}_{s} } \right]^{ - 1} ,\quad k > 0 $$
(17)
$$ \dot{\mathbf{q}}_{p} = {\mathbf{J}}_{5}^{T} \left( {{\mathbf{J}}_{5} {\mathbf{J}}_{5}^{T} + k{\mathbf{I}}} \right)^{ - 1} \left( {\dot{\mathbf{r}}_{5} + {\mathbf{Ke}}} \right) + \left( {{\mathbf{I}} - {\mathbf{J}}_{5}^{\dag } {\mathbf{J}}_{5} } \right){\mathbf{z}}_{0} $$
(18)

where \({\mathbf{K}} > 0\) is a gain matrix and \({\mathbf{e}} = {\mathbf{r}}_{5} (t) - {\mathbf{r}}_{5}^{d} (t)\), the error between actual and desired position of O5, \({\mathbf{z}}_{0} \in {\mathbb{R}}^{4}\) is an arbitrary vector. Vector \({\mathbf{z}}_{0}\) is normally chosen to exploit the redundancy such as singular, joint limits or obstacle avoidance.

Parameter \(k\) depending on \(w({\mathbf{q}}) = \sqrt {\det ({\mathbf{J}}({\mathbf{q}}_{p} ){\mathbf{J}}^{T} ({\mathbf{q}}_{p} ))}\), a manipulability measure, is chosen as following:

$$ k = \left\{ {\begin{array}{*{20}l} {\frac{1}{2}\varepsilon_{0} \left( {1 + \cos \left( {\pi w/w_{0} } \right)} \right),} \hfill & {w < w_{0} } \hfill \\ {0,} \hfill & {w \ge w_{0} } \hfill \\ \end{array} } \right. $$
(19)

where \(\varepsilon_{0}\) and \(w_{0}\) are small positive numbers.

The block diagram for inverse kinematics based on a combination of Jacobian matrix and analytical solution is shown in Fig. 3.

Fig. 3.
figure 3

Blockdiagram for inverse kinematics

3 Numerical Experiments

In order to confirm the validity of the algorithms proposed in this paper, some numerical simulations are carried. Two trajectories including rectilinear and curvilinear one from A to B are implemented by MATLAB:

$$ {\mathbf{r}}_{A} = [0.5(d_{3} + d_{5} + d_{7} ),\quad - 0.4(d_{3} + d_{5} ),\quad d_{1} + 0.0d_{3} ]^{T} $$
$$ {\mathbf{r}}_{B} = [0.5(d_{3} + d_{5} + d_{7} ),\quad 0.4(d_{3} + d_{5} ),\quad d_{1} + 0.6d_{3} ]^{T} $$
Fig. 4.
figure 4

Tracking of the end-effector along a rectilinear trajectory

The motion law along a trajectory is defined as following:

$$ s(t) = s_{i} + \frac{{s_{f} - s_{i} }}{\pi }\left( {\frac{\pi t}{{t_{f} }} - \frac{1}{2}\sin \frac{2\pi t}{{t_{f} }}} \right),\quad 0 \le t \le t_{f} $$
(20)

Along a trajectory, the corresponding orientation is determined by the ZYZ Euler angles with:

$$ {{\varvec{\upphi}}}_{i} = [\frac{\pi }{3},\frac{\pi }{3},\frac{\pi }{3}]^{T} ,\quad {{\varvec{\upphi}}}_{f} = {{\varvec{\upphi}}}_{i} + \Delta {{\varvec{\upphi}}},\quad \Delta {{\varvec{\upphi}}} = [\frac{5\pi }{{18}},\frac{10\pi }{{18}},\frac{20\pi }{{18}}]^{T} $$
Fig. 5.
figure 5

Tracking of the end-effector along a curvilinear trajectory

The simulation results of the two cases are shown in Fig. 4 and Fig. 5, respectively. It can be seen from the simulation results that the pose of the manipulator changes uniformly, and the actual trajectory is consistent with the given trajectory, and the position errors of x, y and z are all within 2.5 × 10–6 m. All the joint variables change smoothly, and no sudden change appears. These results prove that the proposed inverse kinematics method can be applied to the control of continuous trajectory of the 7-DOF manipulator.

To verify the ability to avoid singularities, a trajectory is chosen such that the origin O5 pass through axis z0. The simulation results in this case is shown in Fig. 6. It can be seen that \(x_{5} = y_{5} = 0\) at time t = 1.5 s, but time histories of all joint variables are smooth, no sudden change of \(\theta_{1}\) occurs at this singularity.

Fig. 6.
figure 6

Position of O5 and joint variables vs. time

4 Conclusion

This paper combined successfully Jacobian-based and analytical method for an inverse kinematics of a redundant anthropomorphic manipulator. With the wrist equivalent to a spherical joint, we can decouple the position and orientation of an end-effector. The Jacobian-based method is applied for inverse kinematics of the position, that is a redundant case. In the proposed approach, the bulkiness of Jacobian matrix \({\mathbf{J}}_{7}\) is replaced by a simpler one \({\mathbf{J}}_{5}\). Therefore, the computational complexity is reduced. Additionally, the advantages of the Jacobian method such as singularity avoidance is retained. The numerical simulations verified the feasibility of the proposed approach.