gtsam
Loading...
Searching...
No Matches
ManifoldPreintegration.h
Go to the documentation of this file.
1/* ----------------------------------------------------------------------------
2
3 * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4 * Atlanta, Georgia 30332-0415
5 * All Rights Reserved
6 * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7
8 * See LICENSE for the license information
9
10 * -------------------------------------------------------------------------- */
11
21
22#pragma once
23
26
27namespace gtsam {
28
33class GTSAM_EXPORT ManifoldPreintegration : public PreintegrationBase {
34 protected:
35
47
50 resetIntegration();
51 }
52
53public:
56
62 ManifoldPreintegration(const std::shared_ptr<Params>& p,
64
66
70 void resetIntegration() override;
71
73
76 NavState deltaXij() const override { return deltaXij_; }
77 Rot3 deltaRij() const override { return deltaXij_.attitude(); }
78 Vector3 deltaPij() const override { return deltaXij_.position(); }
79 Vector3 deltaVij() const override { return deltaXij_.velocity(); }
80
82 Vector9 preintegrated() const {
84 }
85
86 Matrix3 delRdelBiasOmega() const { return delRdelBiasOmega_; }
87 Matrix3 delPdelBiasAcc() const { return delPdelBiasAcc_; }
88 Matrix3 delPdelBiasOmega() const { return delPdelBiasOmega_; }
89 Matrix3 delVdelBiasAcc() const { return delVdelBiasAcc_; }
90 Matrix3 delVdelBiasOmega() const { return delVdelBiasOmega_; }
91
94 bool equals(const ManifoldPreintegration& other, double tol) const;
96
99
104 void update(const Vector3& measuredAcc, const Vector3& measuredOmega, const double dt,
105 Matrix9* A, Matrix93* B, Matrix93* C) override;
106
110 Vector9 biasCorrectedDelta(const imuBias::ConstantBias& bias_i,
111 OptionalJacobian<9, 6> H = {}) const override;
112
114 virtual std::shared_ptr<ManifoldPreintegration> clone() const {
115 return std::shared_ptr<ManifoldPreintegration>();
116 }
117
119
120 protected:
122 virtual void updateFactor(const Vector3& bodyAcceleration,
123 const Vector3& bodyOmega, double dt,
125 OptionalJacobian<9, 3> G1 = {},
126 OptionalJacobian<9, 3> G2 = {});
127
129 virtual void updateBiasJacobians(const Rot3& oldRotation,
130 const Vector3& bodyAcceleration,
131 const Vector3& bodyOmega, double dt,
132 const Matrix9& stateTransition,
133 const Matrix93& accelerationJacobian,
134 const Matrix93& omegaJacobian);
135
136 private:
137#if GTSAM_ENABLE_BOOST_SERIALIZATION
139 friend class boost::serialization::access;
140 template<class ARCHIVE>
141 void serialize(ARCHIVE & ar, const unsigned int /*version*/) {
142 namespace bs = ::boost::serialization;
143 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationBase);
144 ar & BOOST_SERIALIZATION_NVP(deltaXij_);
145 ar & BOOST_SERIALIZATION_NVP(delRdelBiasOmega_);
146 ar & BOOST_SERIALIZATION_NVP(delPdelBiasAcc_);
147 ar & BOOST_SERIALIZATION_NVP(delPdelBiasOmega_);
148 ar & BOOST_SERIALIZATION_NVP(delVdelBiasAcc_);
149 ar & BOOST_SERIALIZATION_NVP(delVdelBiasOmega_);
150 }
151#endif
152};
153
154}
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
Definition ImuBias.h:34
IMU pre-integration on NavState manifold.
Definition ManifoldPreintegration.h:33
virtual std::shared_ptr< ManifoldPreintegration > clone() const
Dummy clone for MATLAB.
Definition ManifoldPreintegration.h:114
ManifoldPreintegration()
Default constructor for serialization.
Definition ManifoldPreintegration.h:49
Matrix3 delVdelBiasAcc_
Jacobian of preintegrated velocity w.r.t. acceleration bias.
Definition ManifoldPreintegration.h:45
Vector9 preintegrated() const
Return the preintegrated measurements as NavState tangent coordinates.
Definition ManifoldPreintegration.h:82
Matrix3 delRdelBiasOmega_
Jacobian of preintegrated rotation w.r.t. angular rate bias.
Definition ManifoldPreintegration.h:42
Matrix3 delPdelBiasAcc_
Jacobian of preintegrated position w.r.t. acceleration bias.
Definition ManifoldPreintegration.h:43
NavState deltaXij_
Pre-integrated navigation state, from frame i to frame j Note: relative position does not take into a...
Definition ManifoldPreintegration.h:41
Matrix3 delPdelBiasOmega_
Jacobian of preintegrated position w.r.t. angular rate bias.
Definition ManifoldPreintegration.h:44
Matrix3 delVdelBiasOmega_
Jacobian of preintegrated velocity w.r.t. angular rate bias.
Definition ManifoldPreintegration.h:46
Navigation state: Pose (rotation, translation) + velocity Following Barrau20icra, this class belongs ...
Definition NavState.h:45
Vector9 localCoordinates(const NavState &g, OptionalJacobian< 9, 9 > H1={}, OptionalJacobian< 9, 9 > H2={}) const
Inverse of the optimization chart selected by GTSAM_NAVSTATE_EXPMAP.
Definition NavState.cpp:137
PreintegrationBase()
Default constructor for serialization.
Definition PreintegrationBase.h:63