GLIM
Loading...
Searching...
No Matches
odometry_estimation_cpu.hpp
1#pragma once
2
3#include <glim/odometry/odometry_estimation_imu.hpp>
4
5namespace gtsam_points {
6
7class GaussianVoxelMapCPU;
8struct FlatContainer;
9template <typename VoxelContents>
10class IncrementalVoxelMap;
11using iVox = IncrementalVoxelMap<FlatContainer>;
12} // namespace gtsam_points
13
14namespace glim {
15
20public:
21 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
22
25
26public:
27 // Registration params
28 std::string registration_type;
32
35
39};
40
45public:
46 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
47
49 virtual ~OdometryEstimationCPU() override;
50
51private:
52 virtual gtsam::NonlinearFactorGraph create_factors(const int current, const gtsam_points::shared_ptr<gtsam::ImuFactor>& imu_factor, gtsam::Values& new_values) override;
53
54 virtual void fallback_smoother() override;
55
56 void update_target(const int current, const Eigen::Isometry3d& T_target_imu);
57
58private:
59 // Registration params
60 std::mt19937 mt;
61 Eigen::Isometry3d last_T_target_imu;
62 std::vector<std::shared_ptr<gtsam_points::GaussianVoxelMapCPU>> target_voxelmaps;
63 std::shared_ptr<gtsam_points::iVox> target_ivox;
64 EstimationFrame::ConstPtr target_ivox_frame;
65};
66
67} // namespace glim
CPU-based semi-tightly coupled LiDAR-IMU odometry.
Definition odometry_estimation_cpu.hpp:44
Base class for LiDAR-IMU odometry estimation.
Definition odometry_estimation_imu.hpp:70
Definition loose_initial_state_estimation.hpp:9
Parameters for OdometryEstimationCPU.
Definition odometry_estimation_cpu.hpp:19
std::string registration_type
Registration type (GICP or VGICP)
Definition odometry_estimation_cpu.hpp:28
double ivox_resolution
iVox resolution (for GICP)
Definition odometry_estimation_cpu.hpp:33
int vgicp_voxelmap_levels
Multi-resolution voxelmap levesl (for VGICP)
Definition odometry_estimation_cpu.hpp:37
double vgicp_resolution
Voxelmap resolution (for VGICP)
Definition odometry_estimation_cpu.hpp:36
double target_downsampling_rate
Downsampling rate for points to be inserted into the target.
Definition odometry_estimation_cpu.hpp:31
int max_iterations
Maximum number of iterations.
Definition odometry_estimation_cpu.hpp:29
int lru_thresh
LRU cache threshold.
Definition odometry_estimation_cpu.hpp:30
double vgicp_voxelmap_scaling_factor
Multi-resolution voxelmap scaling factor (for VGICP)
Definition odometry_estimation_cpu.hpp:38
double ivox_min_dist
Minimum distance between points in an iVox cell (for GICP)
Definition odometry_estimation_cpu.hpp:34
Parameters for OdometryEstimationIMU.
Definition odometry_estimation_imu.hpp:33