22#if GTSAM_ENABLE_BOOST_SERIALIZATION
23#include <boost/serialization/version.hpp>
44 friend class PreintegrationBase;
59 : PreintegratedRotationParams(),
69 : PreintegratedRotationParams(),
77 static std::shared_ptr<PreintegrationParams> MakeSharedD(
double g = 9.81) {
82 static std::shared_ptr<PreintegrationParams> MakeSharedU(
double g = 9.81) {
83 return std::shared_ptr<PreintegrationParams>(
new PreintegrationParams(Vector3(0, 0, -g)));
86 void print(
const std::string& s=
"")
const override;
87 bool equals(
const PreintegratedRotationParams& other,
double tol)
const override;
89 void setAccelerometerCovariance(
const Matrix3& cov) { accelerometerCovariance = cov; }
90 void setIntegrationCovariance(
const Matrix3& cov) { integrationCovariance = cov; }
92 const Matrix3& getAccelerometerCovariance()
const {
return accelerometerCovariance; }
93 const Matrix3& getIntegrationCovariance()
const {
return integrationCovariance; }
94 const Vector3& getGravity()
const {
return n_gravity; }
104 imuFactorErrorMode_ = mode;
109 return imuFactorErrorMode_;
112#ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V43
114 void setUse2ndOrderCoriolis(
bool flag) {
115 use2ndOrderCoriolis = flag;
119 bool getUse2ndOrderCoriolis()
const {
120 return use2ndOrderCoriolis;
126#if GTSAM_ENABLE_BOOST_SERIALIZATION
128 friend class boost::serialization::access;
129 template<
class ARCHIVE>
130 void serialize(ARCHIVE & ar,
const unsigned int version) {
131 namespace bs = ::boost::serialization;
132 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegratedRotationParams);
133 ar & BOOST_SERIALIZATION_NVP(accelerometerCovariance);
134 ar & BOOST_SERIALIZATION_NVP(integrationCovariance);
135 ar & BOOST_SERIALIZATION_NVP(use2ndOrderCoriolis);
136 ar & BOOST_SERIALIZATION_NVP(n_gravity);
138 ar & BOOST_SERIALIZATION_NVP(imuFactorErrorMode_);
139 }
else if (ARCHIVE::is_loading::value) {
140 imuFactorErrorMode_ = ImuFactorErrorMode::Legacy;
148#if GTSAM_ENABLE_BOOST_SERIALIZATION
Macros for Matrix constants to avoid excessive template instantiation.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition Matrix.cpp:143
ImuFactorErrorMode
Error chart used by IMU factors.
Definition PreintegrationParams.h:29
@ Legacy
Historical backend-dependent error chart.
Definition PreintegrationParams.h:30
@ ComponentWise
Use the component-wise NavState error for every backend.
Definition PreintegrationParams.h:31
@ Logmap
Use the SE_2(3) NavState Logmap for every backend.
Definition PreintegrationParams.h:32
Parameters for pre-integration: Usage: Create just a single Params and pass a shared pointer to the c...
Definition PreintegrationParams.h:37
Matrix3 accelerometerCovariance
Continuous-time "Covariance" of accelerometer The units for stddev are σ = m/s²/√Hz.
Definition PreintegrationParams.h:40
bool use2ndOrderCoriolis
Retained only for source and archive compatibility.
Definition PreintegrationParams.h:48
PreintegrationParams()
Default constructor for serialization only; fresh params use Logmap.
Definition PreintegrationParams.h:58
ImuFactorErrorMode getImuFactorErrorMode() const
Return the nonlinear error chart used by IMU factors.
Definition PreintegrationParams.h:108
Vector3 n_gravity
Gravity vector in nav frame.
Definition PreintegrationParams.h:51
Matrix3 integrationCovariance
continuous-time "Covariance" describing integration uncertainty
Definition PreintegrationParams.h:41
PreintegrationParams(const Vector3 &n_gravity_)
The Params constructor insists on getting the navigation frame gravity vector For convenience,...
Definition PreintegrationParams.h:68
void setImuFactorErrorMode(ImuFactorErrorMode mode)
Select the nonlinear error chart used by IMU factors.
Definition PreintegrationParams.h:103