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.

R∈SO(2)R−1=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=(0−110)

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

θ∈RθJ∈so(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) :

R∈SO(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:

R∈SO(2),t∈R2C=(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,C2∈SE(2)C1⋅C2=(R1t101)⋅(R2t201)=(R1R2R1t2+t101)C1−1=(R1⊤−R1⊤t01)

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

x=(xyw)⊤∈RP2(λx≃x∀λ∈R)C⋅x=(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=(0−10100000)

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

(u1u2θ)⊤∈R3u1G1+u2G2+θG3∈se(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⋅(0−110)

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)!⋅(0−110)]=(∑i=0∞(−1)iθ2i(2i+1)!)⋅(1001)+(∑i=0∞(−1)iθ2i+1(2i+2)!)⋅(0−110)

The coefficients can be identified with Taylor expansions:

V=(1−θ23!+θ45!+⋯)⋅(1001)+(θ2!−θ34!+θ56!+⋯)⋅(0−110)=(sin⁡θθ)⋅(1001)+(1−cos⁡θθ)⋅(0−110)=1θ⋅(sin⁡θ−(1−cos⁡θ)1−cos⁡θ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:

A≡sin⁡θθB≡1−cos⁡θθV−1=1A2+B2(AB−BA)ln⁡(Rt01)=(V−1⋅tθ)∈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)⋅C−1=(Ru+θ(t2−t1))θ)⟹AdjC=(Rt2−t101)∈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.