大家好,又见面了,我是你们的朋友全栈君。
点击上方“计算机视觉工坊”,选择“星标”
干货第一时间送达
来源丨https://www.zhihu.com/question/433556301
编辑丨计算机视觉工坊
方法一
作者|牛先卓
https://www.zhihu.com/question/433556301/answer/1618614187
激光雷达分单线和多线这两大类,针对这两类Lidar所使用的算法也不尽相同。
首先单线雷达一般应用在平面运动场景,多线雷达则可以应用于三维运动场景。
2D Lidar SLAM
一般将使用单线雷达建构二维地图的SLAM算法,称为2D Lidar SLAM。大家熟知的2D Lidar SLAM算法有:gmapping, hector, karto, cartographer。通常数据和运动都限制在2D平面内且运动平面与激光扫描平面平行。
gmapping[1]
基于粒子滤波的2D激光雷达SLAM,构建二维栅格地图。融合里程计信息,没有回环检测。
优点是在小场景中,计算量小,速度较快。
缺点是每个粒子都携带一幅地图,无法应对大场景(内存和计算量巨大);如果里程不准或标定参数不准,在长回廊等环境中容易把图建歪。
hector[2]
hector SLAM是完全基于scan-matching的,使用迭代优化的方法来求匹配的最佳位置,为避免陷入局部极值,也采用多分辨率的地图匹配。
由于完全依赖于scan matching,要求雷达的测量精度较高、角度范围大,扫描速度较高(或移动速度慢)。噪声多、边角特征点少的场景就很容易失败。
原文所提出方法的特点还在于,加入IMU,使用EKF估计整体的6DoF位姿,并根据roll, pitch角将激光扫描数据投影到XY平面,因而支持激光雷达有一定程度的倾斜,比如手持或机器人运动在不是很平整的地面上。
karto[3][4]
karto是基于scan-matching,回环检测和图优化SLAM算法,采用SPA(Sparse Pose Adjustment)进行优化。
关于karto 和 cartographer 的比较,可以看看这里:https://blog.csdn.net/hzy925/article/details/78857241
cartographer[5][6]
cartographer是谷歌开源的激光SLAM框架,主要特点在于:
1.引入submap,scan to submap matching,新到的一帧数据与最近的submap匹配,放到最优位置上。如果不再有新的scan更新到最近的submap,再封存该submap,再去创建新的submap。
2.回环检测和优化。利用submap和当前scan作回环检测,如果当前scan与已经创建的submap在距离上足够近,则进行回环检测。检测到回环之后用ceres进行优化,调整submap之间的相对位姿。为了加快回环检测,采用分枝定界法。
cartographer也可以应用于3D Lidar SLAM(我还没试过),不过最出名的还是她在2D Lidar SLAM方面的出色表现,毕竟论文标题就是“Real-time loop closure in 2D LIDAR SLAM”。
3D Lidar SLAM
3D Lidar SLAM主要是针对多线雷达的SLAM算法。比较出名的有LOAM, LeGO-LOAM, LOAM-livox等。
LOAM[7]
LOAM是针对多线激光雷达的SLAM算法,主要特点在于:1) 前端抽取平面点和边缘点,然后利用scan-to-scan的匹配来计算帧间位姿,也就形成了里程计;2) 由估计的帧间运动,对scan中的每一个点进行运动补偿;3) 生成map时,利用里程计的信息作为submap-to-map的初始估计,再在利用submap和map之间的匹配做一次优化。
LOAM提出的年代较早(2014),还没有加入回环优化。
关于LOAM的详细解析,可以参考这篇专栏文章:
https://zhuanlan.zhihu.com/p/111388877
ALOAM[8]是Advanced implementation of LOAM,使用Eigen和ceres-solver简化代码实现。
LeGO-LOAM[9]
LeGO-LOAM在LOAM的基础上主要改进:1) 地面点分割,点云聚类去噪;2)添加了ICP回环检测和gtsam优化。
关于LeGO-LOAM的详细解析,可以查看这个专栏文章:
https://zhuanlan.zhihu.com/p/115986186
LOAM_livox[10]
大疆2019年公布的面向小FOV Lidar的LOAM算法。相比LOAM,做了一些改动。算法的特点:
1.添加策略提取更鲁棒的特征点:a) 忽略视角边缘有畸变的区域; b) 剔除反射强度过大或过小的点 ; c) 剔除射线方向与所在平台夹角过小的点; d) 部分被遮挡的点
2.与LOAM一样,有运动补偿
3.里程计中剔除相对位姿解算后匹配度不高的点(比如运动物体)之后,再优化一次求解相对位姿。
视觉和Lidar 融合的SLAM算法
VLOAM[11]
VLOAM 是视觉和激光雷达紧耦合的方案。
视觉里程计部分,图像帧之间的相对位姿估计以60Hz运行。先抽取和匹配图像特征,雷达点云融合成深度地图,再将深度地图与视觉特征点关联起来,以帮助计算两帧之间的相对位姿。
雷达里程计部分,将1s内的数据作为一个完整扫描 sweep。Sweep-to-Sweep refinement模块优化求解两个sweep之间的相对运动并去除运动畸变,Sweep-to-Map Registration模块将局部点云注册到已经构建的地图上面。
Transform Integration模块则结合两个里程计,以视觉里程计的高帧率输出位姿估计。
待补充 。。。
参考
1.Grisetti, G., et al. (2007). “Improved techniques for grid mapping with rao-blackwellized particle filters.” 23(1): 34-46.
2.Kohlbrecher, S., et al. (2011). A flexible and scalable slam system with full 3d motion estimation. 2011 IEEE international symposium on safety, security, and rescue robotics, IEEE.
3.https://github.com/ros-perception/slam_karto
4.https://github.com/skasperski/OpenKarto
5.https://github.com/cartographer-project/cartographer
6.Hess, W., et al. (2016). Real-time loop closure in 2D LIDAR SLAM. Robotics and Automation (ICRA), 2016 IEEE International Conference on, IEEE.
7.Zhang, J. and S. Singh (2014). LOAM: Lidar Odometry and Mapping in Real-time. Robotics: Science and Systems.
8.https://github.com/HKUST-Aerial-Robotics/A-LOAM
9.Shan, T. and B. Englot (2018). Lego-loam: Lightweight and ground-optimized lidar odometry and mapping on variable terrain. 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), IEEE.
10.Lin, J. and F. Zhang (2020). Loam livox: A fast, robust, high-precision LiDAR odometry and mapping package for LiDARs of small FoV. 2020 IEEE International Conference on Robotics and Automation (ICRA), IEEE.
11.Zhang, J. and S. Singh (2015). Visual-lidar odometry and mapping: Low-drift, robust, and fast. 2015 IEEE International Conference on Robotics and Automation (ICRA), IEEE.
方法二
作者|MangoFan
https://www.zhihu.com/question/433556301/answer/1618562152
2D:效果最好的应当是Google的Cartographer,此外还有基于粒子滤波的gmapping,基于优化的hector slam等等。
3D领域:
经典的LOAM(A-LOAM),用特征点:planar points & edge points 来进行帧间匹配,无回环
LeGO-LOAM ICP 的方法加入了回环,用于减小漂移,一致性更强
G-LOAM 引入 GPS 作为新增的位姿约束,用 Levenberg-Marquardt 方法优化位姿图
LOAM-Livox (HKU Mars Lab)一套可用于固态激光雷达的SLAM算法
Fast-LIO (HKU Mars Lab),一套可用于无人机的基于EKF的雷达惯导里程计
本文仅做学术分享,如有侵权,请联系删文。
下载1
在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。
下载2
在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。
下载3
在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。
重磅!计算机视觉工坊-学习交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151226.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...