Notes originally by Laura Downs and by Alex Berg
Cs184:computing rotations in 3D Using the Rodrigues Formula to Compute rotations
Suppose we is rotating a point, p, in space by an angle, b, (later also called Theta) about an Axis through the origin represented by the unit vector, a.
First, we create the matrix A which is the linear transformation this computes the cross product of the vector a with any other vector, v.
| a x v = |
| Ayvz-azvy |
| Azvx-axvz |
| Axvy-ayvx |
|
|
= |
| 0 |
-az |
Ay |
| Az |
0 |
. a[ |
| -ay |
Ax |
0 |
|
|
|
= Av, with A = |
| 0 |
-az |
Ay |
| Az |
0 |
. a[ |
| -ay |
Ax |
0 |
|
|
Now, the rotation matrix can is written in terms of A as
Q = e
A
b =
I +
a sin (
b) +
a2 [1-cos (
b )] A Geometrical explanation
Rotation as Vector components in a 2D subspace
Suppose we is rotating a point,P, in space by an angle,b, about a axis through the origin, represented by the Unitvector,a. The component ofPParallel toa,PPar a, won't change during the transformation. The component ofPPerpendicular toa,PPeraWould rotate about the axis of the plane perpendicular to the axis of the same as in 2DThe vectorsPPeraandPBiper arof the correct length and orientation to act as thexandyVectors in this 2D rotation.
P' =PPara+ cos (b)PPera+ Sin (b)PBiper
P=P+ (aX (aXP)) + cos (b) (-(aX (aXP)) + sin (b) (aXP)
P' =P+ Sin (b) (aXP) + [1-cos (b)] (aX (aXP))
P=I+ Sin (b)A+ [1-cos (b)]A2)P
An algebraic explanation
Rotation as a differential equation
Suppose we is rotating a point, p, on space by an angle, b(called Theta in the formatted Equat ions), about an Axisthrough the origin, represented by the unit vector, a. We willform a differential equation describing the motion of the point FromTime t=0 to time t=b. Let p(T} is the position ofthe point at time t. The velocity of the point at any time is
P' (t) =
a x
p(t)
Now, if we use the matrix formula for cross products in our differential equation, wehave a first order, linear system of Differential equations, P' (t) = A p(t). The solution to, system is known to beingP(t) = eAtP(0) so the location of the the rotated point WI ll beP(b) = eAbP(0).
Taylor Expansions
Now we need to evaluate EAb, so we examine its Taylor expansion.
Considering how we constructed a, it's easy to verify, a ^3 =-aevery additional appl Ication of A turns the plane of Ppar aa^2 in theappropriate places, we get
Now, we recognize the "Taylor Expansions for Sin" (b) Andcos (b) in the above expression and find that
e A b = I + a< /strong> sin ( b ) + A 2 [1-cos ( b )]
| with A = |
| 0 |
-az |
ay |
| az |
0 |
-ax |
| -ay |
Ax |
0 |
|
|
|
gives us the rotation matrix. This formula is known as Rodrigues ' formula.
Useful Notegiven an arbitrary rotation matrix, can we find the corresponding rotation axis vectoand the angle of rotation
Consider r=eabthen by some algebra based on a =- at we have, r- Rt = 2 Acos (b) Using This and solving for A unit axis, and an angle we can recover the Axis (up to a factor of +/-1) and angle up to a factor of +/-2pi.
References
- "A mathematical Introduction to robotic manipulation", Richard M. Murray, Zexiang Li, S. Shankar Sastry, pp. 26- 28
Rodrigues formula is beautiful, but uneven to sine and cosine. (ZZ Berkeley ' s Page)