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.0Then 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.0To 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 3.33067e-16
0.707107 0.707107 0.0 3.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0for more details see the get started tutorial.