manif
manif copied to clipboard
Add unit dual quaternion
This PR adds the unit dual quaternion group, currently called DHu
.
note: I suspect there is a better name than DHu
Draft implementation:
Group
- [x]
DHu::Random
- [x]
DHu::Inverse
- [x]
DHu::Compose
- [x]
DHu::normalize
- [x]
DHu::conjugate
- [x]
DHu::conjugatedual
- [x]
DHu::rotation
- [x]
DHu::translation
- [x]
DHu::isometry
- [ ]
DHu::adj
- [ ]
DHu::log
- [ ]
DHu::act
- [ ]
Jacobians
- [ ]
DHu::...
Tangent
- [ ]
DHuTangent::rjac
- [ ]
DHuTangent::ljac
- [ ]
DHuTangent::smallAdj
- [ ]
DHuTangent::hat
- [ ]
DHuTangent::exp
- [ ]
DHuTangent::...
Comes on top of #150.
Closes #164.
Draft implementation (class layout and a few functions in b9f046007476b3ca72679445c942d2aca99f9e9c).
Codecov Report
Merging #165 into devel will decrease coverage by
0.83%
. The diff coverage is92.19%
.
@@ Coverage Diff @@
## devel #165 +/- ##
==========================================
- Coverage 98.23% 97.39% -0.84%
==========================================
Files 37 43 +6
Lines 1130 1190 +60
==========================================
+ Hits 1110 1159 +49
- Misses 20 31 +11
We should start by exp
. Did you find any suitable source of info? I don't have a very sharp mind lately and would prefer to copy-paste as much as possible from reputable sources, rather than develop from scratch (which is much more fun, funnily).
I guess after exp
we'll be able to develop the adj
oint. This is normally easy.
The trouble will be as always with J_l
and J_r
....... I fear these.
Jacobians are easy once we have the blocks above. We can try to simplify the expressions resulting from the chain rule. Often we are luck with these simplifications.
Nice job BTW! how do you code so quickly? Did you create a template or script for new classes in manif
?
We should start by
exp
. Did you find any suitable source of info? I don't have a very sharp mind lately and would prefer to copy-paste as much as possible from reputable sources, rather than develop from scratch (which is much more fun, funnily).
No I haven't found yet a source for exp
/log
, I'll look for it specifically. Definitely agree on developing as little as possible from scratch. So far I relied on this source.
how do you code so quickly? Did you create a template or script for new classes in manif?
Ahah that's one of the many advantages of manif
. Between the code standardization and the paper formalism more than half the job is done. I do not have a script, I simply copy an existing class (e.g. here SE3
and related) and do some renaming accordingly. I could make a script but I'm not sure it is worth it time-wise.
exp can be found in 5.1 here
log
in 8.6