Quaternions and Euler Angles

Size: px
Start display at page:

Download "Quaternions and Euler Angles"

Transcription

1 Quaternions and Euler Angles Revision #1 This document describes how the VR Audio Kit handles the orientation of the 3D Sound One headset using quaternions and Euler angles, and how to convert between these formalisms. Revision #1 Page 1/8

2 Table of Contents 1 Description of the 3D Sound One headset...4 Orientation formalisms Quaternions...4. Euler angles Conversion from quaternions to Euler angles Algebra of rotation coordinates and reset heading Quaternions Euler angles Application to the HOA library Display in OpenGL Quaternions Euler angles...8 Revision #1 Page /8

3 Document History Date Author Revision Notes Feb 1 st 016 David Le Bansais 1 Initial revision Revision #1 Page 3/8

4 1 Description of the 3D Sound One headset This headset includes a head-tracking system that knows, in real-time, the position of the user's head in space. This information is available to computers if they connect to the device and request it using Bluetooth. The position of the headset reflects that of the user's head, and is provided as rotations in 3D space. These rotations are relative to the initial position of the headset when it was powered up. This document explains how to interpret the data sent by the headset, for instance to display a headset on the monitor that follows the movements of the user, or to tell the spatialization library how to apply 3D sound effects. Orientation formalisms There are at least two ways to describe orientation in 3D space: Quaternions, a 4-numbers coordinate system that describes orientation as a vector in the x,y,z axis, and an angle θ around this vector. Euler angles, a set of 3 rotations around each of the x,y and z axis. While Euler angles are more intuitive, quaternions are better suited for calculations. For this reason, the headset data is sent as quaternions. It can be converted to Euler angles if desired, and this document explains how to do it..1 Quaternions For a full reference see the Wikipedia article: The rotation is expressed by a rotation scalar and a vector in 3-dimensional space, the notation used in the rest of this document is the following: Q = q r + q i i + q j j + q k k Q is the quaternion. i, j and k are orthogonal axis in 3D space. The exact direction of i, j and k doesn't matter since they are relative to the position of the headset when it was powered up and therefore have no absolute meaning. q r is the rotation angle, and q i, q j and q k the coefficients along each axis. Note that the vector [q r, q i, q j, q k ] is normalized: q r + q i + q j + q k = 1 The unit quaternion, when there is no rotation, is q r = 1, q i = 0, q j = 0 and q k = 0. Using this notation, the rotation of the headset is expressed as follow: Revision #1 Page 4/8

5 Left and right (the head rotates on the horizontal plane): q r + q i = 1 and q j = 0, q k = 0. q i becomes positive when the head turns to the right. Up and down (the head rotates on the vertical plane, facing ahead): q r + q k = 1 and q i = 0, q j = 0. q k becomes positive when the head looks down. Rolling (the head is leaning to left and right): q r + q j = 1 and q i = 0, q k = 0. q j becomes positive when the head leans to the left.. Euler angles For a full reference see the Wikipedia article: The VR Audio Kit uses the terms Yaw, Pitch and Roll to describe the rotation of the head following the x-y'-z'' convention, also called intrinsic Tait-Bryan angles. Yaw is the rotation around the vertical axis. The value 0 corresponds to facing the screen (or any reference point), positive values correspond to the head turning to the left, and negative values to the head turning to the right. Pitch is the rotation around the horizontal axis from one ear to the other. The value 0 corresponds to facing the screen (or any reference point), positive values correspond to the head looking down, and negative values to the head looking up. Roll is the rotation around the horizontal axis from the nape to the nose. The value 0 corresponds to the head positioned vertically, positive values correspond to the head leaning to the left, and negative values to the head leaning to the right. The unit triplet when there is no rotation is Yaw = 0, Pitch = 0 and Roll = 0. Euler angles are less suited than quaternions to express all 3D rotations because this coordinate system has singularities, an issue known as gimbal lock. Note that Yaw and q i have different signs: when the head turns to the left, Yaw is positive and q i is negative. 3 Conversion from quaternions to Euler angles Given the choice of axis in the quaternion definition, Euler angles can be obtained using the following formula: Yaw = atan ( (q r q k - q i q j ), 1 (q i + q k )) Pitch = arcsin( (q r q i + q j q k )) Roll = atan ( (q r q j - q i q k ), 1 (q i + q j )) (π / ) The atan (y, x) function computes the arctangent of y/x in such a way that the sign and value of the result are well defined everywhere and follow the quadrant in which (x,y) is located. The complete definition of atan can be found at Revision #1 Page 5/8

6 4 Algebra of rotation coordinates and reset heading The rotation of the headset, regardless of the coordinate system used, is relative to the position of the headset when it was powered up. To obtain a meaningful position, applications allow the user to indicate when the headset is in the desired base position (usually when facing a monitor). This operation is called reset heading, and the rotation of the headset when in that position should be the unit rotation: the [1,0,0,0] quaternion or the [0,0,0] Euler angle. For this purpose, an application should record the value of the rotation when the headset is the base position, and substract it from any subsequent measured rotation: R current = R measured R base Calculating the opposite of a rotation, and composing rotations are the two operations we need. 4.1 Quaternions The opposite of the quaternion Q = [q r,q i,q j,q k ] is simply Q' = [q r,-q i,-q j,-q k ]. Composing quaternions Q'' = Q Q' is more complex but simply consists in multiplying the q r + q i i + q j j + q k k and q r ' + q i 'i + q j 'j + q k 'k expressions. Then, equaling coefficients and assuming the products ii, ij obey the following anti-commutation rules: i = j = k = -1 ij = -ji = k jk = -kj = i ki = -ik = j The final result Q'' has the following coefficients: Q r '' = Q r Q r ' Q i Q i ' Q j Q j ' Q k Q k ' Q i '' = Q r Q i ' + Q i Q r ' + Q j Q k ' Q k Q j ' Q j '' = Q r Q j ' Q i Q k ' + Q j Q r ' + Q k Q i ' Q k '' = Q r Q k ' + Q i Q j ' Q j Q i ' + Q k Q r ' 4. Euler angles The opposite of the (Yaw, Pitch, Roll) triplet is (-Yaw,-Pitch, -Roll), and composing Euler angles simply consists in adding their components: Yaw'' = Yaw + Yaw' Pitch'' = Pitch + Pitch' Revision #1 Page 6/8

7 Roll'' = Roll + Roll' 5 Application to the HOA library The HOA library can be used either with quaternions or Euler angles. We recommend using quaternions when possible because they don't lead to instabilities in calculations, and don't use trigonometric functions. If Q base is the quaternion recorded as the base quaternion when the user chose to reset heading, and if Q last is the last measured quaternion value from the headset, an application should pass the following values to the HOA library mixersetquaternion function: Q r = Q base r Q last r + Q base i Q last i + Q base j Q last j + Q base k Q last k Q i = Q base r Q last i Q base i Q last r Q base j Q last k + Q base k Q last j Q j = Q base r Q last j + Q base i Q last k Q base j Q last r Q base k Q last i Q k = Q base r Q last k Q base i Q last j + Q base j Q last i Q base k Q last r 6 Display in OpenGL Rotations measured from the headset can also be used to display a head (or headset) 3D-model on the screen. In this case it is assumed that the application will use the OpenGL library. This section provides instructions to apply rotations in the OpenGL environment so that the 3D-model display follows the movements of the user's head. 6.1 Quaternions Quaternions are used by converting them into an OpenGL rotation matrix, then multiplying this matrix with the current matrix using the glmultmatrix function. First, a switch of axis and orientation is necessary to make quaternions use the same axis reference as OpenGL: If a, b, c, d are the coefficients to use to create the rotation matrix, we define them as a = q r b = q k c = -q i d = -q j The rotation matrix is then calculated as follow, using the formula found in Wikipedia at rix_representation. The OpenGL matrix is a 4x4 matrix, we therefore extend the formula in Wikipedia from a 3x3 matrix to 4x4 by adding the identity coefficients (they correspond to a null translation), and considering that it is expressed as an array M of 16 values in column-order, it Revision #1 Page 7/8

8 gives: m 0 = a a + b b - c c d d m 1 = b c + a d m = b d a c m 3 = 0 m 4 = b c a d m 5 = a a - b b + c c d d m 6 = c d + a b m 7 = 0 m 8 = b d + a c m 9 = c d a b m 10 = a a - b b - c c + d d m 11 = 0 m 1 = 0 m 13 = 0 m 14 = 0 m 15 = 1 6. Euler angles These are applied to the OpenGL environment using the glrotate function. To apply a rotation of angle (Yaw, Pitch, Roll) do the following: glrotate(yaw, 0, 1.0, 0) glrotate(pitch, 1.0, 0, 0) glrotate(-roll, 0, 0, 1.0) To apply the opposite of that rotation, calls to glrotate must be reversed: glrotate(roll, 0, 0, 1.0) glrotate(-pitch, 1.0, 0, 0) glrotate(-yaw, 0, 1.0, 0) Revision #1 Page 8/8

Quaternions & Rotation in 3D Space

Quaternions & Rotation in 3D Space Quaternions & Rotation in 3D Space 1 Overview Quaternions: definition Quaternion properties Quaternions and rotation matrices Quaternion-rotation matrices relationship Spherical linear interpolation Concluding

More information

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

Geometric transformations in 3D and coordinate frames. Computer Graphics CSE 167 Lecture 3 Geometric transformations in 3D and coordinate frames Computer Graphics CSE 167 Lecture 3 CSE 167: Computer Graphics 3D points as vectors Geometric transformations in 3D Coordinate frames CSE 167, Winter

More information

Quaternions and Rotations

Quaternions and Rotations CSCI 520 Computer Animation and Simulation Quaternions and Rotations Jernej Barbic University of Southern California 1 Rotations Very important in computer animation and robotics Joint angles, rigid body

More information

12.1 Quaternions and Rotations

12.1 Quaternions and Rotations Fall 2015 CSCI 420 Computer Graphics 12.1 Quaternions and Rotations Hao Li http://cs420.hao-li.com 1 Rotations Very important in computer animation and robotics Joint angles, rigid body orientations, camera

More information

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

ME 597: AUTONOMOUS MOBILE ROBOTICS SECTION 2 COORDINATE TRANSFORMS. Prof. Steven Waslander ME 597: AUTONOMOUS MOILE ROOTICS SECTION 2 COORDINATE TRANSFORMS Prof. Steven Waslander OUTLINE Coordinate Frames and Transforms Rotation Matrices Euler Angles Quaternions Homogeneous Transforms 2 COORDINATE

More information

Quaternions and Rotations

Quaternions and Rotations CSCI 520 Computer Animation and Simulation Quaternions and Rotations Jernej Barbic University of Southern California 1 Rotations Very important in computer animation and robotics Joint angles, rigid body

More information

Quaternions and Rotations

Quaternions and Rotations CSCI 420 Computer Graphics Lecture 20 and Rotations Rotations Motion Capture [Angel Ch. 3.14] Rotations Very important in computer animation and robotics Joint angles, rigid body orientations, camera parameters

More information

Quaternions and Rotations

Quaternions and Rotations CSCI 480 Computer Graphics Lecture 20 and Rotations April 6, 2011 Jernej Barbic Rotations Motion Capture [Ch. 4.12] University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s11/ 1 Rotations

More information

CS354 Computer Graphics Rotations and Quaternions

CS354 Computer Graphics Rotations and Quaternions Slide Credit: Don Fussell CS354 Computer Graphics Rotations and Quaternions Qixing Huang April 4th 2018 Orientation Position and Orientation The position of an object can be represented as a translation

More information

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

Analysis of Euler Angles in a Simple Two-Axis Gimbals Set Vol:5, No:9, 2 Analysis of Euler Angles in a Simple Two-Axis Gimbals Set Ma Myint Myint Aye International Science Index, Mechanical and Mechatronics Engineering Vol:5, No:9, 2 waset.org/publication/358

More information

CS612 - Algorithms in Bioinformatics

CS612 - Algorithms in Bioinformatics Fall 2017 Structural Manipulation November 22, 2017 Rapid Structural Analysis Methods Emergence of large structural databases which do not allow manual (visual) analysis and require efficient 3-D search

More information

Orientation & Quaternions

Orientation & Quaternions Orientation & Quaternions Orientation Position and Orientation The position of an object can be represented as a translation of the object from the origin The orientation of an object can be represented

More information

Inertial Measurement Units II!

Inertial Measurement Units II! ! Inertial Measurement Units II! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 10! stanford.edu/class/ee267/!! wikipedia! Polynesian Migration! Lecture Overview! short review of

More information

Quaternion Rotations AUI Course Denbigh Starkey

Quaternion Rotations AUI Course Denbigh Starkey Major points of these notes: Quaternion Rotations AUI Course Denbigh Starkey. What I will and won t be doing. Definition of a quaternion and notation 3 3. Using quaternions to rotate any point around an

More information

Autonomous Navigation for Flying Robots

Autonomous Navigation for Flying Robots Computer Vision Group Prof. Daniel Cremers Autonomous Navigation for Flying Robots Lecture 3.1: 3D Geometry Jürgen Sturm Technische Universität München Points in 3D 3D point Augmented vector Homogeneous

More information

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

3D Transformations. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 11 3D Transformations CS 4620 Lecture 11 1 Announcements A2 due tomorrow Demos on Monday Please sign up for a slot Post on piazza 2 Translation 3 Scaling 4 Rotation about z axis 5 Rotation about x axis 6

More information

CMSC 425: Lecture 6 Affine Transformations and Rotations

CMSC 425: Lecture 6 Affine Transformations and Rotations CMSC 45: Lecture 6 Affine Transformations and Rotations Affine Transformations: So far we have been stepping through the basic elements of geometric programming. We have discussed points, vectors, and

More information

Introduction to quaternions. Mathematics. Operations

Introduction to quaternions. Mathematics. Operations Introduction to quaternions Topics: Definition Mathematics Operations Euler Angles (optional) intro to quaternions 1 noel.h.hughes@gmail.com Euler's Theorem y y Angle! rotation follows right hand rule

More information

Transformations: 2D Transforms

Transformations: 2D Transforms 1. Translation Transformations: 2D Transforms Relocation of point WRT frame Given P = (x, y), translation T (dx, dy) Then P (x, y ) = T (dx, dy) P, where x = x + dx, y = y + dy Using matrix representation

More information

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

Quaternion to Euler Angle Conversion for Arbitrary Rotation Sequence Using Geometric Methods uaternion to Euler Angle Conversion for Arbitrary Rotation Sequence Using Geometric Methods ê = normalized Euler ation axis i Noel H. Hughes Nomenclature = indices of first, second and third Euler

More information

CS770/870 Spring 2017 Quaternions

CS770/870 Spring 2017 Quaternions CS770/870 Spring 2017 Quaternions Primary resources used in preparing these notes: 1. van Osten, 3D Game Engine Programming: Understanding Quaternions, https://www.3dgep.com/understanding-quaternions 2.

More information

3D Kinematics. Consists of two parts

3D Kinematics. Consists of two parts D Kinematics Consists of two parts D rotation D translation The same as D D rotation is more complicated than D rotation (restricted to z-ais) Net, we will discuss the treatment for spatial (D) rotation

More information

Anatomical Descriptions That Compute Functional Attributes

Anatomical Descriptions That Compute Functional Attributes Anatomical Descriptions That Compute Functional Attributes Goal: To write a description of an anatomical structure that leads directly to the calculation of its functional attributes. For instance, an

More information

Rotations in 3D Graphics and the Gimbal Lock

Rotations in 3D Graphics and the Gimbal Lock Rotations in 3D Graphics and the Gimbal Lock Valentin Koch Autodesk Inc. January 27, 2016 Valentin Koch (ADSK) IEEE Okanagan January 27, 2016 1 / 37 Presentation Road Map 1 Introduction 2 Rotation Matrices

More information

Transformation. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Transformation. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON S RBE 550 Transformation Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11 Announcement Project

More information

CS184: Using Quaternions to Represent Rotation

CS184: Using Quaternions to Represent Rotation Page 1 of 5 CS 184 home page A note on these notes: These notes on quaternions were created as a resource for students taking CS184 at UC Berkeley. I am not doing any research related to quaternions and

More information

Quaternion properties: addition. Introduction to quaternions. Quaternion properties: multiplication. Derivation of multiplication

Quaternion properties: addition. Introduction to quaternions. Quaternion properties: multiplication. Derivation of multiplication Introduction to quaternions Definition: A quaternion q consists of a scalar part s, s, and a vector part v ( xyz,,, v 3 : q where, [ s, v q [ s, ( xyz,, q s+ ix + jy + kz i 2 j 2 k 2 1 ij ji k k Quaternion

More information

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

3D Transformations. CS 4620 Lecture 10. Cornell CS4620 Fall 2014 Lecture Steve Marschner (with previous instructors James/Bala) 3D Transformations CS 4620 Lecture 10 1 Translation 2 Scaling 3 Rotation about z axis 4 Rotation about x axis 5 Rotation about y axis 6 Properties of Matrices Translations: linear part is the identity

More information

1 Historical Notes. Kinematics 5: Quaternions

1 Historical Notes. Kinematics 5: Quaternions 1 Historical Notes Quaternions were invented by the Irish mathematician William Rowan Hamilton in the late 1890s. The story goes 1 that Hamilton has pondered the problem of dividing one vector by another

More information

3D Rotation for Flight Simulator - Google Earth Application R.P. McElrath, October, 2015

3D Rotation for Flight Simulator - Google Earth Application R.P. McElrath, October, 2015 3D Rotation for Flight Simulator - Google Earth Application R.P. McElrath, October, 015 Camera rotation for the Flight Simulator - Google Earth (G.E.) swivel cam application can be computed using either

More information

Quaternions and Dual Coupled Orthogonal Rotations in Four-Space

Quaternions and Dual Coupled Orthogonal Rotations in Four-Space Quaternions and Dual Coupled Orthogonal Rotations in Four-Space Kurt Nalty January 8, 204 Abstract Quaternion multiplication causes tensor stretching) and versor turning) operations. Multiplying by unit

More information

Lecture «Robot Dynamics»: Kinematics 2

Lecture «Robot Dynamics»: Kinematics 2 Lecture «Robot Dynamics»: Kinematics 2 151-851- V lecture: CAB G11 Tuesday 1:15 12:, every week exercise: HG G1 Wednesday 8:15 1:, according to schedule (about every 2nd week) office hour: LEE H33 Friday

More information

Vector Calculus: Understanding the Cross Product

Vector Calculus: Understanding the Cross Product University of Babylon College of Engineering Mechanical Engineering Dept. Subject : Mathematics III Class : 2 nd year - first semester Date: / 10 / 2016 2016 \ 2017 Vector Calculus: Understanding the Cross

More information

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

+ i a y )( cosφ + isinφ) ( ) + i( a x. cosφ a y. = a x Rotation Matrices and Rotated Coordinate Systems Robert Bernecky April, 2018 Rotated Coordinate Systems is a confusing topic, and there is no one standard or approach 1. The following provides a simplified

More information

Visualisation Pipeline : The Virtual Camera

Visualisation Pipeline : The Virtual Camera Visualisation Pipeline : The Virtual Camera The Graphics Pipeline 3D Pipeline The Virtual Camera The Camera is defined by using a parallelepiped as a view volume with two of the walls used as the near

More information

Animating orientation. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University

Animating orientation. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University Animating orientation CS 448D: Character Animation Prof. Vladlen Koltun Stanford University Orientation in the plane θ (cos θ, sin θ) ) R θ ( x y = sin θ ( cos θ sin θ )( x y ) cos θ Refresher: Homogenous

More information

Visual Recognition: Image Formation

Visual Recognition: Image Formation Visual Recognition: Image Formation Raquel Urtasun TTI Chicago Jan 5, 2012 Raquel Urtasun (TTI-C) Visual Recognition Jan 5, 2012 1 / 61 Today s lecture... Fundamentals of image formation You should know

More information

Chapter 3 : Computer Animation

Chapter 3 : Computer Animation Chapter 3 : Computer Animation Histor First animation films (Disne) 30 drawings / second animator in chief : ke frames others : secondar drawings Use the computer to interpolate? positions orientations

More information

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

Today. Today. Introduction. Matrices. Matrices. Computergrafik. Transformations & matrices Introduction Matrices Computergrafik Matthias Zwicker Universität Bern Herbst 2008 Today Transformations & matrices Introduction Matrices Homogeneous Affine transformations Concatenating transformations Change of Common coordinate

More information

Rotations (and other transformations) Rotation as rotation matrix. Storage. Apply to vector matrix vector multiply (15 flops)

Rotations (and other transformations) Rotation as rotation matrix. Storage. Apply to vector matrix vector multiply (15 flops) Cornell University CS 569: Interactive Computer Graphics Rotations (and other transformations) Lecture 4 2008 Steve Marschner 1 Rotation as rotation matrix 9 floats orthogonal and unit length columns and

More information

The Importance of Matrices in the DirectX API. by adding support in the programming language for frequently used calculations.

The Importance of Matrices in the DirectX API. by adding support in the programming language for frequently used calculations. Hermann Chong Dr. King Linear Algebra Applications 28 November 2001 The Importance of Matrices in the DirectX API In the world of 3D gaming, there are two APIs (Application Program Interface) that reign

More information

Rotation and Orientation: Fundamentals. Perelyaev Sergei VARNA, 2011

Rotation and Orientation: Fundamentals. Perelyaev Sergei VARNA, 2011 Rotation and Orientation: Fundamentals Perelyaev Sergei VARNA, 0 What is Rotation? Not intuitive Formal definitions are also confusing Many different ways to describe Rotation (direction cosine) matri

More information

Geometric Transformations

Geometric Transformations Geometric Transformations CS 4620 Lecture 9 2017 Steve Marschner 1 A little quick math background Notation for sets, functions, mappings Linear and affine transformations Matrices Matrix-vector multiplication

More information

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

CS 445 / 645 Introduction to Computer Graphics. Lecture 21 Representing Rotations CS 445 / 645 Introduction to Computer Graphics Lecture 21 Representing Rotations Parameterizing Rotations Straightforward in 2D A scalar, θ, represents rotation in plane More complicated in 3D Three scalars

More information

Something noteworthy

Something noteworthy Something noteworthy Very very noteworthy OpenGL postmultiply each new transformation matrix M = M x Mnew Example: perform translation, then rotation 0) M = Identity 1) translation T(tx,ty,0) -> M = M

More information

Visualizing Quaternions

Visualizing Quaternions Visualizing Quaternions Andrew J. Hanson Computer Science Department Indiana University Siggraph 1 Tutorial 1 GRAND PLAN I: Fundamentals of Quaternions II: Visualizing Quaternion Geometry III: Quaternion

More information

1 Transformations. Chapter 1. Transformations. Department of Computer Science and Engineering 1-1

1 Transformations. Chapter 1. Transformations. Department of Computer Science and Engineering 1-1 Transformations 1-1 Transformations are used within the entire viewing pipeline: Projection from world to view coordinate system View modifications: Panning Zooming Rotation 1-2 Transformations can also

More information

Rotational Joint Limits in Quaternion Space. Gino van den Bergen Dtecta

Rotational Joint Limits in Quaternion Space. Gino van den Bergen Dtecta Rotational Joint Limits in Quaternion Space Gino van den Bergen Dtecta Rotational Joint Limits: 1 DoF Image: Autodesk, Creative Commons Rotational Joint Limits: 3 DoFs Image: Autodesk, Creative Commons

More information

Coordinate Transformations. Coordinate Transformation. Problem in animation. Coordinate Transformation. Rendering Pipeline $ = $! $ ! $!

Coordinate Transformations. Coordinate Transformation. Problem in animation. Coordinate Transformation. Rendering Pipeline $ = $! $ ! $! Rendering Pipeline Another look at rotation Photography: real scene camera (captures light) photo processing Photographic print processing Computer Graphics: 3D models camera tone model reproduction (focuses

More information

PSE Game Physics. Session (3) Springs, Ropes, Linear Momentum and Rotations. Oliver Meister, Roland Wittmann

PSE Game Physics. Session (3) Springs, Ropes, Linear Momentum and Rotations. Oliver Meister, Roland Wittmann PSE Game Physics Session (3) Springs, Ropes, Linear Momentum and Rotations Oliver Meister, Roland Wittmann 08.05.2015 Session (3) Springs, Ropes, Linear Momentum and Rotations, 08.05.2015 1 Outline Springs

More information

Lecture Note 3: Rotational Motion

Lecture Note 3: Rotational Motion ECE5463: Introduction to Robotics Lecture Note 3: Rotational Motion Prof. Wei Zhang Department of Electrical and Computer Engineering Ohio State University Columbus, Ohio, USA Spring 2018 Lecture 3 (ECE5463

More information

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

a a= a a =a a 1 =1 Division turned out to be equivalent to multiplication: a b= a b =a 1 b MATH 245 Extra Effort ( points) My assistant read through my first draft, got half a page in, and skipped to the end. So I will save you the flipping. Here is the assignment. Do just one of them. All the

More information

CS 475 / CS 675 Computer Graphics. Lecture 16 : Interpolation for Animation

CS 475 / CS 675 Computer Graphics. Lecture 16 : Interpolation for Animation CS 475 / CS 675 Computer Graphics Lecture 16 : Interpolation for Keyframing Selected (key) frames are specified. Interpolation of intermediate frames. Simple and popular approach. May give incorrect (inconsistent)

More information

Transforms 1 Christian Miller CS Fall 2011

Transforms 1 Christian Miller CS Fall 2011 Transforms 1 Christian Miller CS 354 - Fall 2011 Transformations What happens if you multiply a square matrix and a vector together? You get a different vector with the same number of coordinates These

More information

Attitude Representation

Attitude Representation Attitude Representation Basilio Bona DAUIN Politecnico di Torino Semester 1, 015-16 B. Bona (DAUIN) Attitude Representation Semester 1, 015-16 1 / 3 Mathematical preliminaries A 3D rotation matrix R =

More information

IMAGE-BASED RENDERING AND ANIMATION

IMAGE-BASED RENDERING AND ANIMATION DH2323 DGI17 INTRODUCTION TO COMPUTER GRAPHICS AND INTERACTION IMAGE-BASED RENDERING AND ANIMATION Christopher Peters CST, KTH Royal Institute of Technology, Sweden chpeters@kth.se http://kth.academia.edu/christopheredwardpeters

More information

Section 7.6 Graphs of the Sine and Cosine Functions

Section 7.6 Graphs of the Sine and Cosine Functions Section 7.6 Graphs of the Sine and Cosine Functions We are going to learn how to graph the sine and cosine functions on the xy-plane. Just like with any other function, it is easy to do by plotting points.

More information

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation Keyframe animation CS4620/5620: Lecture 30 Animation Keyframing is the technique used for pose-to-pose animation User creates key poses just enough to indicate what the motion is supposed to be Interpolate

More information

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

To do this the end effector of the robot must be correctly positioned relative to the work piece. 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

More information

Animation. Animation

Animation. Animation CS475m - Computer Graphics Lecture 5 : Interpolation for Selected (key) frames are specified. Interpolation of intermediate frames. Simple and popular approach. May give incorrect (inconsistent) results.

More information

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

Geometric transformations assign a point to a point, so it is a point valued function of points. Geometric transformation may destroy the equation Geometric transformations assign a point to a point, so it is a point valued function of points. Geometric transformation may destroy the equation and the type of an object. Even simple scaling turns a

More information

Fundamentals of Computer Animation

Fundamentals of Computer Animation Fundamentals of Computer Animation Orientation and Rotation University of Calgary GraphicsJungle Project CPSC 587 5 page Motivation Finding the most natural and compact way to present rotation and orientations

More information

3D Game Engine Programming. Understanding Quaternions. Helping you build your dream game engine. Posted on June 25, 2012 by Jeremiah van Oosten

3D Game Engine Programming. Understanding Quaternions. Helping you build your dream game engine. Posted on June 25, 2012 by Jeremiah van Oosten 3D Game Engine Programming Helping you build your dream game engine. Understanding Quaternions Posted on June 25, 2012 by Jeremiah van Oosten Understanding Quaternions In this article I will attempt to

More information

Monday, 12 November 12. Matrices

Monday, 12 November 12. Matrices Matrices Matrices Matrices are convenient way of storing multiple quantities or functions They are stored in a table like structure where each element will contain a numeric value that can be the result

More information

Trigonometric ratios provide relationships between the sides and angles of a right angle triangle. The three most commonly used ratios are:

Trigonometric ratios provide relationships between the sides and angles of a right angle triangle. The three most commonly used ratios are: TRIGONOMETRY TRIGONOMETRIC RATIOS If one of the angles of a triangle is 90º (a right angle), the triangle is called a right angled triangle. We indicate the 90º (right) angle by placing a box in its corner.)

More information

Secondary Math 3- Honors. 7-4 Inverse Trigonometric Functions

Secondary Math 3- Honors. 7-4 Inverse Trigonometric Functions Secondary Math 3- Honors 7-4 Inverse Trigonometric Functions Warm Up Fill in the Unit What You Will Learn How to restrict the domain of trigonometric functions so that the inverse can be constructed. How

More information

EE 267 Virtual Reality Course Notes: 3-DOF Orientation Tracking with IMUs

EE 267 Virtual Reality Course Notes: 3-DOF Orientation Tracking with IMUs EE 67 Virtual Reality Course Notes: 3-DOF Orientation Tracking with IMUs Gordon Wetzstein gordon.wetzstein@stanford.edu Updated on: September 5, 017 This document serves as a supplement to the material

More information

3D Mathematics. Co-ordinate systems, 3D primitives and affine transformations

3D Mathematics. Co-ordinate systems, 3D primitives and affine transformations 3D Mathematics Co-ordinate systems, 3D primitives and affine transformations Coordinate Systems 2 3 Primitive Types and Topologies Primitives Primitive Types and Topologies 4 A primitive is the most basic

More information

AH Matrices.notebook November 28, 2016

AH Matrices.notebook November 28, 2016 Matrices Numbers are put into arrays to help with multiplication, division etc. A Matrix (matrices pl.) is a rectangular array of numbers arranged in rows and columns. Matrices If there are m rows and

More information

Computing tilt measurement and tilt-compensated e-compass

Computing tilt measurement and tilt-compensated e-compass DT0058 Design tip Computing tilt measurement and tilt-compensated e-compass By Andrea Vitali Main components LSM303AGR LSM303C LSM303D Ultra compact high-performance e-compass: ultra-low-power 3D accelerometer

More information

Jorg s Graphics Lecture Notes Coordinate Spaces 1

Jorg s Graphics Lecture Notes Coordinate Spaces 1 Jorg s Graphics Lecture Notes Coordinate Spaces Coordinate Spaces Computer Graphics: Objects are rendered in the Euclidean Plane. However, the computational space is better viewed as one of Affine Space

More information

Computer Graphics. Chapter 5 Geometric Transformations. Somsak Walairacht, Computer Engineering, KMITL

Computer Graphics. Chapter 5 Geometric Transformations. Somsak Walairacht, Computer Engineering, KMITL Chapter 5 Geometric Transformations Somsak Walairacht, Computer Engineering, KMITL 1 Outline Basic Two-Dimensional Geometric Transformations Matrix Representations and Homogeneous Coordinates Inverse Transformations

More information

Rational Numbers: Graphing: The Coordinate Plane

Rational Numbers: Graphing: The Coordinate Plane Rational Numbers: Graphing: The Coordinate Plane A special kind of plane used in mathematics is the coordinate plane, sometimes called the Cartesian plane after its inventor, René Descartes. It is one

More information

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

Math 231E, Lecture 34. Polar Coordinates and Polar Parametric Equations Math 231E, Lecture 34. Polar Coordinates and Polar Parametric Equations 1 Definition of polar coordinates Let us first recall the definition of Cartesian coordinates: to each point in the plane we can

More information

Transformations Week 9, Lecture 18

Transformations Week 9, Lecture 18 CS 536 Computer Graphics Transformations Week 9, Lecture 18 2D Transformations David Breen, William Regli and Maxim Peysakhov Department of Computer Science Drexel University 1 3 2D Affine Transformations

More information

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

Answers. Chapter 2. 1) Give the coordinates of the following points: Answers Chapter 2 1) Give the coordinates of the following points: a (-2.5, 3) b (1, 2) c (2.5, 2) d (-1, 1) e (0, 0) f (2, -0.5) g (-0.5, -1.5) h (0, -2) j (-3, -2) 1 2) List the 48 different possible

More information

Quaternions and Exponentials

Quaternions and Exponentials Quaternions and Exponentials Michael Kazhdan (601.457/657) HB A.6 FvDFH 21.1.3 Announcements OpenGL review II: Today at 9:00pm, Malone 228 This week's graphics reading seminar: Today 2:00-3:00pm, my office

More information

Section 6.2 Graphs of the Other Trig Functions

Section 6.2 Graphs of the Other Trig Functions Section 62 Graphs of the Other Trig Functions 369 Section 62 Graphs of the Other Trig Functions In this section, we will explore the graphs of the other four trigonometric functions We ll begin with the

More information

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala Animation CS 4620 Lecture 32 Cornell CS4620 Fall 2015 1 What is animation? Modeling = specifying shape using all the tools we ve seen: hierarchies, meshes, curved surfaces Animation = specifying shape

More information

Animation and Quaternions

Animation and Quaternions Animation and Quaternions Partially based on slides by Justin Solomon: http://graphics.stanford.edu/courses/cs148-1-summer/assets/lecture_slides/lecture14_animation_techniques.pdf 1 Luxo Jr. Pixar 1986

More information

Motivation. Parametric Curves (later Surfaces) Outline. Tangents, Normals, Binormals. Arclength. Advanced Computer Graphics (Fall 2010)

Motivation. Parametric Curves (later Surfaces) Outline. Tangents, Normals, Binormals. Arclength. Advanced Computer Graphics (Fall 2010) Advanced Computer Graphics (Fall 2010) CS 283, Lecture 19: Basic Geometric Concepts and Rotations Ravi Ramamoorthi http://inst.eecs.berkeley.edu/~cs283/fa10 Motivation Moving from rendering to simulation,

More information

METR Robotics Tutorial 2 Week 3: Homogeneous Coordinates SOLUTIONS & COMMENTARY

METR Robotics Tutorial 2 Week 3: Homogeneous Coordinates SOLUTIONS & COMMENTARY METR4202 -- Robotics Tutorial 2 Week 3: Homogeneous Coordinates SOLUTIONS & COMMENTARY Questions 1. Calculate the homogeneous transformation matrix A BT given the [20 points] translations ( A P B ) and

More information

3D Rotations and Complex Representations. Computer Graphics CMU /15-662, Fall 2017

3D Rotations and Complex Representations. Computer Graphics CMU /15-662, Fall 2017 3D Rotations and Complex Representations Computer Graphics CMU 15-462/15-662, Fall 2017 Rotations in 3D What is a rotation, intuitively? How do you know a rotation when you see it? - length/distance is

More information

Representations and Transformations. Objectives

Representations and Transformations. Objectives Repreentation and Tranformation Objective Derive homogeneou coordinate tranformation matrice Introduce tandard tranformation - Rotation - Tranlation - Scaling - Shear Scalar, Point, Vector Three baic element

More information

Summer Review for Students Entering Pre-Calculus with Trigonometry. TI-84 Plus Graphing Calculator is required for this course.

Summer Review for Students Entering Pre-Calculus with Trigonometry. TI-84 Plus Graphing Calculator is required for this course. 1. Using Function Notation and Identifying Domain and Range 2. Multiplying Polynomials and Solving Quadratics 3. Solving with Trig Ratios and Pythagorean Theorem 4. Multiplying and Dividing Rational Expressions

More information

Graphics and Interaction Transformation geometry and homogeneous coordinates

Graphics and Interaction Transformation geometry and homogeneous coordinates 433-324 Graphics and Interaction Transformation geometry and homogeneous coordinates Department of Computer Science and Software Engineering The Lecture outline Introduction Vectors and matrices Translation

More information

Specifying Complex Scenes

Specifying Complex Scenes Transformations Specifying Complex Scenes (x,y,z) (r x,r y,r z ) 2 (,,) Specifying Complex Scenes Absolute position is not very natural Need a way to describe relative relationship: The lego is on top

More information

Interesting Application. Linear Algebra

Interesting Application. Linear Algebra MATH 308A PROJECT: An Interesting Application of Linear Algebra Produced by: Kristen Pilawski Math 308 A Professor James King Fall 2001 Application: Space Shuttle Control Systems Abstract: This report

More information

Computer Animation II

Computer Animation II Computer Animation II Orientation interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic Lecture 13 6.837 Fall 2002 Interpolation Review from Thursday Splines Articulated bodies

More information

Computation of Slope

Computation of Slope Computation of Slope Prepared by David R. Maidment and David Tarboton GIS in Water Resources Class University of Texas at Austin September 2011, Revised December 2011 There are various ways in which slope

More information

COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates

COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates Department of Computer Science and Software Engineering The Lecture outline Introduction Vectors and matrices Translation

More information

Lab 2A Finding Position and Interpolation with Quaternions

Lab 2A Finding Position and Interpolation with Quaternions Lab 2A Finding Position and Interpolation with Quaternions In this Lab we will learn how to use the RVIZ Robot Simulator, Python Programming Interpreter and ROS tf library to study Quaternion math. There

More information

Vertical Line Test a relationship is a function, if NO vertical line intersects the graph more than once

Vertical Line Test a relationship is a function, if NO vertical line intersects the graph more than once Algebra 2 Chapter 2 Domain input values, X (x, y) Range output values, Y (x, y) Function For each input, there is exactly one output Example: Vertical Line Test a relationship is a function, if NO vertical

More information

Reflection (M): Reflect simple plane figures in horizontal or vertical lines;

Reflection (M): Reflect simple plane figures in horizontal or vertical lines; IGCSE - Extended Mathematics Transformation Content: Transformation: Reflection (M): Reflect simple plane figures in horizontal or vertical lines; Rotation (R): Rotate simple plane figures about the origin,

More information

INF3320 Computer Graphics and Discrete Geometry

INF3320 Computer Graphics and Discrete Geometry INF3320 Computer Graphics and Discrete Geometry Transforms (part II) Christopher Dyken and Martin Reimers 21.09.2011 Page 1 Transforms (part II) Real Time Rendering book: Transforms (Chapter 4) The Red

More information

Complex Numbers, Polar Equations, and Parametric Equations. Copyright 2017, 2013, 2009 Pearson Education, Inc.

Complex Numbers, Polar Equations, and Parametric Equations. Copyright 2017, 2013, 2009 Pearson Education, Inc. 8 Complex Numbers, Polar Equations, and Parametric Equations Copyright 2017, 2013, 2009 Pearson Education, Inc. 1 8.2 Trigonometric (Polar) Form of Complex Numbers The Complex Plane and Vector Representation

More information

Visualizing Quaternions

Visualizing Quaternions Visualizing Quaternions Andrew J. Hanson Computer Science Department Indiana University Siggraph 25 Tutorial OUTLINE I: (45min) Twisting Belts, Rolling Balls, and Locking Gimbals: Explaining Rotation Sequences

More information

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

ME 115(a): Final Exam (Winter Quarter 2009/2010) ME 115(a): Final Exam (Winter Quarter 2009/2010) Instructions 1. Limit your total time to 5 hours. That is, it is okay to take a break in the middle of the exam if you need to ask a question, or go to

More information

IntroductionToRobotics-Lecture02

IntroductionToRobotics-Lecture02 IntroductionToRobotics-Lecture02 Instructor (Oussama Khatib):Okay. Let's get started. So as always, the lecture starts with a video segment, and today's video segment comes from 1991, and from the group

More information

CT5510: Computer Graphics. Transformation BOCHANG MOON

CT5510: Computer Graphics. Transformation BOCHANG MOON CT5510: Computer Graphics Transformation BOCHANG MOON 2D Translation Transformations such as rotation and scale can be represented using a matrix M.., How about translation? No way to express this using

More information