LieGroups.jl
Welcome to the Documentation of LieGroups.jl
.
LieGroups.LieGroups
— ModuleLieGroups.jl: Lie groups and Lie algebras in Julia.
The package is named after the Norwegian mathematician Marius Sophus Lie (1842–1899).
- 📚 Documentation: juliamanifolds.github.io/LieGroups.jl/
- 📦 Repository: github.com/JuliaManifolds/LieGroups.jl
- 💬 Discussions: github.com/JuliaManifolds/LieGroups.jl/discussions
- 🎯 Issues: github.com/JuliaManifolds/LieGroups.jl/issues
The implemented Lie groups use the interface for manifolds in ManifoldsBase.jl
together with an interface for Lie groups and Lie algebras as well as internally using the manifolds implemented in Manifolds.jl
.
For more general information about the history of and contributions to the package see the About page.
Getting started
To install the package just type
using Pkg; Pkg.add("LieGroups")
Then you can directly start, for example consider the SpecialEuclideanGroup
$\mathrm{SE}(3)$ representing all orientations and places an object can take in $ℝ^3$. These are characterised by a $3×3$ rotation matrix together with a point the object is at. For example. having such a point, we can use the Lie group logarithmic function log(G::SpecialEuclideanGroup, g)
and the Lie group exponential function exp(G::SpecialEuclideanGroup, X)
to create an orientation “half the way” from the origin pose.
The default representation is in homogeneous coordinates
using LieGroups
SE3 = SpecialEuclideanGroup(3)
g = 1/sqrt(2) .* [1.0 -1.0 0.0 0.0; 1.0 1.0 0.0 3.0*sqrt(2); 0.0 0.0 sqrt(2) 0.0; 0.0 0.0 0.0 sqrt(2)]
4×4 Matrix{Float64}:
0.707107 -0.707107 0.0 0.0
0.707107 0.707107 0.0 3.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
Then half that pose is
h = exp(SE3, 0.5 .* log(SE3, g))
4×4 Matrix{Float64}:
0.92388 -0.382683 0.0 0.298369
0.382683 0.92388 0.0 1.5
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
To check, just “perform that movement” twice with the group operation compose
of h
with itself to get g
back
compose(SE3, h, h)
4×4 Matrix{Float64}:
0.707107 -0.707107 0.0 -1.66533e-16
0.707107 0.707107 0.0 3.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
for more details see the get started tutorial.