LIO-SAM学习笔记-整体框架
LIO-SAM在LEGO-LOAM上的改进
1. 由于支持手持设备,因此没有对地面点进行特殊处理
2. 紧耦合的lidar imu融合模块,充分利用了imu数据,对快速旋转的场景有更好的鲁棒性
3. 融合GPS,全局地图可以在没有回环的情况下有更好的全局一致性
4. 框架易于扩展
其代码的组织结构来看,和LEGO-LOAM区别不大:
- imageProjection.cpp:点云投影成深度图,并分类,利用ring和time给每个点去畸变。
- featureExtraction.cpp:提取边缘点和平面点特征。
- mapOptmization.cpp:基于因子图,构建点线、点面约束,回环,GPS等各种因子,最后增量平滑全图位姿。
- imuPreintegration.cpp:联合优化激光odom和imu数据,估计IMU偏差,进行实时的里程计估算。
大多数IMU坐标系为NED(北、东、下),robot_localization假定的IMU数据使用ENU坐标系
当k时刻的状态发生变化,则通过imu积分得到的k 1时刻的状态也会发生相应变化,而基于滑动窗口的后端优化或者因子图优化中,这些状态量会经常进行调整,如果每次状态调整都要重新计算imu积分,计算量太大。发现预积分量和k以及k 1时刻的状态无关,因此当k时刻状态发生变化时,不需要将imu数据重新积分。
由于imu的零偏会随时间发生变化,因此零偏也是系统的优化变量之一,虽然预积分量与两帧之间的速度和姿态无关,但与零偏相关。为了避免零偏的变化导致预积分重新积分,考虑到零偏的变化在段时间内变化非常小,因此将零偏一阶泰勒展开近似。
预积分量关于零偏的雅克比矩阵会在预积分计算的时候一起计算,因此,当零偏被优化调整之后,根据计算好的雅克比矩阵对预积分量进行更新即可。
实际系统是离散的,因此,每收到一帧新的imu数据后更新一次预积分量,这是一个求和的过程
预积分如何使用?
预积分约束了相邻两帧的状态量,两帧之间的零偏几乎相等。imu累计会漂移,在VIO中imu预积分和重投影误差共同约束两帧之间的状态量。
蓝色圆圈代表关键帧位姿,蓝色矩形代表关键帧速度和零偏,橙色矩形代表 IMU 预积分约束,可
以看到,它可以约束相邻帧的位姿、速度和零偏,绿色矩形代表 lidar 里程记的帧间约束,其约束相邻两帧的位置和姿态
imu标定方法
lidar坐标系与imu坐标系不一致。手眼标定算法,即使先计算出两帧 lidar 之间的旋转(通过 ICP 、 NDT 等点云配准算法),然后计算出两帧 IMU 之间的旋转( IMU 陀螺仪积分),然后通过手眼标定的方式求解出外参
lidar和imu之间的旋转外参比平移外参对性能的影响更大 。
以带有IMU加速计和gps信号的小车为例,用EKF滤波和图优化方法求解某一时刻小车行驶的位置(t=0时,位置为0)
EKF:
假设已知IMU和gps传感器的噪声方差
- 预测。 假设已知t-1时刻小车的位置(后验),将其与(t-1)~t时间段内imu的积分相加,可以预测t时刻小车的位置(先验)
- 更新。 计算卡尔曼增益,用t时刻的gps数据更新预测的位置,得到t时刻的位置(后验)。
(这里有点递归的感jio。。。)
图优化:
小车在t-1时刻的位置加上(t-1)~t时间段内的imu积分,得到t时刻预测的小车位置。将该值与t时刻gps观测数据相减后做平方和,得到一个代价函数,其中,小车位置是待优化变量。最后用最优化方法求解即可。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgacfja
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24