Next Article in Journal / Special Issue
Design and Implementation of a Dual-Axis Tilting Quadcopter
Previous Article in Journal
Leaf Area Estimation of Reconstructed Maize Plants Using a Time-of-Flight Camera Based on Different Scan Directions
Previous Article in Special Issue
Non-Linear Lumped-Parameter Modeling of Planar Multi-Link Manipulators with Highly Flexible Arms
 
 
Order Article Reprints
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Spacecraft Robot Kinematics Using Dual Quaternions

School of Aerospace Engineering, Georgia Institute of Technology, Atlanta, GA 30313, USA
*
Author to whom correspondence should be addressed.
These authors contributed equally to this work.
Robotics 2018, 7(4), 64; https://doi.org/10.3390/robotics7040064
Received: 30 July 2018 / Revised: 9 October 2018 / Accepted: 10 October 2018 / Published: 12 October 2018
(This article belongs to the Special Issue Kinematics and Robot Design I, KaRD2018)

Abstract

:
In recent years, there has been a growing interest in servicing orbiting satellites. In most cases, in-orbit servicing relies on the use of spacecraft-mounted robotic manipulators to carry out complicated mission objectives. Dual quaternions, a mathematical tool to conveniently represent pose, has recently been adopted within the space industry to tackle complex control problems during the stages of proximity operations and rendezvous, as well as for the dynamic modeling of robotic arms mounted on a spacecraft. The objective of this paper is to bridge the gap in the use of dual quaternions that exists between the fields of spacecraft control and fixed-base robotic manipulation. In particular, we will cast commonly used tools in the field of robotics as dual quaternion expressions, such as the Denavit-Hartenberg parameterization, or the product of exponentials formula. Additionally, we provide, via examples, a study of the kinematics of different serial manipulator configurations, building up to the case of a completely free-floating robotic system. We provide expressions for the dual velocities of the different types of joints that commonly arise in industrial robots, and we end by providing a collection of results that cast convex constraints commonly encountered by space robots during proximity operations in terms of dual quaternions.

1. Introduction

Robots are increasingly present in our daily lives, with their many uses ranging from simple vacuuming devices to complex manufacturing robotic arms. This growth is sustained by the continuous development of faster and better software and hardware, as well as strong theoretical advances in the areas of kinematics, dynamics, computer vision, sensing, etc. The space industry, owing to obvious reasons having to do with the unfriendliness of the space environment to humans, relies heavily on the use of robotics systems. In fact, interplanetary robotic exploration is at the core of NASA’s Jet Propulsion Laboratory, and a wide variety of companies and governmental agencies are currently developing space-rated robotic manipulation systems for on-orbit satellite servicing [1,2].
The field of robotics is a well-established one. Lately, in the field of fixed-base robotics, progress in the area of kinematics and dynamics has mainly focused on ease of use, and speed and performance improvements [3,4]. The combination between the study of robots and their use in space, i.e., space robotics, must find common ground between the techniques used in both. For example, quaternions are the representation of choice when it comes to attitude parameterization for spacecraft control and estimation, while SE ( 2 ) / SE ( 3 ) and the Spatial Vector Algebra [5] are the dominant tools of choice in the fixed-base robotic community. Therefore, with the recent advent of dual quaternions, it is only natural to explore the use of a pose (i.e., position and attitude) representation tool for spacecraft control and estimation in order to study robotic systems mounted on a spacecraft.
Dual quaternion algebra is an extension of the well-known quaternion algebra. The former is used to study rigid body pose while the latter is used extensively to study just the attitude of a rigid body. Dual quaternions have recently seen a proliferation in their use for spacecraft control [6,7,8,9]. Several factors have contributed to the recent interest in dual quaternions in spacecraft control. First, the similarities between quaternion and dual quaternion-based spacecraft controllers and estimators [10] make dual quaternions an appealing tool for the practitioner who is familiar with the (standard) quaternion algebra. Next, dual quaternions naturally encode position information, thus avoiding the artificial separation of rotational and translational motion during control, which becomes essential during proximity operations or robotic servicing missions. More recently, dual quaternions have been used extensively for the dynamic modeling of ground-based robotic manipulators, providing an even stronger argument towards their use for dynamic modeling of spacecraft-mounted robotic manipulators [11].
While dual quaternions have been used for serial robot kinematic design [12,13,14], and for kinematic manipulation of points, vectors, lines, screws and planes [15], few references incorporate velocity information into their study of kinematics. Leclercq et al. [16] studied robot kinematics in the context of human motion using dual quaternions, yielding one of the most complete references to study kinematic chains with dual quaternions. More recently, Quiroz-Omaña and Adorno [17] have made use of dual quaternions in the context of robotic manipulation on a non-holonomic base. The methodologies exhibited in [16,17], however, do not take advantage of the well-known and convenient dual quaternion expression for kinematics, which could avoid manually taking time derivatives of pose expressions. A possible reason for this is the lack of a systematic manner to represent the combined linear and angular velocities of joints in dual algebra, and instead relying on the explicit derivative of pose-like expressions.
Works in the fields of dynamics and spacecraft control have settled on an understanding of the construction of dual velocities [18,19], which can be extended to provide generic expressions for the dual velocities of rigid bodies, or even of the different types of joints that may appear in a serial kinematic chain. In fact, Özgür and Mezouar [20] make use of said representation of dual velocity, commonly given by an expression of the form ω = ω + ϵ v , to perform kinematic control on a robotic arm, yielding a clever representation of the Jacobian matrix that uses dual quaternion screws. Their approach, however, has a fixed base and requires the use of base-frame coordinates—as opposed to body-frame coordinates, which are commonly used in the study of spacecraft motion—to describe the Plücker lines associated to the different joints of the system.
Given the significant interest that dual quaternions have garnered in the last decade in the realm of space applications, it is pertinent to contribute to the literature a straightforward treatment of kinematics with an emphasis on space-based robotic operations. In this paper, we aim to extend the study of robot kinematics using dual quaternions, mainly by lifting the condition that the robotic base must be fixed, allowing it instead to move freely in the three-dimensional space. Additionally, we consider the possibility of incorporating different types of joints, and provide the formulas for the dual velocity of each different type of joint. Along the way, we provide some important well-known results, such as the derivation of the famous quaternion kinematic law, and the aforementioned dual quaternion equivalent, as well as a collection of results that capture convex constraints using dual quaternions. While the latter expressions have been used in the field of Entry, Descent, and Landing (EDL), their incorporation in robotic manipulation for in-orbit servicing missions is also extremely beneficial in order to ensure safety and robustness.
This paper is structured as follows: Section 2 provides the mathematical tools necessary to use quaternion and dual quaternion algebras. Section 3 provides an overview of the most common kinematic tools in the robotics fields in dual quaternion form. Section 4 provides the development of the kinematic equations of motion using dual quaternions, and in Section 5 we provide a brief summary of some important constraint expressions for robotic manipulation cast using dual quaternions. Such constraints arise naturally in many in-orbit servicing missions. Addressing these constraints in a numerically efficient manner (e.g., casting them as convex constraints) leads to safe and elegant solutions of the in-orbit servicing problem.

2. Mathematical Preliminaries

In this section we give an introduction to quaternion and dual quaternion algebras, which provide convenient mathematical frameworks for attitude and pose representations respectively. Next, we provide the theoretical foundations required to study the kinematics of rigid bodies, and in particular how they pertain to serial manipulators.

2.1. Quaternions

The group of quaternions, as defined by Hamilton in 1843, extends the well-known imaginary unit j, which satisfies j 2 = 1 . This non-abelian group is defined by Q 8 { 1 , i , j , k : i 2 = j 2 = k 2 = i j k = 1 } . The algebra constructed from Q 8 over the field of real numbers is the quaternion algebra defined as H { q = q 0 + q 1 i + q 2 j + q 3 k : i 2 = j 2 = k 2 = i j k = 1 , q 0 , q 1 , q 2 , q 3 R } . This defines an associative, non-commutative, division algebra.
In practice, quaternions are often referred to by their scalar and vectors parts as q = ( q 0 , q ¯ ) , where q 0 R and q ¯ = [ q 1 , q 2 , q 3 ] T R 3 . The properties of the quaternion algebra are summarized in Table 1. Filipe and Tsiotras [7] also conveniently define a multiplication between real 4-by-4 matrices and quaternions, denoted by the ∗ operator, which resembles the well-known matrix-vector multiplication by simply representing the quaternion coefficients as a vector in R 4 . In other words, given a = ( a 0 , a ¯ ) H and a matrix M R 4 × 4 defined as
M = M 11 M 12 M 21 M 22 ,
where M 11 R , M 12 R 1 × 3 , M 21 R 3 × 1 and M 22 R 3 × 3 , then
M a ( M 11 a 0 + M 12 a ¯ , M 21 a 0 + M 22 a ¯ ) H .
Since any rotation can be described by three parameters, the unit norm constraint is imposed on quaternions for attitude representation. Unit quaternions are closed under multiplication, but not under addition. A quaternion describing the orientation of frame X with respect to frame Y , denoted by q X / Y , satisfies q X / Y * q X / Y = q X / Y q X / Y * = 1 , where 1 ( 1 , 0 ¯ 3 × 1 ) . This quaternion can be constructed as q X / Y = ( cos ( ϕ / 2 ) , n ¯ sin ( θ / 2 ) ) , where n ¯ and θ are the unit Euler axis, and Euler angle of the rotation respectively. It is worth emphasizing that q Y / X * = q X / Y , and that q X / Y and q X / Y represent the same rotation. Furthermore, given quaternions q Y / X and q Z / Y , the quaternion describing the rotation from X to Z is given by q Z / X = q Y / X q Z / Y . For completeness purposes, we define 0 ( 0 , 0 ¯ 3 × 1 ) .
Three-dimensional vectors can also be interpreted as special cases of quaternions. Specifically, given s ¯ X R 3 , the coordinates of a vector expressed in frame X , its quaternion representation is given by s X = ( 0 , s ¯ X ) H v , where H v is the set of vector quaternions defined as H v { ( q 0 , q ¯ ) H : q 0 = 0 } (see Reference [19] for further information). The change of the reference frame for a vector quaternion is achieved by the adjoint operation, and is given by s Y = q Y / X * s X q Y / X . Additionally, given s H v , we can define the operation [ · ] × : H v R 4 × 4 as
[ s ] × = 0 0 1 × 3 0 3 × 1 [ s ¯ ] × , where [ s ¯ ] × = 0 s 3 s 2 s 3 0 s 1 s 2 s 1 0 .
For quaternions a = ( a 0 , a ¯ ) and b = ( b 0 , b ¯ ) , the left and right quaternion multiplication operators · L , · R : H R 4 × 4 will be defined as
a L b b R a a b ,
where
a L = a 0 a 1 a 2 a 3 a 1 a 0 a 3 a 2 a 2 a 3 a 0 a 1 a 3 a 2 a 1 a 0 = a 0 a ¯ T a ¯ a 0 I 3 + [ a ¯ ] × ,
b R = b 0 b 1 b 2 b 3 b 1 b 0 b 3 b 2 b 2 b 3 b 0 b 1 b 3 b 2 b 1 b 0 = b 0 b ¯ T b ¯ b 0 I 3 [ b ¯ ] × .

2.2. Dual Quaternions

We define the dual quaternion group as
Q d : = { 1 , i , j , k , ϵ , ϵ i , ϵ j , ϵ k : i 2 = j 2 = k 2 = i j k = 1 , ϵ i = i ϵ , ϵ j = j ϵ , ϵ k = k ϵ , ϵ 0 , ϵ 2 = 0 } .
The dual quaternion algebra arises as the algebra of the dual quaternion group Q d over the field of real numbers, and is denoted as H d . When dealing with the modeling of mechanical systems, it is convenient to present this algebra as H d = { q = q r + ϵ q d : q r , q d H } , where ϵ is the dual unit. We call q r the real part, and q d the dual part of the dual quaternion q .
Filipe and Tsiotras [7,8,19,21] have laid out much of the groundwork in terms of the notation and basic properties of dual quaternions for spacecraft problems. The main properties of the dual quaternion algebra are listed in Table 2. Filipe and Tsiotras [7] also conveniently define a multiplication between matrices and dual quaternions, denoted by the ⋆ operator, that resembles the well-known real matrix-vector multiplication by simply representing the dual quaternion coefficients as a vector in R 8 . In other words, given a = a r + ϵ a d H d and a matrix M R 8 × 8 defined as
M = M 11 M 12 M 21 M 22 ,
where M 11 , M 12 , M 21 , M 22 R 4 × 4 , then
M a ( M 11 a r + M 12 a d ) + ϵ ( M 21 a r + M 22 a d ) H d .
Analogous to the set of vector quaternions H v , we can define the set of vector dual quaternions as H d v { q = q r + ϵ q d : q r , q d H v } . For vector dual quaternions we will define the skew-symmetric operator [ · ] × : H d v R 8 × 8 ,
[ s ] × = [ s r ] × 0 4 × 4 [ s d ] × [ s r ] × .
For dual quaternions a = a r + ϵ a d and b = b r + ϵ b d H d , the left and right dual quaternion multiplication operators · · · L , · · · R : H d R 8 × 8 are defined as
a b a a a L b b b b R a ,
where
a a a L = a r L 0 4 × 4 a d L a r L and b b b R = b r R 0 4 × 4 b d R b r R .
Since rigid body motion has six degrees of freedom, a dual quaternion needs two constraints to parameterize it. The dual quaternion describing the relative pose of frame B relative to frame I is given by q B / I = q B / I , r + ϵ q B / I , d = q B / I + ϵ 1 2 q B / I r B / I B , where r B / I B is the position quaternion describing the location of the origin of frame B relative to that of frame I , expressed in B -frame coordinates. It can be easily observed that q B / I , r · q B / I , r = 1 and q B / I , r · q B / I , d = 0 , where 0 = ( 0 , 0 ¯ ) , providing the two necessary constraints. Thus, a dual quaternion representing a pose transformation is a unit dual quaternion, since it satisfies q · q = q * q = 1 , where 1 1 + ϵ 0 . Additionally, we also define 0 0 + ϵ 0 .
Similar to the standard quaternion relationships, the frame transformations laid out in Table 3 can be easily verified.
In Reference [19] it was proven that for a dual unit quaternion q H d , q and q represent the same frame transformation, property inherited from the space of quaternions. Therefore, as is done in practice for quaternions, dual quaternions can be subjected to properization, which is the action of redefining a dual quaternion so that the scalar part of the quaternion is always positive. Formally, we can define the properization of a dual quaternion q = q r + ϵ q d as
q : = q if ( q r ) 0 < 0 ,
where ( q r ) 0 is the scalar part of q r . Just like in the case of quaternions, dual quaternions also inherit the so-called unwinding phenomenon, first described in [22], which is most important in control applications.
A useful equation is the generalization of the velocity of a rigid body in dual form, which contains both the linear and angular velocity components. The dual velocity of the Y -frame with respect to the Z -frame, expressed in X -frame coordinates, is defined as
ω Y / Z X = q X / Y * ω Y / Z Y q X / Y = ω Y / Z X + ϵ ( v Y / Z X + ω Y / Z X × r X / Y X ) ,
where ω Y / Z X = ( 0 , ω ¯ Y / Z X ) and v Y / Z X = ( 0 , v ¯ Y / Z X ) , ω ¯ Y / Z X and v ¯ Y / Z X R 3 are respectively the angular and linear velocity of the Y -frame with respect to the Z -frame expressed in X -frame coordinates, and r X / Y X = ( 0 , r ¯ X / Y X ) , where r ¯ X / Y X R 3 is the position vector from the origin of the Y -frame to the origin of the X -frame expressed in X -frame coordinates. In particular, from Equation (14) we observe that the dual velocity of a rigid body assigned to frame B with respect to an inertial frame I , expressed in B -frame coordinates is given as ω B / I B = ω B / I B + ϵ v B / I B . However, if we wanted to express this same dual velocity in inertial frame coordinates, as per Equation (14) we would get ω B / I I = ω B / I I + ϵ ( v B / I I + ω B / I I × r I / B I ) . We will formally introduce frame transformations next.

2.3. Frame Transformations Using Dual Quaternions

As is common in the study of kinematics, frame transformations are vital for the determination of velocities and accelerations with respect to different frames. A dual velocity, or dual acceleration, can be described by a dual vector quaternion s X H d v expressed in X -frame coordinates as s X s r X + ϵ s d X , where s r X , s d X H v . As noted for Equation (14), frame transformations are given by the adjoint operation as
s Y = q Y / X * s X q Y / X = ( q Y / X + ϵ 1 2 r Y / X X q Y / X ) * ( s r X + ϵ s d X ) ( q Y / X + ϵ 1 2 r Y / X X q Y / X ) = ( q Y / X * + ϵ 1 2 q Y / X * r Y / X X * ) ( s r X + ϵ s d X ) ( q Y / X + ϵ 1 2 r Y / X X q Y / X ) = ( q Y / X * ϵ 1 2 q Y / X * r Y / X X ) ( s r X + ϵ s d X ) ( q Y / X + ϵ 1 2 r Y / X X q Y / X ) = ( q Y / X * ϵ 1 2 q Y / X * r Y / X X ) ( s r X q Y / X + ϵ ( s d X q Y / X + s r X 1 2 r Y / X X q Y / X ) ) = q Y / X * s r X q Y / X ϵ ( 1 2 q Y / X * r Y / X X s r X q Y / X ) + ϵ ( q Y / X * s d X q Y / X + q Y / X * s r X 1 2 r Y / X X q Y / X ) = s r Y + ϵ ( s d Y + 1 2 q Y / X * s r X q Y / X q Y / X * r Y / X X q Y / X 1 2 q Y / X * r Y / X X q Y / X q Y / X * s r X q Y / X ) = s r Y + ϵ ( s d Y + 1 2 s r Y r Y / X Y 1 2 r Y / X Y s r Y ) = s r Y + ϵ ( s d Y + 1 2 s r Y r Y / X Y 1 2 ( r Y / X Y ) * ( s r Y ) * ) .
By the definition of the cross product of two quaternion quantities given in Table 1, we get that
s Y = q Y / X * s X q Y / X = s r Y + ϵ ( s d Y + s r Y × r Y / X Y ) = s r Y + ϵ ( s d Y + r X / Y Y × s r Y ) .
Analogously, the transformation of a dual vector s Y s r Y + ϵ s d Y can be easily derived using the procedure described above to be:
s X = q Y / X s Y q Y / X * = s r X + ϵ ( s d X + s r X × r X / Y X ) = s r X + ϵ ( s d X + r Y / X X × s r X ) .
As is standard notation, we can define the group adjoint operation for unit dual quaternions as
Ad q s q s q 1 = q s q * .
Therefore, using this notation, the frame transformations derived above can be cast as
s X = Ad q Y / X s Y
s Y = Ad q Y / X * s X = Ad q X / Y s X
The power of dual quaternions goes beyond the ability to represent pose and transform dual velocities and accelerations. In fact, dual quaternions can natively—without constructs that fall outside the algebra—encode the most typical geometric objects such as points, lines and planes. The reader is referred to the literature to find such parameterizations and the correct dual quaternion transformation [15,16].

2.4. Derivation of Fundamental Kinematic Laws

In this section we will derive both the quaternion and dual quaternion kinematic laws. We will make the time dependence explicit only when necessary for clarity.
The three-dimensional attitude kinematics evolve as
q ˙ X / Y = 1 2 q X / Y ω X / Y X = 1 2 ω X / Y Y q X / Y ,
where ω X / Y Z ( 0 , ω ¯ X / Y Z ) H v and ω ¯ X / Y Z R 3 is the angular velocity of frame X with respect to frame Y expressed in Z -frame coordinates. On the other hand, the dual quaternion kinematics can be expressed as [7]
q ˙ X / Y = 1 2 q X / Y ω X / Y X = 1 2 ω X / Y Y q X / Y .
Lemma 1.
The attitude of a rigid body evolves as q ˙ X / Y = 1 2 q X / Y ω X / Y X , as stated in Equation (20).
Proof. 
Denote the infinitesimal rotation about axis u ^ by Δ θ . The quaternion that represents this rotation is constructed as δ q X / Y ( Δ t ) cos Δ θ / 2 , u ^ sin Δ θ / 2 . Therefore, q X / Y ( t + Δ t ) = q X / Y ( t ) δ q X / Y ( Δ t ) . Then, for a small rotation angle, δ q X / Y ( Δ t ) = 1 , u ^ Δ θ / 2 . Substituting into the previous expression for q X / Y ( t + Δ t ) , we obtain
q X / Y ( t + Δ t ) = q X / Y ( t ) 1 , u ^ Δ θ / 2 = q X / Y ( t ) 1 + ( 0 , u ^ Δ θ / 2 ) = q X / Y ( t ) + 1 2 q X / Y ( t ) u ^ Δ θ .
Manipulating the expression and dividing by Δ t , we obtain
q X / Y ( t + Δ t ) q X / Y ( t ) Δ t = 1 2 q X / Y ( t ) u ^ Δ θ Δ t ,
and invoking the limit as Δ t 0 yields
q ˙ X / Y ( t ) = 1 2 q X / Y ( t ) ω X / Y X ( t ) ,
where we have defined the angular velocity as ω X / Y X u ^ θ ˙ , i.e., the rate of rotation about the instantaneous Euler axis. ☐
Lemma 2.
The pose of a rigid body evolves as q ˙ X / Y = 1 2 q X / Y ω X / Y X , as stated in Equation (21).
Proof. 
Taking the derivative of q X / Y = q X / Y + ϵ 1 2 q X / Y r X / Y X we get
q ˙ X / Y = q ˙ X / Y + ϵ ( 1 2 q ˙ X / Y r X / Y X + 1 2 q X / Y r ˙ X / Y X ) = 1 2 q X / Y ω X / Y X + ϵ ( 1 4 q X / Y ω X / Y X r X / Y X + 1 2 q X / Y r ˙ X / Y X ) = 1 2 q X / Y ω X / Y X + ϵ ( 1 4 q X / Y ω X / Y X r X / Y X + 1 2 q X / Y ( v X / Y X ω X / Y X × r X / Y X ) = 1 2 q X / Y ω X / Y X + ϵ ( 1 2 q X / Y v X / Y X + 1 4 q X / Y ω X / Y X r X / Y X 1 2 q X / Y ( ω X / Y X × r X / Y X ) ) ,
where we used the fact that v X / Y X d r X / Y X / d t = r ˙ X / Y X + ω X / Y X × r X / Y X . Using the definition of the cross product, we know that ω X / Y X × r X / Y X = 1 2 ( ω X / Y X r X / Y X ( r X / Y X ) * ( ω X / Y X ) * ) = 1 2 ( ω X / Y X r X / Y X r X / Y X ω X / Y X ) . Evaluating this cross product into the above expression yields
= 1 2 q X / Y ω X / Y X + ϵ ( 1 2 q X / Y v X / Y X + 1 4 q X / Y ω X / Y X r X / Y X 1 4 q X / Y ( ω X / Y X r X / Y X r X / Y X ω X / Y X ) ) = 1 2 q X / Y ω X / Y X + ϵ 1 2 q X / Y v X / Y X + ϵ 1 4 q X / Y r X / Y X ω X / Y X = 1 2 q X / Y ω X / Y X + ϵ 1 2 q X / Y v X / Y X + ϵ 1 4 q X / Y r X / Y X ω X / Y X + ϵ 2 1 4 q X / Y r X / Y X v X / Y X , sin ce ϵ 2 = 0 = 1 2 q X / Y ( ω X / Y X + ϵ v X / Y X ) + 1 2 ϵ 1 2 q X / Y r X / Y X ( ω X / Y X + ϵ v X / Y X ) = 1 2 ( q X / Y + ϵ 1 2 q X / Y r X / Y X ) ( ω X / Y X + ϵ v X / Y X ) = 1 2 q X / Y ω X / Y X ,
proving the desired result. ☐
Remark 1.
The spatial kinematic equation q ˙ X / Y = 1 2 ω X / Y Y q X / Y can be immediately derived as a direct consequence of the adjoint transformation equation ω X / Y X = q X / Y * ω X / Y Y q X / Y , which implies q X / Y ω X / Y X = ω X / Y Y q X / Y .
Remark 2.
The spatial kinematic equation q ˙ X / Y = 1 2 ω X / Y Y q X / Y can be immediately derived as a direct consequence of the adjoint transformation equation ω X / Y X = q X / Y * ω X / Y Y q X / Y , which implies q X / Y ω X / Y X = ω X / Y Y q X / Y .

3. Robot Kinematics Using Dual Quaternions

3.1. Dual Quaternion Notation

The forward kinematics of a robot can be easily laid out in dual quaternion form. In general, a dual quaternion encoding the relationship between two frames A and B is given as
q B / A = q B / A + ϵ 1 2 q B / A r B / A B ,
q B / A = q B / A + ϵ 1 2 r B / A A q B / A ,
where q B / A is the quaternion that represents the attitude change in going from reference frame A , to reference frame B . The position vectors r B / A B and r B / A A represent the position vector from the origin of frame A to the origin of frame B expressed in frame B , and frame A coordinates, respectively. Notice that Equations (27) and (28) can be equivalently expressed as follows:
Rotation First : q B / A = ( q B / A + ϵ 0 ) ( 1 + ϵ 1 2 r B / A B ) ,
Translation First : q B / A = ( 1 + ϵ 1 2 r B / A A ) ( q B / A + ϵ 0 ) ,
leading to an intuitive decomposition of the underlying operations. In the forward kinematics, Equation (29) implies that the frame rotation is carried out first, and then a translation is carried out relative to the new frame. Equation (30) denotes a translation in the base frame, followed by an attitude change of the resulting frame. Throughout this work we will use the translation first approach.

3.2. Product of Exponentials Formula in Dual-Quaternion Form

The product of exponentials formula has been long used to study the forward kinematics of robots. Reference [23] has a thorough introduction to the topic, with many examples. In this section we lay out the main results that cast the product of exponentials (POE) formula in dual quaternion form. In particular, [20] has made use of the dual quaternion formalism to perform geometric control on a fixed-base robotic arm, where the forward kinematics of the robot are expressed using the POE formula.
As commonly used in robotics, the exponential operation takes an element of the Lie algebra for a given Lie group, and renders a group element. For the dual quaternion case, let the set of parameters ( θ , s ) D × H d v , where D = { a + ϵ a d : a , a d R and ϵ 2 = 0 } is the set of dual numbers, parametrize a screw motion as shown in Figure 1. In particular, θ and s are given by
θ = θ + ϵ d , θ D , θ , d R ,
s = + ϵ m , s H d v , , m H v ,
where θ is the angle of the screw motion, d is the translation along the screw axis, is the unit screw axis of the joint, and m is the moment vector of the screw axis of direction with respect to the origin of the local inertial frame. This implies that
m = r P / I × ,
where the point P lies on the screw axis. In robotic systems, the exponential mapping is commonly used to evaluate the forward kinematics of fixed-base robotic systems. We summarize the dual quaternion exponential mapping in the following lemma [14,20].
Lemma 3.
The exponential operation, exp : D × H d v H d for a given pair ( θ , s ) D × H d v defined as in Equations (31) and (32) is given as
q = exp 1 2 θ s , q H d = cos 1 2 θ + s sin 1 2 θ = cos 1 2 θ , sin 1 2 θ + ϵ 1 2 d sin 1 2 θ , 1 2 d cos 1 2 θ + m sin 1 2 θ .
Proof. 
Since θ = θ + ϵ d D , we have that
cos 1 2 θ = cos 1 2 θ + ϵ d 2 sin ( 1 2 θ )
sin 1 2 θ = sin 1 2 θ + ϵ d 2 cos 1 2 θ .
It follows that
(37) q = cos 1 2 θ + s sin 1 2 θ (38) = cos 1 2 θ ϵ d 2 sin 1 2 θ + ( + ϵ m ) sin 1 2 θ + ϵ d 2 cos 1 2 θ ,
which yields the desired result upon expansion. ☐
Remark 3.
By comparing Equations (28) and (34), it can be deduced that the effect of a joint motion can be characterized by an equivalent rotation and a translation. In particular, by equating the real parts of the dual quaternions, we have that
q B / A = cos 1 2 θ , sin 1 2 θ ,
and from the dual parts
1 2 r B / A A q B / A = 1 2 d sin 1 2 θ , 1 2 d cos 1 2 θ + m sin 1 2 θ .
Equivalently, r B / A A can be described as
r B / A A = 0 , d + m sin ( θ ) + ( cos ( θ ) 1 ) m × .
The inverse to the exponential mapping is the logarithmic mapping, ln : H d H d , which is defined as
ln q = 1 2 θ s = 1 2 θ + ϵ 1 2 ( θ m + d ) .
Appendix A.6. of [20] explains how to retrieve { θ , d , , m } given a dual quaternion, q .
Given the dual quaternion from the inertial (base) frame to the end effector, at the robots’s home configuration, q e , 0 / I , and parameter s i for each of the n joints of a robot at its home configuration, the product of exponentials formula yields
q e / I = exp 1 2 θ 1 s 1 exp 1 2 θ n s n q e , 0 / I ,
where joint 1 is closest to the base and joint n is closest to the end-effector. The exponential formula is effectively changing the spatial frame, as opposed to the body frame of the end-effector. Besides its simplicity to compute forward kinematics, the POE formula is straightforward to compute for a given configuration once the type of joint is known and the geometric properties of the robot are selected.
As this point, it is worth emphasizing that in regards to the moving frames used in space operations, the use of an inertial frame with respect to which one can perform spatial kinematics, as was done in [20], is impractical. Since the satellite base is constantly in motion, local-frame parameterizations of pose transformations across the links of the manipulator are preferred. Therefore, we favor the use of the forward-moving pose representations to express the location of the end-effector frame. We show next how to use the Denavit-Hartenberg parameterization in dual quaternions to capture such a transformation.

3.3. Denavit-Hartenberg Parameters in Dual Quaternion Form

The Denavit-Hartenberg parameters, commonly referred to as DH parameters, are four geometric quantities that allow identifying the relative pose of a joint with respect to another in a systematic manner. We will denote a set of DH parameters as { d i , θ i , a i , α i } for joint i. The parameters d i and θ i are commonly referred to as joint parameters, while a i and α i are known as the link parameters. A complete description of the DH parameters for R and P joint types, and several examples of their use are provided in [24]. In [24] a thorough description of the orientation of the frames is also provided, to which the reader is referred. In [25], Gan et al. have used dual quaternions in combination with the DH parameter convention to capture the pose transformation between joints. For completeness, we provide these equations herein, making use of Figure 2.
In words, the transformation from the reference frame assigned to the proximal joint (i.e., closer to the base of the robot) of a given link i, to the reference frame assigned to its distal joint (i.e., closer to the end effector), is described in terms of the DH parameters as:
  • From the origin O i 1 , displace along the Z i 1 (joint) axis by an amount d i . Define this intermediate frame as { int , 1 } .
  • Rotate about the Z i 1 axis by θ i until axis X i 1 is superimposed to X i
  • Translate along X i by a distance of a i . Define this intermediate frame as { int , 2 } .
  • Rotate about the X i axis by α i
Mathematically, we can write this as the composition of four elementary dual quaternion operations, and summarize it further into two composite dual quaternions as
(44) q i / i 1 = ( 1 + ϵ r int , 1 / i 1 int , 1 ) ( q int , 2 / int , 1 + ϵ 0 ) ( 1 + ϵ r int , 2 / int , 1 int , 2 ) ( q i / int , 2 + ϵ 0 ) (45) = ( q int , 2 / int , 1 + ϵ r int , 1 / i 1 int , 1 q int , 2 / int , 1 ) ( q i / int , 2 + ϵ r int , 2 / int , 1 int , 2 q i / int , 2 )
where
r int , 1 / i 1 int , 1 = 0 , [ 0 , 0 , d i ] T
q int , 2 / int , 1 = cos θ i / 2 , [ 0 , 0 , sin θ i / 2 ] T
r int , 2 / int , 1 int , 2 = 0 , [ a i , 0 , 0 ] T
q i / int , 2 = cos α i / 2 , [ sin α i / 2 , 0 , 0 ] T
Notice that while this is compact and readable up to multiplication of the dual quaternions, the same cannot be said about the end result compared to its homogeneous transformation matrix (HTM) counterpart. In fact, if we express q i / i 1 component-wise, and cast it as a vector in R 8 which is the typical representation of dual quaternions for numerical purposes, and compute the equivalent HTM, we get the following:
q i / i 1 = cos ( α / 2 ) cos ( θ / 2 ) sin ( α / 2 ) cos ( θ / 2 ) sin ( α / 2 ) sin ( θ / 2 ) cos ( α / 2 ) sin ( θ / 2 ) 1 2 a i sin ( α i / 2 ) cos ( θ i / 2 ) 1 2 d i cos ( α i / 2 ) sin ( θ i / 2 ) 1 2 a i cos ( α i / 2 ) cos ( θ i / 2 ) 1 2 d i sin ( α i / 2 ) sin ( θ i / 2 ) 1 2 a i cos ( α i / 2 ) sin ( θ i / 2 ) + 1 2 d i sin ( α i / 2 ) cos ( θ i / 2 ) 1 2 d i cos ( α i / 2 ) cos ( θ i / 2 ) 1 2 a i sin ( α i / 2 ) sin ( θ i / 2 )
T i / i 1 = cos θ i sin θ i 0 a i cos α i sin θ i cos α i cos θ i sin α i d i sin α i sin α i sin θ i sin α i cos θ i cos α i d i cos α i 0 0 0 1 .
While the HTM is more readable and faster to code, it uses 16 doubles and a multi-dimensional array to store the information and operate in the underlying algebra.
Remark 4.
Since the transformations associated to θ i and d i are about z i 1 and the operations associated to α i and a i happen about x i , both stages of the DH transformation can be interpreted in the context of screw theory. Hence, the operation described by Equation (44) can be equivalently expressed as the composition of exponential operations given by
q i / i 1 = exp ( 1 2 θ 1 s 1 ) exp ( 1 2 θ 2 s 2 ) ,
where θ 1 = θ i + ϵ d i and s 1 = ( 0 , [ 0 , 0 , 1 ] T ) + ϵ 0 and θ 2 = α i + ϵ a i and s 2 = ( 0 , [ 1 , 0 , 0 ] T ) + ϵ 0 .

4. Manipulator Kinematics Using Dual Quaternions

In this section we provide examples to demonstrate how one can develop the kinematic equations for different types of serial manipulators using dual quaternions.

4.1. Example: Forward Kinematics with an Inertially Fixed Base

The serial RR configuration in Figure 3 will be used as an example of how to use dual quaternions for forward kinematics. Notice that the pose of the end effector with respect to the inertial frame is given by
q e / I = q 1 / I q 2 / 1 q e / 2 .
For the sake of exposition, these are given by
q 1 / I = ( 1 + ϵ 1 2 r 1 / I I ) ( q 1 / I + ϵ 0 ) ,
q 2 / 1 = ( 1 + ϵ 1 2 r 2 / 1 1 ) ( q 2 / 1 + ϵ 0 ) ,
q e / 2 = ( 1 + ϵ 1 2 r e / 2 2 ) ( q e / 2 + ϵ 0 ) ,
where the translation-first approach has been used. Each of these quantities can be easily determined from the geometry of the problem. The position quaternions are given by r X / Y Y = ( 0 , r ¯ X / Y Y ) , and
r ¯ 1 / I I = [ 0 , 0 , 0 ] T ,
r ¯ 2 / 1 1 = [ l 1 , 0 , 0 ] T ,
r ¯ e / 2 2 = [ l 2 , 0 , 0 ] T ,
while the quaternions are given by
q 1 / I = cos α 1 / 2 , [ 0 , 0 , sin α 1 / 2 ] T ,
q 1 / I = cos α 2 / 2 , [ 0 , 0 , sin α 2 / 2 ] T ,
q e / 2 = 1 .
The time derivative of the dual quaternion yields information about the angular and linear velocity of the end-effector. In particular, we have that for a dual quaternion:
q ˙ X / Y = 1 2 q X / Y ω X / Y X = 1 2 ω X / Y Y q X / Y ,
where the first equality in Equation (63) is associated with a body-frame time derivative, and the second equality in Equation (63) is associated with a spatial-frame time derivative.
With these definitions in mind, we compute the time-rate of change of the pose of the end-effector as
(64) q ˙ e / I = q ˙ 1 / I q 2 / 1 q e / 2 + q 1 / I q ˙ 2 / 1 q e / 2 + q 1 / I q 2 / 1 q ˙ e / 2 (65) = 1 2 q 1 / I ω 1 / I 1 q 2 / 1 q e / 2 + q 1 / I 1 2 q 2 / 1 ω 2 / 1 2 q e / 2 + q 1 / I q 2 / 1 1 2 q e / 2 ω e / 2 e .
Then, using Equation (63), we get that the dual velocity of the end effector with respect to the inertial frame is given by
ω e / I e = 2 q e / I * q ˙ e / I = q e / I * q 1 / I ω 1 / I 1 q 2 / 1 q e / 2 + q e / I * q 1 / I q 2 / 1 ω 2 / 1 2 q e / 2 + q e / I * q 1 / I q 2 / 1 q e / 2 ω e / 2 e = 0 = q e / 2 * q 2 / 1 * q 1 / I * q 1 / I ω 1 / I 1 q 2 / 1 q e / 2 + q e / 2 * q 2 / 1 * q 1 / I * q 1 / I q 2 / 1 ω 2 / 1 2 q e / 2 = q e / 2 * q 2 / 1 * ω 1 / I 1 q 2 / 1 q e / 2 + q e / 2 * ω 2 / 1 2 q e / 2 = Ad q e / 2 * q 2 / 1 * ω 1 / I 1 + Ad q e / 2 * ω 2 / 1 2 = Ad ( q 2 / 1 q e / 2 ) * ω 1 / I 1 + Ad ( q e / 2 ) * ω 2 / 1 2 (66) = Ad ( q 2 / 1 q e / 2 ) * ξ 1 / I 1 , Ad ( q e / 2 ) * ξ 2 / 1 2 α ¯ ˙ (67) = J B ( q , ξ ) α ¯ ˙ ,
where J B ( q , ξ ) is the Jacobian expressed in the body frame and
α ¯ = α 1 α 2 and α ¯ ˙ = α ˙ 1 α ˙ 2 .
The elements ξ i are the dual quaternion screws for each of the joints. In general, the screws for revolute and prismatic joints are listed in Table 4 for each of the three axes, and these are independent of the current robot configuration.

4.2. Example: Forward Kinematics of a Floating Double Pendulum with End-Effector

Given the floating double pendulum shown in Figure 4, we want to model its kinematics. The difference with respect to the one shown in Figure 3 is that the first revolute joint is free to translate in 2D space.
The kinematic equations of motion can thus be derived as follows using a geometric description of the forward kinematics
q e / I = q 1 / I q 2 / 1 q e / 2 ,
where q 1 / I , q 2 / 1 , q e / 2 are given by Equations (54)–(56). However, r ¯ 1 / I I = [ u , v , 0 ] T determines the translation of the first revolute joint in 2D. It is clear that
d d t r ¯ 1 / I I = r ¯ ˙ 1 / I I = v ¯ 1 / I I = [ u ˙ , v ˙ , 0 ] T
In this case, the time evolution of q 1 / I is given by
q ˙ 1 / I = 1 2 ω 1 / I I q 1 / I
as before, but we redefine the dual velocity as dictated by the definition in Equation (14) as
ω 1 / I I = ω 1 / I I + ϵ ( v 1 / I I ω 1 / I I × r 1 / I I ) .
The relationship derived earlier
ω e / I e = Ad q e / 2 * q 2 / 1 * ω 1 / I 1 + Ad q e / 2 * ω 2 / 1 2
still holds. However, ω 1 / I 1 must be computed from our knowledge of ω 1 / I I . While in quaternion and vector notation this might be troublesome, the expression using dual quaternions is simple and given by
ω 1 / I 1 = q 1 / I * ω 1 / I I q 1 / I = Ad q 1 / I * ω 1 / I I .

4.3. Manipulator on an Orbiting Spacecraft

For the general case, the robot base can move with six degrees of freedom, reinforcing the need for a convenient pose representation tool such as dual quaternions. Following an approach analogous to that proposed by Adorno in [26], in this section we will provide explicit expressions for the Jacobian matrix for different types of joints.
The kinematics of the robotic base, attached to frame B , would still be governed by the equation
q ˙ B / I = 1 2 q B / I ω B / I B ,
while the kinematics of the joints depend on the type of joint. The dual velocities for the joints depend on frame positioning and on the selection of the generalized coordinates. In Table 5, we provide example generalized coordinates and their corresponding dual velocities. Simple numerical derivatives can yield the dual acceleration of the joint. It is worth emphasizing that for a 3 2 1 / ψ θ ϕ rotation, the matrix M ( ϕ i / i 1 , θ i / i 1 , ψ i / i 1 ) will correspond to
M ( ϕ i / i 1 , θ i / i 1 , ψ i / i 1 ) = 1 0 sin ( θ i / i 1 ) 0 cos ( ϕ i / i 1 ) cos ( θ i / i 1 ) sin ( ϕ i / i 1 ) 0 sin ( ϕ i / i 1 ) cos ( θ i / i 1 ) cos ( ϕ i / i 1 ) .
In general, we can identify the pose of a satellite-mounted end-effector by
q e / I = q B / I q O / B q 0 / O i = 1 n 1 q i / i 1 q e / n 1 ,
where q O / B represents the pose transformation from the body frame of the satellite, B , to the frame at the base of the satellite manipulator, denoted by O; frame i represents the joint frame attached to the i -th link, one of the n bodies composing the manipulator, at the location of the proximal joint; and e is the end-effector frame that is rigidly attached to the last link of the serial manipulator, n 1 . For clarity, an example of the product operator ∏ used on dual quaternions is given by
i = 1 2 q i / i 1 = q 1 / 0 q 2 / 1 .
Additionally, using the definition of frames described above, the first link of the manipulator is link 0 and its connecting joint to the satellite base is frame 0.
Then, since q O / B and q e / n 1 are constant, the kinematics can be derived following the procedure of previous sections as
q ˙ e / I = q ˙ B / I q O / B q 0 / O i = 1 n 1 q i / i 1 q e / n 1 + q B / I q O / B q ˙ 0 / O i = 1 n 1 q i / i 1 q e / n 1 + q B / I q O / B q 0 / O k = 1 n 1 q k 1 / 0 q ˙ k / k 1 q n 1 / k q e / n 1 = 1 2 q B / I ω B / I B q O / B q 0 / O i = 1 n 1 q i / i 1 q e / n 1 + q B / I q O / B 1 2 q 0 / O ω 0 / O 0 i = 1 n 1 q i / i 1 q e / n 1 + q B / I q O / B q 0 / O k = 1 n 1 q k 1 / 0 1 2 q k / k 1 ω k / k 1 k q n 1 / k q e / n 1 .
Multiplying by 2 q e / I * on the left, we get
ω e / I e = q e / I * q B / I ω B / I B q O / B q 0 / O i = 1 n 1 q i / i 1 q e / n 1 + q e / I * q B / I q O / B q 0 / O ω 0 / O 0 i = 1 n 1 q i / i 1 q e / n 1 + q e / I * q B / I q O / B q 0 / O k = 1 n 1 q k 1 / 0 q k / k 1 ω k / k 1 k q n 1 / k q e / n 1 ,
and carrying out the dual quaternion multiplications to simplify the expression yields
ω e / I e = q e / B * ω B / I B q e / B + q e / 0 * ω 0 / O 0 q e / 0 + k = 1 n 1 q e / k * ω k / k 1 k q e / k .
In this form, it is straightforward to identify that in Equation (80), the first term yields the motion of the end-effector due to the motion of the base. The second and third terms provide the effect of the motion of the end-effector due to joint motion. We can now manipulate Equation (80) towards a more familiar structure
ω e / I e = q e / B * q e / B * q e / B * L q e / B q e / B q e / B R ω B / I B + q e / 0 * q e / 0 * q e / 0 * L q e / 0 q e / 0 q e / 0 R ω 0 / O 0 + k = 1 n 1 q e / k * q e / k * q e / k * L q e / k q e / k q e / k R ω k / k 1 k .
Defining the vector of generalized coordinates as the vertical concatenation of the individual joint generalized coordinates, we can write
ω e / I e = q e / B * q e / B * q e / B * L q e / B q e / B q e / B R ω B / I B + q e / 0 * q e / 0 * q e / 0 * L q e / 0 q e / 0 q e / 0 R ζ 0 α ¯ ˙ 0 + k = 1 n 1 q e / k * q e / k * q e / k * L q e / k q e / k q e / k R ζ k α ¯ ˙ k = q e / B * q e / B * q e / B * L q e / B q e / B q e / B R ω B / I B + J ( q , ζ ) α ¯ ˙ .
Here, we have defined the body-frame Jacobian associated to joint motion as
J ( q , ζ ) q e / 0 * q e / 0 * q e / 0 * L q e / 0 q e / 0 q e / 0 R ζ 0 , , q e / k * q e / k * q e / k * L q e / k q e / k q e / k R ζ k , , q e / n 1 * q e / n 1 * q e / n 1 * L q e / n 1 q e / n 1 q e / n 1 R ζ n 1 .
The general term of the Jacobian mapping matrix, q e / k * q e / k * q e / k * L q e / k q e / k q e / k R ζ k , where ζ k is a screw matrix as defined in Table 6, is an improvement upon the more typical, adjoint-based methodology due to the ability of ζ k to capture more than one degree of freedom in each of its different columns. For the case in which the adjoint formula Ad q e / k * ξ k is used, as in Equation (66), then ξ k necessarily corresponds to one single generalized coordinate. In other words, the screws for the cylindrical, spherical and Cartesian joints would need to be separated into different columns, each of which has its adjoint operation applied independently.
For example, it would be easy to demonstrate that for a cylindrical ( d = 2 ) , spherical ( d = 3 ) or Cartesian joints ( d = 3 ) ,
ω i / i 1 i α ¯ ˙ k q e / k * q e / k * q e / k * L q e / k q e / k q e / k R ζ k R 8 × d ,
but
ω i / i 1 i α ¯ ˙ k Ad q e / k * ξ k H d ,
for any physically intuitive ξ k H d v .

5. Convex Constraints Using Dual Quaternions

When performing robotic operations, the incorporation of constraints is important where the safety of users, or a payload, is concerned. The dual quaternion framework is amenable to the incorporation of several convex constraints, which are of particular interest due to the availability of specialized codes to solve convex problems efficiently. The following presentation of convex constraints could be used in combination with a control approach such as the one proposed in [11], which is based on the differential dynamic programming algorithm.
In [27], the authors use dual quaternions as a pose parametrization representation to model convex state constraints for a powered landing scenario. In this section, we repurpose these same constraints for a space robotic servicing mission. The dual quaternion-based constraints will be provided without proof of convexity, since this is done in [27]. However, some properties of quaternions and some definitions are in order for a proper description of the results.
Lemma 4.
Given the quaternion q H and quaternions r = ( 0 , r ¯ ) H v and y = ( 0 , y ¯ ) H v , the following equalities hold:
( r q ) · ( y q ) = r · y = ( q r ) · ( q y )
Proof. 
Using the definition of the quaternion dot product given in Table 1, the expression on the left becomes
( r q ) · ( y q ) = 1 2 ( r q ) * y q + ( y q ) * r q = 1 2 q * r * y q + q * y * r q = 1 2 q * r * y + y * r q = q * ( r · y ) q , and sin ce r · y = ( r ¯ · y ¯ , 0 3 × 1 ) = ( r ¯ · y ¯ ) 1 = ( r ¯ · y ¯ ) q * q = ( r ¯ · y ¯ ) 1 = r · y .
The second equality can be proven in the same manner. ☐
For the following facts, let us define
E u I 4 0 4 × 4 0 4 × 4 0 4 × 4
and
E d 0 4 × 4 0 4 × 4 0 4 × 4 I 4 .
Lemma 5.
Consider the dual quaternion q B / A = q B / A + ϵ 1 2 q B / A r B / A B . Then, q B / A q B / A = ( 1 + 1 4 r B / A B 2 , 0 3 × 1 ) + ϵ 0
Proof. 
By definition, q B / A q B / A = ( q B / A + ϵ 1 2 q B / A r B / A B ) ( q B / A + ϵ 1 2 q B / A r B / A B ) = q B / A · q B / A + ( 1 2 q B / A r B / A B ) · ( 1 2 q B / A r B / A B ) + ϵ 0 . By the unit norm constraint of the unit quaternions and applying Lemma 4 on the second summand, q B / A q B / A = ( 1 + 1 4 r B / A B · r B / A B , 0 3 × 1 ) + ϵ 0 , from which the result follows. ☐
Lemma 6.
Consider the dual quaternion q B / A = q B / A + ϵ 1 2 q B / A r B / A B . Then, q B / A ( E u q B / A ) = 1 .
Proof. 
Using the definition of E u , we have q B / A ( E u q B / A ) = q B / A ( q B / A + ϵ 0 ) = q B / A · q B / A + ϵ 0 . The result follows from the unit constraint of a unit quaternion. ☐
Lemma 7.
Consider the dual quaternion q B / A = q B / A + ϵ 1 2 q B / A r B / A B . Then, q B / A ( E d q B / A ) = 1 4 r B / A B 2 + ϵ 0 .
Proof. 
Using the definition of E d , we have q B / A ( E d q B / A ) = q B / A ( 0 + ϵ 1 2 q B / A r B / A B ) = ( 1 2 q B / A r B / A B ) · ( 1 2 q B / A r B / A B ) + ϵ 0 . The result follows from application of Lemma 4. ☐
Lemma 8.
Consider r B / A B δ . Then, q B / A q B / A 1 + 1 4 δ 2 .
Proof. 
From Lemma 5, it follows that q B / A q B / A = 1 + 1 4 r B / A B 2 1 + 1 4 δ 2 . ☐
Corollary 1.
Given the bound r B / A B δ , it follows that q B / A q B / A 1 , 1 + 1 4 δ 2 , which is a closed and bounded set.
It is worth emphasizing that in Lemmas 5 and 8 the bijective mapping between the circle product and the real-line is implied. In other words, since the circle product between two dual quaternions a b = s 1 for some s R , it will be commonly interpreted as a b = s for simplicity of exposition.
We are now ready to introduce three types of constraints in terms of dual quaternions:
  • Line-of-sight constraints.
  • Approach slope angle constraints, of which upper-and-lower bound constraints is a re-interpretation of the geometry.
  • Body attitude constraint with respect to an inertial direction.
For this, we will use notation consistent with [27]. Additionally, we require two auxiliary frames. We will define G as fixed on a gripper, and A as fixed on the target (say, an asteroid, or an object of interest) to be captured.
Proposition 1.
Consider the domain D = { q G / A H d : q G / A q G / A 1 + 1 4 δ 2 } . The line of sight constraint depicted in Figure 5 can be encoded as
r A / G G · y ^ G r A / G G cos θ ,
and it requires that the angle between r A / G G and y ^ G remains less than θ. Using dual quaternions, this constraint can be equivalently expressed as
q G / A ( M H q G / A ) + 2 E d q G / A cos θ 0 ,
where
M H = 0 4 × 4 y ^ G R T y ^ G R 0 4 × 4 ,
and it is convex over D .
Proposition 2.
Consider the domain D = { q G / A H d : q G / A q G / A 1 + 1 4 δ 2 } . The approach slope constraint depicted in Figure 6, and the upper-and-lower bounded approach constraint depicted in Figure 7, can be encoded as
r G / A A · z ^ A r G / A A cos ϕ ,
and it requires that the angle between r G / A A and z ^ A remains less than ϕ. Using dual quaternions, this constraint can be equivalently expressed as
q G / A ( M G q G / A ) + 2 E d q G / A cos ϕ 0 ,
where
M G = 0 4 × 4 z ^ A L T z ^ A L 0 4 × 4 ,
and it is convex over D .
Proposition 3.
Consider the domain D = { q B / I H d : q B / I q B / I 1 + 1 4 δ 2 } . The attitude constraint depicted in Figure 8 can be encoded as
n ^ I · ( q B / I n ^ B q B / I * ) cos ψ ,
and it requires that the angle between the inertially fixed vector n ^ I and the body fixed vector n ^ B remains less than ψ. Using dual quaternions, this constraint can be equivalently expressed as
q B / I ( M A q B / I ) + cos ψ 0 ,
where
M A = z ^ I L z ^ B R 0 4 × 4 0 4 × 4 0 4 × 4 ,
and it is convex over D .

6. Conclusions

In this paper we have explored the use of dual quaternions for robot modeling. In particular, the main contribution of this paper is a generalizable framework to capture the kinematics of spacecraft-mounted robotic manipulators using a dual quaternion approach. We took a bare-bones approach that built up to a convenient description of the end-effector’s dual velocity, making use of a more intuitive forward kinematics methodology than the existing methods in the literature. Previous works on robot kinematics using dual quaternions provided either strict geometry-dependent approaches or were only applicable to fixed-base robots. The work presented herein is highly relevant in combination with the latest literature in dynamic modeling of robot manipulators using dual quaternions. Additionally, in our study of kinematics, we developed a convenient and simple-to-implement representation of the body-frame Jacobian matrix. The proposed form of the Jacobian exploits a convenient matrix representation of the adjoint dual quaternion transformation so that, in combination with the newly proposed form of the screw matrix, it avoids the artificial separation of the contribution by the generalized speeds of a given joint. Finally, we have provided a summary, and re-interpretation, of several existing results on the topic of dual quaternions, emphasizing their applicability on spacecraft-mounted robots. These included results on the exponential and logarithmic maps, an exposition on the use of the DH parameters, and finally the casting of the dual quaternion representation of constraints (originally developed for EDL purposes) interpreted in the context of a gripper-target system on-board a spacecraft.
Future work in this area will aim at implementing kinematic control laws for end-effector pose control when the based is not fixed to an inertial reference frame. This should be possible by following the steps in Özgür and Mezouar [20], and through the use of the Generalized Jacobian Matrix [28].

Author Contributions

Both authors contributed equally in the preparation of the manuscript.

Funding

This research was performed, in part, at the Jet Propulsion Laboratory, California Institute of Technology, under contract with the National Aeronautics and Space Administration, and funded through the internal Research and Technology Development program under award number SP.17.0004.008 RSA. This research was also performed under National Science Foundation award NRI1426945.

Acknowledgments

The authors would like to thank David S. Bayard, from the G&C section at the Jet Propulsion Laboratory for valuable conversations that improved the content of this article.

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

The following abbreviations are used in this manuscript:
DQDual quaternions
EDLEntry, Descent and Landing

References

  1. Reed, B.B.; Smith, R.C.; Naasz, B.J.; Pellegrino, J.F.; Bacon, C.E. The Restore-L Servicing Mission. AIAA Space Forum 2016. [Google Scholar] [CrossRef]
  2. NASA Goddard Space Flight Center. On-Orbit Satellite Servicing Study, Project Report. In National Aeronautics and Space Administration, Goddard Space Flight Center; Technical Report; NASA: Greenbelt, MD, USA, 2010. [Google Scholar]
  3. Saha, S.K.; Shah, S.V.; Nandihal, P.V. Evolution of the DeNOC-based dynamic modelling for multibody systems. Mech. Sci. 2013, 4, 1–20. [Google Scholar] [CrossRef][Green Version]
  4. Todorov, E.; Erez, T.; Tassa, Y. MuJoCo: A physics engine for model-based control. In Proceedings of the 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, Vilamoura, Portugal, 7–12 October 2012. [Google Scholar]
  5. Featherstone, R. Rigid Body Dynamics Algorithms; Springer: Berlin/Heidelberg, Germany, 2008. [Google Scholar]
  6. Wang, J.; Liang, H.; Sun, Z.; Zhang, S.; Liu, M. Finite-Time Control for Spacecraft Formation with Dual-Number-Based Description. J. Guid. Control Dyn. 2012, 35, 950–962. [Google Scholar] [CrossRef]
  7. Filipe, N.; Tsiotras, P. Simultaneous Position and Attitude Control Without Linear and Angular Velocity Feedback Using Dual Quaternions. In Proceedings of the 2013 American Control Conference, Washington, DC, USA, 17–19 June 2013; pp. 4815–4820. [Google Scholar]
  8. Filipe, N.; Tsiotras, P. Rigid Body Motion Tracking Without Linear and Angular Velocity Feedback Using Dual Quaternions. In Proceedings of the European Control Conference, Zurich, Switzerland, 17–19 July 2013; pp. 329–334. [Google Scholar]
  9. Seo, D. Fast Adaptive Pose Tracking Control for Satellites via Dual Quaternion Upon Non-Certainty Equivalence Principle. Acta Astronaut. 2015, 115, 32–39. [Google Scholar] [CrossRef]
  10. Tsiotras, P.; Valverde, A. Dual Quaternions as a Tool for Modeling, Control, and Estimation for Spacecraft Robotic Servicing Missions. In Proceedings of the Texas A&M University/AAS John L. Junkins Astrodynamics Symposium, College Station, TX, USA, 20–21 May 2018. [Google Scholar]
  11. Valverde, A.; Tsiotras, P. Modeling of Spacecraft-Mounted Robot Dynamics and Control Using Dual Quaternions. In Proceedings of the 2018 American Control Conference, Milwaukee, WI, USA, 27–29 June 2018. [Google Scholar]
  12. Perez, A.; McCarthy, J. Dual Quaternion Synthesis of Constrained Robotic Systems. J. Mech. Des. 2004, 126, 425–435. [Google Scholar] [CrossRef][Green Version]
  13. Perez, A. Dual Quaternion Synthesis of Constrained Robotic Systems. Ph.D. Thesis, University of California, Irvine, CA, USA, 2003. [Google Scholar]
  14. Pennestrì, E.; Stefanelli, R. Linear algebra and numerical algorithms using dual numbers. Multibody Syst. Dyn. 2007, 18, 323–344. [Google Scholar] [CrossRef][Green Version]
  15. Radavelli, L.A.; De Pieri, E.R.; Martins, D.; Simoni, R. Points, Lines, Screws and Planes in Dual Quaternions Kinematics. In Advances in Robot Kinematics; Lenarcic, J., Khatib, O., Eds.; Springer: Berlin, Germany, 2014; pp. 285–293. [Google Scholar]
  16. Leclercq, G.; Lefèvre, P.; Blohm, G. 3-D Kinematics Using Dual Quaternions: Theory and Applications in Neuroscience. Front. Behav. Neurosci. 2013, 7, 1–7. [Google Scholar] [CrossRef] [PubMed]
  17. Quiroz-Omaña, J.J.; Adorno, B.V. Whole-Body Kinematic Control of Nonholonomic Mobile Manipulators Using Linear Programming. J. Intell. Robot. Syst. 2017, 91, 263–278. [Google Scholar] [CrossRef]
  18. Brodsky, V.; Shoham, M. Dual numbers representation of rigid body dynamics. Mech. Mach. Theory 1999, 34, 693–718. [Google Scholar] [CrossRef][Green Version]
  19. Filipe, N. Nonlinear Pose Control and Estimation for Space Proximity Operations: An Approach Based on Dual Quaternions. Ph.D. Thesis, Georgia Institute of Technology, Atlanta, GA, USA, 2014. [Google Scholar]
  20. Özgür, E.; Mezouar, Y. Kinematic Modeling and Control of a Robot Arm Using Unit Dual Quaternions. Robot. Autom. Syst. 2016, 77, 66–73. [Google Scholar] [CrossRef]
  21. Filipe, N.; Tsiotras, P. Adaptive Position and Attitude-Tracking Controller for Satellite Proximity Operations Using Dual Quaternions. J. Guid. Control Dyn. 2014, 38, 566–577. [Google Scholar] [CrossRef]
  22. Bhat, S.; Bernstein, D. A topological obstruction to global asymptotic stabilization of rotational motion and the unwinding phenomenon. In Proceedings of the 1998 American Control Conference, Philadelphia, PA, USA, 26 June 1998. [Google Scholar] [CrossRef]
  23. Murray, R.M.; Li, Z.; Sastry, S.S. A Mathematical Introduction to Robotic Manipulation; CRC Press: Boca Raton, FL, USA, 1994. [Google Scholar]
  24. Jazar, R.N. Theory of Applied Robotics: Kinematics, Dynamics, and Control; Springer: Berlin, Germany, 2010. [Google Scholar]
  25. Gan, D.; Liao, Q.; Wei, S.; Dai, J.; Qiao, S. Dual Quaternion-Based Inverse Kinematics of the General Spatial 7R mechanism. Proc. Inst. Mech. Eng. C J. Mech. Eng. 2008, 222, 1593–1598. [Google Scholar] [CrossRef]
  26. Adorno, B.V. Two-Arm Manipulation: From Manipulators to Enhanced Human-Robot Collaboration. Ph.D. Thesis, Université Montpellier II Sciences et Techniques du Languedoc, Montpellier, France, 2011. [Google Scholar]
  27. Lee, U.; Mesbahi, M. Constrained Autonomous Precision Landing via Dual Quaternions and Model Predictive Control. J. Guid. Control Dyn. 2017, 40, 292–308. [Google Scholar] [CrossRef]
  28. Umetani, Y.; Yoshida, K. Resolved motion rate control of space manipulators with generalized Jacobian matrix. IEEE Trans. Robot. Autom. 1989, 5, 303–314. [Google Scholar] [CrossRef]
Figure 1. Screw motion parametrized by θ and s .
Figure 1. Screw motion parametrized by θ and s .
Robotics 07 00064 g001
Figure 2. Denavit-Hartenberg parameters.
Figure 2. Denavit-Hartenberg parameters.
Robotics 07 00064 g002
Figure 3. Robot arm configuration.
Figure 3. Robot arm configuration.
Robotics 07 00064 g003
Figure 4. Robot arm configuration.
Figure 4. Robot arm configuration.
Robotics 07 00064 g004
Figure 5. Line-of-sight constraint during grappling.
Figure 5. Line-of-sight constraint during grappling.
Robotics 07 00064 g005
Figure 6. Approach slope constraint.
Figure 6. Approach slope constraint.
Robotics 07 00064 g006
Figure 7. Upper-and-lower bounds constraint.
Figure 7. Upper-and-lower bounds constraint.
Robotics 07 00064 g007
Figure 8. General attitude constraint with respect to inertial directions.
Figure 8. General attitude constraint with respect to inertial directions.
Robotics 07 00064 g008
Table 1. Quaternion Operations.
Table 1. Quaternion Operations.
OperationDefinition
Addition a + b = ( a 0 + b 0 , a ¯ + b ¯ )
Scalar multiplication λ a = ( λ a 0 , λ a )
Multiplication a b = ( a 0 b 0 a ¯ · b ¯ , a 0 b ¯ + b 0 a ¯ + a ¯ × b ¯ )
Conjugate a * = ( a 0 , a ¯ )
Dot product a · b = ( a 0 b 0 + a ¯ · b ¯ , 0 3 × 1 ) = 1 2 ( a * b + b * a )
Cross product a × b = ( 0 , a 0 b ¯ + b 0 a ¯ + a ¯ × b ¯ ) = 1 2 ( a b b * a * )
Norm a = a · a
Scalar part sc a = ( a 0 , 0 3 × 1 )
Vector part vec a = ( 0 , a ¯ )
Table 2. Dual Quaternion Operations.
Table 2. Dual Quaternion Operations.
OperationDefinition
Addition a + b = ( a r + b r ) + ϵ ( a d + b d )
Scalar multiplication λ a = ( λ a r ) + ϵ ( λ a d )
Multiplication a b = ( a r b r ) + ϵ ( a d b r + a r b d )
Conjugate a * = ( a r * ) + ϵ ( a d * )
Dot product a · b = ( a r · b r ) + ϵ ( a d · b r + a r · b d ) = 1 2 ( a * b + b * a )
Cross product a × b = ( a r × b r ) + ϵ ( a d × b r + a r × b d ) = 1 2 ( a b b * a * )
Circle product a b = ( a r · b r + a d · b d ) + ϵ 0
Swap a s = a d + ϵ a r
Norm a = a a
Scalar part sc a = sc a r + ϵ sc a d
Vector part vec a = vec a r + ϵ vec a d
Table 3. Unit Dual Quaternion Operations.
Table 3. Unit Dual Quaternion Operations.
Composition of transformations q Z / X = q Y / X q Z / Y
Inverse, Conjugate q Y / X * = q X / Y
Table 4. Screw ( ξ i ) for revolute and prismatic joints.
Table 4. Screw ( ξ i ) for revolute and prismatic joints.
Revolute JointPrismatic Joint
X-axis ( 0 , [ 1 , 0 , 0 ] T ) + ϵ 0 0 + ϵ ( 0 , [ 1 , 0 , 0 ] T )
Y-axis ( 0 , [ 0 , 1 , 0 ] T ) + ϵ 0 0 + ϵ ( 0 , [ 0 , 1 , 0 ] T )
Z-axis ( 0 , [ 0 , 0 , 1 ] T ) + ϵ 0 0 + ϵ ( 0 , [ 0 , 0 , 1 ] T )
Table 5. Generalized coordinates and dual velocities for different joint types.
Table 5. Generalized coordinates and dual velocities for different joint types.
Joint TypeGeneralized Coordinate Parametrization, α ¯ i Dual Velocity, ω i / i 1 i
Revolute θ i / i 1 R 1 ( 0 , [ 0 , 0 , θ ˙ i / i 1 ] T ) + ϵ 0
Prismatic z i / i 1 R 1 0 + ϵ ( 0 , [ 0 , 0 , z ˙ i / i 1 ] T )
Spherical [ ϕ i / i 1 , θ i / i 1 , ψ i / i 1 ] T R 3 ( 0 , M ( ϕ i / i 1 , θ i / i 1 , ψ i / i 1 ) [ ϕ ˙ i / i 1 , θ ˙ i / i 1 , ψ ˙ i / i 1 ] T ) + ϵ 0
Cylindrical [ θ i / i 1 , z i / i 1 ] T R 2 ( 0 , [ 0 , 0 , θ ˙ i / i 1 ] T ) + ϵ ( 0 , [ 0 , 0 , z ˙ i / i 1 ] T )
Cartesian [ x i / i 1 , y i / i 1 , z i / i 1 ] T R 3 0 + ϵ ( 0 , [ x ˙ i / i 1 , y ˙ i / i 1 , z ˙ i / i 1 ] T )
Table 6. Screw matrix for different joint types.
Table 6. Screw matrix for different joint types.
Joint TypeScrew Matrix, ζ i = ω i / i 1 i / α ¯ ˙ i
Revolute [ 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 ] T
Prismatic [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ] T
Spherical 0 1 × 3 M ( ϕ i / i 1 , θ i / i 1 , ψ i / i 1 ) 0 4 × 4
Cylindrical 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 T
Cartesian 0 5 × 3 I 3

Share and Cite

MDPI and ACS Style

Valverde, A.; Tsiotras, P. Spacecraft Robot Kinematics Using Dual Quaternions. Robotics 2018, 7, 64. https://doi.org/10.3390/robotics7040064

AMA Style

Valverde A, Tsiotras P. Spacecraft Robot Kinematics Using Dual Quaternions. Robotics. 2018; 7(4):64. https://doi.org/10.3390/robotics7040064

Chicago/Turabian Style

Valverde, Alfredo, and Panagiotis Tsiotras. 2018. "Spacecraft Robot Kinematics Using Dual Quaternions" Robotics 7, no. 4: 64. https://doi.org/10.3390/robotics7040064

Note that from the first issue of 2016, MDPI journals use article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop