Advice on implementing a new group... #681
-
Hi all - thanks for the nice work on ManifoldsBase.jl and Manifolds.jl. I'm in the process of trying to determine how best to implement a new group - specifically, the "group of extended poses," which is in fact the semidirect product of SE(3) and Notably, the group can be embedded in GL(6) and that's how I will use it, essentially exclusively. I'd like to develop a lightweight, matrix-based implementation - unsure whether to define a new group using Manifolds.jl (also unsure if there's a tutorial on implementing a new group?) or to try to use ManifoldsBase.jl only. Any advice would be appreciated; the best possible speed is important, and given the fixed size of the matrices involved, I intend to use StaticArrays.jl. Also, a rather silly q (as a newbie) - I'm uncertain why the representation size is given as the manifold dimension + 1? What am I missing? Calling J. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 6 replies
-
For now we indeed do not yet have a tutorial on how to implement a (Lie) group – but hopefully the ManifoldsBase.jl tutorial on a manifold is a good starting point – e.g. on how our functions are usually meant to be implemented. this includes the important difference between the allocating and in-place (fast!) variants we usually have in mind. If you feel it is easier, then do not go the For the representation size – that is the array size used to represent points and tangent vectors for a certain manifold – which is unrelated to the dimension. Feel free to ask further questions along the way and if you like, a PR for new manifolds and/or groups is always welcome. |
Beta Was this translation helpful? Give feedback.
-
Hi! We don't currently have a tutorial for Lie groups but I think the best way to go is for example copy the implementation of Representing that group by 6x6 matrices is one way to go but it might not be totally efficient. You can also consider using Manifolds.jl interface generally can work with both |
Beta Was this translation helpful? Give feedback.
There has been a recent work and discussion here that you can read for a start: JuliaRobotics/RoME.jl#701 .
IMUDeltaGroup
is very similar to the group of extended poses.