基于LIO-SAM 算法的三维激光SLAM 建图

运行环境

1 背景介绍
在自动驾驶的感知方案中,激光雷达是一个公认的精度高、探测距离远的传感器,适用于对周围环境的精确感知。激光雷达在工作时,采用激光扫描周围环境,返回点云数据。得到了周围环境的点云数据之后,需要对它进行处理。那么激光SLAM便是进行这个操作。激光SLAM是根据点云匹配来进行定位和建图。

现阶段,比较有名的三维激光SLAM算法有LOAM系和谷歌的cartographer。LOAM系包含了LOAM、LeGO-LOAM、LIO-SAM等一系列算法。先简要的介绍一下各个算法(主要是参考文章1)。

1.1 Cartographer
Cartographer是由谷歌于2016年开源的一个支持ROS的室内SLAM库,并在截至目前为止,仍然处于不断的更新维护之中。

特点:代码极为工程,多态、继承、层层封装的十分完善。提供了方便的接口,便于接入IMU、(单/多线)雷达、里程计、甚至为二维码辅助等视觉识别方式也预留了接口(Landmark)。

1.2 LOAM
LOAM为清华自动化本科毕业的Zhang Ji博士在CMU读博期间,于2014年在RSS期刊发表的关于三维激光传感器的SLAM算法。

特点:Cartographer主要解决室内问题,LOAM室内外都可以,但是没有回环检测,在具有旋转场景会有建图不准确的情况。LOAM的代码量相比Cartographer要小很多,文件结构相对简单。

1.3 LeGO-LOAM
LeGO-LOAM是TiXiao Shan发表在IROS2018的文章,文章叫:可变地形下的轻量级和地面优化的雷达里程计与建图。其是以LOAM为框架衍生出的新算法,主要在于两点提升:轻量级 和 地面

特点:LeGO-LOAM具有回环检测能力,缺点是依赖地面。

1.3 LIO-SAM
LIO-SAM是TixiaoShan在2020年IROS发表的Lego-LOAM续作。 它是Lego-LOAM的扩展版本,添加了IMU预积分因子和GPS因子。LOAM和LeGO-LOAM是纯依靠激光雷达点云SLAM,而LIO-SAM结合了Lidar、IMU和GPS。

### 将 LIO-SAM 与 GNSS 结合的方法 为了提高定位精度和可靠性,可以将激光雷达惯性里程计 (LIO)-SAM 和全球导航卫星系统 (GNSS) 进行集成。这种组合能够充分利用两者的优势,在开阔区域依靠高精度的 GNSS 定位,在复杂环境中依赖于 LIO-SAM 的局部能力。 #### 集成架构设计 通常情况下,可以通过以下方式实现两者的融合: 1. **数据同步** - 确保来自不同传感器的数据时间戳一致,以便后续处理阶段能准确匹配各个时刻的状态估计。 2. **状态向量扩展** - 在原有基于IMU预积分模型的基础上增加GPS位置偏差项以及速度偏差项至滤波器状态空间内[^1]。 3. **观测方程修改** - 对应新增加的位置偏移参数立相应的测量函数,使得每次接收到有效的RTK-GPS信号时都可以更新这些额外变量。 4. **初始化过程优化** - 利用GNSS提供的绝对坐标信息辅助完成整个系统的初始姿态设定工作,从而加快收敛速度并减少累积误差的影响。 5. **多源信息融合策略制定** - 设定合理的权重系数分配机制,根据不同环境条件下各类型输入的有效程度动态调整其贡献比例;当处于高楼林立的城市峡谷地带时适当降低甚至忽略掉可能受到干扰严重的GNSS读数影响。 ```cpp // C++代码片段展示了如何在ROS环境下订阅gnss话题并将之转换为适合lio-sam使用的格式 #include "sensor_msgs/NavSatFix.h" void gnssCallback(const sensor_msgs::NavSatFixConstPtr& msg){ // 转换逻辑... } int main(int argc, char** argv){ ros::init(argc, argv, "gnss_to_utm"); ros::NodeHandle nh; ros::Subscriber sub = nh.subscribe("/fix", 10, gnssCallback); ros::spin(); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值