Research Article  Open Access
Yasong Pu, Yaoyao Shi, Xiaojun Lin, Yuan Hu, Zhishan Li, "C^{2}Continuous Orientation Planning for Robot EndEffector with BSpline Curve Based on Logarithmic Quaternion", Mathematical Problems in Engineering, vol. 2020, Article ID 2543824, 16 pages, 2020. https://doi.org/10.1155/2020/2543824
C^{2}Continuous Orientation Planning for Robot EndEffector with BSpline Curve Based on Logarithmic Quaternion
Abstract
Smooth orientation planning is beneficial for the working performance and service life of industrial robots, keeping robots from violent impacts and shocks caused by discontinuous orientation planning. Nevertheless, the popular used quaternion interpolations can hardly guarantee C^{2} continuity for multiorientation interpolation. Aiming at the problem, an efficient quaternion interpolation methodology based on logarithmic quaternion was proposed. Quaternions of more than two key orientations were expressed in the exponential forms of quaternion. These fourdimensional quaternions in space S^{3}, when logarithms were taken for them, could be converted to threedimensional points in space R^{3} so that Bspline interpolation could be applied freely to interpolate. The core formulas that Bspline interpolated points were mapped to quaternion were founded since Bspline interpolated point vectors were decomposed to the product of unitized forms and exponents were taken for them. The proposed methodology made Bspline curve applicable to quaternion interpolation through dimension reduction and the highorder continuity of the Bspline curve remained when Bspline interpolated points were mapped to quaternions. The function for reversely finding control points of Bspline curve with zero curvature at endpoints was derived, which helped interpolation curve become smoother and sleeker. The validity and rationality of the principle were verified by the study case. For comparison, the study case was also analyzed by the popular quaternion interpolations, Spherical Linear Interpolation (SLERP) and Spherical and Quadrangle (SQUAD). The comparison results demonstrated the proposed methodology had higher smoothness than SLERP and SQUAD and thus would provide better protection for robot endeffector from violent impacts led by unreasonable multiorientation interpolation. It should be noted that the proposed methodology can be extended to multiorientation quaternion interpolation with higher continuity than the second order.
1. Introduction
Trajectory planning of industrial robot endeffector in workspace is a fundamental and important task. Smooth and nonimpact trajectory planning is necessary for the working performance and the service life of industrial robots, otherwise unsmooth trajectory planning will bring added violent impacts and shocks to the robot degrading robot’s work. The trajectory planning of industrial robots is divided into position planning and orientation planning, while the valid and reasonable orientation planning is one of the foundational cores to ensure perfect working completion for the robot mechanical arm. Orientation planning is related to rotation arrangement and is a broad and complicated project [1]. Lots of relevant researchers put great efforts into orientation planning and lots of methodologies were suggested [2–6].
The main expressions of orientation of a rigid body are Euler angle, rotation matrix, and quaternion [7]. Quaternion used to describe orientation has the following advantages: (1) avoid the phenomenon of locking universal joints when rotating; (2) higher calculation efficiency; (3) easy to provide smooth interpolation. Because of the remarkable characteristics, quaternion has been widely used in rotating applications. However, quaternion also has its disadvantages in describing orientation. Quaternion belongs to rotation space and is a fourdimensional vector. As a result, the algorithms of the threedimensional vector in Cartesian space are not suitable for quaternion directly [8], and interpolating theories in the threedimensional vector space cannot be directly applied to quaternion orientation interpolation. That is, highorder interpolation methods in Cartesian space cannot be directly used for multiorientation interpolation of quaternion. Though many scholars have been proposing kinds of quaternion orientation interpolations, the existing research for quaternion interpolation still needs to be developed further especially for smooth higherorder continuous interpolation between multiple orientations.
The most widely used orientation interpolation of quaternion is Spherical Linear Interpolation (SLERP) raised by Shoemake. The reasoning process of SLERP is concise and uncomplicated, and the application of SLERP is simple and convenient. The formula of SLERP is as the following formula [9]:where Q_{1} is the original orientation, Q_{2} is the end orientation, and θ is the angle between the 4dimesion vectors of Q_{1} and Q_{2}. The angle value of θ can be gotten by the dot product cos(θ) = Q_{1}.Q_{2}. A series of smooth quaternion orientations between Q_{1} and Q_{2} can be obtained when the variable t changes uniformly between 0 and 1.
SLERP is very suitable for quaternion interpolation between only two orientations. However, when interpolations between more than two orientations proceed, SLERP can only guarantee C^{0} continuity, and there would be sharp points at connecting points which connect several segments of interpolations. That means trajectory of orientation interpolation of quaternion is unsmooth at connecting points. As a result, the angular velocity and the angular acceleration would have discontinuous breakpoints which will bring violent impacts and shocks to industrial robots. Therefore, SLERP is not suitable for multiorientation interpolation for industrial robots.
In order to acquire smooth quaternion interpolation between more than two orientations, Shoemake presented Spherical and Quadrangle (SQUAD) developed on the base of SLERP. Although the derivation and application of SQUAD seem more complicated, it is still a matured algorithm and is often used for smooth quaternion interpolation between more than two orientations.
The formula of SQUAD is as the following formula [10]:
Formula (2) has two functions. The first function is the interpolation function, and the second is called auxiliary function. Q_{0}, Q_{1},…, Q_{n} are series of key orientations given in the form of quaternion, h is the only variable, is the inverse quaternion of Q_{i}, and S_{i} and S_{i+1} are called auxiliary quaternions which can be gotten by the second function in formula 2. If we want to obtain the values of S_{0} and S_{n} in auxiliary function, the values of Q_{1} and Q_{n+1} are needed. However, we only have the values of Q_{0}, Q_{1},…, Q_{n}. So, we set the value of S_{0} equal to that of Q_{0}, and the value of S_{n} equal to that of Q_{n}. This setting has little influence on the resulting interpolation curve. After the SLERP formula is used three times, SQUAD is finished.
Dam et al. proved that the formula SQUAD has C^{1} continuity of quaternion interpolation [10] and showed by the figure that both the angular and the angular velocity in the interpolation examples by SQUAD were continuous. However, they did not mention whether SQUAD has the C^{2}continuity characteristic. The subsequent case example in Section 6 of this paper shows that there are broken points at connecting nodes in the angular acceleration figure obtained by SQUAD. That means SQUAD is not C^{2} continuous at connecting points for multiorientation quaternion interpolation. Discontinuous angular acceleration will also bring violent impacts on industrial robots and may degrade its working performance and service life as well.
In order to improve highorder smoothness of multiorientation interpolation of quaternion, some scholars introduce quaternion spline curves into quaternion interpolation. Myoungjun Kim et al. presented a kind of quaternion spline curve with higherorder derivability [11]. They proposed the concept of cumulative basis function of quaternion, and the cumulative basis function of quaternion is taken as the exponent to perform quaternion interpolation. The operation of cumulative basis function becomes more complicated since its calculation is involved quaternion. Moreover, when quaternion Bspline curve is used for orientation interpolation, the control vertexes need be found reversely by the given key orientation quaternions. However, since the quaternion curve is generated in nonEuclidean space, the control vertexes obtained by reverse solution needs to solve nonlinear equations, so the numerical solution of the control vertexes of the quaternion Bspline curve can only be obtained approximately.
Yan Xing et al. presented a class of the generalized quaternion curve of Bspline [12]. They constructed series of nonlinear core functions based on the research findings of Juhász and Róth. More paths of rotation can be attained by means of choosing different core functions. They concluded the classical unit quaternion curves of Bspline in these rotating paths and considered the classical unit quaternion curves of Bspline as special cases. And the generalized Bspline quaternion curves can achieve higher order of continuity. Applications and calculations of the research findings seem a little more complex.
Although there are also other several ways to construct the highorder quaternion curve [13–18], it is still difficult to tell which one method is better than another, and there is still no perfect solution so far. Relevant researchers have been striving to study and explore in this direction. So, the purpose of this paper is to find a compact and effective method of smooth multiorientation interpolation of quaternion.
2. Quaternion Orientation Interpolation Principle with Spline Curve Based on Logarithmic Quaternion
2.1. Preliminaries of Quaternion
When a rigid body rotates purely, both the orientation of the rigid body changes and the position of the particle on the rigid body change. A rotation means a new orientation of the rigid body. Conversely, knowing the orientation of a rigid body means knowing what rotation the rigid body has made. That is to say, a rotation equals an orientation.
The main expressions of orientation (i.e., rotation) are as follows: rotation matrix, Euler angle, and quaternion. The rotation matrix is composed of nine elements, which results in large data and inefficiency in calculation compared with other two methods. What is more, the rotation matrix is not convenient in smooth interpolation. The big trouble with the Euler angle is the phenomenon of Gimbal Lock. That is, there will be singular points under some conditions when the second Euler angle is the multiple of 90° [19]. When Gimbal Lock happens, movement will not follow the expected path. By comparison, quaternion has less computational complexity, has not the phenomenon of Gimbal Lock, and is convenient for smooth interpolation so that it is widely used in the representation of rotation (i.e., orientation). Although quaternion has many advantages, it also has its weaknesses. Quaternion is a fourdimensional vector and cannot be visually represented in Cartesian space. Moreover, the algorithms of threedimensional vector operation and interpolation laws cannot be directly applied for quaternion. So, these problems bring some difficulties to quaternion orientation interpolation, especially for highorder continuous orientation interpolation. Thus, lots of research are involved in it.
Quaternion can be generally defined as , where, q_{0}, q_{1}, q_{2}, and q_{3} are all real numbers and i, j, and k are the imaginary axes of the complex number. Quaternion can also be represented as the vector form , where is called the real part of quaternion and is called the imaginary part of quaternion. The modulus of quaternion can be expressed as .
When the real part of a quaternion Q is zero, such quaternion is called pure quaternion. Pure quaternion can be expressed as ; when the imaginary part of the quaternion Q becomes the opposite values, such quaternion is named conjugate quaternion and is expressed in Q^{∗}, and . The modulus of quaternion can also be expressed by ; when the multiplication of two quaternions Q_{1} and Q_{2} is equal to [1,0,0,0], Q_{2} is defined as the inverse quaternion of Q_{1}. Inverse quaternion of Q is expressed in Q^{−1}, and . When the modulus of a quaternion is equal to 1 (), such quaternion is called unit quaternion. Nonunit quaternion can be converted to unit quaternion by . For a unit quaternion, its conjugate quaternion is equal to its inverse quaternion Q^{−1}; that is, . Because the modulus of any unit quaternion is equal to 1 (), unit quaternion belongs to S^{3} field. Quaternion used to describe rotation is usually unit quaternion.
Compared with the mathematical operations of real number, complex number, and vector, the mathematical operations of quaternion is more complicated. And the commutative law is not appropriate for quaternion operation. If there are two arbitrary quaternions H () and Q (), the multiplication operation is as the following equation:
Notice that HQ is usually not equal to QH.
In general, quaternion used for rotation is mostly unit quaternion. Furthermore, unit quaternion can be written as formula (3), which is more popular than original definition expression:where θ is the rotation angle and n=(a,b,c) is the vector of the rotation axis. In addition, n is the unit vector (). Function (4) shows the rotation characteristic of quaternion; that is, a quaternion means a rotation or an orientation.
2.2. Deduction of Quaternion Interpolation Principle Based on Logarithmic Quaternion
As we know, the common complex number F can be defined as F = A + Bi. The angle of a complex number can be expressed by . The complex, whose modulus equals 1 (), is called the unit complex. The unit complex can be written in the exponential form as . Quaternion is also a kind of the complex number, which is more complicated than the plane complex number. In the same way, unit quaternion can be expressed in exponential form similar to the common complex:where the meanings of θ and n are the same as that in function (4).
When we take logarithms on both sides of equation (5), we get
As can be seen from equation (6), if we take a logarithm for a unit quaternion, the fourdimensional quaternion in S^{3} space can be converted to threedimensional points in R^{3} space. At this time, highorder interpolation theories in Cartesian space become available, such as Bspline interpolation especially. Suppose there are start orientation and end orientation of robot endeffector, which are described as quaternion orientations Q_{s} and Q_{e}, respectively. If the logarithm is taken for Q_{s} and Q_{e} according to equation (5), we can accordingly get threedimensional start point P_{s} and end point P_{e} in Cartesian space. Then, we can use various interpolation methods in R^{3} space to interpolate and get series of interpolated points marked as P_{i}=(x_{i}, y_{i}, z_{i}) and i = 0, 1, 2, …, n. According to relevant interpolation equation, the interpolated points can be written as follows:
The interpolated points are threedimensional vectors in R^{3} space and need to be converted to unit quaternions in S^{3} space. To ensure the rotation axes of the quaternions are unit vectors, the rotation axis vectors should be united. Thus, the interpolation equation should be decomposed to the product of unitized forms as follows:
Substitute P(t) in equation (8) into equation (6), and take exponents on both sides of the equation. We can get
By comparing equation (9) with equation (5), the rotation angle and rotation axis vector of interpolated unit quaternion can be obtained as follows:where θ(t) and [a(t), b(t), c(t)], respectively, are the rotation angle and the rotation axis vector of interpolated unit quaternion in S^{3}. [x(t), y(t), z(t)] is the vector of the interpolated point in R^{3}.
Finally, the real part and complex part of interpolated unit quaternion can be deduced as follows:where [q_{0}(t), q_{1}(t), q_{2}(t), q_{3}(t)] is interpolated unit quaternion in S^{3}. [x(t), y(t), z(t)] is a vector of the interpolated point in R^{3}. As shown in formula (11), the interpolated points in R^{3} space can be mapped to the corresponding interpolated unit quaternions in S^{3} space.
Make a summery here. The fourdimensional unit quaternions in S^{3} space, when logarithms were taken for them, could be converted to threedimensional points in R^{3} space. Then, threedimensional spline curve interpolation, such highorder smooth curve interpolation as the Bspline curve, can be applied freely. When interpolation is completed in R^{3} space, the threedimensional interpolated points in R^{3} space can be mapped to the interpolated unit quaternions in S^{3} space according to formula (11). Thus, quaternion interpolations are realized.
It should be pointed out that the rotation angle θ in formula (10) is positive. When the rotation angle θ of the key orientation given in advance is negative, it can be dealt as follows. The rotation angle θ is taken as absolute value, and the rotation axis vector is taken as the opposite number before interpolation. That is, θ^{∗}(a,b,c) are treated as .
From equations (4) and (5), we can obtain the following equation:
Equation (12) can be written as follows:
In equation (13), [x(t), y(t), z(t)] are interpolated points of the spline curve in Cartesian space and can be expressed as r(t). When we take exponent for r(t) and get a new equation, the continuity of the new function is consistent with the one of r(t); that is, the continuity of the new function will not change. For example, if we choose the cubic Bspline curve to be the interpolation method, the interpolated points are C^{2} continuous at knot points. When exponent is taken for the function of the cubic Bspline curve and new function is obtained, continuity of new function will not change and remain secondorder C^{2} continuity. Taking exponent is the process of mapping the spline curve in Cartesian space to quaternion space, so the corresponding quaternions also keep the corresponding continuity, and the order of continuity remains unchanged.
3. BSpline Curve Interpolation with Zero Curvature at Endpoints
3.1. Preliminaries of BSpline Curve
The Bspline curve plays an important role in the freeform curve and surface modeling design and is a significant branch for smooth interpolation. The Bspline curve is developed on the basis of the Bezier curve. It retains the advantages of the Bezier curve and overcomes the defect that the Bezier curve has not the ability of local modification. Furthermore, it has advantages in dealing with complicated shapes. Because of its smooth interpolation and convenience, the Bspline curve has been one of the most popular methods of mathematical description of freeform curve and surface.
The mathematical definition of the Bspline interpolation curve is as follows [20]:where d_{i} are the control points and N_{i,k} (u) are the basis functions. The label k is the power of basis function. The label i is the sequence label. Basis function of de Boor Cox is commonly used and is defined as follows:where u_{i} are the nodes of the basis function.
The Cubic uniform Bspline curve is most widely used in engineering among kinds of Bspline curves because its expression is not very complicated and it has the properties of high smoothness and C^{2} continuity, which can meet the needs of most engineering. At the same time, the cubic uniform Bspline also has the advantages of low power, simple calculation, fast speed, and the ability of constructing various shapes. As a result, numerous engineers and designers are favored of the cubic uniform Bspline curve when modeling freeform curve and surface.
The basis function of the cubic uniform Bspline curve can be described further in its effective regions of basis function nodes as follows [21]:
By synthesizing formula (14) and (16), practical formula of the cubic uniform Bspline curve can be obtained as the following formula [21]. Unless the other is specified, the following Bspline curves all refer to cubic uniform Bspline curves:where d_{i+j} are the control points, N_{j,3}(u) are the basis functions, and u is the variable.
Formula (17) is really practical for usage of the cubic uniform Bspline curve. The formula is easy to understand and convenient to use. As can be seen from formula (17), every four control points hold a Bspline curve. For example, if there are five control points, the two Bspline curves can be obtained, and so on. Bspline curves are C^{2} continuous at knots between every two curves [22]. It should be pointed out that no matter how many control points there are, the basis functions are the same four functions as far as the cubic uniform Bspline curve is concerned.
As described above, the Bspline curve can be obtained if control points are given. However, in many engineering problems, we are often not given the control points but the knots which the spline curve would pass through. Knots are the key points belonging to the Bspline curve while control points are not a part of the curve so that we need to find control points for the Bspline curve. The process of finding control points by the use of knots is called inverse solution.
For the cubic uniform Bspline curve, the formula of inverse solution of control points is expressed as follows [21]:where d_{i1}, d_{i}, and d_{i+1} are the control points and P_{i} are the key points called as knots through which the Bspline curve must pass.
In function (18), the number of unknown control points is more than the number of equations, so there are numerous solutions for the equations. In order to obtain unique solutions of this function, we need to add two constraint equations. There are several common methods to add constraint equations. We need to search a better method suitable for the characteristic of quaternion interpolation.
3.2. The Unique Solution of Control Points with Zero Curvature at Endpoints
For the purpose that the interpolation curves are prevented from changing violently, we could consider that the curvatures at the beginning knot and the terminal knot of the interpolation curve are all set zero. We need add two constrain equations when the curvatures at the beginning and the terminal knots of the Bspline curve are all set to zero and can obtain the unique set of solutions of control points.
When the first and second control points are coincident, the curvature at the beginning knot of the Bspline curve will be zero, and the equation as below should hold [21]:where d_{i−1}, d_{i}, and d_{i+1} are the first, the second, and the third control points, respectively. Control points d_{i−1} and d_{i} are coincident. P_{i} is the beginning knot of the Bspline curve. These relationships are clearly shown in Figure 1.
From equation (19), we can deduce one of the constraint equations as follows:
Similarly, when the last and the penultimate control points are coincident, the curvature at the terminal knot of the Bspline curve will be zero, and the equation as below should hold:where d_{n1}, d_{n}, and d_{n+1} are the last control point, the penultimate control point, and the third control from the bottom, respectively. Control points d_{n+1} and d_{n} are coincident. P_{n} is the terminal knot of the Bspline curve.
From equation (21), we can also deduce the other constrain equation as follows;
By synthesizing equations (18), (20), and (22), we can finally obtain the following formula, which can be used to solve control points inversely by key knots of the Bspline curve under the condition that the curvatures at the beginning and the terminal knots of the Bspline curve are zero:
In formula (23), d_{1}, d_{2},…, d_{n} are a series of control points. The control point d_{1} has a coincidence point d_{0}, which means the first control point has two identical control points d_{1} and d_{0}. Similarly, the control point d_{n} has a coincidence point d_{n+1}, and the last control point has two identical control points d_{n} and d_{n+1}. The key knots P_{1}, P_{2},…,P_{n} are given beforehand and must be passed through by the Bspline interpolation curve. The control points are the unknown and need to be solved. We can see from function (23) that the quantity of the unknown control points is equal to the equation quantity of the matrix so that function (23) has a unique set of solutions of control points. Then, we can interpolate between the key knots with cubic uniform Bspline curve after the values of control points are found.
4. Steps of Orientation Interpolation with BSpline Curve Based on Logarithmic Quaternion
We sum up the steps of orientation interpolation with the Bspline curve based on logarithmic quaternion as follows: Step 1: depending on the tasks of industrial robots, several key orientations of endeffector are obtained. The key orientations are expressed by unit quaternions Q_{i}, and rotation angles θ_{i} and rotation axes n_{i} can be gotten as well. Step 2: according to functions (5) and (6), the fourdimensional unit quaternions Q_{i} are expressed in the exponential forms of the complex number and are transformed to threedimensional vectors P_{i} in R^{3} space when logarithms are taken for these quaternions. Then, interpolation theory of the Bspline curve becomes available. Step 3: the obtained points P_{i} are considered as the key knots of Bspline interpolation curves, and we can find the control points d_{i} of the Bspline curve with zero curvature at end knot points by resolving function (23). Step 4: according to the obtained control points d_{i}, we can use formula (17) to apply the Bspline curve to interpolate between every two key knots P_{i}, and get series of interpolated points P(t) in R^{3}. Step 5: all the interpolated points P(t) of the Bspline curve in R^{3} space are mapped to interpolated quaternions in S^{3} space via formula (11). Quaternion interpolation ends.
The interpolation process can be demonstrated clearly by the following flowchart in Figure 2.
5. Case Study
In order to verify the correctness and rationality of the proposed methodology, the following study case is employed. The usage of the proposed methodology is further described in detail during the study case analysis. Case 1: In order to accomplish a certain task for an industrial robot, the endeffector has to experience four necessary orientations. The first orientation is to rotate 60° around the Z axis in the fixed frame. The second orientation is to rotate 45° around the Y axis in the fixed frame. The third orientation is to rotate 90° around the X axis in the fixed frame. The last orientation is to rotate 90° around the axis whose vector is n=(2,3,5) in the fixed frame. Using the interpolation methodology proposed in this paper, complete quaternion orientation interpolation with guarantee of C^{2} continuity. Case analysis: there are four key orientations given in the case as seen in Figure 3. The multiorientation planning has three interpolation segments: the first segment between the 1st key orientation and the 2nd key orientation, the second segment between the 2nd key orientation and the 3rd key orientation, and the third segment between the 3rd key orientation and the 4th key orientation. The orientation interpolation process is as below. It should be pointed out that the Bspline curves used in the case are the cubic uniform Bspline curve.(1)According to the four necessary orientations of industrial robots, we can get four key quaternions Q_{i} and then get the corresponding rotation angles θ_{i} and axes n_{i}, as seen in Table 1.(2)According to formula (6), we can calculate the key knots P_{i} of the cubic uniform Bspline curve in R^{3} Cartesian space. Depending on these key knots P_{i} obtained, we can find the resolutions of control points d_{i} by the use of formula (23), which ensures that the curvatures at the beginning and the terminal points of the Bspline curve are zero to avoid the curve changing violently. The values of key knots P_{i} and control points d_{i} are filled in Table 2.(3)Using the control points d_{i} obtained, interpolations can be carried out between ever two key knots with cubic Bspline curves. According to Bspline interpolation formula (17), the interpolation functions of cubic Bspline curves can be obtained as below. The first Bspine curve function: The second Bspine curve function: The third Bspine curve function: When the variable u changes within the range [0,1], series of interpolated points of cubic Bspline curves can be obtained. Connecting these interpolated points, we can get three cubic Bspline curves which must pass through the key knots P_{1}, P_{2}, P_{3}, and P_{4}, as can be seen in Figure 4. It is obvious that curve r_{1}(u), curve r_{2}(u), and curve r_{3}(u) are C^{3} continuous, respectively, according the above functions. It can also be verified that the whole spline composed of these three Bspline curves is C^{2} continuous at the key knots P_{2} and P_{3}. As seen in function (27), the second derivative of r_{1}(u) with u = 1 is equal to the second derivative of r_{2}(u) with u = 0. That is, the whole spline is C^{2} continuous at the knots P_{2}. Similarly, the second derivative of r_{2}(u) with u = 1 is equal to the second derivative of r_{3}(u) with u = 0 in function (28), and the whole spline is C^{2} continuous at the knots P_{3}. Thus, the whole Bspline r(u) is C^{2} continuous: According to equation (5), the interpolated quaternion can be marked as the below equation to explain the continuity of interpolation quaternion clearly: In function (29), on the left side of the equation is the interpolated quaternions. On the right side of the equation is the exponential form of interpolated Bspine. Exponent is taken for r(u), and the new function obtained would have the same order continuity as r(u). Because r(u) in the case study described above is C^{2} continuous, especially at the key knots P_{2} and P_{3} showed above, exp[r(u)] is surely also C^{2} continuous at same knots points as checked by following equations: The right side of equation (29), exp[r(u)], is C^{2} continuous. Then, the left side of equation (29), Q(u), must be C^{2} continuous because the continuity on the left and right sides of the equation is the same. So, the interpolated quaternions are C^{2} continuous, which is demonstrated with detail in Section 6.(4)According to formula (11), these interpolated points of Bspline curves in R^{3} Cartesian space can be mapped to the unit quaternions in S^{3} space. Thus, we eventually complete the orientation interpolations of unit quaternion. Taking u = 0, 0.2, 0.5, 0.8, and 1 partly as examples, the relevant data of the quaternion interpolations are listed in Tables 3–5, respectively.
As can been seen in Table 3, when the variable u is equal to 0 and 1, respectively, the interpolated quaternion is [0.866, 0, 0, 0.5] and [0.924, 0, 0.383, 0] correspondingly, which are precisely the values of the quaternions corresponding to the first and second key orientations.





In Table 4, when the variable u is equal to 0 and 1, respectively, the interpolated quaternion is [0.924, 0, 0.383, 0] and [0.707, 0.707, 0, 0], which are precisely the values of the quaternions corresponding to the second and third key orientations.
Similarly, in Table 5, when the variable u is equal to 0 and 1, respectively, the interpolated quaternion is [0.707, 0.7071, 0, 0] and [0.707, 0.211, 0.422, 0.527] which are precisely the values of the quaternions corresponding to the third and fourth key orientations. The results are consistent with the expected values of interpolation theory proposed.
When we take evenly 50 times variable u within the range of [0,1], we can get 150 unit quaternions among the three segments of interpolation. In consideration of paper space, only partial interpolation data are listed in the above tables. By now, quaternion orientation interpolation ends.
6. Comparison and Discussion
In order to compare with the proposed quaternion interpolation methodology, the most commonly used quaternion interpolation methods SLERP and SQUAD described in the previous section are applied for the same case study above as well. The results of the research and analysis below reflect there are more or less deficiencies for these two methods to be used in multiorientation quaternion interpolation. The comparison and analysis mainly focus on these items: quaternion interpolation curve, rotation angle routing, angular velocity routing, angular acceleration routing, and rotating axis trajectory. The detailed comparison and analysis process are as follows.
6.1. Quaternion Interpolation Curves by Proposed Methodology, SQUAD and SLERP
Unit quaternion belongs to S^{3} space and can be turned by Hopf Mapping to the vector in S^{2} space [23], which is on the surface of unit sphere in Cartesian space. Then, the interpolated unit quaternions of endeffector orientation can be plotted graphically for observation. By this way, we can intuitively draw the interpolation trajectory diagram for the interpolated fourdimensional unit quaternions on the unit sphere in threedimensional space. Figure 5 shows the quaternion interpolation curves for the above study case obtained by the methods of proposed methodology, SQUAD and SLERP, respectively.
(a)
(b)
(c)
In Figure 5(a), we can see the whole quaternion interpolation curve by proposed methodology is continuous and smooth. There is neither sharp point nor broken point even at the segment connecting points k_{2} or k_{3}, which means the proposed multiorientation quaternion interpolation is reasonable. The same is shown in Figure 5(b) by the SQUAD method. However, we cannot tell whether the proposed methodology or SQUDA is C^{2} continuous only from the quaternion interpolation curves. Because both of their quaternion interpolation curves seem smooth enough in appearance, further analysis and discussion are needed in below section.
As for the method SLERP, the situation becomes a little simpler. We can clearly see that sharp points occur at the segment connecting points k_{2} or k_{3} in Figure 5(c) by SLERP. This result fully shows that the quaternion interpolation of SLERP for multiple orientations is not smooth despite being continuous and will bring violent impacts and shocks to endeffector. So, we can immediately come to a conclusion that SLERP is not suitable for multiorientation quaternion interpolation.
6.2. Rotation Angle Routings by Proposed Methodology, SQUAD and SLERP
We can get the values of rotation angle, angular velocity, and angular acceleration according to these three interpolation formulas above. Figure 6 shows rotation angle routing curves of the above study case obtained by the methods of proposed methodology, SQUAD and SLERP, respectively. The angle curve in Figure 6(c) has sharp points θ_{c1} and θ_{c2}, which implies the curve is continuous but not smooth enough and rotation angle arrangement is not reasonable. The defect led by unsmooth rotation angle planning of multiorientation interpolation of SLERP is more obvious in later analysis.
(a)
(b)
(c)
The curves in Figures 6(a) and 6(b) are very similar in appearance. Both of them look smooth and continuous, which means we cannot judge from rotation angle routing curves which one is the better choice in proposed methodology and SQUAD. Analysis below is needed.
6.3. Angular Velocity Routings by Proposed Methodology, SQUAD and SLERP
Angular velocity routing curves of these three methods for the case are shown in Figure 7. There are very obvious broken angular velocity points ω_{c1} and ω_{c2} in Figure 7(c), which shows clearly that jump changes take place in angular velocity and will bring violent impacts and shocks harmful to industrial robots. Figure 7(c) demonstrates exactly once more that SLERP is not suitable for multiorientation quaternion interpolation.
(a)
(b)
(c)
The angular velocity routing curves in Figure 7(a) and 7(b) are still similar. Because both of them are continuous and have no obvious sharp point, it is still difficult to determine which one is better in the proposed methodology and SQUAD by angular velocity.
6.4. Angular Acceleration Routings by Proposed Methodology, SQUAD and SLERP
Angular acceleration routing curves of these three methods for the case are shown in Figure 8. The angular acceleration routing curve in Figure 8(a) obtained by proposed methodology is continuous while the curve in Figure 8(b) by SQUAD is broken by the points ε_{c1} and ε_{c2}. In other words, the quaternion interpolation SQUAD for multiple orientations is not C^{2} continuous and the angular acceleration is discontinuous, which will also lead to violent shocks and impacts more or less and degrade the working performance and service life of industrial robot as well. Therefore, SQUAD is not perfect quaternion interpolation for multiple orientation. The angular acceleration routing curves in Figure 8(c) obtained by SLERP are discontinuous expectedly. The previous analysis has made it very clear that SLERP is not suitable for multiorientation quaternion interpolation.
(a)
(b)
(c)
Up to now, we can tell evidentially that the proposed methodology is superior to SLERP and SQUAD in multiorientation quaternion interpolation.
6.5. Rotation Axis Trajectories by Proposed Methodology, SQUAD and SLERP
We can also observe which method is more advantageous from rotation axis trajectories as shown in Figure 9. The rotation axis trajectory curve is from the starting orientation to the ending orientation of endeffector during the whole orientation planning.
(a)
(b)
(c)
The rotation axis trajectory by the proposed method in Figure 9(a) is smooth enough. Although the rotation axis trajectory curve by SQUAD in Figure 9(b) is continuous and smooth, we can still observe that the rotation axis trajectory curve by proposed methodology in Figure 9(a) is more fluid. Moreover, the rotation axis trajectory by SLERP in Figure 9(c) has apparent sharp points n_{2} and n_{3} at the connecting corners and is obviously not smooth. It can be concluded as well that SLERP is not suitable for multiorientation quaternion interpolation, and proposed methodology is more advantageous than SQUAD and SLERP in multiorientation quaternion interpolation.
7. Conclusions
Highorder continuous orientation planning is beneficial to working performance and service life of robot endeffector. However, the most commonly used quaternion interpolation algorithms, SLERP and SQUAD, cannot guarantee C^{2} continuity of multiorientation interpolation planning. When SLERP is applied for quaternion multiorientation interpolation, it will generate intermittent angular velocity and angular acceleration at the connecting point, which will bring additional impacts and vibrations to the robot and is very harmful to the working performance of robots. When SQUAD is employed for quaternion multiorientation interpolation, it will also produce discontinuous angular acceleration at the connection point, which will also lead to additional shocks and vibrations more or less and are not conducive to the robot’s work either. Therefore, SLERP and SQUAD are not suitable for quaternion multiorientation planning of robot endeffector.
The proposed quaternion interpolation method with the cubic Bspline curve based on logarithmic quaternion is able to guarantee C^{2} continuity. When the proposed method is applied to the multiorientation planning of robot endeffector, the planned angular velocity and angular acceleration are both continuous and smooth avoiding additional impacts and vibrations unfavourable for robot working. By the way, in the procedure of reversely finding control points of the cubic Bspline curve, the constraint function condition is that the curvatures at the beginning and the terminal knots of the Bspline curve are set to zero. It helps the quaternion interpolation become smoother and sleeker. Moreover, the formula expression of the proposed methodology is concise and its application is simple and convenient. The study case verified the C^{2} continuity of quaternion interpolation and its rationality. Therefore, it is suitable for quaternion multiorientation planning of robot endeffector. Furthermore, the proposed methodology can be extended to multiorientation quaternion interpolation with higher continuity than the second order.
Data Availability
The study case data used to support the findings of this study are available within the article and can be obtained upon request to the corresponding author as well.
Conflicts of Interest
The authors declare that they have no conflicts of interest.
Acknowledgments
This work was supported by the National Natural Science Foundation of China (grant no. 51675439) and the National Science and Technology Major Projects of China (2015ZX04001003).
References
 H. L. Pham, B. V. Adorno, V. Perdereau et al., “Setpoint control of robot endeffector pose using dual quaternion feedback,” Robotics and ComputerIntegrated Manufacturing, vol. 52, pp. 100–110, 2018. View at: Publisher Site  Google Scholar
 X. F. Fraisse, “Optimal pose trajectory planning for robot manipulators,” Mechanism and Machine Theory, vol. 37, no. 10, pp. 1063–1086, 2002. View at: Publisher Site  Google Scholar
 P. T. Zacharia, E. K. Xidias, and N. A. Aspragathos, “Task scheduling and motion planning for an industrial manipulator,” Robotics and ComputerIntegrated Manufacturing, vol. 29, no. 6, pp. 449–462, 2013. View at: Publisher Site  Google Scholar
 A. M. Zanchettin and P. Rocco, “Motion planning for robotic manipulators using robust constrained control,” Control Engineering Practice, vol. 59, no. 59, pp. 127–136, 2017. View at: Publisher Site  Google Scholar
 K. Kaltsoukalas, S. Makris, and G. Chryssolouris, “On generating the motion of industrial robot manipulators,” Robotics and ComputerIntegrated Manufacturing, vol. 32, no. 32, pp. 65–71, 2015. View at: Publisher Site  Google Scholar
 P. B. Mulik, “Optimal trajectory planning of industrial robot with evolutionary algorithm,” in Proceedings of the 2015 International Conference On Computation Of Power, Energy, Information And Communication (ICCPEIC), pp. 0256–0263, IEEE, Chennai India, April 2015. View at: Google Scholar
 J. Diebel, “Representing attitude: Euler angles, unit quaternions, and rotation vectors,” Matrix, vol. 58, no. 1516, pp. 1–35, 2006. View at: Google Scholar
 J. Coburn and J. J. Crisco, “Interpolating threedimensional kinematic data using quaternion splines and hermite curves,” Journal of Biomechanical Engineering, vol. 127, no. 2, pp. 311–317, 2005. View at: Publisher Site  Google Scholar
 K. Shoemake, “Animating rotation with quaternion curves,” ACM SIGGRAPH Computer Graphics, vol. 19, no. 3, pp. 245–254, 1985. View at: Publisher Site  Google Scholar
 E. B. Dam, M. Koch, and M. Lillholm, “Quaternions, interpolation and animation,”, vol. 2, Datalogisk Institut, Københavns Universitet, Copenhagen, Denmark, , 1998.
 M. J. Kim, M. S. Kim, and S. Y. Shin, “A general construction scheme for unit quaternion curves with simple high order derivatives,” in Proceedings of the September 1995 SIGGRAPH, vol. 95, pp. 369–376, ACM, New York, NY, USA, September 1995. View at: Google Scholar
 Y. Xing, R.z. Xu, J.q. Tan et al., “A class of generalized Bspline quaternion curves,” Applied Mathematics and Computation, vol. 271, pp. 288–300, 2015. View at: Publisher Site  Google Scholar
 X. Fan and T. Wang, “C2continuous orientation trajectory planning for robot based on spline quaternion curve,” Assembly Automation, vol. 38, no. 3, pp. 282–290, 2018. View at: Publisher Site  Google Scholar
 W. Ge, Z. Huang, and G. Wang, “Interpolating solid orientations with a C2continuous Bspline quaternion curve,” in Proceedings of the International Conference On Technologies For ELearning And Digital Entertainment, pp. 606–615, Springer, Berlin, Germany, July 2007. View at: Google Scholar
 P. Li and R. Guo, “Research on quaternionquintic spherical Bezier spline interpolation algorithm for 5axis machining,” in Proceedings of the 2009 4th International Conference on Computer Science & Education, pp. 612–617, IEEE, Nanning, China, July 2009. View at: Google Scholar
 B. B. SalmerónQuiroz, J. G. Castellanos, S. R. Paredes et al., “Global estimation of robot’s attitude via quaternion and data fusion,” in Proceedings of the 2012 7th IEEE Conference on Industrial Electronics and Applications (ICIEA), pp. 524–529, IEEE, Singapore, Singapore, July 2012. View at: Google Scholar
 K. T. Miura, “Unit quaternion integral curve: a new type of fair freeform curves,” Computer Aided Geometric Design, vol. 17, no. 1, pp. 39–58, 2000. View at: Publisher Site  Google Scholar
 J. Tan, Y. Xing, W. Fan et al., “Smooth orientation interpolation using parametric quinticpolynomialbased quaternion spline curve,” Journal of Computational and Applied Mathematics, vol. 329, pp. 256–267, 2018. View at: Publisher Site  Google Scholar
 K. Hong, “Singularities of the euler wrist,” Mechanism and Machine Theory, vol. 35, no. 4, pp. 505–515, 2000. View at: Google Scholar
 C. De Boor, “On calculating with Bsplines,” Journal of Approximation Theory, vol. 6, no. 1, pp. 50–62, 1972. View at: Publisher Site  Google Scholar
 Z. Chang and Y. Wan, Computer Aided Geometric Modeling Technology,”, Science Press, Beijing, China, 3rd edition, 2013.
 Z. Shi, “Computer Aided Geometric Design and Nonuniform Rational BSpline (CAGD & NURBS),”, Beijing University of Aeronautics and Astronautics Press, Beijing, China, 2013.
 L. H. Ryder, “Dirac monopoles and the Hopf map S3 to S2,” Journal of Physics A: Mathematical and General, vol. 13, no. 2, pp. 437–447, 1980. View at: Publisher Site  Google Scholar
Copyright
Copyright © 2020 Yasong Pu et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.