26 #include <gtsam/base/std_optional_serialization.h> 42 std::optional<Vector3> omega_coriolis)
43 : gyroscopeCovariance(gyroscope_covariance) {
45 omegaCoriolis = *omega_coriolis;
51 virtual void print(
const std::string& s)
const;
54 void setGyroscopeCovariance(
const Matrix3& cov) { gyroscopeCovariance = cov; }
55 void setOmegaCoriolis(
const Vector3& omega) { omegaCoriolis = omega; }
56 void setBodyPSensor(
const Pose3& pose) { body_P_sensor = pose; }
58 const Matrix3& getGyroscopeCovariance()
const {
return gyroscopeCovariance; }
59 std::optional<Vector3> getOmegaCoriolis()
const {
return omegaCoriolis; }
60 std::optional<Pose3> getBodyPSensor()
const {
return body_P_sensor; }
63 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 65 friend class boost::serialization::access;
66 template<
class ARCHIVE>
67 void serialize(ARCHIVE & ar,
const unsigned int ) {
68 namespace bs = ::boost::serialization;
69 ar & BOOST_SERIALIZATION_NVP(gyroscopeCovariance);
70 ar & BOOST_SERIALIZATION_NVP(body_P_sensor);
73 bool omegaCoriolisFlag = omegaCoriolis.has_value();
74 ar & boost::serialization::make_nvp(
"omegaCoriolisFlag", omegaCoriolisFlag);
75 if (omegaCoriolisFlag) {
76 ar & BOOST_SERIALIZATION_NVP(*omegaCoriolis);
81 #ifdef GTSAM_USE_QUATERNIONS 99 std::shared_ptr<Params>
p_;
119 double deltaTij,
const Rot3& deltaRij,
120 const Matrix3& delRdelBiasOmega)
121 : p_(p), deltaTij_(deltaTij), deltaRij_(deltaRij), delRdelBiasOmega_(delRdelBiasOmega) {}
129 void resetIntegration();
133 return p_ == other.
p_;
139 const std::shared_ptr<Params>& params()
const {
142 const double& deltaTij()
const {
145 const Rot3& deltaRij()
const {
148 const Matrix3& delRdelBiasOmega()
const {
149 return delRdelBiasOmega_;
155 void print(
const std::string& s)
const;
165 Rot3 incrementalRotation(
const Vector3& measuredOmega,
const Vector3& biasHat,
double deltaT,
170 void integrateMeasurement(
const Vector3& measuredOmega,
const Vector3& biasHat,
double deltaT,
175 Rot3 biascorrectedDeltaRij(
const Vector3& biasOmegaIncr,
179 Vector3 integrateCoriolis(
const Rot3& rot_i)
const;
184 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 186 friend class boost::serialization::access;
187 template <
class ARCHIVE>
188 void serialize(ARCHIVE& ar,
const unsigned int ) {
189 ar& BOOST_SERIALIZATION_NVP(p_);
190 ar& BOOST_SERIALIZATION_NVP(deltaTij_);
191 ar& BOOST_SERIALIZATION_NVP(deltaRij_);
192 ar& BOOST_SERIALIZATION_NVP(delRdelBiasOmega_);
196 #ifdef GTSAM_USE_QUATERNIONS bool matchesParamsWith(const PreintegratedRotation &other) const
check parameters equality: checks whether shared pointer points to same Params object.
Definition: PreintegratedRotation.h:132
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
PreintegratedRotation(const std::shared_ptr< Params > &p)
Default constructor, resets integration to zero.
Definition: PreintegratedRotation.h:113
Definition: Testable.h:152
Rot3 is a 3D rotation represented as a rotation matrix if the preprocessor symbol GTSAM_USE_QUATERNIO...
Definition: Rot3.h:58
Definition: Testable.h:112
PreintegratedRotation(const std::shared_ptr< Params > &p, double deltaTij, const Rot3 &deltaRij, const Matrix3 &delRdelBiasOmega)
Explicit initialization of all class members.
Definition: PreintegratedRotation.h:118
PreintegratedRotation()
Default constructor for serialization.
Definition: PreintegratedRotation.h:106
Matrix3 delRdelBiasOmega_
Jacobian of preintegrated rotation w.r.t. angular rate bias.
Definition: PreintegratedRotation.h:103
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
std::optional< Vector3 > omegaCoriolis
Coriolis constant.
Definition: PreintegratedRotation.h:36
typedef and functions to augment Eigen's MatrixXd
Definition: chartTesting.h:28
Definition: OptionalJacobian.h:38
Definition: PreintegratedRotation.h:93
std::optional< Pose3 > body_P_sensor
The pose of the sensor in the body frame.
Definition: PreintegratedRotation.h:37
std::shared_ptr< Params > p_
Parameters.
Definition: PreintegratedRotation.h:99
Definition: PreintegratedRotation.h:32
#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW
Definition: types.h:284
Rot3 deltaRij_
Preintegrated relative orientation (in frame i)
Definition: PreintegratedRotation.h:102
Matrix3 gyroscopeCovariance
Definition: PreintegratedRotation.h:35
double deltaTij_
Time interval from i to j.
Definition: PreintegratedRotation.h:101