Lie Groups
Lie Groups
Lie Groups
Frank Dellaert
February 7, 2021
1
1 Motivation: Rigid Motions in the Plane
We will start with a small example of a robot moving in a plane, parameterized by a 2D pose
(x, y, θ). When we give it a small forward velocity vx , we know that the location changes as
ẋ = vx
The solution to this trivial dierential equation is, with x0 the initial x-position of the robot,
xt = x0 + vx t
A similar story holds for translation in the y direction, and in fact for translations in general:
(xt , yt , θt ) = (x0 + vx t, y0 + vy t, θ0 )
However, if we combine translation and rotation, the story breaks down! We cannot write
2
The reason is that, if we move the robot a tiny bit according to the velocity vector (vx , vy , ω),
we have (to rst order)
but now the robot has rotated, and for the next incremental change, the velocity vector
would have to be rotated before it can be applied. In fact, the robot will move on a circular
trajectory.
The reason is that translation and rotation do not commute : if we rotate and then move
we will end up in a dierent place than if we moved rst, then rotated. In fact, someone
once said (I forget who, kudos for who can track down the exact quote):
To make progress, we have to be more precise about how the robot behaves. Specically, let
us dene composition of two poses T1 and T2 as
This is a bit clumsy, so we resort to a trick: embed the 2D poses in the space of 3×3
matrices, so we can dene composition as matrix multiplication:
R1 t1 R2 t2 R1 R2 R1 t2 + t1
T1 T2 = =
0 1 0 1 0 1
3
where the matrices R are 2D rotation matrices dened as
cos θ − sin θ
R=
sin θ cos θ
Let us dene the 2D twist vector ξ = (v, ω), and the matrix above as
0 −ω vx
∆
ξˆ = ω 0 vy
0 0 0
If we wanted t to be large, we could split up t into smaller timesteps, say n of them, and
compose them as follows:
n
tˆ tˆ tˆ
T (t) ≈ I + ξ . . . n times . . . I + ξ = I+ ξ
n n n
The result is shown in Figure 2.
Of course, the perfect solution would be obtained if we take n to innity:
n
tˆ
T (t) = lim I + ξ
n→∞ n
For real numbers, this series is familiar and is actually a way to compute the exponential
function:
∞
x
x n X xk
e = lim 1+ =
n→∞ n k=0
k!
The series can be similarly dened for square matrices, and the nal result is that we can
write the motion of a robot along a circular trajectory, resulting from the 2D twist ξ = (v, ω)
as the matrix exponential of ξˆ:
n X ∞
tk ˆk
tξ̂ ∆ tˆ
T (t) = e = lim I + ξ = ξ
n→∞ n k=0
k!
We call this mapping from 2D twists matrices ξˆ to 2D rigid transformations the exponential
map.
The above has all elements of Lie group theory. We call the space of 2D rigid transforma-
tions, along with the composition operation, the special Euclidean group SE(2). It is called
a Lie group because it is simultaneously a topological group and a manifold, which implies
that the multiplication and the inversion operations are smooth. The space of 2D twists,
together with a special binary operation to be dened below, is called the Lie algebra se(2)
associated with SE(2).
4
2 Basic Lie Group Concepts
We now dene the concepts illustrated above, introduce some notation, and see what we can
say in general. After this we then introduce the most commonly used Lie groups and their
Lie algebras.
A Lie group G is both a group and a manifold that possesses a smooth group operation.
Associated with it is a Lie Algebra g which, loosely speaking, can be identied with the
tangent space at the identity and completely denes how the groups behaves around the
identity. There is a mapping from g back to G, called the exponential map
exp : g → G
which is typically a many-to-one mapping. The corresponding inverse can be dene locally
around the origin and hence is a logarithm
log : G → g
that maps elements in a neighborhood of id in G to an element in g.
An important family of Lie groups are the matrix Lie groups, whose elements are n×n
invertible matrices. The set of all such matrices, together with the matrix multiplication,
is called the general linear group GL(n) of dimension n, and any closed subgroup of it is
a matrix Lie group. Most if not all Lie groups we are interested in will be matrix Lie
groups.
The Lie Algebra g is called an algebra because it is endowed with a binary operation, the
Lie bracket [X, Y ], the properties of which are closely related to the group operation of
G. For example, for algebras associated with matrix Lie groups, the Lie bracket is given by
∆
[A, B] = AB − BA.
The relationship of the Lie bracket to the group operation is as follows: for commutative
Lie groups vector addition X +Y ing mimicks the group operation. For example, if we have
Z =X +Y in g, when mapped backed to G via the exponential map we obtain
eZ = eX+Y = eX eY
However, this does not hold for non-commutative Lie groups:
Z = log(eX eY ) 6= X + Y
Instead, Z can be calculated using the Baker-Campbell-Hausdor (BCH) formula[?]:
5
2.3 Exponential Coordinates
For n-dimensional matrix Lie groups, as a vector space the Lie algebra g is isomorphic to
Rn , and we can dene the hat operator [1, page 41],
ˆ: x ∈ Rn → x̂ ∈ g
which maps n-vectors x ∈ Rn to elements of g. In the case of matrix Lie groups, the elements
x̂ of g are also n × n matrices, and the map is given by
n
X
x̂ = xi Gi (1)
i=1
where the Gi are n×n matrices known as Lie group generators. The meaning of the map
x → x̂ will depend on the group G and will generally have an intuitive interpretation.
2.4 Actions
2. Composing two actions can be combined into one action: Φ(g, Φ(h, p)) = Φ(gh, p)
The (usual) action of an n-dimensional matrix group G is matrix-vector multiplication on
Rn ,
q = Ap
with p, q ∈ Rn and A ∈ G ⊆ GL(n).
q 0 = T AT −1 p0
The matrix T AT −1 is said to be conjugate to A, and this is a central element of group theory.
−1
In general, the adjoint map Adg maps a group element a ∈ G to its conjugate gag
by g . This map captures conjugacy in the group G, but there is an equivalent notion in the
Lie algebra g,
Adg ex̂ = g exp (x̂) g −1 = exp(Adg x̂)
where Adg : g → g is a map parameterized by a group elementg , and is called the adjoint
representation. The intuitive explanation is that a change exp (x̂) dened around the origin,
6
but applied at the group element g, can be written in one step by taking the adjoint Adg x̂
of x̂.
In the special case of matrix Lie groups the adjoint can be written as
∆
AdT x̂ = T x̂T −1
−1
T ex̂ T −1 = eT x̂T (2)
where both T ∈G and x̂ ∈ g are n×n matrices for an n-dimensional Lie group.
7
3 2D Rotations
We rst look at a very simple group, the 2D rotations.
3.1 Basics
The Lie group SO(2) is a subgroup of the general linear group GL(2) of 2×2 invertible
matrices. Its Lie algebra so(2) is the vector space of 2×2 skew-symmetric matrices. Since
SO(2) is a one-dimensional manifold, so(2) is isomorphic to R and we dene
ˆ: R → so(2)
ˆ: ω → ω̂ = [ω]+
which maps the angle ω to the 2×2 skew-symmetric matrix [ω]+ :
0 −ω
[ω]+ =
ω 0
The exponential map can be computed in closed form as
[ω]+ cos ω − sin ω
e =
sin ω cos ω
e−iω 0
[ω]+ 1 1 i 1 −i cos ω − sin ω
e = =
2 i 1 0 eiω −i 1 sin ω cos ω
where the latter can be shown using eiω = cos ω + i sin ω .
3.3 Adjoint
The adjoint for so(2) is trivially equal to the identity, as is the case for all commutative
groups:
T
cos θ − sin θ 0 −ω cos θ − sin θ
AdR ω̂ =
sin θ cos θ ω 0 sin θ cos θ
− sin θ − cos θ cos θ sin θ 0 −ω
= ω =
cos θ − sin θ − sin θ cos θ ω 0
i.e.,
AdR ω̂ = ω̂
8
3.4 Actions
In the case of SO(2) the vector space is R2 , and the group action corresponds to rotating a
point
q = Rp
We would now like to know what an incremental rotation parameterized by ω would do:
q(ω) = Re[ω]+ p
x x −y
[1]+ = Rπ/2 = (3)
y y x
∂q(ω) ∂ ∂
e[ω]+ p = R
=R (ω[1]+ p) = RHp
∂ω ∂ω ∂ω
where Hp is a 2×1 matrix that depends on p:
∆ −py
Hp = [1]+ p =
px
9
4 2D Rigid Transformations
4.1 Basics
The Lie group SE(2) is a subgroup of the general linear group GL(3) of 3×3 invertible
matrices of the form
∆ R t
T =
0 1
2
where R ∈ SO(2) is a rotation matrix and t ∈ R is a translation vector. SE(2) is the
2 2
semi-direct product of R by SO(2), written as SE(2) = R o SO(2). In particular, any
element T of SE(2) can be written as
0 t R 0
T =
0 1 0 1
R1 t1 R2 t2 R1 R2 R1 t2 + t1
T1 T2 = =
0 1 0 1 0 1
Hence, an alternative way of writing down elements of SE(2) is as the ordered pair (R, t),
with composition dened a
The corresponding Lie algebra se(2) is the vector space of 3×3 twists ξˆ parameterized
3
by the twist coordinates ξ ∈ R , with the mapping
∆ v ∆ [ω]+ v
ξ= → ξˆ =
ω 0 0
Note we think of robots as having a pose (x, y, θ) and hence I reserved the rst two com-
ponents for translation and the last for rotation. The corresponding Lie group generators
are
0 0 1 0 0 0 0 −1 0
Gx = 0 0 0 Gy = 0 0 1 Gθ = 1 0 0
0 0 0 0 0 0 0 0 0
Applying the exponential map to a twist ξ yields a screw motion yielding an element in
SE(2):
v⊥
ξ̂ [ω]+ [ω]+
T =e = e , (I − e )
ω
10
4.2 The Adjoint Map
The adjoint is
AdT ξˆ = T ξT
ˆ −1
R t [ω]+ v RT −RT t
= =
0 1 0 0 0 1
[ω]+ −[ω]+ t + Rv
=
0 0
Rv − t⊥ ω
[ω]+
= (4)
0 0
From this we can express the Adjoint map in terms of plane twist coordinates:
v0 R −t⊥
v
=
ω0 0 1 ω
4.3 Actions
The action of SE(2) on 2D points is done by embedding the points in R3 by using homoge-
neous coordinates
q R t p
q̂ = = = T p̂
1 0 1 1
Analoguous to SE(3) (see below), we can compute a velocity ξˆp̂ in the local T frame:
[ω]+ v p [ω]+ p + v
ξˆp̂ = =
0 0 1 0
By only taking the top two rows, we can write this as a velocity in R2 , as the product of a
2×3 matrix Hp that acts upon the exponential coordinates ξ directly:
v
[ω]+ p + v = v + Rπ/2 pω = I2 Rπ/2 p = Hp ξ
ω
11
5 3D Rotations
5.1 Basics
The Lie group SO(3) is a subgroup of the general linear group GL(3) of 3×3 invertible
matrices. Its Lie algebra so(3) is the vector space of 3 × 3 skew-symmetric matrices ω̂ . Since
3
SO(3) is a three-dimensional manifold, so(3) is isomorphic to R and we dene the map
ˆ: R3 → so(3)
ˆ: ω → ω̂ = [ω]×
which maps 3-vectors ω to skew-symmetric matrices [ω]× :
0 −ωz ωy
[ω]× = ωz 0 −ωx = ωx Gx + ωy Gy + ωz Gz
−ωy ωx 0
corresponding to a rotation around X , Y , and Z , respectively. The Lie bracket [x, y] in so(3)
corresponds to the cross product x × y in R3 .
Hence, for every 3-vector ω there is a corresponding rotation matrix
R = e[ω]×
sin θ 1= cos θ 2
eω̂ = I + ω̂ + ω̂ (5)
θ θ2
where ω̂ 2 = ωω T − I , with ωω T the outer product of ω . Hence, a slightly more ecient
1=cosθ T
variant is
sin θ
eω̂ = (cos θ) I + ω̂ + ωω (6)
θ θ2
e−iθ 0 0
R = C 0 eiθ 0 C −1
0 0 1
12
with C = c1 c2 ω/θ , where c1 and c2 are the complex eigenvectors corresponding to
the 2D rotation around ω. This also means that, by (2),
−iθ 0 0
ω̂ = C 0 iθ 0 C −1
0 0 0
In this case, C has complex columns, but we also have
0 −θ 0
ω̂ = B θ 0 0 B T (7)
0 0 0
with B= b1 b2 ω/θ , where b1 and b2 form a basis for the 2D plane through the origin
and perpendicular to ω . Clearly, from Section 3.2, we have
1 i
c1 = B i and c2 = B 1
0 0
and when we exponentiate (7) we expose the 2D rotation around the axis ω/θ with magnitude
θ:
cos θ − sin θ 0
R = B sin θ cos θ 0 B T
0 0 1
The latter form for R can be used to prove Rodrigues' formula. Expanding the above, we
get
R = (cos θ) b1 bT1 + b2 bT2 + (sin θ) b2 bT1 − b1 bT2 + ωω T /θ2
T
Because Bis a rotation matrix, we have BB = b1 bT1 + b2 bT2 + ωω T /θ2 = I , and using (7) it
T T
is easy to show that b2 b1 − b1 b2 = ω̂/θ , hence
For rotation matrices R we can prove the following identity (see 9 on page 21):
Hence, given property (8), the adjoint map for so(3) simplies to
1. First transform p back to the world frame, apply ω, and then rotate back:
[ω]× T
q = Re R p
2. Immediately apply the transformed axis-angle transformation AdR [ω]× = [Rω]× :
[Rω]×
q=e p
13
5.4 Actions
In the case of SO(3) the vector space is R3 , and the group action corresponds to rotating a
point
q = Rp
We would now like to know what an incremental rotation parameterized by ω would do:
q(ω) = Re[ω]× p
∂q(ω) ∂ ∂
e[ω]× p = R
=R ([ω]× p) = R[−p]×
∂ω ∂ω ∂ω
To show the last equality note that
[ω]× p = ω × p = −p × ω = [−p]× ω
14
6 3D Rigid Transformations
The Lie group SE(3) is a subgroup of the general linear group GL(4) of 4×4 invertible
matrices of the form
∆ R t
T =
0 1
where R ∈ SO(3) is a rotation matrix and t ∈ R3 is a translation vector. An alternative way
of writing down elements of SE(3) is as the ordered pair (R, t), with composition dened as
Its Lie algebra se(3) is the vector space of 4×4 twists ξˆ parameterized by the twist coordinates
ξ ∈ R6 , with the mapping [1]
∆ ω ∆ [ω]× v
ξ= → ξˆ =
v 0 0
Note we follow Frank Park's convention and reserve the rst three components for rotation,
and the last three for translation. Hence, with this parameterization, the generators for
SE(3) are
0 0 0 0 0 0 1 0 0 −1 0 0
0 0 −1 0 2 0
0 0 0 3 1 0 0 0
G1 = G = G =
0 1 0 0 −1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0
G5 = 0 0
0 1
G6 = 0 0
0 0
G4 =
0
0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0
Applying the exponential map to a twist ξ yields a screw motion yielding an element in
SE(3):
T = exp ξˆ
A closed form solution for the exponential map is given in [1, page 42].
\ ! [ω] t
ω e × (I − e[ω]× t ) (ω × v) + ωω T vt
exp t =
v 0 1
15
6.1 The Adjoint Map
The adjoint is
AdT ξˆ = T ξT
ˆ −1
T
R t [ω]× v R −RT t
=
0 1 0 0 0 1
[Rω]× −[Rω]× t + Rv
=
0 0
[Rω]× t × Rω + Rv
=
0 0
From this we can express the Adjoint map in terms of twist coordinates (see also [1] and
FP):
ω0
R 0 ω
=
v0 [t]× R R v
6.2 Actions
The action of SE(3) on 3D points is done by embedding the points in R4 by using homoge-
neous coordinates
q Rp + t R t p
q̂ = = = = T p̂
1 1 0 1 1
We would now like to know what an incremental pose parameterized by ξ would do:
q̂(ξ) = T eξ̂ p̂
16
The inverse action T −1 p is
T T
q R (p − t) R −RT t p
q̂ = = = = T −1 p̂
1 1 0 1 1
17
7 3D Similarity Transformations
The group of 3D similarity transformations Sim(3) is the set of 4×4 invertible matrices of
the form
∆ R t
T =
0 s−1
where s is a scalar. There are several dierent conventions in use for the Lie algebra gener-
ators, but we use
0 0 0 0 0 0 0 1 0 −1 0 0
0 0 −1 0 0 0 0 0
G3 = 1 0 0 0
G1 =
0
G2 =
−1
1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 5 0 0 0 1 0 0 0 0 7 0 0 0 0
G4 =
0
G = G6 =
0 0 0 1 G = 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 −1
7.1 Actions
The action of SE(3) on 3D points is done by embedding the points in R4 by using homoge-
neous coordinates
q Rp + t R t p
q̂ = = = = T p̂
s−1 s−1 0 s−1 1
The derivative D1 f (ξ) in an incremental change ξ to T is given by T H(p) where
0 z −y 1 0 0 0
−z 0 x 0 1 0 0
H(p) = Gijk pj =
y −x 0 0 0 1 0
0 0 0 0 0 0 −1
In other words
R t − [p]x I3 0 −R [p]x R −t
D1 f (ξ) = =
0 s−1 0 0 −1 0 0 −s−1
This is the derivative for the action on homogeneous coordinates. Switching back to non-
homogeneous coordinates is done by
q
→ q/a
a
with derivative
a−1 I3 −qa−2
18
8 2D Ane Transformations
The Lie group Af f (2) is a subgroup of the general linear group GL(3) of 3×3 invertible
matrices that maps the line innity to itself, and hence preserves paralellism. The ane
transformation matrices A can be written as [?]
m11 m12 t1
m21 m22 t2
0 0 k
with M ∈ GL(2), t ∈ R2 , and k a scalar chosen such that det(A) = 1. Note that just as
SE(2) is a semi-direct product, so too is Af f (2) = R2 o GL(2). In particular, any ane
transformation A can be written as
0 t M 0
A=
0 1 0 k
M1 t1 M2 t2 M1 M2 M2 t2 + k2 t1
A1 A2 = =
0 k1 0 k2 0 k1 k2
From this it can be gleaned that the groups SO(2) and SE(2) are both subgroups, with
SO(2) ⊂ SE(2) ⊂ Af f (2). By choosing the generators carefully we maintain this hierarchy
se(2)
among the associated Lie algebras. In particular,
0 0 1 0 0 0 0 −1 0
G1 = 0 0 0 G2 = 0 0 1 G3 = 1 0 0
0 0 0 0 0 0 0 0 0
can be extended to the Lie algebraaff(2) using the three additional generators
0 1 0 1 0 0 0 0 0
G4 = 1 0 0 G5 = 0 −1 0 G6 = 0 −1 0
0 0 0 0 0 0 0 0 1
Hence, the Lie algebra is the vector space of 3 × 3 incremental ane transformations
aff(2)
6
â parameterized by 6 parameters a ∈ R , with the mapping
a5 a4 − a3 a1
∆
a → â = a4 + a3 −a5 − a6 a2
0 0 a6
Note that G5 and G6 change the relative scale of x and y but without changing the deter-
minant: x
x 0 0 e 0 0
exG5 = exp 0 −x 0 = 0 1/ex 0
0 0 0 0 0 1
19
0 0 0 1 0 0
exG6 = exp 0 −x 0 = 0 1/ex 0
0 0 x 0 0 ex
It might be nicer to have the correspondence with scaling x and y more direct, by choosing
1 0 0 0 0 0
G5 = 0 0 0 G6 = 0 1 0
0 0 −1 0 0 −1
and hence x
x 0 0 e 0 0
exG5 = exp 0 0 0 = 0 1 0
0 0 −x 0 0 1/ex
0 0 0 1 0 0
exG6 = exp 0 x 0 = 0 ex 0
0 0 −x 0 0 1/ex
9 2D Homographies
When viewed as operations on images, represented by 2D projective space P 3, 3D rotations
are a special case of 2D homographies. These are now treated, loosely based on the exposition
in [?, ?].
9.1 Basics
The Lie group SL(3) is a subgroup of the general linear group GL(3) of 3×3 invertible ma-
trices with determinant 1. The homographies generalize transformations of the 2D projective
space, and Af f (2) ⊂ SL(3).
We can extend aff(2) to the Lie algebra sl(3) by adding two generators
0 0 0 0 0 0
G7 = 0 0 0 G8 = 0 0 0
1 0 0 0 1 0
obtaining the vector space of 3 × 3 incremental homographies ĥ parameterized by 8 param-
etersh ∈ R8 , with the mapping
h5 h4 − h3 h1
∆
h → ĥ = h4 + h3 −h5 − h6 h2
h7 h8 h6
20
Appendix: Proof of Property 9
We can prove the following identity for rotation matrices R,
R[ω]× RT = R[ω]× a1 a2 a3
= R ω × a1 ω × a2 ω × a3
a1 (ω × a1 ) a1 (ω × a2 ) a1 (ω × a3 )
= a2 (ω × a1 ) a2 (ω × a2 ) a2 (ω × a3 )
a3 (ω × a1 ) a3 (ω × a2 ) a3 (ω × a3 )
ω(a1 × a1 ) ω(a2 × a1 ) ω(a3 × a1 )
= ω(a1 × a2 ) ω(a2 × a2 ) ω(a3 × a2 )
ω(a1 × a3 ) ω(a2 × a3 ) ω(a3 × a3 )
0 −ωa3 ωa2
= ωa3 0 −ωa1
−ωa2 ωa1 0
= [Rω]× (9)
where a1 , a2 , and a3 are the rows of R. Above we made use of the orthogonality of rotation
matrices and the triple product rule:
R(a × b) = Ra × Rb
References
[1] Richard M Murray, Zexiang Li, S Shankar Sastry, and S Shankara Sastry. A mathematical
introduction to robotic manipulation. CRC press, 1994.
21