7#include <glim/util/concurrent_vector.hpp>
8#include <glim/odometry/odometry_estimation_base.hpp>
40 void insert_image(
const double stamp,
const cv::Mat& image);
49 void insert_imu(
const double stamp,
const Eigen::Vector3d& linear_acc,
const Eigen::Vector3d& angular_vel);
72 void get_results(std::vector<EstimationFrame::ConstPtr>& estimation_results, std::vector<EstimationFrame::ConstPtr>& marginalized_frames);
78 std::atomic_bool kill_switch;
79 std::atomic_bool end_of_sequence;
94 std::atomic_int internal_frame_queue_size;
95 std::shared_ptr<OdometryEstimationBase> odometry_estimation;
98 std::shared_ptr<spdlog::logger> logger;
Odometry estimation executor to wrap and asynchronously run OdometryEstimationBase.
Definition async_odometry_estimation.hpp:21
AsyncOdometryEstimation(const std::shared_ptr< OdometryEstimationBase > &odometry_estimation, bool enable_imu)
Construct a new Async Odometry Estimation object.
void get_results(std::vector< EstimationFrame::ConstPtr > &estimation_results, std::vector< EstimationFrame::ConstPtr > &marginalized_frames)
Get the estimation results.
void insert_frame(const PreprocessedFrame::Ptr &frame)
Insert a preprocessed point cloud into odometry estimation.
~AsyncOdometryEstimation()
Destroy the Async Odometry Estimation object.
int workload() const
Get the size of the input queue.
void insert_imu(const double stamp, const Eigen::Vector3d &linear_acc, const Eigen::Vector3d &angular_vel)
Insert an IMU data into the odometry estimation.
void join()
Wait for the odometry estimation thread.
Simple thread-safe vector with mutex-lock.
Definition concurrent_vector.hpp:48