This is a little unnusual, since I’m not going to assign a reading – I can’t really pick.

We just dove in and started talking about rotations. Or to be more precise, I just dove in and started rambling about rotations and special orthogonal groups and … And maybe you learned something, or maybe your eyes just glazed over as you considered what other classes you could be taking.

But this is important stuff, and I want to make sure you learn about it.

So what I’d like everyone to do:

- Look over some of the LCOT stuff, just to get a sense of it. I’m still not sure if its something really useful, or just a mathematical curiosity. I don’t recommend reading through any of the details.
- Read enough about quaternions and rotation vectors that you have an idea of what they are, why you should use them, and where to look up the formulas when you need them. (and, yes, you will need them)

No need to write a summary or anything. But in the comments you can give me a sense of what you found useful in all of this, or what else we might try to do to make it settle in.

Please look this over before we discuss rotations in class on Wednesday, January 26th.

##### Readings on Rotations

Over the years, I’ve given out a bunch. They range from very practical “this is what the quaternion equations are” to very theoretical. There’s still no single article that I like to learn from. But maybe that’s just the nature of the topic.

*Representing Rotations and Orientations in Geometric Computing*by Jehee Lee (IEEE CG&A 2008) http://mrl.snu.ac.kr/publications/RotationAndOrientation.pdf. This is a very current paper that sums up the intuitions from someone who really knows it. It doesn’t necessarily give the low-level details of how quaternions work (look at some older article for that), but explains why we like them. There are lots of pros and cons to the various representations, so I’m not sure I necessarily buy into his idea that we should always do quaternions for orientations and rotation vectors (exponential coordinates) for rotations, but the argument is well laid out, and the intuitions are conveyed. Also he doesn’t give all the details of the quaternion/rot vector operators, so you’ll need another resource for that.- Chapter 2: Rigid Body Motions, in
*A Mathematical Introduction to Robotic Manipulation*by Murray, Li and Shastry.murray_li_shashtry_2.pdf. Still the best theoretical discussion of rotations. But it might be a little too theoretical for most.

##### Some other articles

If you google around, you will find countless sources for the equations for quaternions. If you need make sure to pick something that seems authoratative. For getting the intuitions, I suggest:

*Practical Parameterization of Rotations Using the Exponential Map*F. Febastian Grassia, Journal of Graphics Tools, 1998. http://www.cs.cmu.edu/~spiff/moedit99/expmap.pdf Note: this is a nice discussion of the issues in working with rotation, and survey of different rotation representations. Ironically, his discussions of the exponential map are not the best.*Animating rotation with quaternion curves*Ken Shoemake, SIGGRAPH ’85. http://doi.acm.org/10.1145/325334.325242 Note: This paper is of historical interest since it is singlehandedly responsible for introducing quaternions to the graphics community. However, it is a bit dated, and the hacks for quaternion splines are now superceded by some actual math.- RTR 4.3 discusses Quaternions, but doesn’t really give much insights beyond the basic equations. (note: I will refer to RTR (real-time rendering) a lot – it’s a book that I like a lot, although its not as directly relevant for this class).
*Understanding SLERP and not using it*by Jonathan Blow http://number-none.com/product/Understanding%20Slerp,%20Then%20Not%20Using%20It/. A nice explanation of what SLERP is from a game guy. This gets into some really practical rammifications.- A very dated game developer article about quaternions: http://www.gamasutra.com/view/feature/3278/rotating_objects_using_quaternions.php

##### General Combinations of Transformations

The study of how to combine general transformations is interesting because it gets at the core issues, but the ideas turn out to be flawed.

*Linear Combinations of Transformations*by Marc Alexa (SIGGRAPH 2002). http://portal.acm.org/citation.cfm?id=566592. This is a paper that got people thinking about this stuff in a general way. And you can implement it and it does somewhat reasonable things.*Errors and Omissions in Marc Alexa’s “Linear Combination of Transformations”*by Bloom, Blow, and Muramoto. This is an unfinished rant by a couple of game programmers (who seem to know some complicated math). While the form of this (a rant is not a typical academic paper) is wierd, and some of the mathematical details are overly complex (and possibly not right), the intuitions are quite good.*Re-Cinematography: Improving the Camerawork of Casual Video*by Gleicher and Liu (ACM TOMCCAP 2008). http://www.cs.wisc.edu/graphics/Papers/Gleicher/Video/tomccap-proof.pdf. A cool application where we basically say “who cares if Alexa is wrong – its close enough.”- Automated Illustration of Molecular Flexibility (Bryden, Phillips & Gleicher, to appear) – another one of our papers where we did something cool using the matrix exponentials. Learning this stuff paid off (for me at least)!
- Camera Keyframing Using Linear Interpolation of Matrices. Another application of this (not by me). This paper is nice because it gives some gory details for implementing the matrix operations.

{ 7 comments }

The link for Chapter 2: Rigid Body Motions requires a password, and I’m not sure what to give it. Neither my CS or WordPress account worked.

The gamasutra.com link is dead.

The Murray,Li & Shastry link should now be to something for which your CS password works.

Same problem in here.

One thing I think I picked up from the first article is what makes rotations and orientation different.

One thing that I’ve found about this kind of stuff is that doing it makes it sink in more than reading about it. I remember the roller coaster project in 559 really made me think about rotation and orientation in order to get the track to bank correctly. I think I’ll probably have to do something like that for quaternions and rotation vectors.

I totally agree, actually applying what we read will be very helpful in understanding it.

I noticed that I was able to get a high-level understanding of the material from the papers I read, but about halfway through each paper I hit this wall where I guess the authors assumed some background knowledge that I don’t have yet, and I was no longer really able to follow mathematical details.

(I read the first paper and Shoemake’s paper)

I found the article “Understanding SLERP and not using it” extremely useful. I have read many text books creating the impression that SLERP is the ultimate in

interpolation. This article was really eye opener for something we take for granted.

This reading exercise might have the best set of articles/papers, ever!

I loved the explanation of rotations & orientations, and why some representations don’t work or are not good (Gimbal lock, non-smooth interpolation, too much state/constraints for less degrees of freedom, etc). The reason behind wanting different representations for a rotation and an orientation was beautifully presented as well.

The notion of commutativity, torque-minimal & constant angular velocity and how different quaternion based interpolation mechanisms slerp, nlerp & exponential map satisfy only 2 of these properties was quite interesting, though I could get only a gist of the idea.

The importance of interpolation (which, somehow, i’ve always downplayed) really struck out through this reading.

I skimmed through a bunch of the articles and lost my way in visualizing hyperspheres..