GLIM
Loading...
Searching...
No Matches
imu_validation.hpp
1#pragma once
2
3#include <Eigen/Core>
4#include <Eigen/Geometry>
5#include <spdlog/spdlog.h>
6#include <gtsam_points/util/runnning_statistics.hpp>
7
8namespace glim {
9
11public:
12 IMUValidation(const std::shared_ptr<spdlog::logger>& logger, bool enabled = true);
14
15 void validate(
16 const Eigen::Isometry3d& last_T_world_imu,
17 const Eigen::Vector3d& last_v_world_imu,
18 const Eigen::Isometry3d& predicted_T_world_imu,
19 const Eigen::Vector3d& predicted_v_world_imu,
20 const Eigen::Isometry3d& corrected_T_world_imu,
21 const Eigen::Vector3d& corrected_v_world_imu,
22 double dt);
23
24 void validate(const Eigen::Matrix<double, 6, 1>& imu_bias);
25
26private:
27 const bool enabled;
28 std::shared_ptr<spdlog::logger> logger;
29
30 int num_validations;
31 gtsam_points::RunningStatistics<Eigen::Array3d> noimu_error_stats; // rotation, translation, velocity
32 gtsam_points::RunningStatistics<Eigen::Array3d> imu_error_stats; // rotation, translation, velocity
33 Eigen::Array3i imu_better_counts; // rotation, translation, velocity
34
35 int num_bias_validations;
36 gtsam_points::RunningStatistics<Eigen::Array<double, 6, 1>> imu_bias_stats; // Acc, Gyro bias
37};
38
39} // namespace glim
Definition imu_validation.hpp:10