32 bool enable_optimization;
34 int max_num_keyframes;
35 std::string keyframe_update_strategy;
36 int keyframe_update_min_points;
37 double keyframe_update_interval_rot;
38 double keyframe_update_interval_trans;
39 double max_keyframe_overlap;
41 bool create_between_factors;
42 std::string between_registration_type;
44 std::string registration_error_factor_type;
45 double keyframe_randomsampling_rate;
46 double keyframe_voxel_resolution;
47 int keyframe_voxelmap_levels;
48 double keyframe_voxelmap_scaling_factor;
50 double submap_downsample_resolution;
51 double submap_voxel_resolution;
52 int submap_target_num_points;
63 virtual void insert_imu(
const double stamp,
const Eigen::Vector3d& linear_acc,
const Eigen::Vector3d& angular_vel)
override;
64 virtual void insert_frame(
const EstimationFrame::ConstPtr& odom_frame)
override;
71 void insert_keyframe(
const int current,
const EstimationFrame::ConstPtr& odom_frame);
73 SubMap::Ptr create_submap(
bool force_create =
false)
const;
82 std::unique_ptr<IMUIntegration> imu_integration;
83 std::unique_ptr<CloudDeskewing> deskewing;
84 std::unique_ptr<CloudCovarianceEstimation> covariance_estimation;
86 std::shared_ptr<void> stream;
87 std::shared_ptr<void> stream_buffer_roundrobin;
89 std::deque<EstimationFrame::ConstPtr> delayed_input_queue;
90 std::vector<EstimationFrame::ConstPtr> odom_frames;
92 std::vector<int> keyframe_indices;
93 std::vector<EstimationFrame::Ptr> keyframes;
95 std::unique_ptr<gtsam::Values> values;
96 std::unique_ptr<gtsam::NonlinearFactorGraph> graph;
98 std::vector<SubMap::Ptr> submap_queue;
100 std::shared_ptr<void> tbb_task_arena;