Dear, @joansola and @artivis
I'm looking into the implementation of the UKF on manifold from this repo.
I've just noticed, that in the case of the Right Invariance sigmas and increments are added to the current state using the left box plus operator. In which frame P (covariance) is expressed then? Local tangent space at X, or global at the group origin?
I expected that with Right Invariance increments and covariance are expressed in the local tangent space at X and thus right box plus operator shall be used.
|
// sigma points on manifold |
|
State s_j_p, s_j_m; |
|
Eigen::Matrix<Scalar, StateSize, StateSize*2> xis_new; |
|
for (int i = 0; i < StateSize; ++i) { |
|
if constexpr (Iv == Invariance::Right) { |
|
s_j_p = MapTangent(xis.col(i).data()) + x; |
|
s_j_m = Tangent(-xis.col(i)) + x; |
At the same time, in the example from manif repo, the description matches the operator used to add sigma increments to the state.
* The estimation error dx and its covariance P are expressed
* in the tangent space at X.
https://github.com/artivis/manif/blob/805a0b2adf9435dd658fdad5606c342db4d889e8/examples/se2_localization_ukfm.cpp#L311
// sigma points on manifold
for (int i = 0; i < DoF; ++i)
{
s_j_p = X + manif::SE2Tangentd( xis.col(i));
s_j_m = X + manif::SE2Tangentd(-xis.col(i));
xis_new.col(i) = (X_new.lminus(s_j_p + u_est)).coeffs();
xis_new.col(i + DoF) = (X_new.lminus(s_j_m + u_est)).coeffs();
}
Thank you in advance for your answer!
Best regards,
Alex
Dear, @joansola and @artivis
I'm looking into the implementation of the UKF on manifold from this repo.
I've just noticed, that in the case of the Right Invariance sigmas and increments are added to the current state using the left box plus operator. In which frame P (covariance) is expressed then? Local tangent space at X, or global at the group origin?
I expected that with Right Invariance increments and covariance are expressed in the local tangent space at X and thus right box plus operator shall be used.
kalmanif/include/kalmanif/impl/unscented_kalman_filter_manifolds.h
Lines 155 to 161 in 5e0f1f2
At the same time, in the example from manif repo, the description matches the operator used to add sigma increments to the state.
* The estimation error dx and its covariance P are expressed * in the tangent space at X.https://github.com/artivis/manif/blob/805a0b2adf9435dd658fdad5606c342db4d889e8/examples/se2_localization_ukfm.cpp#L311
Thank you in advance for your answer!
Best regards,
Alex