常用的slam有2d 3d,激光和视觉slam。本文简要介绍一下slam的应用场景,和落地方案。
常用的2d框架有,gmapping ,cartographer, hector, 3d激光有loam aloam lio-sam, fast-lio fastlio2, 视觉有orbslam2/3, vio等
常用的slam传感器有,单线激光雷达,多线激光雷达,面阵tof,鱼眼相机,广角相机,双目相机,rgbd相机,以及imu, rtk,gnss等。
slam的落地场景难点通常有,弱光照或黑暗场景,对于这种场景基于特征点法的方法失效,开阔地带或广场,对于这种场景2d 3d激光方法失效因为其传感器有极限距离,高低起伏地面场景2d激光失效无法扫描不同的平面,室内与室外场景,室内适合2d,室外适合惯性导航和uwb导航,传感器硬件成本3d多线激光雷达成本太高,相比之下面阵tof具有优势,软件部署成本(包括算力,算法成熟度,可移植性),大多开源算法都比较成熟,算法应用范围等。每个场景有其适用的开源算法。
落地方案实施步骤如下,验证阶段: 确定应用场景与算法指标即确定机器的使用场景以及解决的问题需求,传感器的选择与搭配即用视觉还是激光方案或者惯性导航,数据采集即采集离线数据作为算法输入,算法验证与优化即用离线数据测试算法功能并修改问题,扩大场景范围采集数据即针对几个不同的场景采集数据进行算法验证测试算法稳定性,算法对特殊场景的优化即遇到特殊场景的特殊处理功能。工程化阶段,算法部署到产品或硬件平台即将算法移植到硬件平台进行跑机,实际测试场景跑机即将部署后的算法机器放到实际场景中跑机测试问题,针对跑机问题的优化包括边界问题,极限问题以及实际工程化的功能增加,推向客户并收集数据和用户反馈,远程升级迭代即针对客户问题进行的升级优化。
总的来说,大多数的开源slam算法已经比较成熟,而且都是由科研机构开发完,实际使用中大部分的工作在于工程化的开发应用,以及增加工程化的功能以应对能力极限和边界条件以及异常情况的处理。传感器的选择方面通常是lio或vio的紧耦合或松耦合,即激光或视觉与惯导或轮速计互相依赖互相修正,互为参考。适合作slam的传感器通常拥有大的视场角以便能获取到周围尽可能大的区域,这种特性便于定位,如果视场角比较小可能会出现退化现象例如2d激光面对一面平直且超过视场角的墙。