-
Notifications
You must be signed in to change notification settings - Fork 249
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Bundle and BundleTangent types #234
Conversation
78ad463
to
9316d81
Compare
Codecov Report
@@ Coverage Diff @@
## devel #234 +/- ##
==========================================
+ Coverage 97.71% 98.17% +0.45%
==========================================
Files 49 55 +6
Lines 1532 1753 +221
==========================================
+ Hits 1497 1721 +224
+ Misses 35 32 -3 |
84d7c53
to
e6922b2
Compare
@pettni I opened this PR as a replacement to yours #175. I initially planned on opening a PR against your fork but there are conflicts due to this branch being rebased on devel. I thus went for the |
This reverts commit c492f0e.
While I didn't get any answer, I'm going to proceed merging this PR and closes #175. |
Replaces #175.
See #175 comments for a discussion around the feature.
Closes #84.
Closes #175.
Notes
Original PR description
I felt compelled to take a stab at #84 and this is the result.
I believe it is functional as it is, though it could for sure use more testing. Wanted to see what you think before proceeding.
Some comments:
Composite
andCompositeTangent
are templated on the underlying lie group type, i.e.CompositeTangent<double, SE3, R2>
(and notCompositeTangent<double, SE3Tangent, R2Tangent>
) is the tangent ofComposite<double, SE3, R2>
.template<size_t I> get()
that allows access to the individual parts via aMap
. I would have preferred to inherit fromstd::tuple
to getstd::get
for free but it seems like it is assumed throughout the library that all types store the underlying data as a single continuous array.std::integer_sequence
and the previous C++17 fold expressions are now using this C++11initializer_list
trick.LieAlg
andTransformation
types. They are there so that the full interface is implemented and the tests runJacobian
andTransformation
are block-diagonal and could potentially be represented with sparse instead of dense matrices.