服务创造价值、存在造就未来
激光SLAM教程
主要目标:
本章节将设计激光SLAM的介绍,并以Cartographer作为激光SLAM算法的代表进行介绍。
在本章节,你将学会:
● 了解什么是激光SLAM
● 了解激光SLAM的代表算法Cartographer的原理和源码库的基本代码逻辑
● 掌握在ROS的仿真环境下运行Cartographer算法进行建图
● 掌握使用真实的机器人运行Cartographer算法进行建图
激光SLAM后端通常分为两种处理方式,一是以扩展卡尔曼滤波(Extend Kalman Filter,EKF)为代表的滤波方法,另一种是以图优化为代表的非线性优化方法。
Cartographer是Google研究者们于2016年推出的激光SLAM解决方案,是目前公认效果最好的基于图优化的激光SLAM算法。Cartographer的重要思想之一是Submap概念,即由一定数量的激光扫描数据组成的子图,实际上市一部分场景范围内的占据栅格地图。
局部SLAM
局部SLAM以激光雷达、里程计和IMU的数据输入,构建并维护若干Submap。
全局SLAM
与局部SLAM着眼于单帧激光扫描数据的插入不同,全局SLAM关注多帧已插入地图的激光扫描数据和多个子图的位姿优化。Cartographer将整个地图拆分为多个子图的构建,认为短时间内的位姿漂移幅度较小,因而单个子图的内部误差较小。然而,随着时间推移,多个子图的累积误差逐渐增大,需要通过回环检测来优化某些激光扫描帧和子图的位姿。
激光SLAM视频