Chapter 1. Rigid Body Kinematics. 1.1 Introduction

Similar documents
Position and orientation of rigid bodies

Robotics & Automation. Lecture 03. Representation of SO(3) John T. Wen. September 3, 2008

Ridig Body Motion Homogeneous Transformations

MCE/EEC 647/747: Robot Dynamics and Control. Lecture 2: Rigid Motions and Homogeneous Transformations

Rotational Kinematics. Description of attitude kinematics using reference frames, rotation matrices, Euler parameters, Euler angles, and quaternions

Robotics, Geometry and Control - Rigid body motion and geometry

Position and orientation of rigid bodies

Differential Kinematics

Lecture Note 4: General Rigid Body Motion

Choice of Riemannian Metrics for Rigid Body Kinematics

Robotics & Automation. Lecture 06. Serial Kinematic Chain, Forward Kinematics. John T. Wen. September 11, 2008

Linear Algebra & Geometry why is linear algebra useful in computer vision?

Lecture Notes - Modeling of Mechanical Systems

Mobile Robotics 1. A Compact Course on Linear Algebra. Giorgio Grisetti

Kinematics. Chapter Multi-Body Systems

Rigid Geometric Transformations

Linear Algebra & Geometry why is linear algebra useful in computer vision?

Vectors in Three Dimensions and Transformations

Appendix Composite Point Rotation Sequences

(3.1) a 2nd-order vector differential equation, as the two 1st-order vector differential equations (3.3)

Rotational motion of a rigid body spinning around a rotational axis ˆn;

Rigid Geometric Transformations

EE731 Lecture Notes: Matrix Computations for Signal Processing

In this section of notes, we look at the calculation of forces and torques for a manipulator in two settings:

Inverse differential kinematics Statics and force transformations

. D CR Nomenclature D 1

Classical Mechanics III (8.09) Fall 2014 Assignment 3

DYNAMICS OF PARALLEL MANIPULATOR

DS-GA 1002 Lecture notes 0 Fall Linear Algebra. These notes provide a review of basic concepts in linear algebra.

Vectors Coordinate frames 2D implicit curves 2D parametric curves. Graphics 2008/2009, period 1. Lecture 2: vectors, curves, and surfaces

Minimal representations of orientation

12. Rigid Body Dynamics I

, respectively to the inverse and the inverse differential problem. Check the correctness of the obtained results. Exercise 2 y P 2 P 1.

Review of Linear Algebra

8 Velocity Kinematics

Rigid-Body Attitude Control USING ROTATION MATRICES FOR CONTINUOUS, SINGULARITY-FREE CONTROL LAWS

STEP Support Programme. STEP 2 Matrices Topic Notes

Math 350 Fall 2011 Notes about inner product spaces. In this notes we state and prove some important properties of inner product spaces.

On the Observability and Self-Calibration of Visual-Inertial Navigation Systems

Department of Physics, Korea University

Chapter 2 Math Fundamentals

Introduction to Matrix Algebra

PHYS 705: Classical Mechanics. Euler s Equations

Projective Bivector Parametrization of Isometries Part I: Rodrigues' Vector

Institute of Geometry, Graz, University of Technology Mobile Robots. Lecture notes of the kinematic part of the lecture

Quaternions. R. J. Renka 11/09/2015. Department of Computer Science & Engineering University of North Texas. R. J.

Math 302 Outcome Statements Winter 2013

Linear Algebra: Matrix Eigenvalue Problems

Introduction to Mobile Robotics Compact Course on Linear Algebra. Wolfram Burgard, Cyrill Stachniss, Kai Arras, Maren Bennewitz

Lecture Note 1: Background

Math (P)Review Part I:

Minimum-Parameter Representations of N-Dimensional Principal Rotations

Introduction to Mobile Robotics Compact Course on Linear Algebra. Wolfram Burgard, Bastian Steder

Physical Dynamics (PHY-304)

Vectors a vector is a quantity that has both a magnitude (size) and a direction

Classical Mechanics. Luis Anchordoqui

Linear Algebra Homework and Study Guide

Linear Algebra. Min Yan

CS 246 Review of Linear Algebra 01/17/19

KINEMATIC EQUATIONS OF NONNOMINAL EULER AXIS/ANGLE ROTATION

Elements of linear algebra

Robotics I. February 6, 2014

Representation of a three dimensional moving scene

Solutions for Fundamentals of Continuum Mechanics. John W. Rudnicki

Robot Control Basics CS 685

Matrix operations Linear Algebra with Computer Science Application

Engineering Mechanics Prof. U. S. Dixit Department of Mechanical Engineering Indian Institute of Technology, Guwahati

Cayley-Hamilton Theorem

General Theoretical Concepts Related to Multibody Dynamics

PHYS 705: Classical Mechanics. Rigid Body Motion Introduction + Math Review

Knowledge Discovery and Data Mining 1 (VO) ( )

Representation of a Three-Dimensional Moving Scene

Linear Algebra Review

Dot Products. K. Behrend. April 3, Abstract A short review of some basic facts on the dot product. Projections. The spectral theorem.

Extra Problems for Math 2050 Linear Algebra I

Basic Concepts in Linear Algebra

MAT 2037 LINEAR ALGEBRA I web:

Homework 2. Solutions T =

Rigid bodies - general theory

ME751 Advanced Computational Multibody Dynamics. September 14, 2016

14 Singular Value Decomposition

16.333: Lecture #3. Frame Rotations. Euler Angles. Quaternions

Math Linear Algebra Final Exam Review Sheet

Lie Groups for 2D and 3D Transformations

Review of Basic Concepts in Linear Algebra

Lecture 4: Exponentials & Twists

Robot Dynamics Lecture Notes. Robotic Systems Lab, ETH Zurich

APPENDIX A. Background Mathematics. A.1 Linear Algebra. Vector algebra. Let x denote the n-dimensional column vector with components x 1 x 2.

Introduction to Mobile Robotics Compact Course on Linear Algebra. Wolfram Burgard, Cyrill Stachniss, Maren Bennewitz, Diego Tipaldi, Luciano Spinello

Lesson Rigid Body Dynamics

PART ONE DYNAMICS OF A SINGLE PARTICLE

Rotational Motion. Chapter 4. P. J. Grandinetti. Sep. 1, Chem P. J. Grandinetti (Chem. 4300) Rotational Motion Sep.

Course Notes Math 275 Boise State University. Shari Ultman

1. General Vector Spaces

Spring, 2012 CIS 515. Fundamentals of Linear Algebra and Optimization Jean Gallier

Linear Algebra. Session 12

Fall, 2003 CIS 610. Advanced geometric methods. Homework 3. November 11, 2003; Due November 25, beginning of class

Conceptual Questions for Review

Rigid-Body Motions. Chapter 4

Matrices and Vectors. Definition of Matrix. An MxN matrix A is a two-dimensional array of numbers A =

Transcription:

Chapter 1 Rigid Body Kinematics 1.1 Introduction This chapter builds up the basic language and tools to describe the motion of a rigid body this is called rigid body kinematics. This material will be the foundation for describing general mechanisms consisting of interconnected rigid bodies in various topologies that are the focus of this book. Only the geometric property of the body and its evolution in time will be studied; the response of the body to externally applied forces is covered in Chapter?? under the topic of rigid body dynamics. Rigid body kinematics is not only useful in the analysis of robotic mechanisms, but also has many other applications, such as in the analysis of planetary motion, ground, air, and water vehicles, limbs and bodies of humans and animals, and computer graphics and virtual reality. Indeed, in 1765, motivated by the precession of the equinoxes, Leonhard Euler decomposed a rigid body motion to a translation and rotation, parameterized rotation by three principal-axis rotation (Euler angles), and proved the famous Euler s rotation theorem?. A body is rigid if the distance between any two points fixed with respect to the body remains constant. If the body is free to move and rotate in space, it has 6 degree-of-freedom (DOF), 3 translational and 3 rotational, if we consider both translation and rotation. If the body is constrained in a plane, then it is 3-DOF, 2 translational and 1 rotational. We will adopt a coordinate-free approach as in?,? and use geometric, rather than purely algebraic, arguments as much as possible. Coordinate representation is introduced to enable computational manipulation. We will first present some relevant mathematical background of rudimentary linear algebra, including vector space and linear transforms, in Section 1.2. The configuration of a rigid body may be characterized by the position and orientation of a frame attached to the body. Various parameterizations of orientation, the rotation, or SO(3), group, is discussed in Section 1.3. The evolution on SO(3) and the relationship to angular velocity is discussed in Section 1.4. The full consideration of both position and orientation, the Euclidean, or SE(3), group, and its evoluation in time is given in Section 1.5. In Section 1.6, various distance metrics on SO(3) and SE(3) are introduced. 1

1.2 Linear Algebra 1.2.1 Linear Vector Space A linear vector space, V, is a set that is closed under vector addition, +, and scalar multiplication. Elements of the set are called vectors and are denoted by an overhead arrow, e.g., v. The scalar field may be either real or complex. We will mostly just consider the real field. Vectors in a vector space may be endowed with the concept of magnitude, or norm, denoted by v. Such a vector space is called a normed linear space. A unit vector is defined as a vector of unit magnitude, i.e., v = 1. A vector space may be further equipped with an inner product < v, w >, which leads to the concept of projection and orthogonality. Such a vector space is called an inner product space. Vectors v and w are orthogonal if < v, w >= 0. The projection of v onto a unit vector e is defined as < v, e > e. A basis of a linear vector space is a collection of vectors { v 1,..., v n } such that every vector V may be represented as a unique linear combination of these vectors. The number of basis vectors, n, is called the dimension of V. Figure 1.1: Vector addition, orthogonality, and projection Example: The linear vector space that will be considered most frequently in this book is the 3- dimensional Euclidean space, E 3, with inner product denoted by v w = v w cos θ, where θ is the angle between v and w and v is the Euclidean norm of v. For E 3, there is also an additional operation called the cross product, v w, which produces a vector orthogonal to both v and w according to the right-hand rule, (i.e., pointing the fingers, except the thumb, along v then curl the fingers toward w, then the thumb points in the direction of v w), with magnitude v w = v w sin θ, where θ is the angle between v and w. 1.2.2 Linear Transformation A linear transforms maps one vector space to another and satisfies the rule of superposition. Let L : V 1 V 2, then L is a linear transform if Examples: L(α 1 v 1 + α 2 v 2 ) = α 1 L( v 1 ) + α 2 L( v 2 ), for all α 1, α 2 R, v 1, v 2 V. Dot product: L : E 3 R defined by L v = w v, where w is a given vector in E 3. Cross product: L : E 3 E 3 defined as L v = w v, where w is a given vector in E 3. 2

If V 1 and V 2 are inner product spaces, we can define the adjoint of a linear transformation, which in the matrix case is just the transpose matrix. Given L : V 1 V 2, L V 2 V 1 is the adjoint of L if it satisfies for all v 1 V 1 and v 2 V 2. < v 2, L v 1 > V2 =< L v 2, v 1 > V1 1.2.3 Orthonormal Frame The orientation of a rigid body in E 3 is completely characterized by an orthonormal frame attached to the body. A right-handed orthonormal frame is define as follows: Definition 1 ( e 1, e 2, e 3 ) is an orthonormal frame if 1. e i = 1, i = 1, 2, 3 (normality) 2. e i e j = 0 if i j, i, j = 1, 2, 3 (orthogonality) 3. e 1 e 2 = e 3 (right-hand rule). Figure 1.2: An orthonormal frame By writing E = e 1 e 2 e 3 we can regard E : R 3 E 3 as a linear transformation. The adjoint of E, E : E 3 R 3, may be readily computed: e 1 E = e 2. e 3 Note that E E = I 3, the 3 3 identity matrix. Similarly EE = I, the identity operator between E 3. The orthonormal vectors ( e 1, e 2, e 3 ) is also called an orthonormal basis of E 3 since every vector in E 3 may be represented as a unique linear combination of ( e 1, e 2, e 3 ). 3

1.2.4 Coordinate Representation of Vectors and Linear Transforms Since E provides an orthonormal basis for E 3, every v E 3 may be uniquely represented by a vector in R 3 : v = Ev E, (1.1) where the vector v E R 3 is called the representation of v in E. The frame E is now considered as a coordinate frame (with coordinate axes given by ( e 1, e 2, e 3 )). The elements of v E, the ordered set (v 1, v 2, v 3 ), is the coordinate of v in the coordinate frame E. To obtain the coordinate of v, we can simply project v onto the coordinate axes: v E = E v. (1.2) This follows directly from the orthonormality of E. Consider a linear transform L : V 1 V 2 where V 1 and V 2 are inner product spaces. Given orthonormal frames E 1 and E 2 for V 1 and V 2 respectively, the coordinate representation of L v is E 2 L v = E 2 LE 1 v 1. It is natural to define the coordinate representation of L by L = E 2 LE 1. (1.3) Because of the orthonormality of E 1 and E 2, we have the reverse identity Example: L = E 2 LE 1. (1.4) Let e i be the ith basis vector in the orthonormal frame E, then ( e i ) E is the ith unit vector in R 3. Consider an orthonormal frame E : R 3 E 3 as a linear transform, then E E = I 3. Consider the dot product as a linear transformation, L : E 3 R, L v = w v. Let E be an orthonormal frame for E 3. Then w v = w Ev = w e 1 w e 2 w e 3 v = w T v where w is the representation of w in E. Therefore, the coordinate representation of L is w T. Consider the cross product as a linear transformation, L : E 3 E 3, L v = w v. Let E be an orthonormal frame for E 3. Then w v = w Ev = w e 1 w e 2 w e 3 v. The coordinate representation of the cross product, denoted by ŵ, is therefore the 3 3 skew symmetric matrix below: ŵ = E 0 w 3 w 2 w e 1 w e 2 w e 3 = w 3 0 w 1. (1.5) w 2 w 1 0 4

All 3 3 matrices of the form above form a group called so(3). We denote the inverse operation of cross product as : so(3) R 3, i.e., given A so(3), A = 0 a 3 a 2 a 3 0 a 1 a 2 a 1 0 A is defined as A = a 1 a 2 a 3. Clearly, for any w R 3, (ŵ) = w. A list of useful identities involving the cross product are given below: v v = 0, ˆvv = 0 (1.6a) ˆv = ˆv T ( v is skew-symmetric) (1.6b) v w = w v, ˆvw = ŵv (1.6c) v ( w ) = w v ( v w)i, ˆvŵ = wv T (v T w)i 3 (1.6d) ( v w) = w v v w, ˆvw = wv T vw T (1.6e) v ( v ( v )) = v 2 v, v 3 = v v v = v 2 v (1.6f) If v = 1, ( v ) 4k = ( v ) 2 = v ( v ), ( v ) 4k 1 = ( v ), ( v ) 4k 2 = ( v ) 2, ( v ) 4k 3 = ( v ), v 4k = v 2, v 4k 1 = v, v 4k 2 = v 2, v 4k 3 = v, k = 1, 2,.... (1.6g) 1.2.5 Coordinate Transformation Given a vector v V. Let E a and E b be two orthonormal frames of V. Then v may be represented in either coordinate: v = E a v a = E b v b. (1.7) The two representations v a and v b are related by The linear transformation v a = E ae b v b. (1.8) R ab := E ae b (1.9) is a 3 3 matrix that converts the representation in E b to E a. It is easy to verify that R ab is orthogonal, i.e., Rab 1 = RT ab, and Rab 1 = R ba. Given a linear transform L : V V, it can be similarly represented in either E a or E b : L = E a L a E a = E b L b E b. 5

The relationship between L a and L b is then where we have use the identity R 1 ab = RT ab = R ba. Example: L a = R ab L b R ba, (1.10) Dot product: The dot product is invariant under coordinate transformation: w v = w T a v a = w T b v b. Cross product: The tranformation of the cross product is given by (1.10): v a = 1.3 Rotation Group SO(3) R ab v b = R ab v b R ba. 1.3.1 Interpretation of Coordinate Transformation between Orthonormal Frames The coordinate transformation matrix R ab SO(3) has various interpretations: R ab changes the representation of a vector from E b to E a : v a = R ab v b. R ab changes the representation of a linear transform from E b to E a : L a = R ab L b R ba. R ab consists of the cosines of angles between axes in E a and E b (it is therefore also called the direction cosine matrix): e a1 e b1 e a1 e b2 e a1 e b3 R ab = EaE b = e a2 e b1 e a2 e b2 e a2 e b3. e a3 e b1 e a3 e b2 e a3 e b3 The (i, j)th entry of R ab is cos θ ij where θ ij is the angle between e ai and e bj. R ab is the representation of E b in E a, i.e., R ab = (E b ) a. R ab rotates E a to E b, represented in either E a or E b. To be specific, let R be the rotation operator transforming E a to E b, i.e., E b = RE a. (1.11) Then the representation of R in E a is and the representation of R in E b is (R) a = E a(e b E a)e a = R ab. (R) b = E b (E b E a)e b = R ab. 6

In the last interpretation of R ab, as a rotation of frames, we introduce the concept of a rotation operator. To be precise, an operator R : E 3 E 3 is a rotation if for any orthonormal frame E, RE is also an orthonormal frame. An immediate consequence of the definition is that R is orthogonal, i.e., RR = R R = I. The coordinate transformation matrix R ab is orthogonal (i.e., R T abr ab = I) and detr ab = 1 (due to the right-handed coordinate system). Furthermore, products of such matrices retain the same properties. These matrices form a group called the special orthogonal group with the group action given by the matrix multiplication. Since we are dealing with the Euclidean space, the dimension is three. This group is therefore denoted by SO(3). Due to the rotation interpretation, SO(3) is also called the rotation group. In the robotic literature, e.g.,?,?,?, the perspective is inertial-centric, i.e., all coordinate frames eventually refer to the inertial frame. Therefore, orientation of a rigid body is usually denoted by R ob, the representation of the body frame in the inertial frame. For example, a common representation of the end effector tool frame is n, o, a (normal-open-approach, see Fig. 1.3). However, for the spacecraft dynamics literature, e.g.,?,?, the perspective is typically body-centric. In that case, the orientation, also called the attitude, of the spacecraft is usually denoted by R bo, the representation of the inertial frame in the body frame. This results in slightly different forms of the kinematic equations, as we shall see later. Figure 1.3: Orthonormal frame based on the normal-open-approach (noa) convention for paralleljaw gripper Example: Let E b be E a rotated about e a3 over an angle θ (see Fig. 1.4). Then Since R ab = (E b ) a, we have Similarly, for rotation about e a1, e b1 = cos θ e a1 + sin θ e a2, e b2 = sin θ e a1 + cos θ e a2. R ab = R ab = cos θ sin θ 0 sin θ cos θ 0 0 0 1 1 0 0 0 c s 0 s c. where c denotes cos θ and s denotes sin θ. For rotation about e a2, R ab = c 0 s 0 1 0 s 0 c. 7

1.3.2 Representation of Rotation Operator: Euler-Rodrigues Formula We now consider a special type of operator, one that rotates a frame about a given unit vector k over an angle θ. By construction, such an operator is clearly a rotation since the operator applied to any orthonormal frame would also result in an orthonormal frame. We first find an algebraic representation of this operator. Let R be a rotation about a unit vector k over an angle θ. Consider an arbitrary vector v in E 3. As shown in Fig. 1.5(a), R v may be decomposed as the sum of the projection of v on k and an orthogonal component, (R v) : R v = ( k v) k + (R v). (1.12) The top view of the cone in Fig. 1.5(a) is a circle formed by the tip of v rotating about k, as in Fig. 1.5(b). Then (R v) may be decomposed as Substituting back into (1.12), we get (R v) = sin θ k v cos θ k ( k v). (1.13) R v = ( k k + sin θ k cos θ k ( k )) v. Since v is arbitrary, we obtain the Euler-Rodrigues Formula in the operator form: R = ( k k + sin θ k cos θ k ( k )) = I + sin θ k +(1 cos θ) k ( k ) (1.14) where the last equality follows from (1.6d). This equation may also be represented in an orthonormal frame as: R = I + sin θˆk + (1 cos θ)ˆk 2, (1.15) where k is the coordinate representation of k. Due to the body-centric perspective mentioned earlier, in the spacecraft literature, this expression is more commonly written as R T = I sin θˆk + (1 cos θ)ˆk 2, where R T is considered to be the spacecraft attitude. 1.3.3 Euler s Rotation Theorem It is easy to verify that R given by the Euler-Rodrigues formula (1.15) indeed belongs to SO(3). We now consider the converse: given R SO(3), does there exist a corresponding k and θ? If so, Figure 1.4: R ab as (E b ) a in rotation about e 3. 8

are they unique? In other words, is (1.15) a complete parameterization of SO(3)? To answer these questions, we will show that k and θ may be solved directly from (1.15) for any R SO(3). From (1.15), it is straightforward to show that cos θ = 1 (trr 1). (1.16) 2 By manipulating the (i, i)th element of R, we can find an expression for the ith element of k: k i = ±( 2R i,i trr + 1 ) 1 2. (1.17) 3 trr Note that there are two possible solutions of the axis of rotation, corresponding to the two possible directions of rotation to achieve the same end result. The above approach breaks down only when trr = 3, i.e., R = I. In this case, k is an arbitrary unit vector and θ = 0. Once k is found, we can find sin θ from the difference between R and R T : The rotational angle may then be found from sin θ = 1 2 kt (R R T ). (1.18) θ = atan2( 1 2 kt (R R T ), 1 (trr 1)). (1.19) 2 There are two solutions, corresponding to the two solutions of k. Note that to determine the quadrant of θ, the atan2 function is used (requiring both sine and cosine). Since every R SO(3) can be represented by (k, θ) (and ( k, θ)), and every (k, θ) generates a rotation matrix through the Euler-Rodrigues formula (1.15), (k, θ) completely parameterizes SO(3). This is commonly referred to as the equivalent-axis/angle representation of the rotation group. This representation has also been called the Euler s Theorem on Rotation which states that every rigid body rotation can be represented as a single rotation about an equivalent axis. Note that k is also the eigenvector of R corresponding to the eigenvalue 1. This makes intuitive sense since rotation of k about itself is just k. As we shall see in the next section, the non-zero eigenvalues of R are of the form e ±jθ. This provides an alternate, but more computationally expensive, method of computing (k, θ) from R. In the case that R = I, all three eigenvalues are 1. Therefore, k is arbitrary and θ = 0. (a) Rotation of v about k over angle θ (b) Top view Figure 1.5: Derivation of Euler-Rodrigues formula in representing a rotation operator R 9

1.3.4 Matrix Exponential Formula In this section, we show that rotation about a unit vector can also be represented as an exponential operator by using the Cayley-Hamilton Theorem?,?. This is a convenient parameterization that we will use throughout the book. Consider the 3 3 matrix given by the matrix exponential exp(ˆkθ). From the Cayley-Hamilton Theorem (a square matrix satisfies its own characteristic equation) and the infinite series expansion of the exponential function, we have the following matrix polynomial expression for exp(ˆkθ): exp(ˆkθ) = a 0 I 3 + a 1ˆk + a2ˆk2. (1.20) The eigenvalues of ˆk are {0, ±j}. Evaluating (1.20) along the eigenvectors, we have 1 = a 0 e jθ = a 0 + a 1 j a 2 (1.21) e jθ = a 0 a 1 j a 2. These equations can be used to solve for (a 0, a 1, a 2 ): a 0 = 1, a 1 = sin θ, a 2 = (1 cos θ). (1.22) Substituting back to (1.20), we have exactly the Euler-Rodrigues Formula (1.15). This means that every R SO(3) may be written as a matrix exponential exp(ˆkθ) where k and θ are solved from (1.17) and (1.19). The rotation operator, R, may also be represented as a coordinate-free exponential operator R = exp(θ k ), (1.23) where the exponential operator is interpreted in the infinite series sense and is equivalent to (1.14). Of course, when R is represented in a coordinate frame, we recover the matrix exponential: where k is k represented in E. E RE = exp( kθ) (1.24) 1.3.5 Representations of rotation group Rotation group consists of 3 3 matrix subject to 6 orthonormality constraints. From Euler s Theorem, we can also represent it in terms (k, θ) (subject to the directions of the rotation axis and rotation), which contains 4 parameters and 1 constraint (k is a unit vector). This is sometimes called the equivalent-axis/angle representation. It is natural to ask if there are other possible representations SO(3). In this section, we will examine several common representations, including Euler parameters (also known as quaternion, consisting of sine and cosine of the half angle), Euler- Rodrigues parameters (also known as Gibb s vector, consisting of the tangent of the half angle), and all possible types of Euler angles (consisting of angles of three principal-axis rotations). 10

1.3.5.1 Euler parameters (Quaternions) Euler parameters consist of a scalar part, q 0, and a vector part q v R 3. They may be defined through equivalent axis and angle: q 0 = cos ( ) ( ) θ θ, q v = sin k. (1.25) 2 2 From this definition, it follows that q 2 0 + q v 2 = 1. (1.26) Therefore, (q 0, q v ) is a four-parameter representation of SO(3) with one constraint. The Euler parameters represented as a 4 1 vector, q = q0 q v, is also called unit quaternion. The constraint then becomes the unit norm constraint: q = 1. Given (q 0, q v ), the corresponding rotation matrix R can be found from the Euler-Rodrigues Formula: Conversely, given R SO(3), we can find q 0 R(q) = I 3 + 2q 0ˆq v + 2ˆq 2 v. (1.27) If q 0 0, then q v may be found similar to equivalent axis: If q 0 = 0, then q 0 = ± 1 2 trr + 1. (1.28) q v = ( ) R R T. (1.29) R + I 2 4q 0 = q v q T v, (1.30) which can be used to find q v (e.g., by factorizing (R + I)/2 or finding the eigenvector of (R + I)/2 that corresponds to the eigenvalue 1). Vector quaternion q v itself may be used to represent SO(3). This is a three-parameter representation with no constraint. In this case, R, for a given q v R 3, is given by (1.27) with q 0 replaced by (1 q v 2 ) 1 2 : Given R SO(3), q v may be found as R(q v ) = I 3 + 2(1 q v 2 ) 1 2 ˆqv + 2ˆq 2 v. (1.31) q v = ( R R T 2 trr + 1 If trr = 1, then the alternative formula (1.30) should be used. 11 ). (1.32)

1.3.5.2 Euler-Rodrigues Parameters (Gibb s Vector) Another three-parameter representation is the Euler-Rodrigues parameters which may be defined using equivalent axis and angle or unit quaternion: g = tan The origin of Euler-Rodrigues parameters is from the identity ( ) θ k = q v. (1.33) 2 q 0 (exp(ˆkθ) I) = ĝ(exp(ˆkθ) + I). (1.34) It is a straightforward exercise to show that R is related to g by and g may be obtained from R using Note that when trr 1, g. ĝ R = I 3 + 2 1 + g 2 + 2 ĝĝ 1 + g 2, (1.35) g = ± (R RT ) trr + 1. (1.36) 1.3.5.3 Euler Angles By far the most common three parameter representation is Euler angles. An arbitrary rotation may be decomposed as the concatenation of three principal axis (coordinate axis) rotations. The three rotation angles, called (classic) Euler angles, together with the specified axes, then completely parameterize any rotation matrix. As an example, take the common yaw-pitch-roll (also called 321 or zyx) Euler Angles representation of a frame E 3 represented in the refererence frame E 0. The frame E 3 may be obtained from E 0 through three principal-axis rotations. First generate E 1 by rotating E 0 about its z-axis over the roll angle, φ. The corresponding orientation matrix is R 01 = E 0 E 1 = exp(ẑφ), z = 0, 0, 1 T. Then generate E 2 by rotating E 1 about its y-axis over the pitch angle, θ. The corresponding rotation matrix is R 12 = E 1 E 2 = exp(ŷθ), y = 0, 1, 0 T. Finally, obtain E 3 by rotating E 2 about its x-axis over the yaw angle, ψ. The corresponding rotation matrix is R 23 = E 2 E 3 = exp( xψ), x = 1, 0, 0. The overall rotation is then In the coordinate-free form, we have R 03 = R 01 R 12 R 23 = exp(ẑφ)exp(ŷθ)exp( xψ). (1.37) R 03 = E 3 E 0 = E 3 E 2 E 2 E 1 E 1 E 0 = exp(ψ x )exp(θ y )exp(ψ z ). (1.38) which transforms E 0 to E 3. In general, for any R SO(3) and three unit vectors in R 3, (a 1, a 2, a 3 ), a 2 not collinear with either a 1 or a 3, R may be written as R = R 01 R 12 R 13 (1.39) 12

where R i 1,i = exp(â i β i ) (1.40) corresponds to the rotation of E i 1 about a i over an angle β i. The triplet (β 1, β 2, β 3 ) is called the Euler-Angle representation of R with the corresponding rotation axes (a 1, a 2, a 3 ). If a i is a coordinate axis, i.e., x, y, or z, then (β 1, β 2, β 3 ) are called the classic Euler angles. There are 12 possible classic Euler angles, (x, y, x), (x, y, z), (x, z, x), (x, z, y), (y, x, y), (y, x, z), (y, z, x), (y, z, y), (z, x, y), (z, x, z), (z, y, x), (z, y, z), where (z, y, x) is the yaw-pitch-roll representation, and (z, x, z) is a natural representation for a gyroscope. A variation of classic Euler angles may have a i pointing in the negative direction of a coordinate axis, and the coordinate axes may be redefined (e.g., x becomes y, etc.), for example, the tool frame representation of the original Unimate controller (for PUMA robots) is a variant of the 313 Euler angles: R 03 = exp(ẑβ 1 ) 0 1 0 0 0 1 1 0 0 exp(ŷβ 2 )exp(ẑβ 3 ), which means that (x, y, z) axes in E 1 becomes (y, z, x) before the next rotation (about the x axis, or z axis of E 1 ). Euler angles for a given R SO(3) may be found by simple algebra. For example, the rollpitch-yaw Euler angles are related to the orientation by multiplying the three rotation matrices in (1.37): R = exp(ẑφ)exp(ŷθ)exp( xψ). = c 1 c 2 s 1 c 3 + c 1 s 2 s 3 s 1 s 3 + c 1 s 2 c 3 s 1 c 2 c 1 c 3 + s 1 s 2 s 3 c 1 s 3 + s 1 s 2 c 3 s 2 c 2 s 3 c 2 c 3 where the short hand notation c i denotes cos β i and s i denotes sin β i, i = 1, 2, 3. Given R, the Euler angles may be readily computed: β 2 = sin 1 R (3,1) or sin 1 R (3,1) + π β 1 = tan 1 (R (1,2), R (1,1) ) or tan 1 (R (1,2), R (1,1) ) + π β 3 = tan 1 (R (3,2), R (3,3) ) or tan 1 (R (3,2), R (3,3) ) + π where R (i,j) denotes the (i, j)th element of R and sin 1 R (3,1) is restricted to π/2, π/2. Note that in general there are two solutions for each R, except for β 2 = ± π where the two solutions 2 merge. We shall see that this corresponds to the singularity of the representation (see Section 1.4 below). 1.4 Differential Kinematics on SO(3) We have so far described a rigid body fixed in space; now let us consider the motion of this rigid body. First consider the rotation of a vector v about a unit vector k over a small angle θ: exp(θ k ) v = (I + sin θ k +(1 cos θ) k ( k )) v v + θ k v. (1.41) The difference between the rotated v and v is therefore orthogonal to v. 13

Now consider E = e 1 e 2 e 3 to be an orthonormal frame attached to a rigid body. Suppose that over a time interval δt, E rotates to E = e 1 e 2 e 3. If δt is small, the angle of rotation would also be small. Then, as argued above, e i e i would be approximately orthogonal to e i. Therefore, E is approximately given by e 1 = e 1 + δt(a 12 e 2 + a 13 e 3 ) e 2 = e 2 + δt(a 21 e 1 + a 23 e 3 ) (1.42) e 3 = e 3 + δt(a 31 e 1 + a 32 e 2 ) for some constants a ij. To ensure E SO(3), up to order δt, we need to have Define We can then write (1.43) as a 21 = a 12, a 32 = a 23, a 13 = a 31. E E = δte ω = a 23 a 31 a 12. 0 ω 3 ω 2 ω 3 0 ω 1 ω 2 ω 1 0 = δte ω. (1.43) As δt 0, (E E)/δt becomes de, and we obtain the differential kinematics equation for a rigid body as de = E ω = ω E, (1.44) where ω is the angular velocity vector that characterizes the instantaneous evolution of E, and ω is the representation of ω in E. The collection of all 3 3 matrices of the form ω is called so(3), which may be considered as the tangent of SO(3). Using (1.44), we now derive the evolution of the rotation matrix R ab = E a E b. Denote by ω i the angular velocity of E i, i = a, b. We then have dr ab = ( ω a E a ) E b + E a( ω b E b ) = ( ω a ) a R ab + ( ω b ) a R ab = ( ω b ω a ) a R ab. Define the relative angular velocity between E a and E b by ω b/a := ω b ω a. (1.45) Denoting ( ω b/a ) a by (ω b/a ) a, the differential kinematics equation for the rotation matrix can be written as: dr ab = (ω b/a ) a R ab, (1.46) 14

which may be also written in an equivalent form as dr ab = R ab (ω b/a ) b. Given R SO(3), we may write its derivative as Ṙ = ˆωR. (1.47) In this case, R may be considered as the orientation of a rigid body with respect to the inertial frame and ω is the angular velocity of the body with respect to the inertial frame, respresented in the inertial frame. As mentioned earlier, the spacecraft literature is body-centric and usually uses R ba for orientation. In that case, the differential kinematics is usually written as dr ba = (ω b/a ) b R ba = R ba (ω b/a ) a, where we have used the fact that ω b/a = ω a/b. Consider the exponential representation of R ab = exp(ˆkθ). Suppose k is fixed and only θ varies with time, then dr ab can be computed directly from the Euler-Rodrigues formula: dr ab = ˆk θr ab. (1.48) In this case, the angular velocity (ω b/a ) a = k θ. We next consider the differentiation of a vector. Let v be a vector with representations v a and v b in E a and E b, respectively. By direct differentiation of (1.8), we have dv a = d(r abv b ) = Ṙabv b + R ab v b = (ω b/a ) a v a + R ab v b. (1.49) If v is a fixed vector in E b, then v b = 0 and v a = (ω b/a ) a v a. Now consider the differentiation of a linear transform. Let L : SO(3) SO(3) be a linear transform with representations L a and L b in E a and E b, respectively. Differentiate (1.10), we obtain dl a = d(r abl b R ba ) = (ω b/a ) a R ab L b R ba R ab L b R ba (ω b/a ) a + R ab Lb R ba = (ω b/a ) a L a L a (ω b/a ) a + R ab Lb R ba. (1.50) We shall introduce the inertia of a rigid body, J, as a linear transform in Section??. Let E b be a fixed orthonormal frame attached to the body. Assuming the mass property remains constant, then J b = 0, and J a = (ω b/a ) a J a J a (ω b/a ) a. 15

1.4.1 Differential Kinematics for Different Representations of SO(3) Let p be a R l representation of R SO(3). The time derivative of p is of the following general form: dp = J p(p)ω, (1.51) where J p R l 3 is called the representation Jacobian. If J p (p) loses rank, p cannot be solved instantaneously. This is called a singularity of the representation. Such singularities are mathematical in nature as a deficiency in the local representation of SO(3) with p. It is not a physical singularity in the sense that the rigid body cannot move in certain direction. To calculate the Jacobian, we can just differentiate the kinematics equations in Section 1.3.5 and use (1.47): ω = (R T Ṙ). (1.52) For equivalent axis and angle representation, the differential kinematics is given by (you are asked to verified this as a homework): θ k = k T 1 2 ( k + cot θ 2 k 2 ) The Jacobian is full rank except at θ = 0 when it becomes unbounded. For the unit quaternion, the differential kinematics is q0 q v = 1 2 q T v q 0 I ˆq v ω. (1.53) ω. (1.54) Note that J T J = 1 4 (1 + q2 0)I in this case, which means that it is never singular! For this reason, unit quaternion is a popular representation. For the vector quaternion, the differential kinematics is q v = 1 2 The Jacobian is singular if and only if q v = 1. For Gibb s vector, we have ( 1 q v 2 q v ) ω. (1.55) β = 1 2 (I β + ββ T )ω. (1.56) The Jacobian is full rank except when β = (which is equivalent to q v = 1). For the yaw-pitch-roll (321) Euler Angle, we can apply (1.52) to obtain ω = s 1 θ2 + c 1 c 2 θ3 c 1 θ2 + s 1 c 2 θ3 θ 1 s 2 θ3 = which has singularities at cos β 2 = 0, as indicated before. 16 0 s 1 c 1 c 2 0 c 1 s 1 c 2 1 0 s 2 θ. (1.57)

1.5 Euclidean Group SE(3) The rigid body orientation is represented by an orthonormal frame, E, attached to the body. For the position of the body, we need to additionally designate the origin of the frame, O. Together (O, E) represent the position and orientation of the body, and we call it an Euclidean frame. Mathematically, O is a point and may be considered as a vector from some reference point. As such, if O a and O b are two points, then p ab = O b O a is defined as vector from O b to O a. Given two rigid bodies with corresponding Euclidean frames (O a, E a ) and (O b, E b ). The relative position and orientation is p ab and E b Ea, which may be represented in E a as (p ab, R ab ) where p ab = ( p ab ) a and R ab = EaE b. A common representation of (p, R), p R 3, R SO(3), is a 4 4 homogeneous transformation R p H =. (1.58) 0 1 Such matrices form a non-commutative group called the special Euclidean group of order 3, SE(3), with the group operation given by the matrix multiplication. The inverse of H is given by R H 1 T p =. 0 1 Consider a vector r b attached to O b. Seen from O a, the vector becomes Representing in E a we have This may be written as where r a = r b + p ab. r a = R ab r b + p ab. ra 1 H ab := = H ab rb 1 Rab p ab 0 1, (1.59). (1.60) Therefore H ab SE(3) plays a similar role as R ab in SO(3): transforming a vector in body b and represented in E b to a vector in body a and represented in E a. The following property of H ab is straightforward to verify: H ab H bc = H ac, H 1 ab = H ba, H aa = I 4. 1.5.1 Matrix Exponetial Formula For R SO(3), we can represent it as a matrix exponential R = exp( kθ) where k is the equivalent axis and θ the equivalent angle. Does H SE(3) have a similar matrix exponential representation and interpretation? Let k ξ =, k R 3, k = 1, v R 3. v 17

Define ξ = k v 0 0. (1.61) All 4 4 matrices of the form above form a group, called se(3), which as we shall see later may be considered as the tangent of SE(3). As in the SO(3) case, we can apply the Cayley-Hamilton Theorem to evaluate exp( ξθ): exp( ξθ) exp( kθ) (I exp( kθ)) kv + θkk = T v. (1.62) 0 1 Equating this expression with (1.58), we see that (k, θ) are just the equivalent axis and angle of R, i.e., R = exp( kθ) and the vector v is related to p through ((I R) k + θkk T )v = p. (1.63) It can be shown that the matrix ((I R) k + θkk T ) is invertible if and only if θ = 0. Therefore, if θ 0, v is determined uniquely from p. When θ = 0, R = I and k is arbitrary. We choose k = p p and v to be collinear with k. Then as θ 0, ((I R) k + θkk T )v θv = p. The matrix exponential formula for rotation (1.24) may be interpreted as a rotation about a unit axis k over an angle θ. The matrix exponential expression for Euclidean motion (1.62) also has a intuitive geometric interpretation. Consider the interpretation of (p, R) SE(3) as a transformation of a vector r b to r a as in (1.59). Apply (1.63), then r a = R ab r b + p ab = R ab r b + ((I R ab ) k + θkk T )v = ˆv + R ab (r b kv) + (k T v)θk. This may be visualized as a screw motion of the vector r b kv rotating and translating about k as shown in Figure xxx. The unit vector k is the screw axis, θ is the screw magnitude, and k T vθ is the pitch. 1.5.2 Differential Kinematics on SE(3) Similar to the differential kinematics on SO(3), (1.46), we can propagate in SE(3) by differentiating H ab in (1.60): Ṙab ṗ Ḣ ab = ab 0 0 ( (ω = a/b ) )a R ab ṗ ab 0 0 ( (ω = a/b ) )a ṗ ab ((ω a/b ) )a p ab Rab p ab. (1.64) 0 0 0 1 Define ṗab ((ω (V a/b ) a = a/b ) )a p ab ((ω a/b ) )a 18. (1.65)

We then have the generalization of (1.46) to SE(3): Ḣ ab = (V a/b ) a H ab. (1.66) Note that the linear velocity portion (V a/b ) a is R ab d (R bap ab ), or the derivative of p ab in the B frame represented in the A frame. We can also write Ḣ ab = H ab (V a/b ) b (1.67) with (V a/b ) b = Rba ṗ ab (ω a/b ) b. (1.68) The linear velocity portion (V a/b ) b is now the derivative of p ab in the A frame represented in the B frame. The 6 1 vectors (V a/b ) a and (V a/b ) b are called spatial velocities (in A and B frames, respectively), which are transformed according to: Rab ˆp (V a/b ) a = ab R ab (V 0 R a/b ) b. (1.69) ab The transformation matrix above is called the adjoint transformation and denoted by Ad Hab. Note that Ad 1 H ab = Ad H 1 = Ad Hba. ab In summary, H ab trasnforms rigid body configuration from frame A to frame B while Ad Hab transforms the spatial velocity from frame A to frame B. As another perspective, let A and B be two Euclidean frames attached to the same rigid body. From (1.49), ω b = ω a, v b = ω a p ab + v a. (1.70) Representing ( ω b, v b ) in E b and ( ω a, v a ) in E a, we have ωb v b = R ba 0 R baˆp ab R ba ωa v a. (1.71) We denote the transformation matrix by Φ ba which is the same as Ad T H ab. We can differentiate (1.71) once more to obtain the acceleration propagation: ωb R = ba 0 ωa 0 + v b R baˆp ab R ba v a R. (1.72) ba ˆω a p ab ω a In the absence of externally applied force and torque, the power is conserved within the rigid body; therefore, T T ωa τa ωb τb =. (1.73) Using (1.71), we obtain the dual relationship: v a τa f a f a = Φ T ba v b τb f b f b. (1.74) 19

1.6 Distance Metrics on SO(3) and SE(3) For planning and control, it is important to choose a distance metric on SO(3) and SE(3). First consider SO(3). Let R 1 and R 2 be two SO(3) matrices. We may consider R 1 R 2 as the orientation error, but R 1 R 2 is no longer in SO(3). We can choose ρ(r 1, R 2 ) = β(r 1 ) β(r 2 ) (1.75) where β is any representation of SO(3). Another possibility is to form the relative orientation R T 1 R 2 and use the metric ρ(r 1, R 2 ) = β(i) β(r1 T R 2 ). (1.76) Note that if β is a 3-parameter representation, β(i) = 0. common metrics on SO(3): The metric for the distance portion of SE(3) may be any norm on R 3 : Derivatives of metrics Kinematic control Some possibilities: Some norm on R R d or R T R d I. ρ p (p 1, p 2 ) = p 1 p 2. Some norm on p(r) p(r d ) or p(r T R d ) p(i), where p is any vector representation of SO(3). Let E = R T R d. 1. e R = 1 2 tr((e I)T (E I)) = 1 2 E I F (Frobenus norm) =... = 4 q v(e) 2. ė R = 2 sin φ φ = 2 sin φk T ω = q T v q 0 ω. 2. 3. e R = 1 2 tr((e 1 2 I) T (E 1 2 I)) = 4(1 q0 (E)), ė R = 2 sin φ 2 kt ω = 2q T v ω. e R = 1 2 p(e) 2 p(e) is any 3-parameter representation of E. ė R = p(e) T J p ω, J p = representation Jacobian. 20