gtsam_points
Loading...
Searching...
No Matches
reintegrated_imu_factor.hpp
1// SPDX-License-Identifier: MIT
2// Copyright (c) 2024 Kenji Koide (k.koide@aist.go.jp)
3#include <gtsam/navigation/ImuFactor.h>
4#include <gtsam/nonlinear/NonlinearFactor.h>
5
6namespace gtsam_points {
11class ReintegratedImuMeasurements : public gtsam::PreintegratedImuMeasurements {
12public:
13 friend class ReintegratedImuFactor;
14
16 const gtsam_points::shared_ptr<gtsam::PreintegrationParams>& p,
17 const gtsam::imuBias::ConstantBias& biasHat = gtsam::imuBias::ConstantBias());
19
20 void resetIntegration() override;
21 void integrateMeasurement(const gtsam::Vector3& measuredAcc, const gtsam::Vector3& measuredOmega, double dt) override;
22
23 const Eigen::Vector3d mean_acc() const;
24 const Eigen::Vector3d mean_gyro() const;
25
26public:
27 std::vector<gtsam::Vector7> imu_data; // [a, w, dt]
28};
33class ReintegratedImuFactor : public gtsam::NonlinearFactor {
34public:
36 gtsam::Key pose_i,
37 gtsam::Key vel_i,
38 gtsam::Key pose_j,
39 gtsam::Key vel_j,
40 gtsam::Key bias,
41 const ReintegratedImuMeasurements& imu_measurements);
42 ~ReintegratedImuFactor() override;
43
44 size_t dim() const override { return 9; }
45
46 virtual void print(const std::string& s = "", const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter) const override;
47
48 gtsam::GaussianFactor::shared_ptr linearize(const gtsam::Values& values) const override;
49 double error(const gtsam::Values& values) const override;
50
51 const ReintegratedImuMeasurements& measurements() const { return imu_measurements; }
52
53private:
54 gtsam::ImuFactor::shared_ptr create_imu_factor(const gtsam::imuBias::ConstantBias& bias) const;
55
56private:
57 const ReintegratedImuMeasurements imu_measurements;
58 mutable gtsam::ImuFactor::shared_ptr imu_factor;
59};
60} // namespace gtsam_points
"Re"-integrated IMU factor (IMU factor without pre-integration). This factor re-integrates IMU measur...
Definition reintegrated_imu_factor.hpp:33
IMU measurements to be re-integrated. This class stores IMU measurements along with the pre-integrate...
Definition reintegrated_imu_factor.hpp:11