Minor fixes to steam and added new evaluators for classic preintegration #76
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a few new evaluators and super cost terms to STEAM motivated by doing lidar-inertial odometry using classic preintegration (On-Manifold Preintegration for Real-Time Visual-Inertial Odometry) and using IMU measurements to undistort a pointcloud without any continuous-time methods.
SE3StateVarGlobalPerturb
is an alternative toSE3StateVar
where the stored transform is assumed to beT_i_v
and perturbations are applied on the right-hand side as:C <- C * exp(delta_phi^), r <- r + C * delta_r
. You need to be careful when using this variable type because other evaluators typically assume that they are being given anSE3StateVar
and won't work with this one. So, for point-to-plane ICP you have to useP2PlaneErrorGlobalPerturbEvaluator
together withSE3StateVarGlobalPerturb
for it to work.SE3ErrorGlobalPerturbEvaluator
: used for creating a pose prior on aSE3StateVarGlobalPerturb
variablePreIntVelocityStateVar
: a velocity variablev_vi_in_i
where perturbations arev_vi_in_i <- C_iv * delta_v
P2PGlobalSuperCostTerm
: point-to-plane ICP between a query frame and a map frame, undistorts the pointcloud using the IMU measurements and propagates error Jacobians accordingly to the velocity, IMU biases.PreintIMUCostTerm
: classic preintegration between twoSE3StateVarGlobalPerturb
variables.