一、LIO的定义
激光雷达-惯性里程计(LiDAR-Inertial Odometry, LIO)是一种融合激光雷达(LiDAR)与惯性测量单元(IMU)数据的高精度里程计技术,核心目标是在无GPS/北斗等外部定位信号的场景下,实时估计载体(机器人、自动驾驶车辆、无人机)的6自由度位姿(x/y/z平移 + 滚转/俯仰/偏航旋转)和运动状态(速度、加速度),为自主导航、地图构建提供关键输入。
1.1 LIO与其他里程计技术的对比
| 技术类型 | 核心传感器 | 优势 | 劣势 | 典型应用场景 |
|---|---|---|---|---|
| 纯LiDAR里程计(LO) | LiDAR | 定位精度高、无漂移、抗光照干扰 | 动态场景鲁棒性差、运动模糊敏感、实时性要求高 | 室内机器人、低速自动驾驶 |
| 视觉里程计(VO) | 相机 | 成本低、纹理信息丰富 | 光照敏感、无纹理场景失效、易漂移 | 消费级机器人、辅助驾驶 |
| 纯IMU里程计 | IMU | 高帧率(100-1000Hz)、抗遮挡 | 短时间内漂移严重(积分误差累积) | 紧急制动、临时遮挡补偿 |
| LIO(融合) | LiDAR + IMU | 高精度、高鲁棒性、低漂移、抗遮挡 | 系统复杂度高、需传感器标定 | 自动驾驶、无人车、无人机、工业机器人 |
1.2 LIO的核心应用场景
- 自动驾驶:城区/高速场景下的定位与地图构建(HD Map);
- 移动机器人:室内外无缝导航(如仓储机器人、巡检机器人);
- 无人机:低空飞行定位、三维地形测绘;
- 工业场景:AGV(自动导引车)高精度路径跟踪、机械臂视觉伺服。
二、LIO核心组件与基础原理
2.1 传感器模块:LiDAR与IMU的特性与误差模型
2.1.1 LiDAR模块
- 类型与数据特性 :
- 机械旋转式LiDAR(如Velodyne VLP-16/32、Ouster OS1):通过旋转发射激光束,输出三维点云(格式:x/y/z/强度/时间戳),帧率通常为10Hz(旋转频率600rpm),点云密度与线数正相关;
- 固态LiDAR(如华为M100、Luminar Iris):无旋转部件,通过MEMS/Flash技术发射激光,输出点云帧率更高(20-30Hz),无运动畸变,适合高速场景。
- 噪声模型:主要包括测距噪声(服从高斯分布,误差0.5-5cm)、角度噪声(激光束发散角导致)、环境噪声(雨天/雾天的激光散射)、动态障碍物干扰(行人/车辆)。
2.1.2 IMU模块
- 工作原理 :由加速度计(测量线加速度 ama_mam)和陀螺仪(测量角速度 ωm\omega_mωm)组成,部分含磁力计(辅助航向校准),输出频率通常为100-1000Hz,远高于LiDAR(10-30Hz)。
- 数据输出 :原始数据为离散时间序列 {(ωm(tk),am(tk))}\{(\omega_m(t_k), a_m(t_k))\}{(ωm(tk),am(tk))},需通过积分得到姿态、速度和位置:
- 姿态积分:R(t)=R(t0)exp(∫t0t(ωm(τ)−bω(τ))dτ)R(t) = R(t_0) \exp\left(\int_{t_0}^t (\omega_m(\tau) - b_\omega(\tau)) d\tau\right)R(t)=R(t0)exp(∫t0t(ωm(τ)−bω(τ))dτ)(RRR 为旋转矩阵,bωb_\omegabω 为陀螺仪零偏);
- 速度积分:v(t)=v(t0)+∫t0t(R(τ)(am(τ)−ba(τ))−g)dτv(t) = v(t_0) + \int_{t_0}^t (R(\tau)(a_m(\tau) - b_a(\tau)) - g) d\tauv(t)=v(t0)+∫t0t(R(τ)(am(τ)−ba(τ))−g)dτ(vvv 为速度,bab_aba 为加速度计零偏,ggg 为重力加速度);
- 位置积分:p(t)=p(t0)+∫t0tv(τ)dτp(t) = p(t_0) + \int_{t_0}^t v(\tau) d\taup(t)=p(t0)+∫t0tv(τ)dτ。
- 误差模型 (核心影响LIO精度):
- 确定性误差:零偏(bω,bab_\omega, b_abω,ba,随时间缓慢漂移)、刻度因子误差(测量值与真实值的比例偏差)、轴间对准误差(传感器轴与载体轴不平行);
- 随机误差:高斯白噪声(ηω,ηa\eta_\omega, \eta_aηω,ηa)、随机游走(nω,nan_\omega, n_anω,na,零偏的随机波动,服从布朗运动)。
2.2 传感器标定:LIO的前提(无标定则无高精度)
LIO需精确知道LiDAR与IMU之间的相对位姿(外参)和各自的内参,标定分为三类:
2.2.1 外参标定(核心)
- 定义:估计LiDAR坐标系(LLL)到IMU坐标系(III)的变换 TIL=(RIL,tIL)T_{IL} = (R_{IL}, t_{IL})TIL=(RIL,tIL),其中 RILR_{IL}RIL 为旋转矩阵,tILt_{IL}tIL 为平移向量(单位:m)。
- 标定方法:
- 基于标定板:使用棋盘格/平面标定板,通过LiDAR检测平面特征、IMU记录运动,求解外参(适合实验室场景);
- 基于运动的自标定:无需标定板,通过载体做特定运动(如旋转、平移),利用LiDAR与IMU数据的一致性约束优化外参(如LIO-SAM、FAST-LIO2的自标定模块);
- 开源工具:LiDAR-IMU-Calibration(ROS包)、kalibr(支持多传感器标定)。
2.2.2 内参标定
- LiDAR内参:激光束的垂直角、水平角分辨率、测距偏移等(厂商通常提供,需验证);
- IMU内参:刻度因子、轴间对准误差、零偏(可通过IMU标定工具如IMU-Tk、kalibr离线标定)。
三、LIO核心技术框架:从数据预处理到状态估计
LIO的技术框架可分为五大模块:数据预处理 → 传感器融合 → 状态估计 → 点云匹配 → 闭环优化(可选),其中融合策略和状态估计是核心区别于纯LO/VO的关键。
3.1 数据预处理:消除噪声与运动畸变
3.1.1 LiDAR点云去畸变
-
问题根源:LiDAR扫描一帧点云的时间(如10Hz对应100ms)内,载体存在运动(平移/旋转),导致同一帧点云的不同点对应不同时刻的载体位姿,出现"畸变"(如直线变曲线)。
-
解决思路:用IMU的高帧率数据补偿运动,将所有点云统一到帧起始/结束时刻的坐标系下。
-
具体步骤:
- 时间戳对齐:将LiDAR点云的每个点(tpt_ptp)与IMU数据(timut_{imu}timu)进行时间同步;
- 运动插值:根据IMU积分得到 tpt_ptp 时刻相对于帧起始时刻 t0t_0t0 的位姿 T(t0→tp)T(t_0 \to t_p)T(t0→tp);
- 畸变校正:将原始点 prawp_{raw}praw 变换到 t0t_0t0 时刻:pundistorted=T(t0→tp)−1⋅prawp_{undistorted} = T(t_0 \to t_p)^{-1} \cdot p_{raw}pundistorted=T(t0→tp)−1⋅praw。
-
公式推导:
设帧起始时刻位姿为 T0=(R0,p0)T_0 = (R_0, p_0)T0=(R0,p0),tpt_ptp 时刻位姿为 Tp=(Rp,pp)T_p = (R_p, p_p)Tp=(Rp,pp),则 T(t0→tp)=Tp⋅T0−1T(t_0 \to t_p) = T_p \cdot T_0^{-1}T(t0→tp)=Tp⋅T0−1,校正后点云为:
xundistyundistzundist1\]=T0−1⋅Tp⋅\[xrawyrawzraw1\]\\begin{bmatrix} x_{undist} \\\\ y_{undist} \\\\ z_{undist} \\\\ 1 \\end{bmatrix} = T_0\^{-1} \\cdot T_p \\cdot \\begin{bmatrix} x_{raw} \\\\ y_{raw} \\\\ z_{raw} \\\\ 1 \\end{bmatrix} xundistyundistzundist1 =T0−1⋅Tp⋅ xrawyrawzraw1
-
核心意义:避免每次优化时都重新积分IMU数据(降低计算量),将IMU数据转换为"相对运动约束",直接用于状态估计。
-
预积分定义:在LiDAR两帧之间(tkt_ktk 到 tk+1t_{k+1}tk+1),积分IMU数据得到相对位姿 Tk+1,kT_{k+1,k}Tk+1,k、相对速度 vk+1,kv_{k+1,k}vk+1,k,以及对应的误差协方差矩阵。
-
预积分公式(连续时间):
- 姿态预积分:Rk+1,k=Rkexp(∫tktk+1(ωm(τ)−bω(τ))dτ)R_{k+1,k} = R_k \exp\left(\int_{t_k}^{t_{k+1}} (\omega_m(\tau) - b_\omega(\tau)) d\tau\right)Rk+1,k=Rkexp(∫tktk+1(ωm(τ)−bω(τ))dτ)
- 速度预积分:vk+1,k=vk+∫tktk+1(R(τ)(am(τ)−ba(τ))−g)dτv_{k+1,k} = v_k + \int_{t_k}^{t_{k+1}} (R(\tau)(a_m(\tau) - b_a(\tau)) - g) d\tauvk+1,k=vk+∫tktk+1(R(τ)(am(τ)−ba(τ))−g)dτ
- 位置预积分:pk+1,k=pk+∫tktk+1v(τ)dτ+12∫tktk+1(R(τ)(am(τ)−ba(τ))−g)dτ2p_{k+1,k} = p_k + \int_{t_k}^{t_{k+1}} v(\tau) d\tau + \frac{1}{2} \int_{t_k}^{t_{k+1}} (R(\tau)(a_m(\tau) - b_a(\tau)) - g) d\tau^2pk+1,k=pk+∫tktk+1v(τ)dτ+21∫tktk+1(R(τ)(am(τ)−ba(τ))−g)dτ2
-
离散化实现:由于IMU数据是离散的,实际用中值积分/龙格-库塔积分(RK4)离散化,同时计算误差传播矩阵(用于后续优化)。
-
关键优化:预积分的"零偏敏感性"------当IMU零偏更新时,无需重新积分,仅通过误差传播矩阵修正预积分结果(FAST-LIO2的核心优化点)。
3.2 融合策略:松耦合 vs 紧耦合(LIO的核心区别)
3.2.1 松耦合(Loose Coupling)
- 原理:LiDAR和IMU分别独立估计里程计,再通过融合算法(如EKF)融合两个里程计的结果,得到最终位姿。
- 流程:
- LiDAR里程计:通过点云匹配(如ICP)估计 TLiDART_{LiDAR}TLiDAR;
- IMU里程计:通过积分IMU数据估计 TIMUT_{IMU}TIMU;
- 融合:用EKF将 TLiDART_{LiDAR}TLiDAR(低频、高精度)和 TIMUT_{IMU}TIMU(高频、低漂移短期)融合,输出高频平滑的位姿。
- 优点:实现简单、计算量小、鲁棒性高(单传感器失效时可降级);
- 缺点:未充分利用原始数据的相关性,精度低于紧耦合;
- 代表算法:LOAM(Lidar Odometry and Mapping)、LeGO-LOAM(基于地面分割的松耦合LIO)。
3.2.2 紧耦合(Tight Coupling)
- 原理:直接融合LiDAR原始点云和IMU原始数据,构建统一的状态估计问题,通过优化或滤波求解最优位姿和传感器误差(如IMU零偏)。
- 核心思想:将IMU预积分作为约束,LiDAR点云匹配作为观测,共同优化状态变量(位姿、速度、IMU零偏等)。
- 优点:充分利用原始数据信息,精度更高、抗噪声能力更强,适合高速/动态场景;
- 缺点:实现复杂、计算量较大,对传感器标定精度要求更高;
- 代表算法:LIO-SAM、FAST-LIO2、Point-LIO、Small-GICP-LIO(基于点云配准的紧耦合)。
3.3 状态估计方法:滤波-based vs 优化-based
3.3.1 滤波-based方法(如EKF)
-
状态变量定义(以紧耦合EKF为例):
X=[p,v,R,bω,ba]TX = [p, v, R, b_\omega, b_a]^TX=[p,v,R,bω,ba]T
其中 ppp(位置)、vvv(速度)、RRR(姿态)为载体状态,bωb_\omegabω(陀螺仪零偏)、bab_aba(加速度计零偏)为传感器误差状态。
-
预测步(IMU积分):用IMU数据更新状态变量的先验估计和协方差矩阵;
-
更新步(LiDAR观测):通过点云匹配得到观测值(如位姿增量),计算卡尔曼增益,更新状态变量的后验估计。
-
缺点:对非线性系统近似(EKF用一阶泰勒展开),长期积累误差,适合实时性要求极高的场景。
3.3.2 优化-based方法(如图优化)
-
状态变量:与滤波方法一致,通常还包括历史关键帧位姿(用于回环检测);
-
图优化模型:将状态变量作为节点,IMU预积分和LiDAR点云匹配作为边(约束),构建因子图:
minX∑i∥rIMU(Xi,Xi+1)∥ΣIMU2+∑j∥rLiDAR(Xj,Pj)∥ΣLiDAR2\min_X \sum_{i} \| r_{IMU}(X_i, X_{i+1}) \|{\Sigma{IMU}}^2 + \sum_{j} \| r_{LiDAR}(X_j, P_j) \|{\Sigma{LiDAR}}^2minX∑i∥rIMU(Xi,Xi+1)∥ΣIMU2+∑j∥rLiDAR(Xj,Pj)∥ΣLiDAR2
其中 rIMUr_{IMU}rIMU 为IMU预积分残差,rLiDARr_{LiDAR}rLiDAR 为LiDAR点云匹配残差,Σ\SigmaΣ 为残差的协方差矩阵(权重)。
-
求解方法:用非线性最小二乘求解(如高斯-牛顿法、LM法),开源库:Ceres Solver、g2o;
-
优点:处理非线性系统更准确,可融入回环约束修正全局漂移,是当前主流方法(LIO-SAM、FAST-LIO2均采用)。
3.4 LiDAR点云匹配与特征提取
点云匹配是LiDAR提供观测约束的核心,分为"基于特征的匹配"和"直接匹配"两类:
3.4.1 基于特征的匹配(如LOAM、LIO-SAM)
- 特征提取:从去畸变后的点云中提取两类特征(降低匹配复杂度):
- 边缘特征点(Edge Points):梯度较大的点(如墙角、栏杆),用曲率 c=1k∑i=1k(xi−xˉ)T(xi−xˉ)c = \frac{1}{k} \sum_{i=1}^k (x_i - \bar{x})^T (x_i - \bar{x})c=k1∑i=1k(xi−xˉ)T(xi−xˉ) 筛选(曲率大的点为边缘点);
- 平面特征点(Planar Points):梯度较小的点(如地面、墙面),筛选曲率小的点。
- 特征匹配:
- 边缘点匹配到参考帧的线特征(两点确定一条线);
- 平面点匹配到参考帧的面特征(三点确定一个平面);
- 残差计算:点到线/面的距离(如点到线距离 d=∥(p−p1)×(p−p2)∥/∥p1−p2∥d = \| (p - p1) \times (p - p2) \| / \| p1 - p2 \|d=∥(p−p1)×(p−p2)∥/∥p1−p2∥)。
3.4.2 直接匹配(如FAST-LIO2、Point-LIO)
- 原理:无需提取特征,直接将当前帧点云与参考帧的体素网格/点云地图进行匹配,最小化点到面/点到点的距离残差。
- 优化:
- 体素网格下采样:将参考帧点云划分为体素(如5cm×5cm×5cm),每个体素保留一个点,降低计算量;
- 正态分布变换(NDT):将参考帧点云建模为概率密度函数,当前帧点云的似然函数作为残差(适合高速场景);
- 点到面ICP:计算每个点的法向量,最小化点到面的距离(精度高于点到点ICP)。
3.4.3 鲁棒估计
- 问题:动态障碍物、 outliers(如噪声点、遮挡物)会导致匹配残差异常,影响位姿估计精度;
- 解决方案:
-
RANSAC算法:随机采样子集拟合模型,剔除 outliers;
-
M-estimation(如Huber损失、Cauchy损失):对大残差赋予较小权重,降低 outliers 的影响:
ρ(r)={12r2∣r∣≤δδ∣r∣−12δ2∣r∣>δ\rho(r) = \begin{cases} \frac{1}{2} r^2 & |r| \leq \delta \\ \delta |r| - \frac{1}{2} \delta^2 & |r| > \delta \end{cases}ρ(r)={21r2δ∣r∣−21δ2∣r∣≤δ∣r∣>δ
(Huber损失,δ\deltaδ 为阈值,通常取1.345)。
-
3.5 回环检测与闭环优化(可选,LIO→LISAM)
- 问题:即使是紧耦合LIO,长期运行仍会积累漂移(如室内长走廊、室外大范围场景);
- 回环检测:检测载体是否回到之前访问过的位置(如通过点云匹配、深度学习特征匹配);
- 闭环优化:当检测到回环时,添加回环约束(当前帧与历史帧的位姿约束)到因子图中,重新优化所有状态变量,消除全局漂移,得到一致的地图和位姿。
- 代表算法:LIO-SAM(支持回环检测)、FAST-LIO2 + LoopClosure(扩展模块)。
四、主流LIO算法深度解析
4.1 LOAM(松耦合经典算法)
- 核心框架:
- 里程计前端:提取边缘/平面特征,通过帧间匹配估计位姿;
- 地图后端:构建全局地图,用地图匹配优化里程计结果;
- 融合策略:松耦合IMU数据(仅用于点云去畸变,未参与状态估计)。
- 优点:开创了LiDAR特征提取与匹配的先河,精度高、鲁棒性强;
- 缺点:无IMU状态估计,漂移较明显,实时性一般(未做并行优化)。
4.2 LIO-SAM(紧耦合图优化标杆)
- 核心创新:将LIO拆分为三个并行线程,兼顾实时性与精度:
- IMU预积分线程:处理IMU数据,生成预积分约束;
- LiDAR特征匹配线程:提取边缘/平面特征,与局部地图匹配,生成LiDAR约束;
- 图优化线程:融合IMU和LiDAR约束,优化状态变量(位姿、速度、IMU零偏)。
- 关键优化:
- 局部地图管理:仅保留最近关键帧的点云,降低匹配复杂度;
- 回环检测:基于点云特征的回环检测,消除全局漂移;
- 性能:在KITTI数据集上,定位精度可达0.2%(相对误差),实时性可达20Hz(CPU:Intel i7-8700K)。
4.3 FAST-LIO2(直接匹配实时性标杆)
- 核心创新:基于球面投影的点云匹配,无需特征提取,计算量极低;
- 关键技术:
- 球面体素网格:将点云投影到球面上,划分为球面体素,加速邻域搜索;
- 紧耦合优化:将IMU预积分和点到面残差统一到优化问题中,同时优化位姿和IMU零偏;
- 实时性优化:单线程实现,CPU实时性可达100Hz(支持128线LiDAR);
- 优点:实时性极强、适合高速场景、对硬件要求低;
- 缺点:依赖精确的IMU标定,动态场景鲁棒性略逊于特征-based方法。
4.4 Point-LIO(点云配准紧耦合新方向)
- 核心思想:基于PointPillars特征提取和GICP(广义ICP)配准,构建紧耦合LIO;
- 关键技术:
- PointPillars特征:将点云划分为柱体(Pillar),提取局部特征,增强对动态障碍物的鲁棒性;
- GICP配准:考虑点云的法向量和协方差,提高配准精度;
- 多约束融合:IMU预积分约束 + PointPillars特征约束 + GICP配准约束;
- 优点:动态场景鲁棒性强、配准精度高,适合城区自动驾驶。
五、LIO工程实现要点
5.1 传感器选型与配置
- LiDAR选型:
- 线数:室内机器人可选16线(如Velodyne VLP-16),自动驾驶需32/64/128线(如Ouster OS1-64);
- 帧率:建议≥10Hz,高速场景需20-30Hz;
- 测距范围:室内≥10m,室外≥50m。
- IMU选型:
- 零偏稳定性:陀螺仪≤0.1°/h,加速度计≤100μg(如IMU381、BMI088);
- 输出频率:≥200Hz(越高越好,用于点云去畸变);
- 同步要求:支持PPS硬件同步(与LiDAR时间戳对齐)。
5.2 时间同步与数据对齐
-
硬件同步:通过PPS(脉冲每秒)信号实现LiDAR与IMU的时间戳同步(精度可达μs级);
-
软件同步:无硬件同步时,采用线性插值对齐LiDAR和IMU数据(精度可达ms级);
-
关键代码(ROS 2示例):
cpp// 时间同步回调函数(LiDAR和IMU数据对齐) void syncCallback(const sensor_msgs::msg::PointCloud2::SharedPtr lidar_msg, const sensor_msgs::msg::Imu::SharedPtr imu_msg) { double lidar_time = lidar_msg->header.stamp.sec + lidar_msg->header.stamp.nanosec / 1e9; double imu_time = imu_msg->header.stamp.sec + imu_msg->header.stamp.nanosec / 1e9; // 线性插值对齐IMU数据到LiDAR时间戳 ImuData interpolated_imu = interpolateIMU(imu_buffer, lidar_time); // 点云去畸变 pcl::PointCloud<pcl::PointXYZIRT>::Ptr undistorted_cloud = undistortPointCloud(lidar_msg, interpolated_imu); }
5.3 实时性优化
- 点云降采样:
- 体素网格下采样(VoxelGrid):将点云划分为体素,保留中心/平均点(如5cm体素,减少80%点云数量);
- 随机下采样(RandomSample):简单高效,适合实时场景。
- 并行计算:
- 多线程:将预积分、特征提取、配准分配到不同线程(如LIO-SAM的三线程模型);
- GPU加速:用CUDA实现点云配准(如CUDA-ICP)、特征提取(如PointPillars GPU版),适合高分辨率LiDAR。
- 算法简化:
- 减少优化变量:固定部分状态(如短时间内IMU零偏不变);
- 局部窗口优化:仅优化最近N帧关键帧(如N=20),而非全部历史帧。
5.4 参数调优与常见问题调试
5.4.1 关键参数调优
- 特征提取参数:
- 曲率阈值(边缘/平面特征划分):室内场景建议0.1-0.3,室外场景建议0.3-0.5;
- 特征点数量:每帧边缘点200-500个,平面点500-1000个。
- 配准参数:
- ICP迭代次数:10-20次(迭代次数越多精度越高,但耗时更长);
- 收敛阈值:残差变化≤1e-6时停止迭代。
- IMU预积分参数:
- 积分步长:与IMU输出频率一致(如200Hz对应5ms);
- 零偏更新率:每帧优化一次零偏(避免更新过于频繁导致抖动)。
5.4.2 常见问题与解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 点云畸变严重 | 时间同步错误、IMU数据异常 | 检查PPS同步、重新标定IMU、验证IMU数据有效性 |
| 定位漂移大 | 外参标定不准、IMU零偏未估计 | 重新标定外参、启用IMU零偏优化 |
| 配准失败(残差过大) | 动态障碍物过多、特征不足 | 加入动态障碍物过滤、增加特征点数量 |
| 实时性差(帧率<10Hz) | 点云密度过高、算法未优化 | 增大体素尺寸、启用GPU加速、多线程并行 |
六、LIO工具链与数据集
6.1 开源框架(ROS/ROS 2)
| 框架名称 | 融合策略 | 状态估计 | 实时性 | 适用场景 |
|---|---|---|---|---|
| LIO-SAM | 紧耦合 | 图优化 | 20Hz | 室内外机器人、自动驾驶 |
| FAST-LIO2 | 紧耦合 | 优化-based | 100Hz | 高速场景、嵌入式平台 |
| Point-LIO | 紧耦合 | 图优化 | 15Hz | 城区自动驾驶 |
| LeGO-LOAM | 松耦合 | 帧间匹配 | 10Hz | 室内地面机器人 |
6.2 核心依赖库
- 点云处理:PCL(Point Cloud Library)、Open3D;
- 线性代数与优化:Eigen 3、Ceres Solver、g2o;
- 传感器数据处理:ROS/ROS 2(数据订阅/发布)、Boost(线程/时间);
- 深度学习辅助:PyTorch/TensorFlow(用于特征提取、动态障碍物检测)。
6.3 标准数据集(算法测试与对比)
- KITTI Odometry:室外自动驾驶场景,含64线LiDAR、IMU、相机数据;
- NuScenes:城区自动驾驶场景,含32线LiDAR、IMU、多相机数据;
- Euroc MAV:室内无人机场景,含立体相机、IMU数据(可搭配LiDAR使用);
- Jackal Dataset:室内机器人场景,含16线LiDAR、IMU数据。
总结
LIO算法通过融合LiDAR的高精度和IMU的高帧率特性,解决了纯LiDAR里程计动态鲁棒性差和纯IMU里程计漂移严重的问题,已成为自主导航领域的核心技术。其核心框架包括数据预处理、传感器融合、状态估计、点云匹配四大模块,其中紧耦合+图优化是当前主流技术路线,代表算法有LIO-SAM、FAST-LIO2、Point-LIO等。
工程实现中,需重点关注传感器标定、时间同步、实时性优化和参数调优四大关键点,同时结合开源框架和标准数据集快速验证算法效果。未来,LIO将向多传感器融合、轻量化部署、端到端深度学习和一体化建图定位方向发展,进一步提升精度、鲁棒性和易用性,推动自动驾驶、移动机器人等领域的技术落地。