[eigen] Potential unsupported module: Lie Groups |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen <eigen@xxxxxxxxxxxxxxxxxxx>
- Subject: [eigen] Potential unsupported module: Lie Groups
- From: Hauke Strasdat <strasdat@xxxxxxxxx>
- Date: Sun, 6 May 2012 16:24:11 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=M1hzplJnbpz5cRDxNICpRRnC4hFd5UsB/HEkMZKQQZ8=; b=dt+svzs33vREPlgwFdf/GkPkFiAdqXFDJybrj6lt/P4b4gvcTiJHi9CyYgS1HZoUMj 9/eOnOv/L0E4EUPcAHW79dDoofZBrK9irV6gMOBql+H6YsmTBlorIuN1n/MrVqH5n0QW ct6KcaNfer16H4OtcIx6rMiN1veVCSUifWPYJvFyqALV6SzNvk1uiik2w0rR99cjC9db bO9jbX/wWry5hmQNukAWoGczmmAv7bcH0ChmWNT0eoD7AnnV68/voq++a9y6Ct+Ys5Lm CkbfbiQMK7yNrUgn6YeVkZ/WBeQtnuMDsUVFUCUZ6HBi1b7ioDjwwxlReWJJuNbZ4wu5 OEwQ==
Hi,
I wrote a small library based on Eigen for various Lie groups: group
of in-plane rotation SO(2), group of 3d rotation SO(3), group of
rotation and translation in 2d SE(2), group of rotation and
translation in 3d SE(3),
group of rotation and scaling "ScSO(3)", group of rotation,
translation and scaling Sim(3):
https://github.com/strasdat/Sophus
All groups offer closed form solutions for the matrix exponential and
logarithm, adjoint representation, group action,
generators, Lie brackets etc.
Internally, SO(3), SE(3), ScSO(3) and Sim(3) are based on quaternions,
so the group operation can be calculated efficiently.
Also, a number of unit test are included (which verify that
singularities in exp and log are sidestepped properly).
I am aware that this library has quite an overlap with the Geometry
module. Still, I think it might be quite useful to
some users since it offers additional functionality and a unified API.
If there is some interest, I could add it as an unsupported Eigen
module. In the long run,
one could try to figure out, how to merge it or integrate it further
with the Geometry module.
(At the moment it is a non-template library which only has "double"
support. However, if I were to add it
as an unsupported module, I would be happy to turn it into a header
only library with additional "float"
support.)
Hauke S.