49 using Params = PreintegrationBase::Params;
50 using Matrix10 = Eigen::Matrix<double, 10, 10>;
51 using Matrix106 = Eigen::Matrix<double, 10, 6>;
52 using Matrix910 = Eigen::Matrix<double, 9, 10>;
66 void updateGal3(
const Vector3& measuredAcc,
const Vector3& measuredOmega,
67 double dt, Matrix10* A, Matrix106* B);
75 const std::shared_ptr<Params>& p,
78 Rot3 deltaRij()
const override {
return preintMatrix_.
rotation(); }
79 Vector3 deltaPij()
const override {
return preintMatrix_.
translation(); }
80 Vector3 deltaVij()
const override {
return preintMatrix_.
velocity(); }
81 NavState deltaXij()
const override {
97 void update(
const Vector3& measuredAcc,
const Vector3& measuredOmega,
98 double dt, Matrix9* A, Matrix93* B, Matrix93* C)
override;
101 void resetIntegration()
override;
103 void print(
const std::string& s =
"GalileanPreintegration")
const override;
104 bool equals(
const GalileanPreintegration& other,
double tol = 1e-9)
const;
107#if GTSAM_ENABLE_BOOST_SERIALIZATION
108 friend class boost::serialization::access;
109 template <
class Archive>
110 void serialize(Archive& archive,
const unsigned int ) {
111 archive& BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationBase);
112 archive& BOOST_SERIALIZATION_NVP(preintMatrix_);
113 archive& BOOST_SERIALIZATION_NVP(biasJacobian_);
typedef and functions to augment Eigen's MatrixXd
3D Galilean Group SGal(3) state (attitude, position, velocity, time)
Navigation state composing of attitude, position, and velocity.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
OptionalJacobian is an Eigen::Ref like class that can take be constructed using either a fixed size o...
Definition OptionalJacobian.h:40
Represents an element of the 3D Galilean group SGal(3).
Definition Gal3.h:39
const Velocity3 & velocity(OptionalJacobian< 3, 10 > H={}) const
Access velocity component (Vector3).
Definition Gal3.cpp:156
const Point3 & translation(OptionalJacobian< 3, 10 > H={}) const
Access translation component (Point3).
Definition Gal3.cpp:146
const Rot3 & rotation(OptionalJacobian< 3, 10 > H={}) const
Access rotation component (Rot3).
Definition Gal3.cpp:137
IMU preintegration on Gal(3) using GTSAM's left-invariant local error.
Definition GalileanPreintegration.h:46
GalileanPreintegration()
Default constructor for serialization.
Definition GalileanPreintegration.h:70
Vector9 preintegrated() const
Return the Galilean delta in NavState tangent ordering.
Definition GalileanPreintegration.h:87
void resetIntegration() override
Reset the mean, elapsed time, and bias Jacobian.
Definition GalileanPreintegration.cpp:32
Matrix106 biasJacobian_
Right correction wrt (accel, gyro) bias.
Definition GalileanPreintegration.h:59
static Vector9 NavStateTangent(const Gal3 &galilean, OptionalJacobian< 9, 10 > H={})
Extract the factor tangent and its Jacobian from a Gal(3) element.
Definition GalileanPreintegration.cpp:113
static constexpr bool kLegacyUsesLogmap
Select the SE_2(3) logarithm in Legacy factor-error mode.
Definition GalileanPreintegration.h:55
Vector9 biasCorrectedDelta(const imuBias::ConstantBias &bias_i, OptionalJacobian< 9, 6 > H={}) const override
Apply the first-order physical bias correction on the right.
Definition GalileanPreintegration.cpp:137
Gal3 preintMatrix_
Mean increment in Gal(3).
Definition GalileanPreintegration.h:58
Bias biasHat_
Acceleration and gyro bias used for preintegration.
Definition PreintegrationBase.h:57
PreintegrationBase()
Default constructor for serialization.
Definition PreintegrationBase.h:63