Next Article in Journal
Microwave Frequency Offset Induced by Subsurface Damage in Abrasive-Machined Semiconductor Ceramic Waveguide
Next Article in Special Issue
Utilizing Reinforcement Learning to Drive Redundant Constrained Cable-Driven Robots with Unknown Parameters
Previous Article in Journal
A New Automated Classification Framework for Gear Fault Diagnosis Using Fourier–Bessel Domain-Based Empirical Wavelet Transform
Previous Article in Special Issue
Dynamic Modeling and Performance Evaluation of a 5-DOF Hybrid Robot for Composite Material Machining
 
 
Correction published on 21 November 2024, see Machines 2024, 12(12), 830.
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Using Lie Derivatives with Dual Quaternions for Parallel Robots

by
Stephen Montgomery-Smith
1,* and
Cecil Shy
2
1
Department of Mathematics, University of Missouri, Columbia, MO 65211, USA
2
Johnson Space Center, 2101 E. NASA Pkwy, Houston, TX 77058, USA
*
Author to whom correspondence should be addressed.
Machines 2023, 11(12), 1056; https://doi.org/10.3390/machines11121056
Submission received: 2 November 2023 / Revised: 14 November 2023 / Accepted: 23 November 2023 / Published: 28 November 2023 / Corrected: 21 November 2024
(This article belongs to the Special Issue Advances in Parallel Robots and Mechanisms)

Abstract

:
We introduce the notion of the Lie derivative in the context of dual quaternions that represent rigid motions and twists. First we define the wrench in terms of dual quaternions. Then we show how the Lie derivative helps understand how actuators affect an end effector in parallel robots, and make it explicit in the two cases case of Stewart Platforms, and cable-driven parallel robots. We also show how to use Lie derivatives with the Newton-Raphson Method to solve the forward kinematic problem for over constrained parallel actuators. Finally, we derive the equations of motion of the end effector in dual quaternion form, which include the effect of inertia from the actuators.

1. Introduction

This paper is broadly about poses and/or rigid motions, and how they can be represented by unit dual quaternions. A pose is a description of a frame of reference with respect to a fixed frame of reference, and consists of an orientation, and a position. A rigid motion consists of a rotation followed by a translation. From a mathematical point of view, these can be considered to be the same thing, and so we use these terms interchangeably (but see [1] for a different point of view).
Along with poses and/or rigid motions, we have the notion of screws. First we have rates of change of poses/rigid bodies, which are angular and translational velocities, and are described by twists. Second we have descriptions of how to change the inertia of the rigid body, the wrench, that is, the torque and the force applied to the body. For more reading on rigid body kinematics and dynamics, including screw theory, we refer the reader to [2,3,4,5].
The notion of the dual quaternion, and its use to represent poses and rigid motions, seems to go back to McAulay [6], inspired by the earlier work by Clifford [7]. The notion of using dual quaternions to represent twists may be found in [8,9]. A basic introduction to dual quaternions may be found in [10,11], the latter also covering twists. Many authors have used dual quaternions to represent hierarchies of poses, that is, chains of manipulators [9,10,12,13,14]. Papers on representing kinematics or dynamics via dual quaternions include [8,15,16,17,18,19,20]. Dual quaternions have also found great use in computer graphics [21,22].
(The reader should be aware that [8,17] have incorrect formulas for the logarithm and exponential of dual quaternions—the correct formulas may be found in [23], and [24] for the exponential.)
The purpose of this paper is to introduce the notion of using Lie derivatives for dual quaternions. We show that these can be used to essentially automate the creation of rather complex formulas, which are required for forward kinematics, and for dynamic equations of motion.
The authors have successfully used these formulas, combine with the algorithm described in [25], to create software for controlling a cable-driven parallel robot, which was built by the Dynamic Systems Test Branch of the Software, Robotics, and Simulation Division (ER5) at the NASA Johnson Space Center. Because of Export Administration Regulations we are unable to provide many more details.
The paper is quite heavy with mathematical formulas. For this reason, the proofs of most of the statements, and many of the comments of a mathematical nature, relegated to the Appendix A.

2. Notation

Rotations can be represented by unit quaternions [26,27], which we briefly describe here. A quaternion is a quadruple of real numbers, written as A = w + x i + y j + z k , with the algebraic operations i 2 = j 2 = k 2 = i j k = 1 . Its conjugate is A * = w x i y j y k , its norm is | A | = ( w 2 + x 2 + y 2 + z 2 ) 1 / 2 = A A * = A * A , its normalization is A ^ = A / | A | , its real part is Re ( A ) = w = 1 2 ( A + A * ) , and its imaginary part is Im ( A ) = i x + j y + k z = 1 2 ( A A * ) . It is called a unit quaternion if | A | = 1 , a real quaternion if Im ( A ) = 0 , and a vector quaternion if Re ( A ) = 0 . If A 0 , the multiplicative inverse is given by A 1 = A * / | A | 2 . (Note that many sources use the word “pure” instead of “vector” in this context).
We identify three dimensional vectors with vector quaternions, by identifying i , j , and k with the three standard unit vectors. A unit quaternion Q represents the rotation which takes the direction r to Q r Q * . A rotation by angle a about an axis s , where | s | = 1 , has two unit quaternion representations: ± ( cos ( 1 2 a ) + s sin ( 1 2 a ) ) = ± exp ( 1 2 a s ) . Composition of rotations corresponds to multiplication of unit quaternions.
We can represent quaternions as four dimensional vectors, and give it the inner product
A · B = Re ( A B * ) = Re ( A * B ) .
A dual quaternion is a pair of quaternions, written as η = A + ϵ B , with the extra algebraic operation ϵ 2 = 0 . We call A = P ( η ) the primary part of η , and B = D ( η ) the dual part of η .
The conjugate dual quaternion of η = A + ϵ B is η * = A * + ϵ B * . Conjugation reverses the order of multiplication:
( η 1 η 2 ) * = η 2 * η 1 * .
There is another conjugation for dual quaternions: A + ϵ B ¯ = A ϵ B , but we have no cause to use it in this paper, except in Equation (7) below.
A unit dual quaternion η = Q + ϵ B is a dual quaternion such that η * η = 1 , equivalently, that Q is a unit quaternion and B · Q = 0 . A vector dual quaternion A + ϵ B is a dual quaternion such that both A and B are vector quaternions.
If η = A + ϵ B is a dual quaternion with A 0 , then its multiplicative inverse can be calculated using the formula
η 1 = A 1 ϵ A 1 B A 1 .
If η is a unit dual quaternion, then there is a computationally much faster formula (see [8]):
η 1 = η * .
We set D H for the set of invertible dual quaternions (that is, A + ϵ B where A 0 ), d h for the set of dual quaternions, S D H for the set of unit dual quaternions, and s d h for the set of vector dual quaternions.
A rigid motion of the form
r Q r Q * + t ,
where here t is a translation, can be represented by the unit dual quaternion
η = Q + 1 2 ϵ t Q .
Composition of rigid motions corresponds to multiplication of unit dual quaternions, where the notation η 1 η 2 means to apply first the rigid motion represented by η 2 , and then by η 1 , that is, the dual quaternion acts by left multiplication. If r is a 3-vector, and s is the image of r under the action of the rigid motion η = Q + ϵ B , then
1 + ϵ s = η ( 1 + ϵ r ) η ¯ * ,
but generally it is easier to use the formula
s = Q r Q * + 2 B Q * = ( Q r + 2 B ) Q * .
For a dual quaternion, it is not really possible to mix its primary and dual parts additively. For example, for a unit dual quaternion that represents a rigid motion, the primary part is unitless, whereas the dual has units of length. For this reason, when measuring how large such a dual quaternion is, everything must be with respect to a characteristic length scale l. (For example, for a parallel robot, the characteristic length might be the width of the workspace of the end effector). The size of a dual quaternion is defined to be
size l ( η ) = | P ( η ) | 2 + l 2 | D ( B ) | 2 1 / 2 .
A twist is the pair of vectors ( w , v ) that describes the rate of change of pose or rigid motion, where w is the angular velocity, and v is the translational velocity. One can think of the twist ( w , v ) as a rigid motion function of time t:
r r + t ( w × r + v ) + O ( t 2 ) as t 0 .
It has two possible meanings, depending upon whether the twist is understood to be with respect to the fixed frame, or with respect to the moving frame. If it is understood to be with respect to the moving frame, we have the formula
d d t ( Q r Q * + t ) = Q ( w × r + v ) Q * + t ,
and if it is understood to be with respect to the fixed frame
d d t ( Q r Q * + t ) = w × ( Q r Q * + t ) + v .
Then this twist can be represented by a vector dual quaternion [8,15]
φ = 1 2 w + 1 2 ϵ v ,
where if we understand it to be with respect to the moving frame, we have the formula
φ = η 1 η ˙ , or η ˙ = η φ ,
and if we understand it to be with respect to the fixed frame
φ = η ˙ η 1 , or η ˙ = φ η .
In this paper, unless otherwise stated, we always understand the twist to be with respect to the moving frame.
We make the identification
d h R 8 ,
using the basis
( β 1 , β 2 , β 3 , β 4 , β 5 , β 6 , β 7 , β 8 ) = ( i , j , k , ϵ i , ϵ j , ϵ k , 1 , ϵ ) ,
and similarly, we make the identification
s d h R 6 ,
using the basis ( β 1 , β 2 , β 3 , β 4 , β 5 , β 6 ) . With these identifications, we can define the dot product between two dual quaternions by transferring the usual definition of dot product on R 8 , that is
( A + ϵ B ) · ( C + ϵ D ) = A · C + B · D .
In this way, every dual quaternion η can be written in component form as
η = i = 1 8 η i β i ,
and every vector dual quaternion θ as
θ = i = 1 6 θ i β i .
Finally, we give a few extra formulas. Let φ m denote the twist with respect to the moving frame, and φ f denote the twist with respect to the fixed frame. From Equations (14) and (15) we obtain
φ f = η φ m η 1 .
Since in any algebra we have
d d t η 1 = η 1 η ˙ η 1 ,
we obtain the surprisingly simple formula for the change of frame for acceleration:
φ ˙ f = η φ ˙ m η 1 .
Note that this does not generalize to higher derivatives, for example, the formula for change of frame for jerk is
φ ¨ f = η φ ¨ m η 1 + η ( φ φ ˙ φ ˙ φ ) η 1 .

3. Dual Quaternions to Represent Wrenches

Let the pose η represent the reference frame that moves with the end effector. It is not necessary (although it can simplify things) that the center of mass of the end effector coincides with the origin of the moving frame.
The wrench dual quaternion is defined to be
τ = 2 q + 2 ϵ p ,
where q and p are the torque and force, respectively, applied to the end effector at the origin of the moving frame, measured with respect to the moving frame.
If r 0 is the center of mass of the end effector in the moving frame, then the twist about the center of mass is given by
φ 0 = φ + 1 2 ϵ w × r 0 ,
where φ = η 1 η ˙ , and the wrench applied about the center of mass is
τ 0 = τ + 2 p × r 0 .
The reason for introducing the factor 2 in definition (26) is so that the rate of change of work done to the end effector is given by
d d t ( work done ) = τ · φ = τ 0 · φ 0 .
(The second equality follows from vector identities).
See [2] for the origins of the term twist and wrench as pairs of 3-vectors, which are examples of screws. The ’work done’ formulas are also known as reciprocal screw relationships.

4. The Normalization of a Dual Quaternion

A dual number is anything of the form a + ϵ b , where a and b are real numbers. The norm of a dual quaternion η = A + ϵ B is the dual number defined by the two steps:
| η | 2 = η * η = η η * = | A | 2 + 2 ϵ ( A · B ) ,
| η | = | η | 2 = | A | + ϵ ( A · B ) / | A | .
The norm preserves multiplication, that is, if η 1 and η 2 are two dual quaternions, then
| η 1 η 2 | = | η 1 | | η 2 | .
If η = Q + ϵ B is an invertible dual quaternion, then we define its normalization to be the unit dual quaternion
η ^ = | η | 1 η = η | η | 1 = Q / | Q | + ϵ ( B / | Q | ( B · Q ) Q / | Q | 3 ) .
(We remark that the normalization of an invertible dual quaternion is used in the computer graphics industry [21,22]). While this normalization formula might seem initially quite complicated, after thinking about it one can see that it is the simplest projection that enforces | Q | = 1 and B · Q = 0 .
The normalization also satisfies the following properties.
  • If η is a unit dual quaternion, then η ^ = η .
  • Normalization preserves multiplication, that is, if η 1 and η 2 are two dual quaternions, then
    η 1 η 2 ^ = η ^ 1 η ^ 2 .

5. Notation for Three by Three Matrices

Let I denote the ( 3 × 3 ) identity matrix, and 0 denote the ( 3 × 3 ) zero matrix. If r is a 3-vector, then the Hodge star operator of r is
S ( r ) = 0 r 3 r 2 r 3 0 r 1 r 2 r 1 0 .
Note that
S ( r ) s = r × s .
If u is a unit vector, then the projection onto the complement of the unit vector u is defined by
P u x = x ( u · x ) u .
Consistent with the identification (18), if A , B , C , and D are ( 3 × 3 ) matrices, and θ = 1 2 a + 1 2 ϵ b , ψ = 1 2 c + 1 2 ϵ d are vector dual quaternions, we have
A B θ = 1 2 A a + 1 2 B b ,
A B C D θ = 1 2 A a + 1 2 B b + 1 2 ϵ C a + 1 2 ϵ D b ,
θ · A B C D ψ = 1 4 a · A c + 1 4 a · B d + 1 4 b · C c + 1 4 b · D d .

6. Lie Derivatives

The notion of the Lie derivative, sometimes in our context called the directional derivative, is a combination of two ideas that may be found in the literature. First is the concept of a Lie derivative with respect to a vector field [28]. Secondly, the definition of the Lie algebra is that it is the vector space of vector fields that are invariant under left multiplication by elements of the Lie group [29]. In this way, we can define the Lie derivative of a function with respect to an element of the Lie algebra. One place in the literature where they are combined is in [30] (Equation (5), Chapter II).
These standard abstract definitions can be made more concrete in our special case where the Lie group is the set of unit dual quaternions, and the Lie algebra is the set of vector dual quaternions.
Suppose one has a quantity that is a function of pose g ( η ) , and whose range is any vector space. (But for intuition, consider the case when the range is the real numbers, and think of the vector valued case as the formulas below simply being applied component wise).
Then we usually think of the derivative of g ( η ) as the Jacobian with respect to the components of η . But it really makes more sense to compute the derivative with respect to the components of the perturbation of η . The latter is the Lie derivative.
The definition is this. Given a differentiable function g whose domain is the unit dual quaternions, S D H , and whose codomain is any vector space over the real numbers, we can extend it arbitrarily to a differentiable function whose domain is an open neighborhood of S D H in d h . Given a unit dual quaternion η and a vector dual quaternion θ , we define the Lie derivative of g ( η ) in the direction of θ to be
L θ g = lim r 0 g ( η ( 1 + r θ ) ) g ( η ) r = d d r g ( η ( 1 + r θ ) ) r = 0 .
Since η ( 1 + r θ ) isn’t necessarily a unit dual quaternion, it is not obvious that the definition of the directional Lie derivative doesn’t depend upon how the domain of g was extended from S D H , but it is, as is shown in Lemma A2 below.
Given a generic function g whose domain is the invertible dual quaternions, D H , and whose codomain is any vector space over the real numbers, we define its Jacobian to be the dual quaternion
g η = i = 1 8 η i g ( η ) β i ,
where the partial derivative η i is interpreted using the identification of η i with the β i components of η as described in (17).
If the domain of g is the vector dual quaternions, s d h , we have Equation (42) except with 8 replaced by 6.
We have the following formula, which is useful for explicitly calculating the Lie derivative if an extension of g to an open neighborhood of S D H in d h is known:
L θ g = g η · ( η θ ) : = i = 1 8 g η i ( η θ ) i ,
where the notation ( η θ ) i means the β i component of η θ , as described in (17).
We define the partial Lie derivatives to be
L i g = L β i g , ( 1 i 6 ) ,
and its full Lie derivative to be the vector dual quaternion (or if the range of g is a vector space, the tensor product of a vector dual quaternion with a vector)
L g = i = 1 6 L i g β i ,
so that for all vector dual quaternions θ it satisfies:
θ · L g = L θ g .
To gain some intuition, write
θ = 1 2 a + 1 2 ϵ b .
Since we have that
θ = 2 a + 2 ϵ b ,
we see that θ represents a change in pose by an infinitesimal translation b and an infinitesimal rotation a , measured in the moving frame of reference. Thus L g is a vector dual quaternion giving twice the change in g with respect to an infinitesimal rotation, plus ϵ times twice the change of g with respect to an infinitesimal translation.
One important property of the Lie derivative is that if η represents a pose, with twist φ , then by Equation (41), with r replaced by t, we see that
d d t [ g ( η ) ] = L φ g .
The Lie derivative satisfies various rules, which easily follow from either Equation (41) or (43), which are also useful for explicitly calculating the Lie derivative when g is known.
  • If g ( η ) is linear in η , then
    L θ g ( η ) = g ( η θ ) .
  • The product rule: if * is any binary operator which is bilinear over the real numbers, such as the product of real numbers, the inner product, the cross product, or the dual quaternion product, then
    L θ ( g 1 * g 2 ) = g 1 * ( L θ g 2 ) + ( L θ g 1 ) * g 2 .
  • The chain rule:
    L θ ( h ( g 1 , g 2 , , g m ) ) = i = 1 m g i h ( g 1 , g 2 , , g m ) L θ g i .
  • Let s ˜ be a constant position vector, and n ˜ be a constant direction. Let s and n be their corresponding values with respect to the moving frame. Then
    L θ s = 2 S ( s ) I θ ,
    L θ n = 2 S ( n ) 0 θ .
To simplify the writing of application software, Using these rules, one can create a software library in C++ that performs automatic Lie differentiation. Since the domain, and hence range, of the Lie derivative can be any vector space, the sensible way to do this is using templates to allow for a variety of different data types. Note also that the product rule (51) has to be implemented for every product that is used, and similarly the chain rule (52) for every function h that is used.

7. Applications to Parallel Robots

To aid our description, we show the example of a cable-driven parallel robot in Figure 1 and Figure 2. In Figure 1, we show the end effector in green, controlled by eight cables shown in red, which go around pulleys shown in green. Each cable, and how it is attached to the pulley, is shown in Figure 2.
Suppose that the position of the end effector of a parallel robot is given by n actuators, described by quantities
= ( j ) 1 j n .
For example, for a cable-driven parallel robot, these represent the lengths of the cables, and typically n = 8 . The numbers j only need to be determined up to a fixed number. Thus, for example, in Figure 2, the number j could represent the length of cable from the end effector attachment point, to the small cross marked at the top of the pulley.
For the Gough or Stewart Platforms [4], we have n = 6 , and j is simply the distance between the end effector attachment point and the ground attachment point.
Let us also denote the force exerted by the actuators by
f = ( f j ) 1 j n ,
defined so that the rate of change of work performed through the actuators is given by
d d t ( work done ) = f · ˙ .
Suppose we have a function L : S D H R n , which calculates the required actuator values, , from the pose η of the end effector frame. This is the inverse kinematics function.
We also define the ( n × 6 ) matrix Λ by
Λ θ = L θ L = L θ ,
or more explicitly, by
Λ i , j = L j i .
From Equation (49) we obtain
˙ = Λ φ .
There is also a ( 6 × n ) matrix T that maps the actuator forces to the wrench dual quaternion:
τ = T f .
This can be computed by balancing the force and torque exerted upon the end-effector. But it can also be computed with the following important identity:
T = Λ T .

8. Second Lie Derivatives

If g is a function of dual quaternions with codomain any vector space over the real numbers, we define its Hessian to be the ( 8 × 8 ) matrix
2 g η 2 = 2 g η i η j 1 i , j 8 .
Thus the expression 2 g η 2 γ should be interpreted as a matrix product with γ treated as an eight dimensional column vector.
Second Lie derivatives will be used in Newton’s Method, as well as in our statements of the equations of motion, both described below.
We have that
L θ L ψ g = ( η ψ ) · 2 g η 2 ( η θ ) + g η · ( η θ ψ ) : = i = 1 8 j = 1 8 ( η ψ ) i 2 g η i η j ( η θ ) j + i = 1 8 g η i ( η θ ψ ) i .
Another way one might try to define the second derivative is to use the formula 2 θ 2 g ( η ( 1 + θ ) ) θ = 0 . Unfortunately, this definition doesn’t work, as it depends upon the choice of how to extend the domain of g to all dual quaternions. The obvious choice of extension is to use the normalization g ˜ ( η ) = g ( η ^ ) . We have the following formula for the Hessian of g ˜ :
2 θ 2 g ˜ ( η ( 1 + θ ) ) θ = 0 = 1 2 ( L i L j g ( η ) + L j L i g ( η ) ) 1 i , j 6 .

9. The Examples of a Stewart Platform, and a Cable-Driven Parallel Robot

As an example, let us consider parallel robots such as cable-driven robots, or Stewart Platforms. In this case, the end effector has certain ’attachment points’ on it, r 1 , r 2 , , r n where the cables or legs attach, the cables or legs are attached at the other end to s k , and unit vectors u 1 , u 2 , , u n which are directions the cables or legs come into the end effector, all of these being measured in the end effector’s frame of reference. Note that for 1 k n
u k = r k s k | r k s k | .
Then
L k = 2 r k × u k + 2 ϵ u k = 2 S ( r k ) I u k ,
or representing vectors as columns, we have
Λ = 2 ( r 1 × u 1 ) T u 1 T ( r 2 × u 2 ) T u 2 T ( r n × u n ) T u n T .
For calculating the second Lie derivative of k , we need only know the first Lie derivative of u k . Note that in the simple case that the attachment point of the cable to the frame is fixed in the fixed frame (for example, as in a Stewart Platform), we have
L u k = 1 | r k s k | P u k S ( s k ) I ,
and therefore
L 2 k = 2 S ( r k ) I 1 | r k s k | P u k S ( s k ) I .
Let us also describe a more complicated situation, which matches the cable-driven parallel robot the NASA Johnson Space Center described in the introduction. For simplicity of notation, we drop the subscripts k. See Figure 2 for reference. Let us suppose that the cable attaches via an assembly, which is free to rotate about an axis parallel to the unit vector n , and passing through the point x . Attached to the assembly, at a fixed distance w from the fixed point x , by a rod perpendicular to n , is the center of a pulley of radius p, which rotates in the plane containing the axis of rotation and the point on the end effector r . A cable passes over the pulley in the n direction from the center of the pulley. All of the vectors are expressed in the moving frame of reference.
We work in the ( m , n ) coordinate system in which the origin is r . Let ( h 1 , h 2 ) be the coordinates of the center of the pulley. Then
u = u 1 m + u 2 n ,
where
( u 1 , u 2 ) = 1 ( h 1 2 + h 2 2 ) h 1 h 2 h 2 h 1 h 1 2 + h 2 2 p 2 p .
The cable length, up to an additive constant, is
= h 1 2 + h 2 2 p 2 + p tan 1 u 2 u 1 .
To avoid singularities, the optimal way to compute the inverse tangent, at least with the configuration shown in Figure 2, is to use atan 2 ( u 2 , u 1 ) , where the commonly available atan 2 ( y , x ) function solves for θ where x = r cos θ , y = r sin θ , r > 0 , π < θ π .
The various required quantities are
d = P n ( x r ) ,
m = d ^ = d | d | ,
h 2 = n · ( x r ) ,
h 1 = m · ( x r ) w = | x r | 2 h 2 2 w .
The Lie derivatives of these quantities can be calculated using the automatic Lie differentiation described at the end of Section 6. The only second Lie derivative required is that of , and since we have Equation (67), no automatic second Lie differentiation is required.

Singularity Analysis for Stewart Platforms

When operating a Stewart Platform, a singularity occurs when there are no viable cable forces that can create an arbitrary wrench, or equivalently, when there exists infinitesimal perturbations of the end effector pose that don’t require a leg length change. These singularities are often called bifurcations, because after a Stewart Platform encounters a singularity, the end effector is free to move in more than one direction. Encountering a singularity can cause great damage to the Stewart Platform.
From these considerations, it becomes clear that a singularity happens for a Stewart Platform if and only if det ( Λ ) = det ( T ) = 0 . This is in agreement with the results obtained by Gosselin and Angeles [31].
Note that when considering more complex parallel robots, that a singularities can happen in other situations as well (see, for example, [32]).

10. Forward Kinematics

In robotics, there are several ways to find the pose of the end effector. One method is to use an optical system, but this is not very accurate. Another is to use a proprioceptive sensor, where the pose is found by integrating the acceleration and angular velocity of the end effector, but this is subject to drift. It would be extremely helpful if the end effector could be computed from the numbers k . These numbers lengths can be found easily and with high sampling frequency using, for example, encoders.
Let the set of admissible actuator values, L R n , be the range of the function L . Then the forward kinematics function is
Y : L S D H ,
which is a left inverse to L . Because of possible measurement errors, Y should produce decent answers even if the actuator values are merely close to L .
The methods described here are essentially the Newton-Raphson Method, and are all iterative methods. Given a guess η k , we create a new guess η k + 1 :
η k + 1 = η k ( 1 + θ k + 1 ) ^ ,
and iterate until some criterion is met. We measure size l ( η k + 1 η k ) , and see when it is smaller than some preset value, like 10 16 .
Here we merely describe the method. In Appendix A, we explain why they work.
We would also like to mention a different approach to using dual quaternions to solve forward kinematics problems in [33], although we don’t think it will cover the more complicated situation described in Section 9.

10.1. Forward Kinematics for Stewart Platforms

First we describe how to solve the exact-constrained problem, that is, when n = 6 . This would be the case for a Stewart Platfom. Typically this is solved by writing the pose using Euler angles, which provides a way to represent the pose using a 6-vector. However, in the opinion of the authors, this becomes a rather complicated set of equations, resulting in quite lengthy code.
Our algorithm is
θ k + 1 = Λ ( η k ) 1 ( L ( η k ) ) .
This is easy to code, certainly simpler than methods which use Euler angles.

10.2. Forward Kinematics for Over-Constrained Parallel Robots

Next we focus on the over-constrained problem, that is, when the number of actuators n is greater than 6.
This problem has been solved by many others, for example, [33,34]. But we feel that this is more easily solved using dual quaternions. For example, using the programming language C++, one can quickly build classes representing dual quaternions, and then these formulas can be applied without any real thought.
We compute
δ k = m = 1 n Λ m , i ( L m ( η k ) m ) 1 i 6 ,
and
H k = m = 1 n Λ m , i Λ m , j + 1 2 L i Λ m , j ( L m ( η k ) ) + 1 2 L j Λ m , i ( L m ( η k ) ) 1 i , j 6 .
The algorithm is
θ k + 1 = H k 1 δ k .

10.3. Results of Simulations for Forward Kinematics

The software used to check these algorithms described here is currently proprietary, and so we cannot give too many details. We hope to get permission to release the software at a later date, and make it available to everyone.
To test the simple Stewart Platform algorithm, we created 10,000 random poses. The orientation of each pose had an angle no greater than 30 from the identity pose. For each pose, the cable lengths were calculated. The Newton-Raphson Method was then applied to the cable lengths, with a random initial guess pose.
Only one run out of 10,000 failed. The average number of required iterations was about 5.1. The run time for each forward kinematics calculation was a little under 100 microseconds, using a fairly modern but low-end laptop. Increasing the allowed angle to 45 also gave a failure rate of one in 10,000.
The Newton-Raphson Method for the over-constrained robot given by the more complicated situation described in Section 9 was more delicate. In particular, since it is minimizing a loss function rather than directly solving the problem, it is possible that it might find local minima of the loss function which didn’t correspond to the solution.
For the first test, we created 1000 random poses, and computed their cable lengths. The Newton-Raphson Method was applied, with a random initial guess pose, and was allowed up to 50 iterations. If the loss function of the final answer was greater than 10 16 , the Newton-Raphson Method was applied again.
All poses were found, but the average number of times the Newton-Raphson had to be applied was about 80. The average time to find a pose was about 5 ms.
For the second test, we again created 1000 random poses and computed their cable lengths. Then the Newton-Raphson was applied, with an initial guess that was 1% different from the original pose. Again success was measured by computing the loss function. But there were no second chances.
All poses were found, the average number of iterations required was 4.2, and the average time taken was a little under 100 microseconds.
Increasing the allowable difference between the initial guess and the original pose to 5% resulted in only about 89% of the runs being successful.
Note that in all these trials, since the poses were randomly created, it is quite likely that some of the poses were non-feasible for the parallel robots under consideration. (For example, it might be impossible to maintain that pose while keeping the cables under tension, or moving to that pose might require crossing cables).
When using this algorithm, to find the initial pose, we suggest to use the first method of trying 1000 different initial guesses, and choosing the pose with the lowest loss function. But thereafter, sample the cable lengths often, and use the previously measured pose as the initial guess. In our numerical simulations, the pose changes by about 0.3% per time step (about 1 ms), and the algorithm has never failed to solve the forward kinematics problem.

11. Dynamics of the End Effector

The dynamics equations of motion of rigid bodies is well known. But in this section, we also consider the additional effect of overcoming inertia from the actuators. Furthermore, we feel that it is nice to see this stated and derived in the context of dual quaternions.
Let us suppose that the kinetic energy of the parallel robot is given by
e = 1 2 φ · M φ ,
where M is a ( 6 × 6 ) positive definite matrix, which depends only upon η , and which we call the effective mass of the parallel robot.
We define the no-load forces to be the actuator forces if there is no end effector present:
f 0 = M 0 ¨ ,
where M 0 is a positive definite ( n × n ) matrix denoting what we shall call the effective no-load mass of the actuators. This might be caused by, for example, the reflected moment of inertia of the motor that drives each actuator, in which case M 0 is simply a constant multiple of the identity. Since 1 2 ˙ · M 0 ˙ = 1 2 φ · Λ T M 0 Λ φ is part of the kinetic energy, it follows that M Λ T M 0 Λ is a positive semi-definite matrix.
If m e is the mass of the end effector, M e is the moment of inertia tensor of the end effector about its center of mass, and r 0 is the center of mass of the end effectors, all measured with respect to the moving frame, then
e = 1 2 m e | v + w × r 0 | 2 + 1 2 w · M e w + 1 2 ˙ · M 0 ˙ ,
that is
M = 4 M e m e S ( r 0 ) 2 m e S ( r 0 ) m e S ( r 0 ) m e I + Λ T M 0 Λ .
Theorem 1. 
If the kinetic energy satisfies Equation (84) with Equation (87) holding, and the potential energy v is calculated in the usual manner from the mass of the end effector in a constant gravitational field whose value is g measured with respect to the moving frame, then the equation of motion is
τ = μ + M α ,
where
μ = 2 w × ( M e w ) + 2 ϵ m e w × v + 2 m e ( ( w · r 0 ) ( w × r 0 ) + r 0 × ( w × v ) + ϵ w × ( w × r 0 ) ) + Λ T M 0 ( L φ Λ ) φ 2 m e ( r 0 × g + ϵ g ) ,
and
M α = 2 M e w ˙ + 2 m e ( r 0 × v ˙ ) + 2 ϵ m e v ˙ + 2 ϵ m e ( w ˙ × r 0 ) + Λ T M 0 Λ α .
The various terms in Equation (89) can be interpreted as follows.
  • M e w ˙ and m e v ˙ are inertial resistance to change of angular and translational velocities.
  • m e w × v is the centripetal force required to rotate and move at the same time.
  • w × ( M e w ) is the precession torque (so that if the moment of inertia is not isotropic, then the body spins in a counter-intuitive manner, see, for example, [35]).
  • Λ T M 0 ( L φ Λ ) φ + Λ T M 0 Λ α = T f 0
    is the wrench required to move the actuators, where the no-load forces may be computed using
    f 0 = M 0 L φ ( Λ φ ) + M 0 Λ α .
  • m e g is the force due to gravity.
  • All terms containing r 0 are corrections required since the center of gravity isn’t necessarily the same as the origin of the moving frame of reference. They could be derived by first finding the equations of motion when r 0 = 0 , and then applying Equations (27) and (28).

Numerical Verification of the Dynamics Equations

The way we numerically verified these equations was by running a simulated motion, and then calculating the work done in three ways. The first method was to integrate the inner product of the twist and the wrench on the end effector. The second method was to integrate the sum of the actuator force times the rate of change of the length of the actuator. The third method was to calculate the total kinetic energy using Equation (86), and the potential energy using the standard mass times gravity time height formula. The numerical simulations gave the same results for all three methods up to machine precision.

12. Conclusions

This paper has given a comprehensive and consistent description of how to use dual quaternions to represent poses, rigid motions, twists, and wrenches. We have introduced the notion of the Lie derivative for dual quaternions. We have shown how these formula are helpful for first producing Newton-Raphson methods for solving the forward kinematics problem for parallel robots, and secondly for a self contained derivation for the dynamic equations of motion of the end effector that includes the inertia of the actuators.
Finally, in Equation (A1), we give an approximation of the normalization of a vector dual quaternion perturbation of the identity, which shows that it is equal up to the second order to the exponential of the vector dual quaternion. This equation was essential for calculating the Hessian in the forwards kinematics algorithms. We feel that this formula will be of independent interest to other researchers in the field of dual quaternions.

Author Contributions

Conceptualization, S.M.-S. and C.S.; software, S.M.-S.; formal analysis, S.M.-S.; investigation, S.M.-S. and C.S.; resources, C.S.; writing—original draft preparation, S.M.-S.; writing—review and editing, S.M.-S. and C.S.; project administration, C.S.; funding acquisition, C.S. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Data Availability Statement

We hope to have software available sometime in the future at https://stephenmontgomerysmith.github.io/software (accessed on 1 November 2023).

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. Proofs

Lemma A1. 
If θ is a vector dual quaternion, then
( 1 + θ ) ^ = 1 + θ + 1 2 θ 2 + O ( θ 3 ) .
We remark that since the exponential of a unit dual quaternion θ [19] satisfies
exp ( θ ) = k = 0 θ k k ! ,
then by Equation (A1) we have
exp ( θ ) = ( 1 + θ ) ^ + O ( θ 3 ) .
Let us clarify the big-Oh notation. We say that
η ( θ ) = O ( γ ( θ ) )
if there exists a constant c > 0 such that if size l ( θ ) is sufficiently small, then
size l ( η ( θ ) ) c size l ( γ ( θ ) ) .
Let us show that this definition does not depend upon the characteristic length l. In [23], we show how to define the ’functional calculus’ of dual quaternions. That is, given a continuously differentiable function f : C C , satisfying f ( z ¯ ) = f ( z ) ¯ , we can make sense of f ( η ) for any dual quaternion η = A + ϵ B . First we can define f on quaternions by realizing that any unit vector n satisfies n 2 = 1 , and hence one merely treats n as an imaginary unit. Next, if B is decomposed as B 1 + b 2 , where B 1 commutes with A, and b 2 is a vector quaternion that anti-commutes with Im ( A ) , and setting
f x ( z ) = lim h 0 , h R f ( z + h ) h ,
f i y ( z ) = lim h 0 , h R f ( z + i h ) i h ,
h f ( z ) = f ( z ) f ( z ¯ ) z z ¯ if Re ( z ) 0 f i y ( z ) if Re ( z ) = 0 ,
then we have
f ( A + ϵ B ) = f ( A ) + ϵ f x ( A ) Re ( B 1 ) + ϵ f i y ( A ) Im ( B 1 ) + ϵ h f ( A ) b 2 .
This means that for any functions f and g, that size l ( f ( A + ϵ B ) ) size l ( g ( A + ϵ B ) ) for all quaternions B if and only if | f ( A ) | | g ( A ) | , | f x ( A ) | | g x ( A ) | , | f i y ( A ) | | g i y ( A ) | , and | h f ( A ) | | h g ( A ) | . In particular, the comparison of size does depend upon which characteristic length l is used.
Proof of Lemma A1. 
Since θ * = θ , we have
| 1 + θ | 2 = 1 θ 2 .
Hence using Taylor’s series
| 1 + θ | 1 = 1 + 1 2 θ 2 + O ( θ 3 )
from which it follows that
( 1 + θ ) ^ = ( 1 + θ ) ( 1 + θ ) 1 = 1 + θ + 1 2 θ 2 + O ( θ 3 ) .
Lemma A2. 
The definition of L θ g in Equation (41) does not depend upon the extension of g from S D H to a neighborhood of S D H in D H .
Proof. 
First note that from Equation (A1) we have
d d r ( 1 + r θ ) ^ r = 0 = θ .
Let g 1 and g 2 be two extensions of g from S D H to a neighborhood of S D H in D H . Define
g ˜ ( η ) = g 1 ( η ^ ) = g 2 ( η ^ ) .
Then
d d r g ˜ ( η ( 1 + r θ ) ) r = 0 = d d r g 1 ( η ( 1 + r θ ) ^ ) r = 0 = d d r g 1 ( η ( 1 + r θ ) ) r = 0 ,
where the second equality follows from the chain rule and Equation (A13). Similarly for g 2 . □
Proof that Definition (41) implies Equation (43). 
Using the chain rule for partial derivatives, we obtain
d d r g ( η ( 1 + r θ ) ) = i = 1 8 g η i ( η ( 1 + r θ ) ) d d r ( η ( 1 + r θ ) ) i = i = 1 8 g η i ( η ( 1 + r θ ) ) ( η θ ) i .
Now set r = 0 . □
Proof that Equation (47) implies Equation (48).
Equation (47) can be written as
a = 2 ( θ 1 i + θ 2 j + θ 3 k ) , b = 2 ( θ 4 i + θ 5 j + θ 6 k ) ,
where θ i is the β i component of θ as described in (17). If f is any function of the vector dual quaternions, we have
θ i f ( θ ) = j = 1 3 a j θ i a j f ( θ ) + j = 1 3 b j θ i b j f ( θ ) = 2 a i f ( θ ) if 1 i 3 2 b i 3 f ( θ ) if 4 i 6 .
Proof of Equations (53) and (54).
We have
s ˜ = Q s Q * + 2 B Q * ,
n ˜ = Q n Q * ,
or
s = Q * ( s ˜ Q 2 B ) ,
n = Q * n ˜ Q .
Now if θ = 1 2 a + 1 2 ϵ b , then
L θ ( η ) = η ψ = 1 2 Q a + 1 2 ϵ ( Q b + B a ) ,
that is
L θ ( Q ) = 1 2 Q a ,
L θ ( B ) = 1 2 ( Q b + B a ) .
Remembering a * = a , and that a s s a = 2 a × s , we obtain
L θ s = a × s b ,
L θ n = a × n .
Proof of Equation (62).
The rate of change of work done on the parallel robot can be computed in two different ways, either using Equations (29) or (57). Substituting in Equations (60) and (61), we obtain
T f · φ = f · Λ φ = Λ T f · φ ,
the last equality being a standard formula for the transpose of a matrix. Since this is true for arbitrary actuator forces f and end effector twists φ , the result follows. □
Proof of Equation (64).
Applying the rules given in Section 6, we obtain
L θ L ψ g = L θ g η · ( η ψ )
= i = 1 8 L θ g η i ( η ψ ) i + g η · L θ ( η ψ )
= i = 1 8 j = 1 8 2 g η j η i ( η θ ) j ( η ψ ) i + g η · ( η ψ θ )
= ( η ψ ) · 2 g η 2 ( η θ ) + g η · ( η θ ψ ) .
As a corollary to Equation (64), we obtain the well known identity:
L θ L ψ g L ψ L θ g = L ( θ ψ ψ θ ) g ,
which implies that Lie derivatives do not necessary commute.
Proof of Equation (65).
We wish to find the Jacobian δ and the Hessian H of b ˜ at the origin, where
b ˜ ( θ ) = b ( η ( 1 + θ ) ^ ) .
We can find this by considering its Taylor series expansion
b ˜ ( θ ) = b ˜ ( 0 ) + i = 1 6 δ i θ i + 1 2 i , j = 1 6 H i , j θ i θ j + O ( θ 3 ) ,
where
θ = i = 1 6 θ i β i .
Using the Taylor series, and using Equation (A1), one obtains
b ˜ ( θ ) = b ( η ( 1 + θ ) ^ ) = b ( η ( 1 + θ + 1 2 θ 2 + O ( θ 3 ) ) ) = b ( η ) + b η · ( η ( θ + 1 2 θ 2 ) ) = + 1 2 ( η θ ) · 2 b η 2 ( η θ ) + O ( θ 2 ) = b ( η ) + b η · ( η ( θ ) ) = + 1 2 ( η θ ) · 2 b η 2 ( η θ ) + b η · ( 1 2 η θ 2 ) + O ( θ 3 ) .
Now by comparing coefficients, and considering Equations (43) and (64), we obtain
δ i = L i b ( η ) , ( 1 i 6 ) ,
and
H i , j = ( η β i ) · 2 b η 2 ( η β j ) + b η · ( 1 2 η ( β i β j + β j β i ) ) = 1 2 ( L i L j b ( η ) + L j L i b ( η ) ) , ( 1 i , j 6 ) .
Proof of Equation (67).
Suppose that the end effector is moving with pose η = Q + ϵ B , and twist ϕ = 1 2 w + 1 2 ϵ v , then with respect to the fixed frame of reference, the velocity of the attachment point r k is Q ( v + w × r k ) Q * . And if a force f k is applied along the direction u k , then the force applied to the end-effector is f k Q u k Q * with respect to the fixed frame of reference.
Hence computing the rate of change of virtual work, we obtain
f k ˙ k = ( v + w × r k ) · f k u k .
Therefore
˙ k = u k · v + r k × u k · w .
The result follows by Equation (60). □
For complex situations, where the cables might pass through pulleys, the simplicity of Equation (67) can be a bit surprising. This might best be intuitively understood by seeing that the involute of the curve describing the shape of the pulley is the curve traced by the end effector attachment point when the cable length of that actuator is kept fixed, and that the evolute is the opposite process.
Proof of Equation (69).
Note that
L ψ u k = 1 | r k s k | P u k L ψ s k .
Now apply Equation (53). □
Next, we justify the Newton-Raphson Methods for forward kinematics. The method as usually states only applies to linear vector spaces, whereas we are working on the non-linear manifold of unit dual quaternions. Thus given η k , we need to define a map from the vector space of vector dual quaternions to unit dual quaternions close to η k . See, for example, [36].
Most papers on the Newton-Raphson Method on manifolds construct this map using the so called exp function [37,38,39]. So the map is
θ η k exp ( θ ) .
The exp map in these papers is following the path of a geodesic on the manifold, and this is equivalent to using the equations of motion of the end effector as described in Section 11. Another exp map is to follow a one-parameter subgroup, or equivalently, Equation (A2). We do not take these approaches. Our approach is to normalize:
θ η k ( 1 + θ ) ^ .
(However, this is numerically close to the second approach, as is shown by Equation (A3). Using normalization instead of the exp map slightly reduces the complexity of the calculations as transcendental trigonometric functions are not required. But if one wants to use the exp map, simply replace ( 1 + θ ) ^ by exp ( θ ) throughout).
The main substantive difference between these methods, and the standard method that is used on linear vector spaces, is that the map from the linear space of vector dual quaternions to the manifold of unit dual quaternions changes with each iteration, since the map depends upon η k . But the theory that the Newton-Raphson Method converges with quadratic order is based upon examination of each iteration separately, so this shouldn’t pose a great issue.
Justification of Equation (80).
If F : R 6 R 6 is a function for which we wish to solve for F ( x ) = 0 , the method is to iterate
x F x 1 F ( x ) .
Our approach, then, is to consider the map
θ F ( θ ) : = L ( η k ( 1 + θ ) ^ ) .
The prior guess is then θ k = 0 . We have that
F θ | θ = 0 = Λ ( η k ) .
The result follows. □
Justification of Equation (83).
We seek to find the pose η so that L ( η ) is close as possible to . This is performed by minimizing the loss function
b ( η ) = 1 2 | L ( η ) | 2 .
The standard Newton-Raphson Method for optimizing the real valued quantity F ( x ) , where x is an element of a vector space, is to iterate
x 2 F x 2 1 F x .
In our case x is θ ,
F ( θ ) = b ( η k ( 1 + θ ) ^ ) ,
and our previous iterate is θ k = 0 . The Jacobian is
δ k = F ( θ ) θ θ = 0 = ( L i b ( η k ) ) 1 i 6 = m = 1 n Λ m , i ( L m ( η k ) m ) 1 i 6 ,
and the Hessian is H k , which by Equation (65) is
H k = 1 2 ( L i L j b ( η k ) + L j L i b ( η k ) ) 1 i , j 6 ,
noting that
L i L j b ( η k ) = m = 1 n Λ m , i Λ m , j + L i Λ m , j ( L m ( η k ) m ) .
Now we work on proving Theorem 1. We use the Euler-Lagrange equations. (However, one could also use standard formulas for rotating bodies, and Newtonian physics, to obtain the same result).
Define the cross product of two vector dual quaternions α = a + ϵ b and β = c + ϵ d by
α × β = 1 2 ( α β β α ) = a × c + ϵ ( a × d + b × c ) .
Define the adjoint products of vector dual quaternions by
α β = c × a + d × b + ϵ ( c × b ) ,
α β = β α ,
which can also be defined by the property that for all vector dual quaternions α , β , and γ we have
( α × β ) · γ = α · ( γ β ) = β · ( α γ ) .
(Note that in the Lie algebra literature, the map β α × β is often denoted ad α . Thus the map γ α γ is the formal dual of ad α ).
Theorem A1. 
If the kinetic energy e satisfies Equation (84), and v = v ( η ) denotes the potential energy, then the equation of motion is
τ = μ 1 + μ 2 + M α ,
where
μ 1 = L φ M φ 1 2 L ( φ · M φ ) + L v ,
and for any constant vector dual quaternion ψ we have
ψ · μ 2 = 2 φ · M ( ψ × φ ) = 2 M φ · ( ψ × φ ) ,
that is,
μ 2 = 2 ( M φ ) φ .
Proof. 
In preparation to apply the Euler-Lagrange Equation, given η 0 S D H , we define a map from an open neighborhood of the origin in R 6 to an open neighborhood of η 0 in S D H
θ η ( θ ) = η 0 ( 1 + θ ) ^ = η 0 ( 1 + θ + 1 2 θ 2 ) + O ( θ 3 ) ,
where in the last inequality we used Equation (A1). Then we have
φ = η 1 η ˙ = ( 1 + θ ) ^ 1 ( θ ˙ + 1 2 ( θ ˙ θ + θ θ ˙ ) ) + O ( θ 2 ) = θ ˙ + 1 2 ( θ ˙ θ θ θ ˙ ) + O ( θ 2 ) ,
and
α = θ ¨ + O ( θ ) .
The Lagrangian of the parallel robot is
l = e v = 1 2 φ · M φ v .
We use the local coordinate system θ given by Equation (A62). The Euler-Lagrange Equation [40,41] tells us
d d t l θ ˙ l θ = τ .
We suppose that η 0 = η ( t 0 ) , and θ ( t 0 ) = 0 , and from now on in this proof, all equations are stated assuming the condition t = t 0 . Thus we only prove our results when t = t 0 . But since t 0 is arbitrary, this is not a limitation. However, it is important that derivatives are calculated before setting t = t 0 . In particular, this means that for any function f of η that
f θ = L f .
We have
d d t e θ ˙ = M α + M ˙ φ = M α + θ ˙ · M θ θ ˙ = M α + φ · M θ φ ,
and
e θ = θ ˙ · M θ ( θ ˙ θ θ θ ˙ ) + 1 2 θ ˙ · M θ θ ˙ = φ · M θ ( φ θ θ φ ) + 1 2 φ · M θ φ .
Note that if f is any linear function whose domain is the vector dual quaternions, then
ψ · θ f ( θ ) = f ( ψ ) .
Thus taking the dot product of Equation (A69) with any constant vector dual quaternion ψ , we obtain the result. □
Lemma A3. 
If v is the potential energy of the end effector in a constant gravity field, whose value with respect to the moving frame is g , then
L v = 2 m 0 ( r 0 × g + ϵ g ) .
Proof. 
Let r be a constant point expressed with respect to the moving frame. We have
v = m 0 g · ( r r 0 ) .
If θ = 1 2 a + 1 2 ϵ b is a vector dual quaternion, then by Equation (54), it follows that
L θ v = m 0 ( ( a × g ) · ( r r 0 ) + g · ( a × r + b ) ) = m 0 ( a · r 0 × g + b · g ) .
Proof of Theorem 1. 
The potential energy part is covered by Lemma A3. For the parts coming from the kinetic energy, using linearity, it is sufficient to prove it for the additive parts of M . The part not involving m 0 is proved using Theorem A1, various vector identities, and remembering Equation (36).
So we only need to prove the kinetic energy portion in the case M = Λ T M 0 Λ . The easiest way to show this is to simply differentiate M 0 ˙ = M 0 Λ φ with respect to time. To do it directly from the formulas is more complicated, as we now show. For any constant vector dual quaternion ψ , we have
ψ · ( L φ ( M φ ) 1 2 L ( φ · M φ ) ) = ( L φ ( ψ · M φ ) 1 2 L ψ ( φ · M φ ) ) = L φ ( ( Λ ψ ) · M 0 ( Λ φ ) ) 1 2 L ψ ( ( Λ φ ) · M 0 ( Λ φ ) ) = L φ L φ L · M 0 L ψ L + L φ L ψ L · M 0 L φ L L ψ L φ L · M 0 L φ L = L φ ( Λ φ ) · M 0 Λ ψ + L ( φ ψ ψ φ ) L · M 0 Λ φ = ψ · Λ T M 0 L φ ( Λ φ ) + Λ ( φ ψ ψ φ ) · M 0 Λ φ = ψ · Λ T M 0 L φ ( Λ φ ) + ( φ ψ ψ φ ) · M 0 φ ,
where we used Equation (A33). Then it is simply a matter of collecting terms. □

References

  1. Chirikjian, G.S.; Mahony, R.; Ruan, S.; Trumpf, J. Pose Changes From a Different Point of View. J. Mech. Robot. 2018, 10, 021008. [Google Scholar] [CrossRef]
  2. Ball, R.S. The theory of Screws: A Study in the Dynamics of a Rigid Body; Hodges, Foster and Co.: Dublin, Ireland, 1876. [Google Scholar]
  3. Bottema, O.; Roth, B. Theoretical Kinematics; North-Holland: Amsterdam, The Netherlands, 1979. [Google Scholar]
  4. Gallardo-Alvarado, J. Kinematic Analysis of Parallel Manipulators by Algebraic Screw Theory; Springer: Cham, Switzerland, 2016. [Google Scholar]
  5. Selig, J.M. Geometric Fundamentals of Robotics, 2nd ed.; Springer Inc.: New York, NY, USA, 2005. [Google Scholar]
  6. McAulay, A. Octonions: A development of Clifford’s Biquaternions; Cambridge University Press: Cambridge, UK, 1988. [Google Scholar]
  7. Clifford, M.A. Preliminary Sketch of Biquaternions. Proc. Lond. Math. Soc. 1871, 1–4, 81–395. [Google Scholar] [CrossRef]
  8. Adorno, B.V. Robot Kinematic Modeling and Control Based on Dual Quaternion Algebra—Part I: Fundamentals. 2017. Available online: https://hal.science/hal-01478225v1 (accessed on 24 November 2023).
  9. Perez, A.; McCarthy, J.M. Dual Quaternion Synthesis of Constrained Robotic Systems. ASME. J. Mech. Des. 2004, 126, 425–435. [Google Scholar] [CrossRef]
  10. Kenwright, B. A Beginners Guide to Dual-Quaternions, What They Are, How They Work, and How to Use Them for 3D Character Hierarchies. Available online: https://cs.gmu.edu/~jmlien/teaching/cs451/uploads/Main/dual-quaternion.pdf (accessed on 1 November 2023).
  11. Montgomery-Smith, S.; Shy, C. An introduction to using dual quaternions to study kinematics. arXiv 2023, arXiv:2203.13653. [Google Scholar]
  12. Schilling, M. Universally manipulable body models—Dual quaternion representations in layered and dynamic MMCs. Auton Robot 2011, 30, 399. [Google Scholar] [CrossRef]
  13. Schilling, M. Hierarchical Dual Quaternion-Based Recurrent Neural Network as a Flexible Internal Body Model. In Proceedings of the 2019 International Joint Conference on Neural Networks (IJCNN), Budapest, Hungary, 14–19 July 2019; pp. 1–8. Available online: https://ieeexplore.ieee.org/abstract/document/8852328 (accessed on 24 November 2023). [CrossRef]
  14. Silva, F.F.A.; Quiroz-Omaña, J.J.; Adorno, B.V. Dynamics of Mobile Manipulators using Dual Quaternion Algebra. J. Mech. Robot. 2022, 14, 061005. [Google Scholar] [CrossRef]
  15. Agrawal, O.P. Hamilton operators and dual-number-quaternions in spatial kinematics. Mech. Mach. Theory 1987, 22, 569–575. [Google Scholar] [CrossRef]
  16. Dooley, J.R.; McCarthy, J.M. Spatial rigid body dynamics using dual quaternion components. In Proceedings of the 1991 IEEE International Conference on Robotics and Automation, Sacramento, CA, USA, 9–11 April 1991; Volume 1, pp. 90–95. [Google Scholar] [CrossRef]
  17. Han, D.-P.; Wei, Q.; Li, Z.-X. Kinematic Control of Free Rigid Bodies Using Dual Quaternions. Int. J. Autom. Comput. 2008, 5, 319–324. [Google Scholar] [CrossRef]
  18. Spong, M.W.; Hutchinson, S.; Vidyasagar, M. Robot Modeling and Control; Wiley: Hoboken, NJ, USA, 2006. [Google Scholar]
  19. Wang, X.; Han, D.; Yu, C.; Zheng, Z. The geometric structure of unit dual quaternions with application in kinematic control. J. Math. Anal. Appl. 2012, 389, 1352–1364. [Google Scholar] [CrossRef]
  20. Kussaba, H.T.M.; Figueredo, L.F.C.; Ishihara, J.Y.; Adorno, B.V. Hybrid kinematic control for rigid body pose stabilization using dual quaternions. J. Frankl. Inst. 2017, 354, 2769–2787. [Google Scholar] [CrossRef]
  21. Kavan, L.; Collins, S.; Zára, J.; O’Sullivan, C. Skinning with Dual Quaternions. In Proceedings of the I3D ’07: Proceedings of the 2007 Symposium on Interactive 3D Graphics and Games, Seattle, WA, USA, 30 April–2 May 2007. [Google Scholar] [CrossRef]
  22. Kavan, L.; Collins, S.; Zára, J.; O’Sullivan, C. Geometric Skinning with Approximate Dual Quaternion Blending. ACM Trans. Graph. 2008, 27, 105. [Google Scholar] [CrossRef]
  23. Montgomery-Smith, S. Functional calculus for dual quaternions. Adv. Appl. Clifford Algebr. 2023, 33, 36. [Google Scholar] [CrossRef]
  24. Selig, J.M. Exponential and Cayley Maps for Dual Quaternions. Adv. Appl. Clifford Algebr. 2010, 20, 923–936. [Google Scholar] [CrossRef]
  25. Montgomery-Smith, S. Control of systems by parallel actuators. Wseas Trans. Syst. Control 2022, 17, 207–213. [Google Scholar] [CrossRef]
  26. Altmann, S.L. Hamilton, Rodrigues, and the Quaternion Scandal. Math. Mag. 1989, 62, 291–308. [Google Scholar] [CrossRef]
  27. Pujol, J. Hamilton, Rodrigues, Gauss, Quaternions, and Rotations: A Historical Reassessment. Commun. Math. Anal. 2012, 13, 1–14. [Google Scholar]
  28. Yano, K. The Theory of Lie Derivatives and its Applications; North-Holland: Amsterdam, The Netherlands, 1957; ISBN 978-0-7204-2104-0. [Google Scholar]
  29. Lee, J. Introduction to Smooth Manifolds, Graduate Texts in Mathematics 218, 2nd ed.; Springer: New York, NY, USA; London, UK, 2012; ISBN 978-1-4419-9981-8. [Google Scholar]
  30. Helgason, S. Differential Geometry, Lie Groups and Symmetric Spaces; Academic Press: New York, NY, USA, 1978. [Google Scholar]
  31. Gosselin, C.; Angeles, J. Singularity analysis of closed-loop kinematic chains. IEEE Trans. Robot. Autom. 1990, 6, 281–290. [Google Scholar] [CrossRef]
  32. Merlet, J.-P. Singularity of Cable-Driven Parallel Robot with Sagging Cables: Preliminary Investigation. In Proceedings of the International Conference on Robotics and Automation (ICRA), Montreal, QC, Canada, 20–24 May 2019; pp. 504–509. [Google Scholar] [CrossRef]
  33. Yang, X.; Wu, H.; Li, Y.; Chen, B. A dual quaternion solution to the forward kinematics of a class of six-DOF parallel robots with full or reductant actuation. Mech. Mach. Theory 2017, 107, 27–36. [Google Scholar] [CrossRef]
  34. Pott, A.; Schmidt, V. On the Forward Kinematics of Cable-Driven Parallel Robots. In Proceedings of the 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Hamburg, Germany, 28 September–2 October 2015. [Google Scholar]
  35. Kawano, D.T.; Novelia, A.; O’Reilly, O.M. A Tumbling T-Handle in Space: The Dzhanibekov Effect. Available online: https://rotations.berkeley.edu/a-tumbling-t-handle-in-space (accessed on 1 November 2023).
  36. Huper, K.; Trumpf, J. Newton-like methods for numerical optimization on manifolds. In Proceedings of the Conference Record of the Thirty-Eighth Asilomar Conference on Signals, Systems and Computers, Pacific Grove, CA, USA, 7–10 November 2004; Volume 1, pp. 136–139. [Google Scholar] [CrossRef]
  37. Dedieu, J.-P.; Priouret, P.; Malajovich, G. Newton’s Method on Riemannian Manifolds: Covariant Alpha-Theory. Ima J. Numer. Anal. 2003, 23, 395–419. [Google Scholar] [CrossRef]
  38. Fernandes, T.A.; Ferreira, O.P.; Yuan, J. On the Superlinear Convergence of Newton’s Method on Riemannian Manifolds. J. Optim. Theory Appl. 2017, 173, 828–843. [Google Scholar] [CrossRef]
  39. Ferreira, O.P.; Svaiter, B.F. Kantorovich’s Theorem on Newton’s Method in Riemannian Manifolds. J. Complex. 2002, 18, 304–329. [Google Scholar] [CrossRef]
  40. Goldstein, H.; Poole, C.P.; Safko, J.L. Classical Mechanics, 3rd ed.; Addison-Wesley: Boston, MA, USA, 2001. [Google Scholar]
  41. Arnold, V.I. Mathematical Methods of Classical Mechanics, 2nd ed.; Springer: Berlin/Heidelberg, Germany, 1989. [Google Scholar]
Figure 1. Schematic of a cable-driven parallel robot.
Figure 1. Schematic of a cable-driven parallel robot.
Machines 11 01056 g001
Figure 2. The pulley and attached cable.
Figure 2. The pulley and attached cable.
Machines 11 01056 g002
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Montgomery-Smith, S.; Shy, C. Using Lie Derivatives with Dual Quaternions for Parallel Robots. Machines 2023, 11, 1056. https://doi.org/10.3390/machines11121056

AMA Style

Montgomery-Smith S, Shy C. Using Lie Derivatives with Dual Quaternions for Parallel Robots. Machines. 2023; 11(12):1056. https://doi.org/10.3390/machines11121056

Chicago/Turabian Style

Montgomery-Smith, Stephen, and Cecil Shy. 2023. "Using Lie Derivatives with Dual Quaternions for Parallel Robots" Machines 11, no. 12: 1056. https://doi.org/10.3390/machines11121056

APA Style

Montgomery-Smith, S., & Shy, C. (2023). Using Lie Derivatives with Dual Quaternions for Parallel Robots. Machines, 11(12), 1056. https://doi.org/10.3390/machines11121056

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop