Skip to content

Lie Group fro 2D transformations [1]

SO(2) : Rotations in 2D space

Having treated SO(3), the 2D equivalent SO(3) is straightforward.

Representation

Elements of the rotation group in 2D, SO(2), are represented by 2D rotation matrices. Composition and inversion in the group correspond to matrix multiplication and inversion. Because rotation matrices are orthogonal, inversion is equivalent to transposition.

RSO(2)R1=R

The Lie algebra, so(2), is the set of 2×2 skew-symmetric matrices. The single generator of so(2) corresponds to the derivative of 2D rotation, evaluated at the identity:

J=(0110)

An element of so(2) is then any scalar multiple of the generator:

θRθJso(2)

We will simply write θso(2), and use θ×to represent the skew symmetric matrix θJ.

Exponential Map

The exponential map that takes skew symmetric matrices to rotation matrices is simply the matrix exponential over a linear combination of the generators:

exp(θ×)exp(0θθ0)=I+θ×+12!θ×2+13!θ×3+=I+(0θθ0)+12!(θ200θ2)+13!(0θ3θ30)

The resulting elements form the Taylor series expansion of sinθ and cosθ :

exp(θ×)=(cosθsinθsinθcosθ)SO(2)=cosθI+sinθJ

Thus the exponential map yields a rotation by θ radians. The exponential map can be inverted, going from SO(2) to so(2) :

RSO(2)(1)ln(R)=θ=arctan(R21,R11)

Adjoint

Because rotations in the plane commute, the adjoint of SO(2) is the identity function.

SE(2): Rigid transformations in 2D space

The group SE(2) is the lower-dimensional analogue of SE(3). The group has 3D, corresponding to translation and rotation in the plane.

Representation

The group of rigid transformations in 2D space, SE(2), is represented by linear transformations on homogeneous three-vectors:

RSO(2),tR2C=(Rt01)SE(2)

Note that, in an implementation, only R and t need to be stored. The remaining matrix structure can remain implicit.

Transformation composition and inversion are coincident with matrix multiplication and inversion:

C1,C2SE(2)C1C2=(R1t101)(R2t201)=(R1R2R1t2+t101)C11=(R1R1t01)

The matrix representation also makes the group action on 2D points and vectors explicit:

x=(xyw)RP2(λxxλR)Cx=(Rt01)x=(R(xy)+wtw)

Typically, w=1, so that x is a Cartesian point. The action by matrix-vector multiplication corresponds to first rotating x and then translating it. For direction vectors, encoded with w=0, translation is ignored.

The Lie algebra se(2) is the set of 3×3 matrices corresponding to differential translations and rotation around the identity. There are thus three generators of the algebra:

G1=(001000000),G2=(000001000),G3=(010100000)

An element of se(2) is then represented by linear combinations of the generators:

(u1u2θ)R3u1G1+u2G2+θG3se(2)

For convenience, we write (uθ)se(2), with multiplication against the generators implied.

Exponential Map

As for all Lie groups in this document, the exponential map from se(2) to SE(2) is the matrix exponential on a linear combination of the generators:

δ=(uθ)se(2)exp(δ)=exp(θ×u00)=I+(θ×u00)+12!(θ×2θ×u00)+13!(θ×3θ×2u00)+

The rotation block is the same as for SO(2), but the translation component is a different power series:

exp(θ×u00)=(exp(θ×)Vu01)V=I+12!θ×+13!θ×2+

We split the terms by odd and even powers:

V=i=0[θ×2i(2i+1)!+θ×2i+1(2i+2)!]

Two identities (easily confirmed by induction) are useful for collapsing the series:

θ×2i=(1)iθ2i(1001)θ×2i+1=(1)iθ2i+1(0110)

Direct application of the identies yields a reduced expression for V in terms of diagonal and skewsymmetric components:

V=i=0(1)iθ2i[1(2i+1)!(1001)+θ(2i+2)!(0110)]=(i=0(1)iθ2i(2i+1)!)(1001)+(i=0(1)iθ2i+1(2i+2)!)(0110)

The coefficients can be identified with Taylor expansions:

V=(1θ23!+θ45!+)(1001)+(θ2!θ34!+θ56!+)(0110)=(sinθθ)(1001)+(1cosθθ)(0110)=1θ(sinθ(1cosθ)1cosθsinθ)

For implementation purposes, Taylor expansions should be used for V when θ is small. The ln() function on SE(2) can be implemented by first recovering θ=ln(R) as shown in Eq. (1), then solving Vu=t for u in closed form:

AsinθθB1cosθθV1=1A2+B2(ABBA)ln(Rt01)=(V1tθ)se(2)

Adjoint

The adjoint in SE(2) is computed from the generators:

δ=(uθ)se(2),C=(Rt01)SE(2)AdjCδ=C(i=13δiGi)C1=(Ru+θ(t2t1))θ)AdjC=(Rt2t101)R3×3

Note that moving a tangent vector via the adjoint mixes the rotation component into the translation component.

Ref

[1] Lie Groups for 2D and 3D Transformations, PDF, by Ethan Eade, 2017

Released under the MIT License.