An Analytical Solution for a Redundant Manipulator with Seven Degrees of Freedom

An Analytical Solution for a Redundant Manipulator with Seven Degrees of Freedom

Takashi Nammoto* and Kazuhiro Kosuge

Department of Bioengineering and Robotics, Tohoku University, Japan

(Received 11 October 2012; Accepted 25 October 2012; Published on line 1 December 2012)
*Corresponding author: nanmoto@irs.mech.tohoku.ac.jp
DOI: 10.5875/ausmt.v2i4.172

Abstract: In this paper, an analytical solution for the inverse kinematics of a redundant manipulator with seven degrees of freedom and an offset rotation axis is presented. We provide a model for the redundant manipulator and introduce its self-motion. Considering geometric symmetry, sixteen sets of manipulator joint angles are obtained at once. Avoidance of singularities and obstacles is illustrated by simulation results.

Keywords: Redundant Manipulator; Inverse Kinematics; Joint Limit; Singularity

Introduction

Many manipulators have been used for assembly tasks in factories to improve quality and to reduce the cost of the products being fabricated. Commonly, a manipulator has six degrees of freedom and several rotation axes offsets. These offsets are utilized to increase the manipulator task space. The motion of the manipulators in the expanded task space, however, is restricted by singularities and joint motion limits. Redundant degrees of freedom are used to ease these restrictions.

Yoshikawa introduced a measure of manipulability and showed that the degradation of manipulability of a four-joint wrist mechanism could be avoided by the addition of redundant degrees of freedom [1]. Hollerbach discussed the optimum design for a redundant seven degrees of freedom manipulator, and suggested that a rotary joint should be added to the PUMA type manipulator in the upper arm link [2]. Kreutz-Delgado et al. introduced an arm angle as a redundancy parameter to specify a self-motion of a redundant zero-offset manipulator, and characterized its algorithmic and kinematic singularities [3]. Shimizu et al. proposed an analytical solution for the inverse kinematics for a redundant manipulator without offsets using the arm angle, and analyzed the relations between the arm angle and joint angles to obtain feasible solutions by avoiding joint motion limits [4]. Singh et al. proposed an analytical solution for the Barrett WAM (Whole Arm Manipulator), which is a seven degrees-of-freedom manipulator with offsets and illustrated feasible poses [5].

Yoshikawa introduced a measure of manipulability and showed that the degradation of manipulability of a four-joint wrist mechanism could be avoided by the addition of redundant degrees of freedom [1]. Hollerbach discussed the optimum design for a redundant seven degrees-of-freedom manipulator, and suggested that a rotary joint should be added to the PUMA type manipulator in the upper arm link [2]. Kreutz-Delgado et al. introduced an arm angle as a redundancy parameter to specify a self-motion of a redundant zero-offset manipulator, and characterized its algorithmic and kinematic singularities [3]. Shimizu et al. proposed an analytical solution for the inverse kinematics for a redundant manipulator without offsets using the arm angle, and analyzed the relations between the arm angle and joint angles to obtain feasible solutions by avoiding joint motion limits [4]. Singh et al. proposed an analytical solution for the Barrett WAM (Whole Arm Manipulator), which is a seven degrees of freedom manipulator with offsets and illustrated feasible poses [5].

In the proposed approach, the elbow position of the redundant manipulator is specified directly, since this naturally specifies the self-motion of the manipulator. This allows the redundant manipulator to move whilst avoiding physical obstacles located in the area between the end-point of the manipulator and the origin of the base coordinate system attached to the base of the manipulator. The offset angle of the first joint from the first joint angle of the manipulator without a redundant rotational joint is used to specify the elbow position of the redundant manipulator. In addition to the offset angle, the position and the orientation of the end-point of the manipulator are also taken into account to derive the inverse kinematics analytically.

The computation time of the proposed algorithm is shorter in general than those of the recursive algorithms widely used for computing the inverse kinematics of a redundant manipulator. Feedback control with a higher sampling rate is realized to obtain smooth motion of the manipulator. Consideration of geometric symmetry gives sixteen sets of joint angles for the redundant manipulator simultaneously. This allows the programmer to choose a set of joint angles to control the redundant manipulator, while avoiding singularities and obstacles around the manipulator and joint limits.

Manipulator Model

The manipulator model is depicted in Figure 1. A rotary joint is added to the PUMA type manipulator in the upper arm link. There is an offset of the rotation axis between the first joint and the second joint. The Denavit-Hartenberg parameters are given in Table 1 Here, Σ0 and Σ7 are the base coordinate system and the end-point coordinate system, respectively. The unit vectors parallel to the x-, y-, and z-axes of the end-point coordinate system are \(\vec{n}\), \(\vec{t}\) and \(\vec{b}\), respectively.

Self-motion

In the research works reviewed above, the arm angle is used to specify the self-motion. The arm angle is defined as angle between the reference plane and the arm plane spanned by the shoulder, elbow, and wrist. Here, the shoulder position is defined as the intersection of the first, second, and third joint axes. The elbow position is the center of the fourth joint. The wrist position is defined as the intersection of axes of the fifth, sixth, and seventh joints. Due to the offset between the first joint and the second joint, the arm angle cannot be used in the case of the manipulator shown in Figure 1. To specify the self-motion, an offset angle δ of the first joint from the first joint angle of the manipulator without a redundant rotational joint is introduced as shown in Figure 2. The elbow position on the x-y plane of the base coordinate system can be controlled with the offset angle δ. This approach allows a programmer to specify the self-motion intuitively.

Forward Kinematics

The homogeneous transformation matrix from the coordinate system of the (k-1)th joint to the kth joint, and its inverse, are given below with the Denavit-Hertenberg parameters shown in Table 1.

\[\hat{A}_{i}^{i-1}\left( {{\theta }_{i}} \right)=\left[ \begin{matrix} C{{\theta }_{i}} & -S{{\theta }_{i}}C{{\alpha }_{i}} & S{{\theta }_{i}}S{{\alpha }_{i}} & {{a}_{i}}C{{\theta }_{i}} \\ S{{\theta }_{i}} & C{{\theta }_{i}}C{{\alpha }_{i}} & -C{{\theta }_{i}}S{{\alpha }_{i}} & {{a}_{i}}S{{\theta }_{i}} \\ 0 & S{{\alpha }_{i}} & C{{\alpha }_{i}} & {{d}_{i}} \\ 0 & 0 & 0 & 1 \\\end{matrix} \right],\tag{1}\]
\[\hat{A}_{i-1}^{i}\left( {{\theta }_{i}} \right)=\left[ \begin{matrix} C{{\theta }_{i}} & S{{\theta }_{i}} & 0 & -{{a}_{i}} \\ -S{{\theta }_{i}}C{{\alpha }_{i}} & C{{\theta }_{i}}C{{\alpha }_{i}} & S{{\alpha }_{i}} & -{{d}_{i}}S{{\alpha }_{i}} \\ S{{\theta }_{i}}S{{\alpha }_{i}} & -C{{\theta }_{i}}S{{\alpha }_{i}} & C{{\alpha }_{i}} & -{{d}_{i}}C{{\alpha }_{i}} \\ 0 & 0 & 0 & 1 \\\end{matrix} \right].\tag{2}\]

Here, k and k denote sinθk and cosθk, respectively. Similarly, k and k respectively denote sinθk and cosθk.

The transformation matrix from the origin of the base coordinate system to the end-point of the manipulator is given as follows:

\[\hat{T}=\hat{A}_{n}^{0}=\hat{A}_{1}^{0}\hat{A}_{2}^{1}\cdots \hat{A}_{n}^{n-1}=\left[ \begin{matrix} \hat{R}_{n}^{0} & \vec{T}_{n}^{0} \\ 0\ldots 0 & 1 \\ \end{matrix} \right].\tag{3}\]

Here, \(\hat{R}_{n}^{0}\) and \(\vec{T}_{n}^{0}\) are respectively the rotation matrix and the translation vector from the origin of the base coordinate system to the end-point. The rotation matrix consists of \(\vec{n}\), \(\vec{t}\) and \(\vec{b}\). The translation vector corresponds to the position vector of the end-point \(\vec{p}\).

The wrist position can be calculated using the forward kinematics derived above. The offset angle δ shown in Figure 3 is obtained as follows:

\[\delta ={{\theta }_{1}}-{{\tan }^{-1}}\left( {{{w}_{y}}}/{{{w}_{x}}}\; \right).\tag{4}\]

Inverse kinematics

First Joint Angle

The wrist position \(\vec{w}\), which is defined as the intersection of axes of the fifth, sixth, and seventh joints (as shown in Figure 3), is given by

\[\vec{w}=\vec{p}+{{d}_{7}}\vec{b}.\tag{5}\]

The first joint angle of the manipulator without a redundant rotational joint is given as \({{\tan }^{-1}}\left( {{{w}_{y}}}/{{{w}_{x}}}\; \right)\). Then the first joint angle θ1 is obtained as follows:

\[{{\theta }_{1}}\left[ 1 \right]={{\tan }^{-1}}\left( {{{w}_{y}}}/{{{w}_{x}}}\; \right)+\delta .\tag{6}\]

Considering geometric symmetry in Figure 3, the first joint angle given below can also be used:

\[{{\theta }_{1}}\left[ 2 \right]={{\theta }_{1}}\left[ 1 \right]+\pi .\tag{7}\]

Second, Third and Fourth Joint Angle

The wrist position of the first joint coordinate system \({\vec{w}}'\) shown in Figure 4 is computed as follows:

\[\left[ \begin{matrix} {{\vec{w}}'} \\ 1 \\ \end{matrix} \right]=\hat{A}_{0}^{1}\left( {{\theta }_{1}} \right)\left[ \begin{matrix} {\vec{w}} \\ 1 \\ \end{matrix} \right].\tag{8}\]

The fourth joint angle is obtained by the Pythagorean theorem, which gives

\[{{\theta }_{4}}\left[ 1 \right]={{\sin }^{-1}}\left( {\left( {{\left| {{\vec{w}}'} \right|}^{2}}-d_{3}^{2}-d_{5}^{2} \right)}/{2{{d}_{3}}{{d}_{5}}}\; \right).\tag{9}\]

To obtain the second joint angle, an angle θ must first be found; it is given by

\[\varphi ={{\tan }^{-1}}\left( {{{{{w}'}}_{y}}}/{{{{{w}'}}_{x}}}\; \right).\tag{10}\]

The second joint angle is then derived:

\[{{\theta }_{2}}\left[ 1 \right]=\varphi -{{\sin }^{-1}}\left( {\left( {{d}_{3}}+{{d}_{5}}\sin {{\theta }_{4}} \right)}/{\sqrt{{w}_{x}^{'2}+{w}_{y}^{'2}}}\; \right).\tag{11}\]

The wrist position of the second joint coordinate system \({\vec{w}}''\) shown in Figure 5 is computed by

\[\left[ \begin{matrix} {{\vec{w}}''} \\ 1 \\ \end{matrix} \right]=\hat{A}_{1}^{2}\left( {{\theta }_{2}} \right)\left[ \begin{matrix} {{\vec{w}}'} \\ 1 \\ \end{matrix} \right].\tag{12}\]

The third joint angle is obtained as follows:

\[{{\theta }_{3}}\left[ 1 \right]={{\tan }^{-1}}\left( {{{{{w}''}}_{y}}}/{{{{{w}''}}_{x}}}\; \right).\tag{13}\]

Considering geometric symmetry in Figure 4 and Figure 5, the following expressions can also be used for the second, third, and fourth joint angles:

\[{{\theta }_{2}}\left[ 2 \right]={{\theta }_{2}}\left[ 1 \right],\tag{14}\]
\[{{\theta }_{3}}\left[ 2 \right]={{\theta }_{3}}\left[ 1 \right]-\pi ,\tag{15}\]
\[{{\theta }_{4}}\left[ 2 \right]=\pi -{{\theta }_{4}}\left[ 1 \right].\tag{16}\]

Considering geometric symmetry in Figure 6 then gives the following expressions for the second, third, and fourth joint angles:

\[{{\theta }_{2}}\left[ 3 \right]=2\varphi -{{\theta }_{2}}\left[ 1 \right]-\pi ,\tag{17}\]
\[{{\theta }_{3}}\left[ 3 \right]=-{{\theta }_{3}}\left[ 1 \right],\tag{18}\]
\[{{\theta }_{4}}\left[ 3 \right]=\pi -{{\theta }_{4}}\left[ 1 \right],\tag{19}\]
\[{{\theta }_{2}}\left[ 4 \right]=2\varphi -{{\theta }_{2}}\left[ 1 \right]-\pi ,\tag{20}\]
\[{{\theta }_{3}}\left[ 4 \right]=-{{\theta }_{3}}\left[ 1 \right]-\pi ,\tag{21}\]
\[{{\theta }_{4}}\left[ 4 \right]={{\theta }_{4}}\left[ 1 \right].\tag{22}\]

Fifth and Sixth Joint Angle

The position of the end-point corresponding to the fifth joint coordinate system \({\vec{p}}'\) shown in Figure 7 is computed as follows:

\[\left[ \begin{matrix} {{\vec{p}}'} \\ 1 \\ \end{matrix} \right]=\hat{A}_{4}^{5}\left( 0 \right)\hat{A}_{3}^{4}\left( {{\theta }_{4}} \right)\hat{A}_{2}^{3}\left( {{\theta }_{3}} \right)\hat{A}_{1}^{2}\left( {{\theta }_{2}} \right)\hat{A}_{0}^{1}\left( {{\theta }_{1}} \right)\left[ \begin{matrix} {\vec{p}} \\ 1 \\ \end{matrix} \right].\tag{23}\]

The fifth and sixth joint angle are obtained as follows:

\[{{\theta }_{5}}\left[ 1 \right]={{\tan }^{-1}}\left( {-{{{{p}'}}_{z}}}/{{{{{p}'}}_{x}}}\; \right),\tag{24}\]
\[{{\theta }_{6}}\left[ 1 \right]={{\cos }^{-1}}\left( {-{{{{p}'}}_{y}}}/{\left| {{\vec{p}}'} \right|}\; \right).\tag{25}\]

Considering geometric symmetry in Figure 8, the fifth and sixth joint angles can also be expressed as

\[{{\theta }_{5}}\left[ 2 \right]={{\theta }_{5}}\left[ 1 \right]-\pi ,\tag{26}\]
\[{{\theta }_{6}}\left[ 2 \right]=-{{\theta }_{6}}\left[ 1 \right].\tag{27}\]

Seventh Joint Angle

To obtain the seventh joint angle, the unit vector parallel to the x-axis of the sixth joint coordinate system is first computed as follows:

\[\left[ \begin{matrix} {{{\vec{n}}}_{6}} \\ 0 \\ \end{matrix} \right]=\hat{A}_{6}^{0}{{\left[ \begin{matrix} 1 & 0 & 0 & 0 \\ \end{matrix} \right]}^{T}}.\tag{28}\]

The vector product \({{\vec{v}}_{p}}\) and scalar product sp of the unit vector parallel to the x-axis of the sixth joint coordinate system, and the unit vector parallel to x-axis of the end-point coordinate system, are computed thus:

\[{{\vec{v}}_{p}}={{\vec{n}}_{6}}\times \vec{n},\tag{29}\]
\[{{s}_{p}}={{\vec{n}}_{6}}\cdot \vec{n}.\tag{30}\]

The direction of rotation of the seventh joint is computed using the scalar product of \({{\vec{v}}_{p}}\) and the unit vector parallel to the z-axis of the end-point coordinate system as shown in Figure 9. The seventh joint angle is then obtained:

\[{{\theta }_{7}}\left[ 1 \right]=\left\{ \begin{matrix} {{\cos }^{-1}}\left( {{s}_{p}} \right)\left( {{{\vec{v}}}_{p}}\cdot \vec{b}\ge 0 \right) \\ -{{\cos }^{-1}}\left( {{s}_{p}} \right)\left( {{{\vec{v}}}_{p}}\cdot \vec{b}<0 \right) \\ \end{matrix} \right..\tag{31}\]

Considering geometric symmetry in Figure 8, the seventh joint angle given below can also be used:

\[{{\theta }_{7}}\left[ 2 \right]={{\theta }_{7}}\left[ 1 \right]-\pi .\tag{32}\]

Sixteen Sets of Joint Angles

Considering geometric symmetry, sixteen sets of joint angles for the redundant manipulator are obtained simultaneously with the process derived above. The sets of joint angles are given in Table 2. The values in the Table 2 denote the index of the solution for each of the joint angles.

Computation of Joint Angles

Let the desired position and orientation of the end-point coordinate system, and the offset angle be

\[\vec{n}={{\left[ \begin{matrix} 0.18 & -0.16 & -0.97 \\ \end{matrix} \right]}^{T}},\tag{33}\]
\[\vec{t}={{\left[ \begin{matrix} 0.63 & 0.78 & -0.01 \\ \end{matrix} \right]}^{T}},\tag{34}\]
\[\vec{b}={{\left[ \begin{matrix} 0.76 & -0.61 & 0.25 \\ \end{matrix} \right]}^{T}},\tag{35}\]
\[\vec{p}={{\left[ \begin{matrix} -0.18 & 0.41 & 0.41 \\ \end{matrix} \right]}^{T}},\tag{36}\]
\[\delta =-0.80[\text{rad}].\tag{37}\]

The lengths of the links are shown in Table 3. Sixteen sets of joint angles are computed as shown in Table 4. Here, the joint angles are range from −π to +π. The manipulator poses that correspond to the sixteen sets of joint angles are depicted in Figure 10. The manipulator poses on x-y plane are depicted in Figure 11. As shown in Figure 11, the offset angles between the elbows of all poses and the wrist are equal to -0.80 [rad].

Avoidance of Obstacles

Let the desired position and orientation of the end-point coordinate system be the same as in Equations (33), (34), (35) and (36). The desired offset angle takes values of -0.82 [rad], -0.55 [rad], -0.27 [rad], 0 [rad], 0.27 [rad], 0.55 [rad], and 0.82 [rad]. The manipulator poses of the first set of joint angles are depicted in Figure 12. The manipulator poses on the x-y plane are depicted in Figure 13.

As shown in Figure 12 and Figure 13, the elbow position of the manipulator is specified directly, as this in turn specifies the self-motion of the manipulator easily and intuitively. This allows the manipulator to move whilst avoiding physical obstacles located in the area between the end-point of the manipulator and the origin of the base coordinate system.

Avoidance of Joint Limits

Let the desired position and orientation of the end-point coordinate system and offset angle be

\[\vec{n}={{\left[ \begin{matrix} 1.00 & 0.00 & 0.00 \\ \end{matrix} \right]}^{T}},\tag{38}\]
\[\vec{t}={{\left[ \begin{matrix} 0.00 & -1.00 & 0.00 \\ \end{matrix} \right]}^{T}},\tag{39}\]
\[\vec{b}={{\left[ \begin{matrix} 0.00 & 0.00 & -1.00 \\ \end{matrix} \right]}^{T}},\tag{40}\]
\[\vec{p}={{\left[ \begin{matrix} -0.18 & 0.41 & {{p}_{z}} \\ \end{matrix} \right]}^{T}}.\tag{41}\]

The position of z-axis pz is varied from 0.3 [m] to 0.9 [m] for desired offset angles of 0 [rad] and 0.70 [rad]. The manipulator poses of the first set of joint angles are depicted in Figure 14. Trajectories of the joint angles during the variation of the z-axis position are graphed in Figure 15 and Figure 16.

As shown in Figure 15, the sixth joint angle becomes large as the position of the z-axis falls for the case of δ = 0 [rad]. On the other hand, the sixth joint angle becomes saturated for the case of δ = 0.70 [rad]. This feature allows the programmer to control the manipulator whilst avoiding joint limits.

Computation Time of Inverse Kinematics

The computation of the inverse kinematics derived in the present paper takes 31.3 [μs] on a standard Windows PC (Core i7 965, 3.2 GHz). Feedback control with a higher sampling rate is realized by using the analytical solution for the inverse kinematics to obtain smooth motion of the manipulator motion. This allows the programmer to choose a set of joint angles for manipulator control, whilst avoiding singularities and obstacles around the manipulator and joint limits.

Conclusions and future work

Conclusions

In this paper, an analytical solution for the inverse kinematics of a redundant manipulator with seven degrees of freedom and a rotation axis offset was presented. First, the self-motion of the manipulator was introduced through a model. Solutions for the inverse kinematics were then derived with consideration of the geometric symmetry of the manipulator. Avoidance of obstacles and joint limits were also explained. Finally, computation time of the inverse kinematics was shown to be reasonably short.

Future Work

A selection method for a set of joint angles, analyses of singularities, and a method for determination of the offset angle will be studied.

References

  1. T. Yoshikawa, "Manipulability and redundancy control of robotic mechanisms," in IEEE International Conference on Robotics and Automation, 1985, pp. 1004-1009.
    doi: 10.1109/ROBOT.1985.1087283
  2. J. M. Hollerbach, "Optimum kinematic design for a seven degree of freedom manipulator," in The 2nd International Symposium of Robotics Research, Kyoto, Japan, 1985.
  3. K. Kreutz-Delgado, M. Long, and H. Seraji, "Kinematic analysis of 7-DOF manipulators," The International Journal of Robotics Research, vol. 11, no. 5, pp. 469-481, October 1, 1992, 1992.
    doi: 10.1177/027836499201100504
  4. M. Shimizu, H. Kakuya, W. K. Yoon, K. Kitagaki, and K. Kosuge, "Analytical inverse kinematic computation for 7-DOF redundant manipulators with joint limits and its application to redundancy resolution," IEEE Transactions on Robotics, vol. 24, no. 5, pp. 1131-1142, 2008.
    doi: 10.1109/TRO.2008.2003266
  5. G. K. Singh and J. Claassens, "An analytical solution for the inverse kinematics of a redundant 7DOF manipulator with link offsets," in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Taipei, Taiwan, 2010, pp. 2976-2982.
    doi: 10.1109/IROS.2010.5649095

Refbacks

  • There are currently no refbacks.


Copyright © 2011-2017  AUSMT   ISSN: 2223-9766