IMU preintegration using the SE_2(3) Lie-group structure of NavState.
Unlike ManifoldPreintegration, each increment is applied with the group exponential map. In Legacy factor-error mode, factors using this backend evaluate their residual with the SE_2(3) logarithm.
|
|
| LieGroupPreintegration (const std::shared_ptr< Params > ¶ms, const imuBias::ConstantBias &biasHat=imuBias::ConstantBias()) |
| | Construct an empty preintegrator with parameters and a bias linearization point.
|
| Vector9 | biasCorrectedDelta (const imuBias::ConstantBias &bias, OptionalJacobian< 9, 6 > H={}) const override |
| | Return Brossard's right-corrected delta in PIM (R,p,v) ordering.
|
| | ManifoldPreintegration (const std::shared_ptr< Params > &p, const imuBias::ConstantBias &biasHat=imuBias::ConstantBias()) |
| | Constructor, initializes the variables in the base class.
|
| void | resetIntegration () override |
| NavState | deltaXij () const override |
| Rot3 | deltaRij () const override |
| Vector3 | deltaPij () const override |
| Vector3 | deltaVij () const override |
|
Vector9 | preintegrated () const |
| | Return the preintegrated measurements as NavState tangent coordinates.
|
|
Matrix3 | delRdelBiasOmega () const |
|
Matrix3 | delPdelBiasAcc () const |
|
Matrix3 | delPdelBiasOmega () const |
|
Matrix3 | delVdelBiasAcc () const |
|
Matrix3 | delVdelBiasOmega () const |
|
bool | equals (const ManifoldPreintegration &other, double tol) const |
| void | update (const Vector3 &measuredAcc, const Vector3 &measuredOmega, const double dt, Matrix9 *A, Matrix93 *B, Matrix93 *C) override |
| | Update preintegrated measurements and get derivatives It takes measured quantities in the j frame Modifies preintegrated quantities in place after correcting for bias and possibly sensor pose NOTE(frank): implementation is different in two versions.
|
| Vector9 | biasCorrectedDelta (const imuBias::ConstantBias &bias_i, OptionalJacobian< 9, 6 > H={}) const override |
| | Given the estimate of the bias, return a NavState tangent vector summarizing the preintegrated IMU measurements so far NOTE(frank): implementation is different in two versions.
|
|
virtual std::shared_ptr< ManifoldPreintegration > | clone () const |
| | Dummy clone for MATLAB.
|
| | PreintegrationBase (const std::shared_ptr< Params > &p, const imuBias::ConstantBias &biasHat=imuBias::ConstantBias()) |
| | Constructor, initializes the variables in the base class.
|
|
void | resetIntegrationAndSetBias (const Bias &biasHat) |
|
bool | matchesParamsWith (const PreintegrationBase &other) const |
| | check parameters equality: checks whether shared pointer points to same Params object.
|
|
const std::shared_ptr< Params > & | params () const |
| | shared pointer to params
|
|
Params & | p () const |
| | const reference to params
|
|
const imuBias::ConstantBias & | biasHat () const |
|
double | deltaTij () const |
| virtual Vector3 | so3TangentAt (double t) const |
| | Return the SO(3) tangent vector at local time t in [0, deltaTij].
|
| Matrix | deskewPoints (ConstMatrixView points, const Vector3 &velocity_i=Vector3::Zero()) const |
| | Deskew endpoint-exclusive ordered point batches over the integration interval.
|
|
Matrix | deskewPointsAtTimes (ConstMatrixView points, const Vector ×, const Vector3 &velocity_i=Vector3::Zero()) const |
| | Deskew stacked point batches at explicit times and initial velocity.
|
|
Vector6 | biasHatVector () const |
|
std::pair< Vector3, Vector3 > | correctMeasurementsBySensorPose (const Vector3 &unbiasedAcc, const Vector3 &unbiasedOmega, OptionalJacobian< 3, 3 > correctedAcc_H_unbiasedAcc={}, OptionalJacobian< 3, 3 > correctedAcc_H_unbiasedOmega={}, OptionalJacobian< 3, 3 > correctedOmega_H_unbiasedOmega={}) const |
| | Subtract estimate and correct for sensor pose Compute the derivatives due to non-identity body_P_sensor (rotation and centrifugal acc) Ignore D_correctedOmega_measuredAcc as it is trivially zero.
|
| virtual void | integrateMeasurement (const Vector3 &measuredAcc, const Vector3 &measuredOmega, const double dt) |
| | Version without derivatives.
|
|
void | integrateMeasurements (const Matrix &measuredAccs, const Matrix &measuredOmegas, const Matrix &dts) |
| | Add multiple measurements, in matrix columns.
|
| NavState | predict (const NavState &state_i, const imuBias::ConstantBias &bias_i, const Vector3 &n_gravity, OptionalJacobian< 9, 9 > H1={}, OptionalJacobian< 9, 6 > H2={}, OptionalJacobian< 9, 3 > H3={}) const |
| | Predict state at time j, for a given gravity vector in the nav frame.
|
|
NavState | predict (const NavState &state_i, const imuBias::ConstantBias &bias_i, OptionalJacobian< 9, 9 > H1={}, OptionalJacobian< 9, 6 > H2={}) const |
| | Predict state at time j, using the gravity vector from params.
|
| virtual void | print (const std::string &s="") const |
|
|
| LieGroupPreintegration ()=default |
| | Default constructor for serialization.
|
| void | updateFactor (const Vector3 &bodyAcceleration, const Vector3 &bodyOmega, double dt, OptionalJacobian< 9, 9 > F={}, OptionalJacobian< 9, 3 > G1={}, OptionalJacobian< 9, 3 > G2={}) override |
| | Apply one unbiased IMU increment with NavState's group exponential.
|
| void | updateBiasJacobians (const Rot3 &oldRotation, const Vector3 &bodyAcceleration, const Vector3 &bodyOmega, double dt, const Matrix9 &stateTransition, const Matrix93 &accelerationJacobian, const Matrix93 &omegaJacobian) override |
| | Update accumulated bias Jacobians after applying one IMU increment.
|
|
| ManifoldPreintegration () |
| | Default constructor for serialization.
|
|
| PreintegrationBase () |
| | Default constructor for serialization.
|
|
virtual | ~PreintegrationBase () |
| | Virtual destructor for serialization.
|
|
|
typedef imuBias::ConstantBias | Bias |
|
typedef PreintegrationParams | Params |
|
NavState | deltaXij_ |
| | Pre-integrated navigation state, from frame i to frame j Note: relative position does not take into account velocity at time i, see deltap+, in [2] Note: velocity is now also in frame i, as opposed to deltaVij in [2].
|
|
Matrix3 | delRdelBiasOmega_ |
| | Jacobian of preintegrated rotation w.r.t. angular rate bias.
|
|
Matrix3 | delPdelBiasAcc_ |
| | Jacobian of preintegrated position w.r.t. acceleration bias.
|
|
Matrix3 | delPdelBiasOmega_ |
| | Jacobian of preintegrated position w.r.t. angular rate bias.
|
|
Matrix3 | delVdelBiasAcc_ |
| | Jacobian of preintegrated velocity w.r.t. acceleration bias.
|
|
Matrix3 | delVdelBiasOmega_ |
| | Jacobian of preintegrated velocity w.r.t. angular rate bias.
|
|
std::shared_ptr< Params > | p_ |
|
Bias | biasHat_ |
| | Acceleration and gyro bias used for preintegration.
|
|
double | deltaTij_ |
| | Time interval from i to j.
|