Spacecraft Robot Kinematics Using Dual Quaternions

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.


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.

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.

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 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 = ijk = −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 where Table 1.Quaternion Operations.

Operation Definition
Vector part vec a = (0, a) 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, 03×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, 03×1 ).
Three-dimensional vectors can also be interpreted as special cases of quaternions.Specifically, given sX ∈ R 3 , the coordinates of a vector expressed in frame X, its quaternion representation is given by s X = (0, sX ) ∈ 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 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 where

Dual Quaternions
We define the dual quaternion group as 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

Operation Definition
Analogous to the set of vector quaternions H v , we can define the set of vector dual quaternions as H v d {q = q r + q d : q r , q d ∈ H v }.For vector dual quaternions we will define the skew-symmetric operator where 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 B/I , where r B B/I 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.

Composition of transformations q
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, (13) 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 where 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 X/Y = (0, rX X/Y ), where rX X/Y ∈ 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 B/I = ω B B/I + v B B/I .However, if we wanted to express this same dual velocity in inertial frame coordinates, as per Equation ( 14) we would get ω ).We will formally introduce frame transformations next.

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 v d expressed in X-frame coordinates as s X s X r + s X d , where s X r , s X d ∈ H v .As noted for Equation ( 14), frame transformations are given by the adjoint operation as By the definition of the cross product of two quaternion quantities given in Table 1, we get that Analogously, the transformation of a dual vector s Y s Y r + s Y d can be easily derived using the procedure described above to be: As is standard notation, we can define the group adjoint operation for unit dual quaternions as Therefore, using this notation, the frame transformations derived above can be cast as 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].

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 where 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] qX Lemma 1.The attitude of a rigid body evolves as qX/Y = 1 2 q X/Y ω X X/Y , as stated in Equation (20).
Lemma 2. The pose of a rigid body evolves as qX/Y = 1 2 q X/Y ω X X/Y , as stated in Equation (21).
Proof.Taking the derivative of q where we used the fact that v Evaluating this cross product into the above expression yields proving the desired result.
Remark 1.The spatial kinematic equation qX/Y = 1 2 ω Y X/Y q X/Y can be immediately derived as a direct consequence of the adjoint transformation equation ω X Remark 2. The spatial kinematic equation qX/Y = 1 2 ω Y X/Y q X/Y can be immediately derived as a direct consequence of the adjoint transformation equation ω X

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 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 B/A and r A B/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: Translation First: 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 v d , 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 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].31) and (32) is given as 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.

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: 1.
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}.

2.
Rotate about the Z i−1 axis by θ i until axis X i−1 is superimposed to X i 3.
Translate along X i by a distance of a i .Define this intermediate frame as {int, 2}. 4.
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 = (q int,2/int,1 + r int,1 int,1/i-1 q int,2/int,1 )(q i/int,2 + r int,2 int,2/int,1 q i/int,2 ) where r int,2 int,2/int,1 = (0, [a i , 0, 0] T ) (48) 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: 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 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.

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.

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 . (53) For the sake of exposition, these are given by 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 Y X/Y = (0, rY X/Y ), and while the quaternions are given by 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: 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 qe/I = q1/I q 2/1 q e/2 +q 1/I q2/1 q e/2 +q 1/I q 2/1 qe/2 (64) = 1 2 q 1/I ω 1 1/I q 2/1 q e/2 +q 1/I 1 2 q 2/1 ω 2 2/1 q e/2 +q 1/I q 2/1 1 2 q e/2 ω e e/2 .(65) Then, using Equation ( 63), we get that the dual velocity of the end effector with respect to the inertial frame is given by ω e e/I = 2q * e/I qe/I = q * e/I q 1/I ω 1 1/I q 2/1 q e/2 +q * e/I q 1/I q 2/1 ω 2 2/1 q e/2 +q * e/I q 1/I q 2/1 q e/2 =0 ω e e/2 = q * e/2 q * 2/1 q * 1/I q 1/I ω 1 1/I q 2/1 q e/2 +q * e/2 q * 2/1 q * 1/I q 1/I q 2/1 ω 2 2/1 q e/2 = q * e/2 q * 2/1 ω 1 1/I q 2/1 q e/2 +q * e/2 ω 2 2/1 q e/2 = Ad q * e/2 q * 2/1 ω 1  1/I +Ad q * e/2 ω 2 2/1 where J B (q, ξ) is the Jacobian expressed in the body frame and 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.Table 4. Screw (ξ i ) for revolute and prismatic joints.

Revolute Joint
Prismatic Joint

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 In this case, the time evolution of q 1/I is given by q1/I = 1 2 ω I 1/I q 1/I (71) as before, but we redefine the dual velocity as dictated by the definition in Equation (14) as The relationship derived earlier still holds.However, ω 1  1/I must be computed from our knowledge of ω I 1/I .While in quaternion and vector notation this might be troublesome, the expression using dual quaternions is simple and given by ω 1  1/I = q * 1/I ω I 1/I q 1/I = Ad q * 1/I ω I 1/I .(73)

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 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 In general, we can identify the pose of a satellite-mounted end-effector by 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 2 ∏ i=1 q i/i-1 = q 1/0 q 2/1 .(77) 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 qe/I = qB/I q O/B q 0/O n−1 ∏ i=1 q i/i-1 q e/n-1 + q B/I q O/B q0/O n−1 ∏ i=1 q i/i-1 q e/n-1 Multiplying by 2q * e/I on the left, we get ω e e/I = q * e/I q B/I ω B B/I q O/B q 0/O n−1 ∏ i=1 q i/i-1 q e/n-1 + q * e/I q B/I q O/B q 0/O ω 0 0/O n−1 ∏ i=1 q i/i-1 q e/n-1 and carrying out the dual quaternion multiplications to simplify the expression yields ω e e/I = q * e/B ω B B/I q e/B + q * e/0 ω 0 0/O q e/0 + n−1 Revolute 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 e/I = q * e/B L q e/B R ω B B/I + q * e/0 L q e/0 R ω 0 Defining the vector of generalized coordinates as the vertical concatenation of the individual joint generalized coordinates, we can write ω e e/I = q * e/B L q e/B R ω B B/I + q * e/0 L q e/0 R ζ 0 α0 Here, we have defined the body-frame Jacobian associated to joint motion as J(q, ζ) q * e/0 L q e/0 R ζ 0 , . . ., q * e/k L q e/k R ζ k , . . ., q * e/n-1 L q e/n-1 R ζ n-1 . (83) The general term of the Jacobian mapping matrix, q * e/k L 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 (67), 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), but for any physically intuitive ξ k ∈ H v d .

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, ȳ) ∈ H v , the following equalities hold: (rq) Proof.Using the definition of the quaternion dot product given in Table 1, the expression on the left becomes The second equality can be proven in the same manner.
For the following facts, let us define and Lemma 5. Consider the dual quaternion q B/A = q 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 B/A • r B B/A , 0 3×1 ) + 0, from which the result follows.

Lemma 6. Consider the dual quaternion q
Proof.Using the definition of E u , we have q The result follows from the unit constraint of a unit quaternion.

Lemma 7. Consider the dual quaternion q
The result follows from application of Lemma 4.
Proof.From Lemma 5, it follows that q B/A • q Corollary 1.Given the bound r B B/A ≤ δ, 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 = s1 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: 1. Line-of-sight constraints.

2.
Approach slope angle constraints, of which upper-and-lower bound constraints is a re-interpretation of the geometry.

3.
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.and it requires that the angle between r G A/G and ŷG remains less than θ.Using dual quaternions, this constraint can be equivalently expressed as where 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 and it requires that the angle between r A G/A and ẑA remains less than φ.Using dual quaternions, this constraint can be equivalently expressed as where and it is convex over D. and it requires that the angle between the inertially fixed vector nI and the body fixed vector nB remains less than ψ.Using dual quaternions, this constraint can be equivalently expressed as where and it is convex over D.

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].

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 ab a L b b R a,

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 G A/G • ŷG ≥ r G

Figure 8 .
Figure 8.General attitude constraint with respect to inertial directions.

Table 5 .
Generalized coordinates and dual velocities for different joint types.

Table 6 .
Screw matrix for different joint types.