A Mathematical Introduction to Robotic Manipulation - 2 (part 1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mobius_strip/article/details/89321266

Chapter 2 Rigid Body Motion

A rigid motion of an object is a motion which preserves distance between points. The study of robot kinematics, dynamics, and control has at its heart the study of the motion of rigid objects. In this chapter, we provide a description of rigid body motion using the tools of linear algebra and screw theory.

Chasles proved that a rigid body can be moved from any one position to any other by a movement consisting of rotation about a straight line followed by translation parallel to that line. This motion is what we refer to in this book as a screw motion.

The infinitesimal version of a screw motion is called a twist and it provides a description of the instantaneous velocity of a rigid body in terms of its linear and angular components. Screws and twists play a central role in our formulation of the kinematics of robot mechanisms.

Any system of forces acting on a rigid body can be replaced by a single force applied along a line, combined with a torque about that same line. Such a force is referred to as a wrench. Wrenches are dual to twists, so that many of the theorems which apply to twists can be extended to wrenches.

In this chapter, we present a more modern treatment of the theory of screws based on linear algebra and matrix groups. The fundamental tools are the use of homogeneous coordinates to represent rigid motions and the matrix exponential, which maps a twist into the corresponding screw motion.

There are two main advantages to using screws, twists, and wrenches for describing rigid body kinematics. The first is that they allow a global description of rigid body motion which does not suffer from singularities due to the use of local coordinates. Such singularities are inevitable when one chooses to represent rotation via Euler angles, for example. The second advantage is that screw theory provides a very geometric description of rigid motion which greatly simplifies the analysis of mechanisms.

1 Rigid Body Transformations

The motion of a particle moving in Euclidean space is described by giving the location of the particle at each instant of time, relative to an inertial Cartesian coordinate frame. Specifically, we choose a set of three orthonormal axes and specify the particle’s location using the triple ( x , y , z ) R 3 (x,y,z) ∈ \mathbb R^3 , where each coordinate gives the projection of the particle’s location onto the corresponding axis. A trajectory of the particle is represented by the parameterized curve p ( t ) = ( x ( t ) , y ( t ) , z ( t ) ) R 3 p(t) = (x(t), y(t), z(t)) ∈ \mathbb R^3 .

In robotics, we are frequently interested not in the motion of individual particles, but in the collective motion of a set of particles, such as the link of a robot manipulator. To this end, we loosely define a perfectly rigid body as a completely “undistortable” body. More formally, a rigid body is a collection of particles such that the distance between any two particles remains fixed, regardless of any motions of the body or forces exerted on the body. Thus, if p and q are any two points on a rigid body then, as the body moves, p and q must satisfy
p ( t ) q ( t ) = p ( 0 ) q ( 0 ) = c o n s t a n t . \Vert p(t) − q(t) \Vert = \Vert p(0) − q(0) \Vert = constant.

A rigid motion of an object is a continous movement of the particles in the object such that the distance between any two particles remains fixed at all times. The net movement of a rigid body from one location to another via a rigid motion is called a rigid displacement. In general, a rigid displacement may consist of both translation and rotation of the object.

Given an object described as a subset O O of R 3 R^3 , a rigid motion of an object is represented by a continuous family of mappings g ( t ) : O R 3 g(t) : O → \mathbb R^3 which describe how individual points in the body move as a function of time, relative to some fixed Cartesian coordinate frame. That is, if we move an object along a continuous path, g(t) maps the initial coordinates of a point on the body to the coordinates of that same point at time t. A rigid displacement is represented by a single mapping g : O R 3 g : O → \mathbb R^3 which maps the coordinates of points in the rigid body from their initial to final configurations.

Given two points p , q O p,q ∈ O , the vector v R 3 v ∈ \mathbb R^3 connecting p p to q q is defined to be the directed line segment going from p p to q q . In coordinates this is given by v = q p v = q − p with p , q R 3 p, q ∈ \mathbb R^3 . Though both points and vectors are represented by 3-tuples of numbers, they are conceptually quite different. A vector has a direction and a magnitude. (By the magnitude of a vector, we will mean its Euclidean norm, i.e., v 1 2 + v 2 2 + v 3 2 \sqrt{v_1^2 + v_2^2 + v_3^2} .) It is, however, not attached to the body, since there may be other pairs of points on the body, for instance r r and s s with q p = s r q −p = s −r , for which the same vector v also connects r to s. A vector is sometimes called a free vector to indicate that it can be positioned anywhere in space without changing its meaning.

The action of a rigid transformation on points induces an action on vectors in a natural way. If we let g : O R 3 g : O → \mathbb R^3 represent a rigid displacement, then vectors transform according to
g ( v ) = g ( q ) g ( p ) . g_∗(v) = g(q) − g(p).
Note that the right-hand side is the difference of two points and is hence also a vector.

Since distances between points on a rigid body are not altered by rigid motions, a necessary condition for a mapping g : O R 3 g : O → \mathbb R^3 to describe a rigid motion is that distances be preserved by the mapping. However, this condition is not sufficient since it allows internal reflections, which are not physically realizable. That is, a mapping might preserve distance but not preserve orientation. For example, the mapping ( x , y , z ) ( x , y , z ) (x, y, z) \rightarrow (x, y, −z) preserves distances but reflects points in the body about the xy plane. To eliminate this possibility, we require that the cross product between vectors in the body also be preserved. We will collect these requirements to define a rigid body transformation as a mapping from R 3 \mathbb R^3 to R 3 \mathbb R^3 which represents a rigid motion:

Definition 2.1. Rigid body transformation

A mapping g : R 3 R 3 g :\mathbb R^3 → \mathbb R^3 is a rigid body transformation if it satisfies the following properties:

  1. Length is preserved: g ( p ) g ( q ) = p q \Vert g(p)−g(q) \Vert = \Vert p−q \Vert for all points p , q R 3 . p, q ∈ \mathbb R^3.
  2. The cross product is preserved: g ( v × w ) = g ( v ) × g ( w ) g_∗(v × w) = g_∗(v) × g_∗(w) for all vectors v , w R 3 v, w ∈ \mathbb R^3 .

There are some interesting consequences of this definition. The first is that the inner product is preserved by rigid body transformations. One way to show this is to use the polarization identity,
v 1 T v 2 = 1 4 ( v 1 + v 2 2 v 1 v 2 2 ) v_1^T v_2 = \frac{1}{4}(||v_1 + v_2||^2 − ||v_1 − v_2||^2)

and the fact that
v 1 + v 2 = g ( v 1 ) + g ( v 2 ) v 1 v 2 = V e r t g ( v 1 ) g ( v 2 ) \Vert v1 + v2 \Vert = \Vert g_∗(v_1) + g_∗(v2) \Vert \vert v_1 − v_2 \Vert= |Vert g_∗(v_1) − g_∗(v_2) \Vert
to conclude that for any two vectors v 1 , v 2 v_1, v_2 ,
v 1 T v 2 = g ( v 1 ) T g ( v 2 ) v_1^T v_2 = g_∗(v_1)^Tg_∗(v_2)

In particular, orthogonal vectors are transformed to orthogonal vectors. Coupled with the fact that rigid body transformations also preserve the cross product (property 2 of the definition above), we see that rigid body transformations take orthonormal coordinate frames to orthonormal coordinate frames.

The fact that the distance between points and cross product between vectors is fixed does not mean that it is inadmissible for particles in a rigid body to move relative to each other, but rather that they can rotate but not translate with respect to each other. Thus, to keep track of the motion of a rigid body, we need to keep track of the motion of any one particle on the rigid body and the rotation of the body about this point. In order to do this, we represent the configuration of a rigid body by attaching a Cartesian coordinate frame to some point on the rigid body and keeping track of the motion of this body coordinate frame relative to a fixed frame. The motion of the individual particles in the body can then be retrieved from the motion of the body frame and the motion of the point of attachment of the frame to the body. We shall require that all coordinate frames be right-handed: given three orthonormal vectors x , y , z R 3 x, y, z ∈ \mathbb R^3 which define a coordinate frame, they must satisfy z = x × y z = x×y .

Since a rigid body transformation g : R 3 R 3 g : \mathbb R^3 → \mathbb R^3 preserves the cross product, right-handed coordinate frames are transformed to right-handed coordinate frames. The action of a rigid transformation g g on the body frame describes how the body frame rotates as a consequence of the rigid motion. More precisely, if we describe the configuration of a rigid body by the right-handed frame given by the vectors v 1 , v 2 , v 3 v_1,v_2,v_3 attached to a point p p , then the configuration of the rigid body after the rigid body transformation g is given by the right-handed frame of vectors g ( v 1 ) , g ( v 2 ) , g ( v 3 ) g_∗(v_1),g_∗(v_2),g_∗(v_3) attached to the point g ( p ) g(p) .

2 Rotational Motion in R 3 \mathbb R^3

在这里插入图片描述
We begin the study of rigid body motion by considering, at the outset, only the rotational motion of an object. We describe the orientation of the body by giving the relative orientation between a coordinate frame attached to the body and a fixed or inertial coordinate frame. From now on, all coordinate frames will be right-handed unless stated otherwise. Let A be the inertial frame, B the body frame, and x a b , y a b , z a b R 3 x_{ab}, y_{ab}, z_{ab} ∈ \mathbb R^3 the coordinates of the principal axes of B relative to A (see Figure 2.1). Stacking these coordinate vectors next to each other, we define a 3 × 3 matrix:
R a b = [ x a b y a b z a b ] . R_{ab} = \begin{bmatrix} x_{ab} & y_{ab} & z_{ab} \end{bmatrix}.

We call a matrix constructed in this manner a rotation matrix: every rotation of the object relative to the ground corresponds to a matrix of this form.

2.1 Properties of rotation matrices

A rotation matrix has two key properties that follow from its construction. Let R R 3 × 3 R ∈ \mathbb R^{3×3} be a rotation matrix and r 1 , r 2 , r 3 R 3 r_1, r_2, r_3 ∈ \mathbb R^3 be its columns. Since the columns of R are mutually orthonormal, it follows that
在这里插入图片描述
As conditions on the matrix R, these properties can be written as
R R T = R T R = I . RR^T = R^TR = I.

From this it follows that
d e t R = ± 1. det R = ±1.
To determine the sign of the determinant of R R , we recall from linear algebra that
d e t R = r 1 T ( r 2 × r 3 ) . det R = r_1^T (r_2 × r_3).
Since the coordinate frame is right-handed, we have that r 2 × r 3 = r 1 r_2 × r_3 = r_1 so that d e t R = r 1 T r 1 = 1 detR = r_1^Tr_1 = 1 .

The set of all 3 × 3 matrices which satisfy these two properties is denoted S O ( 3 ) SO(3) . The notation S O SO abbreviates special orthogonal. Special refers to the fact that d e t R = + 1 detR = +1 rather than ±1.
More generally, we may define the space of rotation matrices in R n × n \mathbb R_{n×n} by
S O ( n ) = { R R n × n : R R T = I , d e t R = + 1 } SO(n) = \{R ∈ \mathbb R_{n×n} : RR^T = I, det R = +1\}

S O ( 3 ) R 3 × 3 SO(3) ⊂ R_{3×3} is a group under the operation of matrix multiplication. A set G together with a binary operation ◦ defined on elements of G is called a group if it satisfies the following axioms:

  1. Closure: If g 1 , g 2 G g_1, g_2 ∈ G , then g 1 g 2 G g_1 ◦ g_2 ∈ G .
  2. Identity: There exists an identity element, e, such that g e = e g = g g ◦ e = e ◦ g = g for every g G g ∈ G .
  3. Inverse: For each g G g ∈ G , there exists a (unique) inverse, g 1 G g^{−1} ∈ G , such that g g 1 = g 1 g = e g ◦ g−1 = g−1 ◦ g = e .
  4. Associativity: If g1, g2, g3 ∈ G, then (g1 ◦ g2) ◦ g3 = g1 ◦ (g2 ◦ g3).

We refer to S O ( 3 ) SO(3) as the rotation group of R 3 \mathbb R^3 .

Every configuration of a rigid body that is free to rotate relative to a fixed frame can be identified with a unique R S O ( 3 ) \mathbb R ∈ SO(3) . Under this identification, the rotation group S O ( 3 ) SO(3) is referred to as the configuration space of the system and a trajectory of the system is a curve R ( t ) S O ( 3 ) R(t) ∈ SO(3) for t [ 0 , T ] t ∈ [0, T] . More generally, we shall call a set Q Q a configuration space for a system if every element x Q x ∈ Q corresponds to a valid configuration of the system and each configuration of the system can be identified with a unique element of Q Q .

A rotation matrix R S O ( 3 ) R ∈ SO(3) also serves as a transformation, taking coordinates of a point from one frame to another. Consider the point q shown in Figure 2.1. Let q b = ( x b , y b , z b ) q_b = (x_b,y_b,z_b) be the coordinates of q q relative to frame B. The coordinates of q q relative to frame A can be computed as follows: since x b , y b , z b R x_b,y_b,z_b ∈ R are projections of q onto the coordinate axes of B, which, in turn, have coordinates x a b , y a b , z a b R 3 x_{ab}, y_{ab}, z_{ab} ∈ \mathbb R^3 with respect to A, the coordinates of q q relative to frame A are given by
q a = x a b x b + y a b y b + z a b z b . q_a = x_{ab}x_b + y_{ab}y_b + z_{ab}z_b.

This can be rewritten as
q a = [ x a b y a b z a b ] [ x b y b z b ] = R a b q b . q_a = \begin{bmatrix} x_{ab} & y_{ab} & z_{ab} \end{bmatrix} \begin{bmatrix} x_b \\ y_b \\ z_b \end{bmatrix}= R_{ab}q_b.

In other words, R a b R_{ab} , when considered as a map from R 3 \mathbb R^3 to R 3 \mathbb R^3 , rotates the coordinates of a point from frame B to frame A.

The action of a rotation matrix on a point can be used to define the action of the rotation matrix on a vector. Let v b v_b be a vector in the frame B defined as v b = q b p b v_b = q_b − p_b . Then,
R a b ( v b ) : = R a b q b R a b p b = q a p a = v a . R_{ab}(v_b) := R_{ab}q_b − R_{ab}p_b = q_a − p_a = v_a.

Since matrix multiplication is linear, it may be verified that if v b = q b p b = s b r b v_b = q_b − p_b = s_b − r_b then we still have that
R a b s b R a b r b = R a b q b R a b p b = v a R_{ab}s_b − R_{ab}r_b = R_{ab}q_b − R_{ab}p_b = v_a

and hence the action of R a b R_{ab} on a vector is well defined.
.
Rotation matrices can be combined to form new rotation matrices using matrix multiplication. If a frame C has orientation R b c R_{bc} relative to a frame B, and B has orientation R a b R_{ab} relative to another frame A, then the orientation of C relative to A is given by R a c = R a b R b c R_{ac} = R_{ab}R_{bc} .

$R_{ac}, when considered as a map from R 3 \mathbb R^3 to \mathbb R^3$, rotates the coordinates of a point from frame C to frame A by first rotating from C to B and then
from B to A. Equation is the composition rule for rotations.

A rotation matrix represents a rigid body transformation in the sense of the definition of the previous section. This is to say, it preserves distance and orientation. We prove this using some algebraic properties of the cross product operation between two vectors. Recall that the cross product between two vectors a , b R 3 a,b ∈ \mathbb R^3 is defined as
a × b = [ a 2 b 3 a 3 b 2 a 3 b 1 a 1 b 3 a 1 b 2 a 2 b 1 ] a × b = \begin{bmatrix} a_2b_3 - a_3b_2 \\ a_3b_1 - a_1b_3 \\ a_1b_2 - a2 b_1\end{bmatrix}
Since the cross product by a is a linear operator, b a × b b \rightarrow a × b may be represented using a matrix. Defining
( a ) = [ 0 a 3 a 2 a 3 0 a 1 a 2 a 1 0 ] (a)^∧ = \begin{bmatrix}0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ −a_2 & a_1 & 0\end{bmatrix}
we can write
a × b = ( a ) b . a × b = (a)^∧b.
We will often use the notation ba as a replacement for (a)∧.
Lemma 2.1. Given R S O ( 3 ) R ∈ SO(3) and v , w R 3 v, w ∈ \mathbb R^3 , the following properties hold:
R ( v × w ) = ( R v ) × ( R w ) R(v × w) = (Rv) × (Rw)

R ( w ) R T = ( R w ) . R(w)∧R^T = (Rw)^∧.

The first property in the lemma asserts that rotation by the matrix R commutes with the cross product operation; that is, the rotation of the cross product of two vectors is the cross product of the rotation of each of the vectors by R. The second property has an interpretation in terms of rotation of an instantaneous axis of rotation, which will become clear shortly. For now, we will merely use it as an algebraic fact. The proof of the lemma is by calculation.

Proposition 2.2. Rotations are rigid body transformations

A rotation R S O ( 3 ) R ∈ SO(3) is a rigid body transformation; that is,

  1. R preserves distance: R q R p = q p \Vert Rq − Rp \Vert = \Vert q − p \Vert for all q , p R 3 q,p ∈ \mathbb R3 .
  2. R preserves orientation: R ( v × w ) = R v × R w R(v × w) = Rv × Rw for all v , w R 3 v,w ∈ \mathbb R^3 .
    Proof. Property 1 can be verified by direct calculation:
    R q R p 2 = ( R ( q p ) ) T ( R ( q p ) ) = ( q p ) T R T R ( q p ) = ( q p ) T ( q p ) = q p 2 \Vert Rq − Rp\Vert^2 = (R(q − p))^T (R(q − p)) = (q − p)^TR^TR(q − p) \\ = (q − p)T (q − p) = \Vert q − p \Vert^2 .

Property 2 follows from equation.
在这里插入图片描述

2.2 Exponential coordinates for rotation

A common motion encountered in robotics is the rotation of a body about a given axis by some amount. Let ω R 3 ω ∈ \mathbb R^3 be a unit vector which specifies the direction of rotation and let θ R θ ∈ \mathbb R be the angle of rotation in radians. Since every rotation of the object corresponds to some R S O ( 3 ) R ∈ SO(3) , we would like to write R R as a function of ω ω and θ θ .

To motivate our derivation, consider the velocity of a point q attached to the rotating body. If we rotate the body at constant unit velocity about the axis ω ω , the velocity of the point, q ˙ \dot{q} , may be written as
q ˙ ( t ) = ω × q ( t ) = ω ^ q ( t ) . \dot{q}(t) = ω × q(t) = \hat{ω} q(t).

This is a time-invariant linear differential equation which may be integrated to give
q ( t ) = e ω ^ t q ( 0 ) , q(t) = e^{\hat{ω}t} q(0),
where q(0) is the initial (t = 0) position of the point and eωt b is the matrix exponential
在这里插入图片描述
It follows that if we rotate about the axis ω ω at unit velocity for θ θ units of time, then the net rotation is given by
R ( w , θ ) = e w ^ θ R(w, \theta) = e^{\hat{w}\theta}

From its definition, it is easy to see that the matrix ω ^ \hat ω is a skew-symmetric matrix, i.e., it satisfies ω ^ T = ω ^ \hat{ω}^T = −\hat{ω} . The vector space of all 3 × 3 skew matrices is denoted so(3) and more generally the space of n × n skew-symmetric matrices is
s o ( n ) = { S R n × n : S T = S } . so(n) = \{S ∈ \mathbb R^{n×n}: S^T = −S\}.

The set s o ( 3 ) R 3 × 3 so(3) ⊂ \mathbb R^{3×3} is a vector space over the reals. Thus, the sum of two elements of s o ( 3 ) so(3) is an element of s o ( 3 ) so(3) and the scalar multiple of any element of s o ( 3 ) so(3) is an element of s o ( 3 ) so(3) . Furthermore, we can identify s o ( 3 ) so(3) with R 3 \mathbb R^3 using the relationship (2.4) and the fact ( v + w ) = v ^ + w ^ (v + w)^∧ = \hat v+ \hat w .

It will be convenient to represent a skew-symmetric matrix as the product of a unit skew-symmetric matrix and a real number. Given a matrix ω ^ s o ( 3 ) \hat ω ∈ so(3) , ω = 1 \Vert ω \Vert = 1 , and a real number θ R θ ∈ R , we write the exponential of ω ^ θ \hat{ω}θ as
在这里插入图片描述
Equation (2.11) is an infinite series and, hence, not useful from a computational standpoint. To obtain a closed-form expression for exp( ω ^ θ \hat{ω}θ ), we make use of the following formulas for powers of a ^ \hat{a} , which are verified by direct calculation.

Lemma 2.3. Given a ^ s o ( 3 ) \hat{a} ∈ so(3) , the following relations hold:
在这里插入图片描述
and higher powers of a ^ \hat a can be calculated recursively.
在这里插入图片描述
and hence
在这里插入图片描述
This formula, commonly referred to as Rodrigues’ formula, gives an efficient method for computing exp( ω ^ θ \hat ωθ ). When ω 1 \Vert ω \Vert \neq 1 , it may be verified (see Exercise 12) that
在这里插入图片描述
We now verify that exp( ω ^ θ \hat{ω}θ ) is indeed a rotation matrix.
Proposition 2.4. Exponentials of skew matrices are orthogonal
Given a skew-symmetric matrix ω ^ s o ( 3 ) \hat ω ∈ so(3) and θ R θ ∈ R ,
e ω ^ θ S O ( 3 ) . e^{\hat ωθ} ∈ SO(3).
Proof. Defining R : = e x p ( ω ^ θ ) R := exp(\hat ωθ) , we must verify that R T R = I R^TR = I and d e t R = + 1 detR = +1 . To verify the first property, we have the following chain of equalities, which can be checked using equation (2.14),
在这里插入图片描述
Proposition 2.4 asserts that the exponential map transforms skewsymmetric matrices into orthogonal matrices. Geometrically, the skewsymmetric matrix corresponds to an axis of rotation (via the mapping ω ω ^ ω → \hat ω ) and the exponential map generates the rotation corresponding to rotation about the axis by a specified amount θ. Every rotation matrix can be represented as the matrix exponential of some skew-symmetric matrix; that is, the map exp : so(3) → SO(3) is surjective (onto).

Proposition 2.5. The exponential map is surjective onto S O ( 3 ) SO(3)
Given R S O ( 3 ) R ∈ SO(3) , there exists ω R 3 ω ∈ \mathbb R^3 , ω = 1 \Vert ω \Vert = 1 and θ R θ ∈ R such that R = R = exp( ω ^ θ \hat ωθ ).

Proof. The proof is constructive. We equate terms of R R and exp( ω ^ θ \hat ωθ ) and solve the corresponding equations. By way of notation, we have the rotation matrix R R to be
在这里插入图片描述
Defining v θ = 1 c o s θ , c θ = c o s θ , a n d s θ = s i n θ v_θ = 1 − cos θ, c_θ = cos θ, and sθ_ = sinθ , write equation
在这里插入图片描述
Proposition 2.5. The exponential map is surjective onto S O ( 3 ) SO(3) Given R S O ( 3 ) R ∈ SO(3) , there exists ω R 3 , ω = 1 ω ∈ \mathbb R^3, \Vert ω \Vert = 1 and θ R θ ∈ R such that R = R = exp( ω ^ θ \hat ωθ ).

Equating (2.15) with (2.16), we see that
在这里插入图片描述
To verify that this equation has a solution, we recall that the trace of R is equal to the sum of its eigenvalues. Since R preserves lengths and d e t R = + 1 det R = +1 , its eigenvalues have magnitude 1 and occur in complex conjugate pairs (see Exercise 3). It follows that 1 t r a c e ( R ) 3 −1 ≤ trace(R) ≤ 3 and hence we can set
在这里插入图片描述
Note that there is an ambiguity in the value of θ θ , in the sense that θ ± 2 π n θ±2πn or θ ± 2 π n −θ ± 2πn could be chosen as well.

Now, equating the off-diagonal terms of R R and exp( ω ^ θ \hat ωθ ), we get
在这里插入图片描述
If θ 0 θ \neq 0 , we choose
在这里插入图片描述
Indeed, the exponential map is a many-to-one map from KaTeX parse error: Expected group after '\mathbb' at position 10: R\mathbb ^̲3 onto S O ( 3 ) SO(3) . If R = I R = I , then t r a c e ( R ) = 3 trace(R) = 3 and hence θ = 0 θ = 0 and ω ω can be chosen arbitrarily. If R I R \neq I , the above construction shows that there are two distinct ω ω and θ [ 0 , 2 π ) θ ∈ [0, 2π) such that R = R = exp( ω ^ θ \hat ωθ ).

The components of the vector ω θ R 3 ωθ ∈ \mathbb R^3 are called the exponential coordinates for R R . Considering ω R 3 ω ∈ \mathbb R^3 to be an axis of rotation with unit magnitude and θ R θ ∈ R to be an angle, Propositions 2.4 and 2.5 combine to give the following classic theorem.

Theorem 2.6 (Euler). Any orientation R S O ( 3 ) R ∈ SO(3) is equivalent to a rotation about a fixed axis ω R 3 ω ∈ \mathbb R^3 through an angle θ [ 0 , 2 π ) θ ∈ [0, 2π) .

This method of representing a rotation is also known as the equivalent axis representation. We note from the preceding proof that this representation is not unique since choosing ω = ω ω′ = −ω and θ = 2 π θ θ′ = 2π − θ gives the same rotation as ω ω and θ θ . Furthermore, if we insist that ω have unit magnitude, then ω ω is arbitrary for R = I R = I (by choosing θ = 0 θ = 0 ). The former problem is a consequence of the exponential map being many-to-one and the latter is referred to as a singularity of the equivalent axis representation, alluding to the fact that one may lose smooth dependence of the equivalent axis as a function of the orientation R R at R = I R = I .

2.3 Other representations

The exponential coordinates are called the canonical coordinates of the rotation group.

Euler angles

One method of describing the orientation of a coordinate frame B relative to another coordinate frame A is as follows: start with frame B coincident with frame A. First, rotate the B frame about the z-axis of frame B (at this time coincident with frame A) by an angle α α , then rotate about the (new) y-axis of frame B by an angle β β , and then rotate about the (once again, new) z-axis of frame B by an angle γ γ . This yields a net orientation R a b ( α , β , γ ) R_{ab}(α,β,γ) and the triple of angles ( α , β , γ ) (α,β,γ) is used to represent the rotation.

The angles ( α , β , γ ) (α,β,γ) are called the ZYZ Euler angles. Since all rotations are performed about the principal axes of the moving frame, we define the following elementary rotations about the x-, y-, and z-axes:
在这里插入图片描述
To derive the final orientation of frame B, it is easiest to derive the formula by viewing the rotation with B considered as the fixed frame, since then all rotations then occur around fixed axes. The appropriate sequence of rotations for the frame A, considering the B frame as fixed, is
在这里插入图片描述
Inverting this expression gives the rotation matrix of B relative to A:
在这里插入图片描述
Here c α c_α , s α s_α are abbreviations for c o s α cosα and s i n α sin α , respectively, and similarly for the other terms.

It is clear that any matrix of the form in equation (2.19) is an orthogonal matrix (since it is a composition of elementary rotations). As in the case of the exponential map, the converse question of whether the map from ( α , β , γ ) S O ( 3 ) (α,β,γ) → SO(3) is surjective is an important one. The answer to this question is affirmative: given a rotation R S O ( 3 ) R ∈ SO(3) , the Euler angles can be computed by solving equation (2.19) for α α , β β , and γ γ . For example, when sin β 0 β \neq 0 , the solutions are
在这里插入图片描述
where a t a n 2 ( y , x ) atan2(y, x) computes t a n 1 ( y / x ) tan^{−1}(y/x) but uses the sign of both x and y to determine the quadrant in which the resulting angle lies.

ZYZ Euler angles are an example of a local parameterization of SO(3). As in the case of the equivalent axis representation, singularities in the parameterization (referring to the lack of existence of global, smooth solutions to the inverse problem of determining the Euler angles from the rotation) occur at R = I R = I , the identity rotation. In particular, we note that ( α , β , γ ) (α, β, γ) of the form ( α , 0 , α ) (α, 0, −α) yields R a b ( α , 0 , α ) = I R_{ab}(α, 0, −α) = I . Thus, there are infinitely many representations of the identity rotation in the ZYZ Euler angles parameterization.

Other types of Euler angle parameterizations may be devised by using different ordered sets of rotation axes. Common choices include ZYX axes (Fick angles) and YZX axes (Helmholtz angles). The ZYX Euler angles are also referred to as the yaw, pitch, and roll angles, with Rab defined by rotating about the x-axis in the body frame (roll), then the y-axis in the body frame (pitch), and finally the z-axis in the body frame (yaw). Both the ZYX and YZX Euler angle parameterizations have the advantage of not having a singularity at the identity orientation, R = I R = I , though they do contain singularities at other, different, orientations. For example, in the instance of ZYX Euler angles, we have:
在这里插入图片描述
which is singular when θ = −π/2. It is a fundamental topological fact that singularities can never be eliminated in any 3-dimensional representation of SO(3). This situation is similar to that of attempting to find a global coordinate chart on a sphere, which also fails.

Quaternions

Quaternions generalize complex numbers and can be used to represent rotations in much the same way as complex numbers on the unit circle can be used to represent planar rotations. Unlike Euler angles, quaternions give a global parameterization of S O ( 3 ) SO(3) , at the cost of using four numbers instead of three to represent a rotation.

Formally, a quaternion is a vector quantity of the form
在这里插入图片描述
where q 0 q_0 is the scalar component of Q Q and q = ( q 1 , q 2 , q 3 ) \vec{q} = (q_1,q_2,q_3) is the vector component. A convenient shorthand notation is Q = (q0,~q ) with q 0 R , q R 3 q_0 ∈ \mathbb R, \vec{q} ∈ \mathbb R^3 . The set of quaternions Q \mathbb Q is a 4-dimensional vector space over the reals and forms a group with respect to quaternion multiplication, denoted “·”. Multiplication is distributive and associative, but not commutative; it satisfies the relations

在这里插入图片描述
The conjugate of a quaternion Q = ( q 0 , q ) Q = (q_0,\vec{q}) is given by Q = ( q 0 , q ) Q^∗ = (q_0, −\vec{q}) and the magnitude of a quaternion satisfies
在这里插入图片描述
It is straightforward to verify that the inverse of a quaternion is Q 1 = Q / Q 2 Q^{−1} = Q^∗ / \Vert Q \Vert ^ 2 and that Q = ( 1 , 0 ) Q = (1, 0) is the identity element for quaternion multiplication.

The product between two quaternions has a simple form in terms of the inner and cross products between vectors in R 3 \mathbb R^3 . Let Q = ( q 0 , q ) Q = (q_0, \vec{q} ) and P = ( p 0 , p ) P = (p_0, \vec{p}) be quaternions, where q 0 , p 0 R q_0, p_0 ∈ \mathbb R are the scalar parts of Q Q and P P and q , p \vec q, \vec p are the vector parts. It can be shown algebraically that the product of two quaternions satisfies:
在这里插入图片描述

In most applications, this formula eliminates the need to make direct use of the multiplicative relations given above.

The unit quaternions are the subset of all Q Q Q ∈ \mathbb Q such that Q = 1 \Vert Q \Vert = 1 . The unit quaternions also form a group with respect to quaternion multiplication (Exercise 6). Given a rotation matrix R = R = exp( ω ^ θ \hat ωθ ), we define the associated unit quaternion as
在这里插入图片描述
where ω R 3 ω ∈ \mathbb R^3 represents the unit axis of rotation and θ R θ ∈ R represents the angle of rotation. A detailed calculation shows that if Q a b Q_{ab} represents a rotation between frame A and frame B, and Q b c Q_{bc} represents a rotation between frames B and C, then the rotation between A and C is given by the quaternion
在这里插入图片描述
Thus, the group operation on unit quaternions directly corresponds to the group operation for rotations. Given a unit quaternion Q = ( q 0 , q ) Q = (q_0,\vec{q} ) , we can extract the corresponding rotation by setting
在这里插入图片描述
and R = R = exp( ω ^ θ \hat ωθ ).

Since the group structure for quaternions directly corresponds to that of rotations, quaternions provide an efficient representation for rotations which do not suffer from singularities.

reference

A Mathematical Introduction to Robotic Manipulation Richard M. Murray, Zexiang Li, S. Shankar Sastry

猜你喜欢

转载自blog.csdn.net/mobius_strip/article/details/89321266
今日推荐