To do this the end effector of the robot must be correctly positioned relative to the work piece.

Similar documents
METR 4202: Advanced Control & Robotics

Geometric Transformations

MTRX4700 Experimental Robotics

Vector Algebra Transformations. Lecture 4

3D Transformations. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 11

θ x Week Date Lecture (M: 2:05p-3:50, 50-N202) 1 23-Jul Introduction + Representing Position & Orientation & State 2 30-Jul

Math background. 2D Geometric Transformations. Implicit representations. Explicit representations. Read: CS 4620 Lecture 6

CS354 Computer Graphics Rotations and Quaternions

3D Transformations. CS 4620 Lecture 10. Cornell CS4620 Fall 2014 Lecture Steve Marschner (with previous instructors James/Bala)

Robots are built to accomplish complex and difficult tasks that require highly non-linear motions.

2D/3D Geometric Transformations and Scene Graphs

Autonomous Navigation for Flying Robots

CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES

Kinematics of Closed Chains

EEE 187: Robotics Summary 2

IntroductionToRobotics-Lecture02

Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ x + 5y + 7z 9x + 3y + 11z

ME/CS 133(a): Final Exam (Fall Quarter 2017/2018)

Analysis of Euler Angles in a Simple Two-Axis Gimbals Set

Orientation & Quaternions

Jacobians. 6.1 Linearized Kinematics. Y: = k2( e6)

Transformation. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Kinematics. Kinematics analyzes the geometry of a manipulator, robot or machine motion. The essential concept is a position.

ME 115(a): Final Exam (Winter Quarter 2009/2010)

Geometric transformations assign a point to a point, so it is a point valued function of points. Geometric transformation may destroy the equation

CMSC 425: Lecture 6 Affine Transformations and Rotations

CS612 - Algorithms in Bioinformatics

Answers. Chapter 2. 1) Give the coordinates of the following points:

Planar Robot Kinematics

Perspective Projection in Homogeneous Coordinates

Geometric transformations in 3D and coordinate frames. Computer Graphics CSE 167 Lecture 3

Rotation parameters for model building and stable parameter inversion in orthorhombic media Cintia Lapilli* and Paul J. Fowler, WesternGeco.

Inverse Kinematics of 6 DOF Serial Manipulator. Robotics. Inverse Kinematics of 6 DOF Serial Manipulator

EE Kinematics & Inverse Kinematics

CSE 252B: Computer Vision II

2D and 3D Transformations AUI Course Denbigh Starkey

Lecture Note 3: Rotational Motion

Today. Today. Introduction. Matrices. Matrices. Computergrafik. Transformations & matrices Introduction Matrices

ME 597: AUTONOMOUS MOBILE ROBOTICS SECTION 2 COORDINATE TRANSFORMS. Prof. Steven Waslander

DIMENSIONAL SYNTHESIS OF SPATIAL RR ROBOTS

Visual Recognition: Image Formation

Homogeneous coordinates, lines, screws and twists

CS4620/5620. Professor: Kavita Bala. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner)

An idea which can be used once is a trick. If it can be used more than once it becomes a method

Short on camera geometry and camera calibration

Matrices. Chapter Matrix A Mathematical Definition Matrix Dimensions and Notation

Early Fundamentals of Coordinate Changes and Rotation Matrices for 3D Computer Vision

Equations of planes in

Forward kinematics and Denavit Hartenburg convention

Quaternions and Euler Angles

COMP30019 Graphics and Interaction Three-dimensional transformation geometry and perspective

Object Representation Affine Transforms. Polygonal Representation. Polygonal Representation. Polygonal Representation of Objects

Transforms. COMP 575/770 Spring 2013

Basics of Computational Geometry

Kinematic Model of Robot Manipulators

On the Kinematics of Undulator Girder Motion

+ i a y )( cosφ + isinφ) ( ) + i( a x. cosφ a y. = a x

Exercise 1: Kinematics of the ABB IRB 120

COMP 558 lecture 19 Nov. 17, 2010

Robot mechanics and kinematics

Quaternion to Euler Angle Conversion for Arbitrary Rotation Sequence Using Geometric Methods

EECE 478. Learning Objectives. Learning Objectives. Linear Algebra and 3D Geometry. Linear algebra in 3D. Coordinate systems

Attitude Representation

Graphics and Interaction Transformation geometry and homogeneous coordinates

Robot Inverse Kinematics Asanga Ratnaweera Department of Mechanical Engieering

Robotics (Kinematics) Winter 1393 Bonab University

3D Transformations and Complex Representations. Computer Graphics CMU /15-662, Fall 2016

Introduction to Robotics

Introduction to Robotics

CMPUT 412 Motion Control Wheeled robots. Csaba Szepesvári University of Alberta

Today. Parity. General Polygons? Non-Zero Winding Rule. Winding Numbers. CS559 Lecture 11 Polygons, Transformations

Coordinate Frames and Transforms

A Detailed Look into Forward and Inverse Kinematics

10. Cartesian Trajectory Planning for Robot Manipulators

Multiple View Geometry in Computer Vision

A GENTLE INTRODUCTION TO THE BASIC CONCEPTS OF SHAPE SPACE AND SHAPE STATISTICS

CT5510: Computer Graphics. Transformation BOCHANG MOON

Motion Control (wheeled robots)

Kinematics, Kinematics Chains CS 685

Quaternions & Rotation in 3D Space

Vector Calculus: Understanding the Cross Product

Euclidean Space. Definition 1 (Euclidean Space) A Euclidean space is a finite-dimensional vector space over the reals R, with an inner product,.

Figure 1: 2D arm. Figure 2: 2D arm with labelled angles

Chapter 1: Introduction

CS 445 / 645 Introduction to Computer Graphics. Lecture 21 Representing Rotations

INSTITUTE OF AERONAUTICAL ENGINEERING

To Do. Outline. Translation. Homogeneous Coordinates. Foundations of Computer Graphics. Representation of Points (4-Vectors) Start doing HW 1

Unit 2: Locomotion Kinematics of Wheeled Robots: Part 3

Transformations. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates

Structure from Motion. Prof. Marco Marcon

a a= a a =a a 1 =1 Division turned out to be equivalent to multiplication: a b= a b =a 1 b

Solution of inverse kinematic problem for serial robot using dual quaterninons and plucker coordinates

Introduction to quaternions. Mathematics. Operations

DRAFT: Mathematical Background for Three-Dimensional Computer Graphics. Jonathan R. Senning Gordon College

Centre for Autonomous Systems

Viewing with Computers (OpenGL)

Geometry for Computer Graphics Part 1

Math 231E, Lecture 34. Polar Coordinates and Polar Parametric Equations

Monday, 12 November 12. Matrices

Transcription:

Spatial Descriptions and Transformations typical robotic task is to grasp a work piece supplied by a conveyer belt or similar mechanism in an automated manufacturing environment, transfer it to a new position and place it correctly on a second work piece. (ie. placing micro-processors on a PCB). To do this the end effector of the robot must be correctly positioned relative to the work piece. Robots often operate in situations without the assistance of sophisticated jigs and fixturing. They have many more degrees of freedom than a CNC machine would have. There may be some variation in the exact position of the work piece presented. The problem presented to the engineer is: Firstly, how can one position the end effector of a robot in the correct position initially to grasp the work piece. Secondly, how best to move the robotic arm to move the part without impacting any surrounding equipment (or people) and reposition the manipulator to the new position. The key information needed to complete the task is: Where is the work piece Where is the end effector In the case of a mobile robot one may also ask the important question; Where is the robot. We need to introduce a set of tools and notations for describing positions and orientations It is important to note that these tools are not specific to robotics, but rather are tools that come from the more general discipline of engineering dynamics. Start with an inertial frame of reference. Inertial frame of reference: lso termed the universe coordinate system/frame or base frame. Is a frame of reference in which dynamics of an object are inertial. Usually has a fixed stationary origin. Notation: 1

With multiple frames of reference the base frame is often denoted, {} or just. The inertial frame is also often denoted I or {0}. I have also seen F 0, {F 0 }, F 0, F commonly used. These notes do not follow a convention with labelling of frames of reference. It is important to be flexible with notation. Specifying positions position in space may be denoted by a triple of numbers P = P x P y P z Position itself is a physical quantity independent of any frame. However it is often useful to express the position of a point in space relative to some frame. The left superscript on P denotes the frame {} in which the position is expressed. If one considers a different base frame {B}, the location of the physical point P does not change, however the triple of reals (ie. B P ) that denote its position in the new coordinates system of {B} certainly do P B P In fact, as we shall see later P = P Borg + B P where P Borg denotes the position of the origin of {B} expressed in frame {}. Example 2.1: (give example in class) triple of numbers without a reference frame carries no physical meaning. Sometimes the left superscripts 2

are dropped when the frame of reference is clear from context - one should be careful of making errors in such cases. Specifying orientations single point in space has no orientation. We are usually interested in describing the orientation in space of some rigid body (eg robot end effector). The approach is to attach a frame fixed to the body. ssociate the coordinate system (X, Y, Z ) to the inertial frame of reference {}. The objects (X, Y, Z ) are unit vectors representing the coordinate directions in {}. By construction X = 1 0 0, Y = 0 1 0, Z = 0 0 1. ttach a frame to the body in space whose orientation we wish to describe. Denote this frame by {B}. ssume the situation that the origin of {B} is coincident to {}, i.e. only orientation is important. Then associate the coordinate system (X B, Y B, Z B ) to {B} so that the change in orientation from the inertial frame to the new frame is a rotation of the basis (X, Y, Z ) to the new basis (X B, Y B, Z B ). Note that by convention, all frames of reference are right-hand frames. The coordinate directions (X B, Y B, Z B ) fully determine the orientation of {B}, and we can describe this orientation with respect to the frame of reference {} by the triple of vectors ( X B, Y B, Z B ) Compact notation is achieved by grouping the triple of vectors representing the orientation {B} relative to the frame of reference {} by a matrix BR = ( X B Y ) B Z B = r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 Such a matrix is known as a rotation matrix. How can one explicitly calculate the values of the entries of a rotation matrix? Let X, Y denote the usual inner (ie. dot) product between two vectors. B R = X, X B X, Y B X, Z B Y, X B Y, Y B Y, Z B Z, X B Z, Y B Z, Z B 3

Since Y and X B are unit vectors, their dot product is given by the cosine of the angle between them Y, X B = r 21 = cos(θ) it is for this reason that the entries of a rotation matrix are known as direction cosines. Example 2.2: (give example in class) Properties of Rotation matrices ( B R ) T ( B R ) = X B T X B X B T Y B X B T Z B Y B T X B Y B T Y B Y B T Z B T Z B X T B Z B Y T B Z B Z B = 1 0 0 0 1 0 = I 3 0 0 1 ll rotation matrices are orthogonal matrices R T R = I 3. (ie. both the rows and columns form an orthonormal basis; each row/column has length 1, an each are mutually perpendicular) Due to the symmetry of the inner product B R = ( B R ) T Recalling the orthogonal property one has ( B R ) T B R = B R B R = I 3 Thus, the rotation matrix representing {B} with respect to {} is the inverse of the matrix representing {} with respect to {B} B R = ( B R ) 1 = ( B R ) T (not really a surprising) In fact rotation matrices form a group in matrix space termed the special orthogonal group SO(3) = {R R 3 3 R T R = I 3 } The group operations are R Q = RQ, R 1 = R T, Group multiplication Inverse operation 4

R ı = I 3, Group identity Rotation Matrices as Transform Mappings We have seen that one use of a rotation matrix is to define the orientation of one frame with respect to another. nother use for a transformation matrix is as a transform mapping, i.e. a mapping that takes a vector quantity expressed in one frame, and expresses it in another. representation of a vector V relies on a frame of reference V = X, V Y, V, Z, V V R 3 vector may be represented in different frames of reference. For example if B V is known then V = B X, B V B X T B Y, B V = B Y T B Z, B B V V B Z T V = B R T B V = BR B V Thus, the second interpretation is that the rotation matrix is a mapping between representations of free vectors. BR : frame B frame B V V := B RB V Example 2.3: (give example in class) So we have seen two distinct interpretations for rotation matrices. There is in fact also a third interpretation, but we will explore this further in the context of general frames in the next section. General Frames 5

We have used the term frame to this point as some coordinate system either translated or rotated relative to some base inertial coordinate system. In general we would like our frames both translated and rotated relative to the inertial system. So a general frame of reference {B} is fully specified by 1. The position of the origin of the frame (expressed in the inertial frame of reference). P Borg ξ B origin of frame {B} relative to frame {} (Used in Craig. Ugly but unambiguous.) The Greek ξ is often used 0 ξ B, ξ B origin of frame {B} relative to inertial frame 2. The orientation of the frame, expressed as a rotation matrix relative to a reference frame. BR R B, R Orientation of {B} relative to {} Orientation of {B} relative to inertial frame Mapping between frames s in the pure rotation case, we are interested in deriving something like a rotation matrix that allows: 1. description of an arbitrary frame in a concise format 2. The machinery to be able to transfer the description of vector quantities from one frame to another ssume an inertial frame {}, and another frame {B} which is located somewhere in space and has arbitrary orientation to {} (maybe {B} could be attached to the robot end effector for example). It is clear to see that any point P expressed in terms of frame {B}, ie. B P, can be expressed in terms of frame {} according to: P := BR B P + P Borg However, while this description solves 1., it provides a clumsy solution to 2. The trick here is to embed R 3 into R 4 by creating the matrix operator, denoted as BT, by forming the matrix 6

BT = B R P Borg 0 0 0 1 where this matrix is termed a homogeneous transformation matrix, so that the previous expression for P can be arrived at as: B R P Borg 0 0 0 1 B P 1 = B RB P + P Borg 1 The theory of homogeneous transformations is also heavily used in the Computer Graphics and Computer Vision fields, where the last row in BT can be other than [0, 0, 0, 1] to effect perspective and scaling operations. This more general machinery takes care of the special pure-translation and pure-rotation cases. Example 2.4: (give example in class) Transformation Operator third interpretation of a homogeneous transform is as a transformation operator on a vector quantity in a single frame. Imagine we have a vector P expressed in a frame {}, and we wish to rotate and translate that vector by some amount with respect to {}. homogeneous transform can be shown to achieve this operation. lthough this operation seems quite different to the mapping interpretation introduced previously, the mathematics behind it is the same. Intuitively, one can see why this is the case: 1. Keeping the vector unmoved and expressing it in a frame that has been translated and rotated backwards (i.e. the mapping between frames interpretation), 7

is the same mathematically as 2. Keeping the frame unmoved and translating and rotating the vector forwards (the operator interpretation) Since the operator interpretation is relevant to a single frame, we can drop the previous pre-super/subscripts, and simply use the notation T. Example 2.5: (give example in class) Summary - Interpretations of Homogeneous Transform homogeneous transformation B T = B R P Borg 0 0 0 1 can be thought of as 1. a description of a frame, ie. BT describes the spatial relationship of {B} with respect to {} 2. transform mapping, where for some vector P. 3. transform operator, where BT : frame B frame B P P := B RB P + P Borg T : P 1 P 2 i.e. an operator which transforms P 1 into P 2, both expressed in frame {} Transformation rithmetic rmed with the tool of homogeneous transformations, we now consider two elementary operations of transforms that we will often require. 8

The first is the operation of multiplication. Consider the situation where we have a sequence of frames defined in space, where each member of the sequence is defined in terms of the previous one, eg. B T, B C T, C D T. Imagine a point in space whose position is described in frame {D} by the vector D P Then we can find the position of this point in frame {} by noting C P = C D T D P and B P = B C T C P and P = B T B P and we get the following not unexpected result P = B T B C T C D T D P Note that the order in which transformation matrices should be applied can sometimes be confusing (order is important since matrix multiplication is not in general communitative!). The notation can be used to benefit here, since super and sub-scrips of adjacent transforms should cancel. If D P is a point on an object in a robot gripper, {D} is the frame attached to the rigid body that is the gripper, and {} is the inertial frame at the base of the robot, then we can motivate the utility of the previous expression by noting that it gives us the position of the point on the object with respect to the base frame of the robot. Inverting a Transform We saw with rotation matrices that B R = B R 1 and it is the same for homogeneous transforms, ie. B T = B T 1 Physically this means that if we have a frame {B} which is known with respect to a frame {} (that is, we know B T ), then we can specify frame {} in terms of frame {B} by determining B T 1. straightforward way of calculating the inverse is to compute the inverse of the 4x4 homogeneous 9

transform, however, this does not take into account its special structure. smarter way to calculate the inverse is using the following equation B T 1 = B T = B RT B RT P Borg 0 0 0 1 whose derivation is presented in Craig (p39 in the second edition). The special Euclidean group The set of all transformations BT forms a group under multiplication with inverse and identity element SE(3) = { BT BT : {B} {}} C T = B T B C T B T 1 = B T T ı = T = I 4 This is the special Euclidean group SE(3) and (almost) all we will need for this course is the multiplication and the inverse operations. The geometry of SE(3) is cool and sexy theory and is well worth a couple of years study. (perhaps) More on Rotation matrices Rotation matrices are represented by three orthonormal unit vectors B R = ( ) X B Y B Z B The orthonormal constraints are three unity constraints X B = 1, Y B = 1, Z B = 1 and three orthogonality constraints X B, Y B = 0, Y B, Z B = 0, X B, Z B = 0. These constraints fully characterise orthogonal matrices. 10

There are nine entries in a three-by-three matrix and six constraints. Thus, rotation matrices should be able to be parameterised by three variables. This is a serious computation issue since over-parameterisation of the rotation matrix may lead to numerical instabilities in inverse kinematic computations. Fixed and Euler ngles Conceptually one could imagine that a frame can be aligned with any other frame in space by sequentially applying 3 rotations about coordinate axes That is, we can specify the orientation of a frame B with respect to another frame by a triple of angles. There are actually 24 possible ways these rotations can be applied If {} is the frame we are rotating, at the extrema of these possibilities are: when all rotations occur around the coordinate axes of {} in its original orientation - called fixed angles. when all rotations occur around the coordinate axes of {} in their rotated orientations - called euler angles. Fixed angles is conceptually simpler and presented in Craig. Lets look at the Euler angle case. Euler ngles The orientation of an object can be given by three angles (φ, θ, ψ) representing yaw, pitch and roll. Diagram showing the yaw, pitch and roll rotations taken in order. The convention indicated for the rotations follows the classical yaw, pitch, roll convention often used in aeronautical applications. This convention is also commonly termed the Z Y X Euler angles. Yaw-Pitch-Roll Euler angles 11

E z E 3 θ ψ E 2 φ ψ R φ E y E x E y ψ E 1 = R φ R θ E x Yaw: Pitch: Roll: Firstly, a rotation of angle φ around the axes E z is applied. This corresponds to yaw of rigid body relative to the inertial frame. Denote this rotation by R φ. Secondly, a rotation of angle θ around the rotated version of the E y axis. This corresponds to pitch of rigid body in the plane spanned by {E z, E a 1 }. Denote this rotation by R θ. Thirdly, a rotation of angle ψ around the axes E a 1 is applied. This corresponds to roll of the rigid body around the natural axis E a 1. Denote this rotation by R ψ. Rotation Matrix from Euler ngle Triple n obvious desire is an expression for the rotation matrix corresponding to a triple of Euler angles. Denote the frames of reference attached to each rotation by {0} (for the inertial), {} after the initial yaw rotation, {B} after the pitch rotation and {C} for the full rotation. Thus, R φ := 0 R, R θ := BR, R ψ := B CR. Clearly, the mapping 0 CR from the fully rotated {C} frame back to the inertial frame {0} is 0 C R = 0 R B RB C R = R φr θ R ψ 12

When in doubt about the order of rotations, go back to using the idea that left sub scripts should cancel with left superscripts. The rotation matrices R φ, R θ and R ψ are easily computed. R φ is associated with yaw and fixes the e z direction while rotating the (x, y) plane R φ = c φ s φ 0 s φ c φ 0 0 0 1 R θ is associated with pitch and fixes the e y direction while rotating the (x, z) plane. Beware of the direction in which the pitch angle is measured - convention rotates the z-axis toward the x-axis R θ = c θ 0 s θ 0 1 0 s θ 0 c θ, and finally roll is associated with R ψ and is given by R ψ = 1 0 0 0 c ψ s ψ 0 s ψ c ψ. Then 0 CR = c φ s φ 0 s φ c φ 0 0 0 1 c θ 0 s θ 0 1 0 s θ 0 c θ 1 0 0 0 c ψ s ψ 0 s ψ c ψ 0 C R = c θc φ (s ψ s θ c φ c ψ s φ ) (c ψ s θ c φ + s ψ s φ ) c θ s φ (s ψ s θ s φ + c ψ c φ ) (c ψ s θ s φ s ψ c φ ) s θ (s ψ c θ ) (c ψ c θ ). Euler ngles from Rotation Matrix It is a mostly a straight forward matter to extract the angles (φ, θ, ψ) from the rotation matrix based on the explicit form of 0 C R given. 13

In practice, one should beware of computational ill-conditioning when computing Euler angles from the rotation matrices. Given a rotation matrix R = r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33. Craig derives the equations for φ, θ and ψ as: φ = tan2( r 21 /cos(θ), r 11 /cos(θ)) θ = tan2( r 31, r 2 11 + r2 21 ) ψ = tan2( r 32 /cos(θ), r 33 /cos(θ)) where tan2(x, y) computes tan 1 (y/x) on a quadrant by quadrant basis according to the signs of x and y. Note the 2 possible solutions (positive and negative) for θ. If always take positive solution, then 90 θ 90. Equivalent ngle-axis n alternate 4-parameter specification of a frame s orientation in space (ie. alternate to the rotation matrix and triple of angles descriptions) is the Equivalent ngle-axis idea. One could imagine that a frame can be rotated to any particular orientation by selecting an axis of rotation (passing through the frame s origin) and a rotation amount. Theorem: [Euler] ny rotation R is equivalent to a rotation about an axis ω R 3, through an angle θ [0, 2π). Thus, any rotation R may be parameterised by a unit vector k and a scalar θ R = R(k, θ) corresponding to the axis of rotation and the angle through which the rotation is undertaken. 14

Proof Euler s theorem is proved using eigenvalue decomposition of a rotation matrix. ngle-axis Parameters from a Rotation Matrix Given a rotation matrix, ie. R SO(3) R = r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 The angle-axis parameters may be recovered by θ = cos 1 ( r11 + r 22 + r 33 1 2 ) and ω = 1 r 32 r 23 r 13 r 31 2 sin(θ) r 21 r 12 The angle-axis parameterisation is not unique. ( ω, θ). Moreover, (ω, θ + 2π) = (ω, θ). The parameters (ω, θ) lead to the same rotation as more serious computational problem is that for small angular rotations, the axis becomes ill-defined. Indeed, the solution for ω given above fails for θ 0 or θ 180 The angle-axis parameterisation of a rotation should not be used for small rotations. Quaternions or Euler parameters Yet another approach to representing an orientation in space is the Euler Parameters method. Let (ω, θ) be an angle axis representation for a rotation R. Define ɛ 0 = cos(θ/2) ɛ 1 = ω 1 sin(θ/2) ɛ 2 = ω 2 sin(θ/2) ɛ 3 = ω 3 sin(θ/2) The vector ɛ = (ɛ 0, ɛ 1, ɛ 2, ɛ 3 ) = (ɛ 0, ɛ) is known as the unit quaternion representation of R. ɛ 2 0 + ɛ2 1 + ɛ2 2 + ɛ2 3 = 1 15

and the parameters, ɛ 0, ɛ 1, ɛ 2, ɛ 3 are called the Euler Parameters The scalar term ɛ 0 in the quaternion is linked directly to the angle of rotation while the vector part ɛ = (ɛ 1, ɛ 2, ɛ 3 ) is a scaled version of the axis of rotation. Note that as ɛ 0 0 then ɛ remains finite. Thus, the ill conditioning of the angle-axis convention for small rotations does not exist in the unit quaternion representation. Relationship to rotation matrices The rotation matrix R associated with the rotation defined by a quarternion ɛ = (ɛ 0, ɛ 1, ɛ 2, ɛ 3 ) is R = (1 2ɛ2 2 2ɛ2 3 ) 2(ɛ 1ɛ 2 ɛ 3 ɛ 4 ) 2(ɛ 1 ɛ 3 + ɛ 2 ɛ 4 ) 2(ɛ 1 ɛ 2 + ɛ 3 ɛ 4 ) (1 2ɛ 2 1 2ɛ2 3 ) 2(ɛ 2ɛ 3 ɛ 1 ɛ 4 ) 2(ɛ 1 ɛ 3 ɛ 2 ɛ 4 ) 2(ɛ 2 ɛ 3 + ɛ 1 ɛ 4 ) (1 2ɛ 2 1 2ɛ 2 2) The quarternion ɛ defining the same orientation as some given rotation matrix R SO(3) R = r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 is ɛ 0 = 1 2 1 + r11 + r 22 + r 33 ɛ 1 = r 32 r 23 4ɛ 4 ɛ 2 = r 13 r 31 4ɛ 4 ɛ 3 = r 21 r 12 4ɛ 4 Note that for rotations of 0 the quaternions are well defined. This avoids some of the ill-conditioning problems associated with the angle-axis convention. Concatenating rotations 16

nother advantage of quaternions is that concatenations of rotations can be computed directly in the representation. Consider two rotation matrices R, Q SO(3) associated with quaternion ɛ and η then the rotation RQ is associated with the quaternion ɛ 0 η 0 ɛ, η ɛ 0 η 0 ɛ 1 η 1 ɛ 2 η 2 ɛ 3 η 3 ɛ η = ɛ 0 η + η 0 ɛ ɛ η = ɛ 0 η 1 + η 0 ɛ 1 (ɛ 2 η 3 η 2 ɛ 3 ) ɛ 0 η 2 + η 0 ɛ 2 (η 1 ɛ 3 ɛ 1 η 3 ) ɛ 0 η 3 + η 0 ɛ 3 (ɛ 1 η 2 η 1 ɛ 2 ) This may look like a schmozzle but it is actually related to a group structure. Of course - who cares. Rotation matrices are annoyingly complicated things to represent in a computer The most common representations are: Rotation matrix R: R SO(3) = {R R 3 3 R T R = I 3, det(r) = 1} dvantages: Direct interpretation in terms of change of basis. Disadvantages: Nine dependent parameters must be stored. The physical role of individual parameters is lost - only the matrix as a whole has meaning. Euler ngles: dvantages: Rotations are described by three independent parameters. Simple physical interpretation of role of each angle. Disadvantages: Representation is not unique and leads to problems with singularities. There is no simple way to compute concatenated rotations other than expansion into a matrix. ngle-axis convention: dvantages: The most intuitive representation of a rotation. Disadvantages: Requires four parameters to store a single rotation. Highly ill conditioned for small rotations. There is no simple manner to compute concatenated rotations. Unit Quaternions: 17

dvantages: Preserves some of the intuition of the angle-axis representation while overcoming the ill conditioning for small rotations and admitting a group structure that directly allows computation of concatenated rotations. Disadvantages: Four parameters are needed to express a rotation. The parameterisation is more complicated than angle-axis and somewhat obscure. Quaternion multiplication doesn t have the same intuitive appeal of matrix multiplication. Summary: Introduced in the form of frames a method for specifying: 1. positions of points in space 2. orientations of rigid bodies in space 3. position and orientation of rigid bodies in space The machinery to achieve this was: (a) rotation matrices for 2 (b) homogeneous transformation matrices for 3. For both (a) and (b), three distinct interpretations existed: (i) as a description of frame (ii) as a transform mapping, i.e. mapping the description of a vector in one frame into its description in another (iii) as an operator, i.e. an operator on a vector in a particular frame to producing another distinct vector in the same frame. We looked at the multiplication and inverse operations of homogeneous transformations and their physical meaning. We explored other, more efficient, representations to rotation matrices for specifying the orientation of a frame: 1. Fixed and Euler angles 18

2. Equivalent ngle xis 3. Euler Parameters or Quarternions and compared the advantages and disadvantages of each method. 19