IMU preintegration on Gal(3) using GTSAM's left-invariant local error.
The internal tangent ordering is (rotation, velocity, position, time). The public factor contract projects this to NavState ordering (rotation, position, velocity) and removes deterministic time. Biases use GTSAM's (accelerometer, gyroscope) ordering and are corrected on the right.
|
|
| GalileanPreintegration (const std::shared_ptr< Params > &p, const imuBias::ConstantBias &biasHat={}) |
| | Construct and reset a Galilean preintegrated measurement.
|
| Rot3 | deltaRij () const override |
| Vector3 | deltaPij () const override |
| Vector3 | deltaVij () const override |
| NavState | deltaXij () const override |
|
Vector9 | preintegrated () const |
| | Return the Galilean delta in NavState tangent ordering.
|
| Vector9 | biasCorrectedDelta (const imuBias::ConstantBias &bias_i, OptionalJacobian< 9, 6 > H={}) const override |
| | Apply the first-order physical bias correction on the right.
|
| void | update (const Vector3 &measuredAcc, const Vector3 &measuredOmega, double dt, Matrix9 *A, Matrix93 *B, Matrix93 *C) override |
| | Update the mean and bias Jacobian, returning NavState-chart Jacobians.
|
| void | resetIntegration () override |
| | Reset the mean, elapsed time, and bias Jacobian.
|
| void | print (const std::string &s="GalileanPreintegration") const override |
|
bool | equals (const GalileanPreintegration &other, double tol=1e-9) const |
| | 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.
|