Class LIO¶
Defined in File lio.hpp
Nested Relationships¶
Nested Types¶
Class Documentation¶
-
class LIO¶
Core LiDAR-inertial odometry algorithm class.
Public Functions
-
void add_imu_measurement(const ImuControl &base_imu)¶
Add an IMU measurement expressed in the base frame.
-
void add_imu_measurement(const Sophus::SE3s &extrinsic_imu2base, const ImuControl &raw_imu)¶
Add an IMU measurement expressed in the IMU frame and transform it to the base frame using the given extrinsic calibration.
- Parameters:
extrinsic_imu2base – Extrinsic transform from IMU to base frame.
raw_imu – Raw IMU measurement.
-
Vector3sVector register_scan(Vector3sVector scan, const Timestamps ×tamps)¶
Register a LiDAR scan, applying deskewing based on the initial motion guess and clipping points beyond valid range.
- Parameters:
scan – Input raw point cloud.
timestamps – Absolute per-point timestamps, plus the scan’s own min/max, as already computed by process_timestamps.
- Returns:
Deskewed and clipped point cloud.
-
Vector3sVector register_scan(const Sophus::SE3s &extrinsic_lidar2base, Vector3sVector scan, const Timestamps ×tamps)¶
Register a LiDAR scan for which the extrinsic calibration from lidar to base has already been applied.
- Parameters:
extrinsic_lidar2base – Extrinsic from lidar to base frame.
scan – Input raw point cloud.
timestamps – Absolute per-point timestamps, plus the scan’s own min/max, as already computed by process_timestamps.
- Returns:
Deskewed and clipped scan, in the base frame.
-
void restart()¶
Restart, treating the next scan as if it were the first.
Forces
config.initialization_phaseoff.
Public Members
-
VoxelHashMap map¶
Local map.
-
tbb::task_arena arena¶
Bounds ICP parallelism to max_num_threads without touching any other TBB user in the process.
-
Eigen::Matrix3s body_acceleration_covariance = Eigen::Matrix3s::Identity()¶
Covariance of body acceleration estimate.
-
IntervalStats interval_stats¶
IMU measurement statistics since last LiDAR frame.
-
std::size_t reset_count = 0¶
How many times
reset()has been called.
-
struct Config¶
Configuration parameters for odometry.
Public Members
-
bool deskew = true¶
Enable scan deskewing.
-
size_t max_iterations = 100¶
Maximum number of ICP iterations.
-
Scalar voxel_size = 1.0¶
Size of voxel grid (m).
-
Scalar max_range = 100.0¶
Max points per voxel.
Maximum lidar range (m).
-
Scalar min_range = 1.0¶
Minimum lidar range (m).
-
Scalar convergence_criterion = 1e-5¶
ICP convergence threshold.
-
Scalar max_correspondence_distance = 0.5¶
Max distance for correspondences (m).
-
int max_num_threads = 0¶
Thread count for data association (0 = automatic).
-
bool initialization_phase = false¶
Enable initialization phase.
-
Scalar max_expected_jerk = 3¶
Maximum expected jerk (m/s³).
-
bool double_downsample = true¶
Enable double downsampling.
-
Scalar min_beta = 200¶
Minimum weight for orientation regularization.
-
bool deskew = true¶
-
void add_imu_measurement(const ImuControl &base_imu)¶