Rigid Motion and Homogeneous Transformation

本文深入探讨了刚体运动的基础概念,包括旋转矩阵、齐次变换、指数坐标等,并介绍了常用的参数化方法如欧拉角、轴角等。此外,还讨论了螺杆理论及其几何属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 o 0 x 0 y 0 z 0 and o1x1y1z1 o 1 x 1 y 1 z 1 . A rotation matrix is defined as unit vectors x1 x 1 , y1 y 1 and z1 z 1 in frame o0x0y0z0 o 0 x 0 y 0 z 0 . A good way to represent rotation operation is to project o1x1y1z1 o 1 x 1 y 1 z 1 to o0x0y0z0 o 0 x 0 y 0 z 0 :

R01=x1x0x1y0x1z0y1x0y1y0y1z0z1x0z1y0z1z0 R 1 0 = ( x 1 ⋅ x 0 y 1 ⋅ x 0 z 1 ⋅ x 0 x 1 ⋅ y 0 y 1 ⋅ y 0 z 1 ⋅ y 0 x 1 ⋅ z 0 y 1 ⋅ z 0 z 1 ⋅ z 0 )
Or
R01=[x10,y10,z10] R 1 0 = [ x 10 , y 10 , z 10 ]
where x10,y10,z10 x 10 , y 10 , z 10 are the coordinates of the principal axes of 1 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.
R01 R 1 0 is orthogonal ( R01=(R10)T R 1 0 = ( R 0 1 ) T , (R01)T=(R01)1 ( R 1 0 ) T = ( R 1 0 ) − 1 ) and detR01=±1 det R 1 0 = ± 1 . To determine the sign of the determinant of R01 R 1 0 , we recall from linear algebra that detR01=rT1(r2×r3) det R 1 0 = r 1 T ( r 2 × r 3 ) where r r is its column. Since the coordinate frame is right-handed, we have that r2×r3=r1. Then detR01=1 det R 1 0 = 1 .

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

Obviously, R01SO(3) R 1 0 ∈ S O ( 3 ) .

For illustration:
Assume that frame o1x1y1z1 o 1 x 1 y 1 z 1 rotate θ θ degrees around z0 z 0 ,

R01=cθsθ0sθcθ0001 R 1 0 = ( c θ − s θ 0 s θ c θ 0 0 0 1 )

For simplicity, we define Rz,θ=R01 R z , θ = R 1 0 temporarily. Then we see
Rz,0=I,Rz,θRz,ϕ=Rz.θ+ϕ,(Rz,θ)1=Rz,θ R z , 0 = I , R z , θ R z , ϕ = R z . θ + ϕ , ( R z , θ ) − 1 = R z , − θ

Similarly,
Rx,θ=1000cθsθ0sθcθ,Ry,θ=cθ0sθ010sθ0cθ R x , θ = ( 1 0 0 0 c θ − s θ 0 s θ c θ ) , R y , θ = ( c θ 0 s θ 0 1 0 − s θ 0 c θ )

Rotation Transformation

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

p=ux1+vy1+wz1 p = u x 1 + v y 1 + w z 1

Since the principal axes of o1x1y1z1 o 1 x 1 y 1 z 1 have coordinates x10,y10,z10 x 10 , y 10 , z 10 with respect to o0x0y0z0 o 0 x 0 y 0 z 0 , the coordinate of p p relative to frame o0x0y0z0 is given by
p0=(x10y10z10)uvw=R01p1 p 0 = ( x 10 y 10 z 10 ) ( u v w ) = R 1 0 p 1

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

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

B=(R01)1AR01 B = ( R 1 0 ) − 1 A R 1 0

Rotation Superposition

Rotation w.r.t current frame:

p0=R01p1p1=R12p2p0=R02p2p0=R01R12p2,R02=R01R12 { p 0 = R 1 0 p 1 p 1 = R 2 1 p 2 p 0 = R 2 0 p 2 ⇒ p 0 = R 1 0 R 2 1 p 2 , R 2 0 = R 1 0 R 2 1

Rotation w.r.t fixed frame: Just reverse the multiplier order of the above equation.
R02=R12R01 R 2 0 = R 2 1 R 1 0
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:
fig01
Hypothesize that we rotate the point q q at a constant unit angular velocity around ω, then q˙ q ˙ may be written as:

q˙(t)=ω×q(t)=ω^q(t) q ˙ ( t ) = ω × q ( t ) = ω ^ q ( t )
Thus
q(t)=eω^tq(0) q ( t ) = e ω ^ t q ( 0 )
Due to the unit velocity hypothesis:
R(ω,θ)=eω^θ R ( ω , θ ) = e ω ^ θ
It can be seen that ω^ ω ^ is a skew-symmetric matrix, i.e. ω^T=ω^ ω ^ T = − ω ^ . The vector space of 3×3 3 × 3 skew-symmetric matrix is demoted so(3) s o ( 3 ) . The sum of two elements of so(3) s o ( 3 ) is an element of so(3) s o ( 3 ) and the scalar multiple of any element of so(3) s o ( 3 ) is an element of so(3) s o ( 3 ) . Furthermore, (v+ω)=v^+ω^ ( 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 ω ^ ∈ s o ( 3 ) , ‖ ω ‖ = 1 , θ ∈ R . Then by Taylor expansion, we can write:

eω^θ=I+ω^sinθ+ω^2(1cosθ) e ω ^ θ = I + ω ^ sin ⁡ θ + ω ^ 2 ( 1 − cos ⁡ θ )
This formula, commonly referred to as Rodrigues’formula 4, gives an efficient method for computing exp(ωθ) 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) exp : s o ( 3 ) → S O ( 3 ) is surjective (onto).

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

Rotation Parameterization

Euler-angle

Around the current frame ( Rz,ϕRy,θRz,ψ R z , ϕ → R y , θ → R z , ψ )

RZYZ=Rz,ϕRy,θRz,ψ=cϕsϕ0sϕcϕ0001cθ0sθ010sθ0cθcψsψ0sψcψ0001=cϕcθcψsϕsψsϕcθcψ+cϕsψsθcψcϕcθsψsϕcψsϕcθs+cϕcψsθsψcϕsθsϕsθcθ R Z Y Z = R z , ϕ R y , θ R z , ψ = ( c ϕ − s ϕ 0 s ϕ c ϕ 0 0 0 1 ) ( c θ 0 s θ 0 1 0 − s θ 0 c θ ) ( c ψ − s ψ 0 s ψ c ψ 0 0 0 1 ) = ( 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,ϕ R x , ψ → R y , θ → R z , ϕ )

RXYZ=Rz,ϕRy,θRx,ψ=cϕsϕ0sϕcϕ0001cθ0sθ010sθ0cθ1000cψsψ0sψcψ=cϕcθsϕcθsθsϕcψ+cϕsθsψcϕcψ+sϕsθsψcθsψsϕsψ+cϕsθcψcϕsψ+sϕsθcψcθcψ R X Y Z = R z , ϕ R y , θ R x , ψ = ( 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 ψ ) = ( 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 k = [ k x , k y , k z ] T be an unit vector in frame o0x0y0z0 o 0 x 0 y 0 z 0 . It can be seen as an axis. Let R=Rz,αRy,β R = R z , α R y , β make the vector k k rotate to axis z. Then

Rk,θ=RRz,θR1=Rz,αRy,βRz,θRy,βRz,α R k , θ = R R z , θ R − 1 = R z , α R y , β R z , θ R y , − β R z , − α

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

θ=cos1(r11+r22+r3312),k=12sinθr32r23r13r31r21r12 θ = cos − 1 ⁡ ( r 11 + r 22 + r 33 − 1 2 ) , k = 1 2 sin ⁡ θ ( r 32 − r 23 r 13 − r 31 r 21 − r 12 )

Rigid Motion

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

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

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

Consider three frames o0x0y0z0 o 0 x 0 y 0 z 0 , o1x1y1z1 o 1 x 1 y 1 z 1 and o2x2y2z2 o 2 x 2 y 2 z 2 . There happened some rigid motions:

p1=R12p2+d12p0=R01p1+d01p0=R01R12p2+R01d12+d01p0=R02p2+d02(560)(561)(562)(563) (560) p 1 = R 2 1 p 2 + d 2 1 (561) p 0 = R 1 0 p 1 + d 1 0 (562) p 0 = R 1 0 R 2 1 p 2 + R 1 0 d 2 1 + d 1 0 (563) p 0 = R 2 0 p 2 + d 2 0

Finally, we get
R02=R01R12d02=d01+R01d12(564)(565) (564) R 2 0 = R 1 0 R 2 1 (565) d 2 0 = d 1 0 + R 1 0 d 2 1

Homogeneous Transformation

Homogeneous Representation

The sequential rigid motions above can be simplified as

(R010d011)(R120d211)=(R01R120R01d21+d011) ( R 1 0 d 1 0 0 1 ) ( R 2 1 d 1 2 0 1 ) = ( R 1 0 R 2 1 R 1 0 d 1 2 + d 1 0 0 1 )
The equation above is called the composition rule for rigid body transformations to be the standard matrix multiplication.
Define
H=(R0d1),RSO(3),dR3 H = ( R d 0 1 ) , R ∈ S O ( 3 ) , d ∈ R 3

as a homogeneous transformation. And let
P0=(p01),P1=(p11) P 0 = ( p 0 1 ) , P 1 = ( p 1 1 )

Then
P0=H01P1 P 0 = H 1 0 P 1

It is evidently that
H1=(RT0RTd1) H − 1 = ( R T − R T d 0 1 )

since R 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) g 1 g 2 ∈ S E ( 3 ) .
    • The 4×4 4 × 4 identity element I I is in SE(3).
    • If g=(d,R)SE(3) g = ( d , R ) ∈ S E ( 3 ) , then
      g¯=(R0d1)(7),g¯1=(RT0RTd1)SE(3) (7) g ¯ = ( R d 0 1 ) , g ¯ − 1 = ( R T − R T d 0 1 ) ∈ S E ( 3 )
      So that g1=(RTd,RT) g − 1 = ( − R T d , R T ) .
    • The composition rule for rigid body transformations is associative.
    • Ex: Consider the example below:
      ex2
      The orientation of coordinate frame B B with respect to A is

      Rab=cosθsinθ0sinθcosθ0001 R a b = ( cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ 0 0 0 1 )
      The coordinates for the origin of frame B B are
      pab=(0l10)
      again relative to frame A 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) S O ( 3 ) can be generalized to the Euclidean group, SE(3) S E ( 3 ) . Analogous to the definition of so(3) s o ( 3 ) , we define

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

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

      eξ^θ=(eω^θ0(Ieω^θ)(ω×v)+ωωTvθ1),ω0 e ξ ^ θ = ( e ω ^ θ ( I − e ω ^ θ ) ( ω × v ) + ω ω T v θ 0 1 ) , ω ≠ 0

      eξ^θ=(I0vθ1),ω=0 e ξ ^ θ = ( I v θ 0 1 ) , ω = 0

      We interpret g=exp(ξ^θ) 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) p ( θ ) = e ξ ^ θ p ( 0 )
      In this equation, both p(0) p ( 0 ) and p(θ) p ( θ ) are specified with respect to a single reference frame. Similarly, if we let gab(0) g a b ( 0 ) represent the initial configuration of a rigid body relative to a frame A A , then the final configuration, still with respect to A, is given by
      gab(θ)=eξ^θgab(0) g a b ( θ ) = e ξ ^ θ g a b ( 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,ω) ξ = ( 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 d as shown below
      screw
      We call such a motion a screw motion.

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

      Recall the figure above, it can be seen that

      gp=q+eω^θ(pq)+hθω

      g(p1)=(eω^θ0(Ieω^θ)q+hθω1)(p1) g ( p 1 ) = ( e ω ^ θ ( I − e ω ^ θ ) q + h θ ω 0 1 ) ( p 1 )
      This transformation maps points attached to the rigid body from their initial coordinates (θ=0) ( θ = 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ω v = − ω × q + h ω , then ξ=(v,ω) ξ = ( 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 ‖ ω ‖ = 1 , or ω=0 ω = 0 and v=1 ‖ v ‖ = 1 ; that is, a unit twist has magnitude M=1 M = 1 . Unit twists are useful since they allow us to express rigid motions due to revolute and prismatic joints as g=exp(ξ^θ) 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) a = ( a 1 , a 2 , a 3 ) , b = ( b 1 , b 2 , b 3 )
        ab=|a||b|cosθ=a1b1+a2b2+a3b3 a ⋅ b = | a | | b | cos ⁡ θ = a 1 b 1 + a 2 b 2 + a 3 b 3
      2. X X is a group if and only if
        (1)x1,x2X,x1x2X;
        (2) (x1x2)x3=x1(x2x3) ( x 1 ∗ x 2 ) ∗ x 3 = x 1 ∗ ( x 2 ∗ x 3 ) ;
        (3) IX,xXIx=xI=x ∃ I ∈ X , ∀ x ∈ X → I ∗ x = x ∗ I = x ;
        (4) xX,yXs.t.xy=yx=I ∀ x ∈ X , ∃ y ∈ X s . t . x ∗ y = y ∗ x = I .
      3. The cross product between two vectors a,bR3 a , b ∈ R 3 is defined as
        a×b=a2b3a3b2a3b1a1b3a1b2a2b1 a × b = ( a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 )
        We can also write:
        a×b=(a)b,(a)=0a3a2a30a1a2a10 a × b = ( a ) ∧ b , ( a ) ∧ = ( 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 )
      4. If ω1 ‖ ω ‖ ≠ 1 , it is verified that
        eω^θ=I+ω^ω^sin(ω^θ)+ω^2ω^2(1cos(ω^θ)) e ω ^ θ = I + ω ^ ‖ ω ^ ‖ sin ⁡ ( ‖ ω ^ ‖ θ ) + ω ^ 2 ‖ ω ^ ‖ 2 ( 1 − cos ⁡ ( ‖ ω ^ ‖ θ ) )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值