Rigid Motion and Homogeneous Transformation

A rigid motion of an object is a motion which preserves distance between points. In this article, we provide a description of rigid body motion using the tools of linear algebra and screw theory.

Rotation Matrix

Representation

Suppose there are two frames o0x0y0z0 and o1x1y1z1. A rotation matrix is defined as unit vectors x1, y1 and z1 in frame o0x0y0z0. A good way to represent rotation operation is to project o1x1y1z1 to o0x0y0z0:

R10=(x1x0y1x0z1x0x1y0y1y0z1y0x1z0y1z0z1z0)
Or
R10=[x10,y10,z10]
where x10,y10,z10 are the coordinates of the principal axes of 1 relative to 0.

In fact, each entry of the rotation matrix is a dot product1 of two unit vectors, in other words, is the cosine of the angle between the two vectors, i.e. directional cosine.
R10 is orthogonal (R10=(R01)T, (R10)T=(R10)1) and detR10=±1. To determine the sign of the determinant of R10, we recall from linear algebra that detR10=r1T(r2×r3) where r is its column. Since the coordinate frame is right-handed, we have that r2×r3=r1. Then detR10=1.

Define RSO(n) which is a special orthogonal group2, satisfying:
1. RT=R1SO(n);
2. Columns and rows of R are orthogonal;
3. Columns and rows of R are unit vectors;
4. detR=1.

Obviously, R10SO(3).

For illustration:
Assume that frame o1x1y1z1 rotate θ degrees around z0,

R10=(cθsθ0sθcθ0001)

For simplicity, we define Rz,θ=R10 temporarily. Then we see
Rz,0=I,Rz,θRz,ϕ=Rz.θ+ϕ,(Rz,θ)1=Rz,θ

Similarly,
Rx,θ=(1000cθsθ0sθcθ),Ry,θ=(cθ0sθ010sθ0cθ)

Rotation Transformation

Given a point p=[u,v,w]T, its coordinate in frame o1x1y1z1 is p1 satisfying

p=ux1+vy1+wz1

Since the principal axes of o1x1y1z1 have coordinates x10,y10,z10 with respect to o0x0y0z0, the coordinate of p relative to frame o0x0y0z0 is given by
p0=(x10y10z10)(uvw)=R10p1

A rotation matrix preserves distance and orientation. This can be proved partially by using some algebraic properties of the cross product3 operation between two vectors. Given RSO(3)
R(v×w)=(Rv)×(Rw),R(w)RT=(Rw)

Given a linear transformation A defined in frame o1x1y1z1. And B is the same linear transformation defined in frame o0x0y0z0. It can be showed that

B=(R10)1AR10

Rotation Superposition

Rotation w.r.t current frame:

{p0=R10p1p1=R21p2p0=R20p2p0=R10R21p2,R20=R10R21

Rotation w.r.t fixed frame: Just reverse the multiplier order of the above equation.
R20=R21R10
The equation above is called the composition rule.

Exponential Coordinates for Rotation

A common motion encountered in robotics is the rotation of a body about a given axis by some amount. Take the figure below as an illustration:
Rigid Motion and Homogeneous Transformation
Hypothesize that we rotate the point q at a constant unit angular velocity around ω, then q˙ may be written as:

q˙(t)=ω×q(t)=ω^q(t)
Thus
q(t)=eω^tq(0)
Due to the unit velocity hypothesis:
R(ω,θ)=eω^θ
It can be seen that ω^ is a skew-symmetric matrix, i.e. ω^T=ω^ . The vector space of 3×3 skew-symmetric matrix is demoted so(3). The sum of two elements of so(3) is an element of so(3) and the scalar multiple of any element of so(3) is an element of so(3). Furthermore, (v+ω)=v^+ω^ .

It will be convenient to represent a skew-symmetric matrix as the product of a unit skew-symmetric matrix and a real number, i.e. ω^so(3),ω=1,θR . Then by Taylor expansion, we can write:

eω^θ=I+ω^sinθ+ω^2(1cosθ)
This formula, commonly referred to as Rodrigues’formula4, gives an efficient method for computing exp(ωθ).

Every rotation matrix can be represented as the matrix exponential of some skew-symmetric matrix, i.e. the map exp:so(3)SO(3) is surjective (onto).

Euler Theorem: Any Orientation RSO(3) is equivalent to a rotation about a fixed axis ωR3 through an angle θ[0,2π).

Rotation Parameterization

Euler-angle

Around the current frame (Rz,ϕRy,θRz,ψ)

RZYZ=Rz,ϕRy,θRz,ψ=(cϕsϕ0sϕcϕ0001)(cθ0sθ010sθ0cθ)(cψsψ0sψcψ0001)=(cϕcθcψsϕsψcϕcθsψsϕcψcϕsθsϕcθcψ+cϕsψsϕcθs+cϕcψsϕsθsθcψsθsψcθ)

Roll-Pitch-Yaw

Around the fixed frame (Rx,ψRy,θRz,ϕ)

RXYZ=Rz,ϕRy,θRx,ψ=(cϕsϕ0sϕcϕ0001)(cθ0sθ010sθ0cθ)(1000cψsψ0sψcψ)=(cϕcθsϕcψ+cϕsθsψsϕsψ+cϕsθcψsϕcθcϕcψ+sϕsθsψcϕsψ+sϕsθcψsθcθsψcθcψ)

Axis Angle

Let k=[kx,ky,kz]T be an unit vector in frame o0x0y0z0. It can be seen as an axis. Let R=Rz,αRy,β make the vector k rotate to axis z. Then

Rk,θ=RRz,θR1=Rz,αRy,βRz,θRy,βRz,α

In fact, for any RSO(3) we can always define R=Rk,θ in which

θ=cos1(r11+r22+r3312),k=12sinθ(r32r23r13r31r21r12)

Rigid Motion

A mapping g:R3R3 is a rigid body transformation if it satisfies the following properties:

  1. Length is preserved: g(p)g(q)=pq for all points p,qR3.
  2. The cross product is preserved: g(v×w)=g(v)×g(w) for all vectors v,wR3.

The representation of general rigid body motion, involving both translation and rotation, is more involved. Rigid motions is defined as a sequence (d,R), where sR3, RSO(3). All the rigid motions form a group called Special Euclidean Group represented by SE(3).

Consider three frames o0x0y0z0, o1x1y1z1 and o2x2y2z2. There happened some rigid motions:

(560)p1=R21p2+d21(561)p0=R10p1+d10(562)p0=R10R21p2+R10d21+d10(563)p0=R20p2+d20

Finally, we get
(564)R20=R10R21(565)d20=d10+R10d21

Homogeneous Transformation

Homogeneous Representation

The sequential rigid motions above can be simplified as

(R10d1001)(R21d1201)=(R10R21R10d12+d1001)
The equation above is called the composition rule for rigid body transformations to be the standard matrix multiplication.
Define
H=(Rd01),RSO(3),dR3

as a homogeneous transformation. And let
P0=(p01),P1=(p11)

Then
P0=H10P1

It is evidently that
H1=(RTRTd01)

since R is orthogonal. It may be verified that the set of rigid transformations is a group, i.e.

  1. If g1,g2SE(3), then g1g2SE(3).
  2. The 4×4 identity element I is in SE(3).
  3. If g=(d,R)SE(3), then
    (7)g¯=(Rd01),g¯1=(RTRTd01)SE(3)
    So that g1=(RTd,RT).
  4. The composition rule for rigid body transformations is associative.

Ex: Consider the example below:
Rigid Motion and Homogeneous Transformation
The orientation of coordinate frame B with respect to A is

Rab=(cosθsinθ0sinθcosθ0001)
The coordinates for the origin of frame B are
pab=(0l10)
again relative to frame A. The homogeneous representation of the configuration of the rigid body is given by
gab(θ)=(cosθsinθ00sinθcosθ0l100100001)

Exponential coordinates for rigid motion and twist

The notion of the exponential mapping introduced for SO(3) can be generalized to the Euclidean group, SE(3). Analogous to the definition of so(3), we define

se(3):={(v,ω^):vR3,ω^so(3)}
In homogeneous coordinates, we write an element ξ^se(3) as
ξ^=(ω^v00)
An element of se(3) is referred to as a twist, or a (infinitesimal) generator of the Euclidean group. We also define
(ω^v00)=(vω),(vω)=(ω^v00)

Given ξ^se(3) and θR, the exponential of ξ^θ is an element of SE(3). Moreover

eξ^θ=(eω^θ(Ieω^θ)(ω×v)+ωωTvθ01),ω0

eξ^θ=(Ivθ01),ω=0

We interpret g=exp(ξ^θ) not as mapping points from one coordinate frame to another, but rather as mapping points from their initial coordinates to their coordinates after the rigid motion is applied:
p(θ)=eξ^θp(0)
In this equation, both p(0) and p(θ) are specified with respect to a single reference frame. Similarly, if we let gab(0) represent the initial configuration of a rigid body relative to a frame A, then the final configuration, still with respect to A, is given by
gab(θ)=eξ^θgab(0)
Thus, the exponential map for a twist gives the relative motion of a rigid body. Every rigid transformation can be written as the exponential of some twist.

Screw

In this section, we explore some of the geometric attributes associated with a twist ξ=(v,ω) . Consider a rigid body motion which consists of rotation about an axis in space through an angle of θ radians, followed by translation along the same axis by an amount d as shown below
Rigid Motion and Homogeneous Transformation
We call such a motion a screw motion.

A screw S consists of an axis l, a pitch h(h=d/θ), and a magnitude M. A screw motion represents rotation by an amount θ=M about the axis l followed by translation by an amount hθ parallel to the axis l. If h= then the corresponding screw motion consists of a pure translation along the axis of the screw by a distance M.

Recall the figure above, it can be seen that

gp=q+eω^θ(pq)+hθω
g(p1)=(eω^θ(Ieω^θ)q+hθω01)(p1)
This transformation maps points attached to the rigid body from their initial coordinates (θ=0) to their final coordinates, and all points are specified with respect to the fixed reference frame.

In fact, if we choose v=ω×q+hω, then ξ=(v,ω) generates the screw motion. A screw motion corresponds to motion along a constant twist by an amount equal to the magnitude of the screw.
we define a unit twist to be a twist such that either ω=1, or ω=0 and v=1; that is, a unit twist has magnitude M=1. Unit twists are useful since they allow us to express rigid motions due to revolute and prismatic joints as g=exp(ξ^θ) where θ corresponds to the amount of rotation or translation.

Chasles Theorem: Every rigid body motion can be realized by a rotation about an axis combined with a translation parallel to that axis.


Acknowledgement

  • Thanks Mark W. Spong for his great work of Robot Modeling and Control.
  • Thanks John J. Craig for his great work of Introduction to Robotics - Mechanics and Control, 3rd-Edition
  • Thanks Zexiang Li for his great work of A Mathematical Introduction to Robotic Manipulation

  1. Dot Product: a=(a1,a2,a3),b=(b1,b2,b3)
    ab=|a||b|cosθ=a1b1+a2b2+a3b3
  2. X is a group if and only if
    (1)x1,x2X,x1x2X;
    (2)(x1x2)x3=x1(x2x3);
    (3)IX,xXIx=xI=x;
    (4)xX,yXs.t.xy=yx=I.
  3. The cross product between two vectors a,bR3 is defined as
    a×b=(a2b3a3b2a3b1a1b3a1b2a2b1)
    We can also write:
    a×b=(a)b,(a)=(0a3a2a30a1a2a10)
  4. If ω1, it is verified that
    eω^θ=I+ω^ω^sin(ω^θ)+ω^2ω^2(1cos(ω^θ))