|
GTSAM
4.0.2
C++ library for smoothing and mapping (SAM)
|
#include <PreintegrationBase.h>


Public Types | |
| typedef imuBias::ConstantBias | Bias |
| typedef PreintegrationParams | Params |
Public Member Functions | |
Constructors | |
| PreintegrationBase (const std::shared_ptr< Params > &p, const imuBias::ConstantBias &biasHat=imuBias::ConstantBias()) | |
Basic utilities | |
Re-initialize PreintegratedMeasurements and set new bias | |
| virtual void | resetIntegration ()=0 |
| 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 | |
Instance variables access | |
| const imuBias::ConstantBias & | biasHat () const |
| double | deltaTij () const |
| virtual Vector3 | deltaPij () const =0 |
| virtual Vector3 | deltaVij () const =0 |
| virtual Rot3 | deltaRij () const =0 |
| virtual NavState | deltaXij () const =0 |
| Vector6 | biasHatVector () const |
Main functionality | |
| 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 |
| virtual void | update (const Vector3 &measuredAcc, const Vector3 &measuredOmega, const double dt, Matrix9 *A, Matrix93 *B, Matrix93 *C)=0 |
| virtual void | integrateMeasurement (const Vector3 &measuredAcc, const Vector3 &measuredOmega, const double dt) |
| Version without derivatives. | |
| virtual Vector9 | biasCorrectedDelta (const imuBias::ConstantBias &bias_i, OptionalJacobian< 9, 6 > H={}) const =0 |
| 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. | |
| Vector9 | computeError (const NavState &state_i, const NavState &state_j, const imuBias::ConstantBias &bias_i, OptionalJacobian< 9, 9 > H1, OptionalJacobian< 9, 9 > H2, OptionalJacobian< 9, 6 > H3) const |
| Calculate error given navStates. | |
| Vector9 | computeErrorAndJacobians (const Pose3 &pose_i, const Vector3 &vel_i, const Pose3 &pose_j, const Vector3 &vel_j, const imuBias::ConstantBias &bias_i, OptionalJacobian< 9, 6 > H1={}, OptionalJacobian< 9, 3 > H2={}, OptionalJacobian< 9, 6 > H3={}, OptionalJacobian< 9, 3 > H4={}, OptionalJacobian< 9, 6 > H5={}) const |
Protected Member Functions | |
| PreintegrationBase () | |
| Default constructor for serialization. | |
| virtual | ~PreintegrationBase () |
| Virtual destructor for serialization. | |
Protected Attributes | |
| std::shared_ptr< Params > | p_ |
| Bias | biasHat_ |
| Acceleration and gyro bias used for preintegration. | |
| double | deltaTij_ |
| Time interval from i to j. | |
Testable | |
| virtual void | print (const std::string &s="") const |
| GTSAM_EXPORT friend std::ostream & | operator<< (std::ostream &os, const PreintegrationBase &pim) |
PreintegrationBase is the base class for PreintegratedMeasurements (in ImuFactor) and CombinedPreintegratedMeasurements (in CombinedImuFactor). It includes the definitions of the preintegrated variables and the methods to access, print, and compare them.
| gtsam::PreintegrationBase::PreintegrationBase | ( | const std::shared_ptr< Params > & | p, |
| const imuBias::ConstantBias & | biasHat = imuBias::ConstantBias() |
||
| ) |
Constructor, initializes the variables in the base class
| p | Parameters, typically fixed in a single application |
| bias | Current estimate of acceleration and rotation rate biases |
|
pure virtual |
Given the estimate of the bias, return a NavState tangent vector summarizing the preintegrated IMU measurements so far
Implemented in gtsam::TangentPreintegration, and gtsam::ManifoldPreintegration.
| Vector9 gtsam::PreintegrationBase::computeErrorAndJacobians | ( | const Pose3 & | pose_i, |
| const Vector3 & | vel_i, | ||
| const Pose3 & | pose_j, | ||
| const Vector3 & | vel_j, | ||
| const imuBias::ConstantBias & | bias_i, | ||
| OptionalJacobian< 9, 6 > | H1 = {}, |
||
| OptionalJacobian< 9, 3 > | H2 = {}, |
||
| OptionalJacobian< 9, 6 > | H3 = {}, |
||
| OptionalJacobian< 9, 3 > | H4 = {}, |
||
| OptionalJacobian< 9, 6 > | H5 = {} |
||
| ) | const |
Compute errors w.r.t. preintegrated measurements and jacobians wrt pose_i, vel_i, bias_i, pose_j, bias_j
| std::pair<Vector3, Vector3> gtsam::PreintegrationBase::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
|
pure virtual |
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
Implemented in gtsam::TangentPreintegration, and gtsam::ManifoldPreintegration.
1.8.13