GLIM
Loading...
Searching...
No Matches
loose_initial_state_estimation.hpp
1#pragma once
2
3#include <memory>
4#include <glim/odometry/initial_state_estimation.hpp>
5
6namespace gtsam_points {
7struct FlatContainer;
8template <typename VoxelContents>
11} // namespace gtsam_points
12
13namespace glim {
14
15class IMUIntegration;
16class CloudCovarianceEstimation;
17
19public:
20 LooseInitialStateEstimation(const Eigen::Isometry3d& T_lidar_imu, const Eigen::Matrix<double, 6, 1>& imu_bias);
21 virtual ~LooseInitialStateEstimation() override;
22
23 virtual void insert_frame(const PreprocessedFrame::ConstPtr& raw_frame) override;
24 virtual void insert_imu(double stamp, const Eigen::Vector3d& linear_acc, const Eigen::Vector3d& angular_vel) override;
25 virtual EstimationFrame::ConstPtr initial_pose() override;
26
27private:
28 const Eigen::Isometry3d T_lidar_imu;
29
30 int num_threads;
31 double window_size;
32
33 std::unique_ptr<CloudCovarianceEstimation> covariance_estimation;
34
35 std::shared_ptr<gtsam_points::iVox> target_ivox;
36 std::vector<std::pair<double, Eigen::Isometry3d>> T_odom_lidar;
37
38 std::unique_ptr<IMUIntegration> imu_integration;
39};
40
41} // namespace glim
Initial sensor state estimator.
Definition initial_state_estimation.hpp:18
Definition loose_initial_state_estimation.hpp:18
virtual void insert_frame(const PreprocessedFrame::ConstPtr &raw_frame) override
Insert a point cloud.
virtual void insert_imu(double stamp, const Eigen::Vector3d &linear_acc, const Eigen::Vector3d &angular_vel) override
Insert an IMU data.
virtual EstimationFrame::ConstPtr initial_pose() override
Get the initial estimation result.
Definition loose_initial_state_estimation.hpp:9