55 const Vector3& biasHat) :
70 const std::shared_ptr<Params>& p,
71 const Vector3& bias_hat,
74 const Matrix3& delRdelBiasOmega,
75 const Matrix3& preint_meas_cov) :
78 preintMeasCov_(preint_meas_cov) {}
80 Params& p()
const {
return *std::static_pointer_cast<
Params>(p_);}
81 const Vector3& biasHat()
const {
return biasHat_; }
82 const Matrix3& preintMeasCov()
const {
return preintMeasCov_; }
85 void print(
const std::string& s =
"Preintegrated Measurements: ")
const;
91 void resetIntegration();
102 void integrateMeasurement(
const Vector3& measuredOmega,
double deltaT);
110 static Vector DeltaAngles(
const Vector& msr_gyro_t,
const double msr_dt,
111 const Vector3& delta_angles);
115 const Matrix3& measuredOmegaCovariance)
117 p_->gyroscopeCovariance = measuredOmegaCovariance;
123 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 125 friend class boost::serialization::access;
126 template<
class ARCHIVE>
127 void serialize(ARCHIVE & ar,
const unsigned int ) {
129 ar & BOOST_SERIALIZATION_NVP(p_);
130 ar & BOOST_SERIALIZATION_NVP(biasHat_);
148 using Base::evaluateError;
151 #if !defined(_MSC_VER) && __GNUC__ == 4 && __GNUC_MINOR__ > 5 152 typedef typename std::shared_ptr<AHRSFactor> shared_ptr;
171 gtsam::NonlinearFactor::shared_ptr clone()
const override;
175 DefaultKeyFormatter)
const override;
187 Vector evaluateError(
const Rot3& rot_i,
const Rot3& rot_j,
194 static Rot3 Predict(
const Rot3& rot_i,
const Vector3& bias,
200 const Vector3& omegaCoriolis,
201 const std::optional<Pose3>& body_P_sensor = {});
205 const Rot3& rot_i,
const Vector3& bias,
207 const std::optional<Pose3>& body_P_sensor = {});
211 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 213 friend class boost::serialization::access;
214 template<
class ARCHIVE>
215 void serialize(ARCHIVE & ar,
const unsigned int ) {
218 & boost::serialization::make_nvp(
"NoiseModelFactor3",
219 boost::serialization::base_object<Base>(*
this));
220 ar & BOOST_SERIALIZATION_NVP(_PIM_);
Definition: AHRSFactor.h:36
Definition: NonlinearFactor.h:431
Definition: AHRSFactor.h:135
std::shared_ptr< AHRSFactor > shared_ptr
Definition: AHRSFactor.h:154
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
PreintegratedAhrsMeasurements(const std::shared_ptr< Params > &p, const Vector3 &bias_hat, double deltaTij, const Rot3 &deltaRij, const Matrix3 &delRdelBiasOmega, const Matrix3 &preint_meas_cov)
Definition: AHRSFactor.h:69
Definition: NonlinearFactor.h:68
Rot3 is a 3D rotation represented as a rotation matrix if the preprocessor symbol GTSAM_USE_QUATERNIO...
Definition: Rot3.h:58
PreintegratedAhrsMeasurements(const Vector3 &biasHat, const Matrix3 &measuredOmegaCovariance)
Definition: AHRSFactor.h:114
const PreintegratedAhrsMeasurements & preintegratedMeasurements() const
Access the preintegrated measurements.
Definition: AHRSFactor.h:181
Definition: Testable.h:112
Matrix * OptionalMatrixType
Definition: NonlinearFactor.h:55
PreintegratedAhrsMeasurements(const std::shared_ptr< Params > &p, const Vector3 &biasHat)
Definition: AHRSFactor.h:54
gtsam::enable_if_t< needs_eigen_aligned_allocator< T >::value, std::shared_ptr< T > > make_shared(Args &&... args)
Definition: make_shared.h:56
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition: Key.h:35
Definition: chartTesting.h:28
Definition: OptionalJacobian.h:38
Non-linear factor base classes.
Definition: PreintegratedRotation.h:93
Definition: PreintegratedRotation.h:32
Matrix3 preintMeasCov_
Covariance matrix of the preintegrated measurements (first-order propagation from measurementCovarian...
Definition: AHRSFactor.h:41
Vector3 biasHat_
Angular rate bias values used during preintegration.
Definition: AHRSFactor.h:40
PreintegratedAhrsMeasurements()
Default constructor, only for serialization and wrappers.
Definition: AHRSFactor.h:48
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102