SLAM概述SLAM:SimultaneousLocalizationandMapping,实时定位和地图构建技术。指的是:机器人从未知环境中的未知位置出发,通过反复观察运动过程中的环境特征来定位自己的位置和姿态,然后根据自己的位置构建周围环境的增量地图,从而达到同步定位和地图构建的目的。SLAM技术的发展推动了定位(Localization)、跟踪(Tracking)和路径规划(PathPlanning)技术的发展,对无人机、无人驾驶、机器人等热门研究领域产生了重大影响。让我们来看看SLAM技术发挥作用的领域。图1SLAM应用领域VR/AR方面:视觉效果的辅助增强。SLAM技术可以构建视觉效果更逼真的地图,从而渲染虚拟物体对于当前视角的叠加效果,更加逼真,没有任何违和感。在具有代表性的VR/AR产品中,MicrosoftHololens、GoogleProjectTango和MagicLeap都使用了SLAM作为视觉增强的手段。无人机领域和机器人定位导航领域:地图建模。SLAM可以快速构建局部3D地图,结合地理信息系统(GIS)和视觉物体识别技术,可以辅助无人机识别路障自动避障规划路径,也可以辅助机器人进行路径规划,自主探索、导航等任务。曾经在美国刷爆朋友圈的Hovercamera无人机就是SLAM技术的应用。国产科沃斯、泰米扫地机通过SLAM算法结合激光雷达或摄像头,让扫地机高效绘制室内地图,智能分析规划扫地环境,成功步入智能导航阵营。无人驾驶领域:视觉里程计。SLAM技术可以提供视觉里程计功能,并与GPS等其他定位方式结合,满足无人驾驶精确定位的需求。比如谷歌基于激光雷达技术的LidarSlam无人驾驶汽车,以及牛津大学MobileRobotics小组11年改造的无人驾驶汽车Wildcat,都已经成功上路测试。SLAM框架自80年代SLAM概念被提出以来,SLAM技术已经走过了30多年的历史。SLAM技术所用的硬件和算法也在“与时俱进”,SLAM的技术框架也逐渐丰富起来。在硬件方面,SLAM系统所使用的传感器从早期的声纳,到后来的2D/3D激光雷达,再到单目和双目摄像头,RGBD和ToF等深度摄像头,以及惯性测量单元(IMU)等。融合传感器。在软件算法方面,也从最初的基于滤波的方法,如扩展卡尔曼滤波(EKF)、粒子滤波(PF)等,转变为基于优化的方法。SLAM系统一般分为五个模块。系统框架如图2所示,包括:传感器数据:主要用于采集实际环境中的各类原始数据。包括激光扫描数据、视频图像数据、点云数据等。视觉里程计:主要用于估计运动目标在不同时刻的相对位置。包括特征匹配、直接注册等算法的应用。后端:主要用于优化视觉里程计带来的累积误差。包括过滤、图优化等算法应用。Mapping:用于3D地图构建。循环检测:主要用于空间累积误差消除图2SLAM系统框架工作流程大致如下:传感器读取数据后,视觉里程计估计两个时刻的相对运动(Ego-motion),后端处理视觉里程计的估计结果地图的累积误差是根据前端和后端运动轨迹构建三维地图[1],回环检测考虑了同一场景在不同位置的图像次,并提供空间约束以消除累积误差。SLAM技术的发展取决于传感器的特性。SLAM技术也分为激光和视觉两条技术路线,其特点如图4所示。并可以获得一系列表达目标空间分布和目标表面特征的海量点集。由于LiDAR测距比较准确,误差模型简单,在非阳光直射环境下运行稳定,点云的处理也比较容易。同时,点云信息本身包含直接的几何关系,使得机器人的路径规划和导航更加直观。激光SLAM理论研究相对成熟,落地产品较多。早期的视觉传感器视觉SLAM基于滤波理论,其非线性误差模型和庞大的计算量成为其实际应用的障碍。近年来,随着稀疏非线性优化理论(BundleAdjustment)以及相机技术和计算性能的进步,实时视觉SLAM不再是梦想。图3SLAM两种传感器图4SLAM两大传感器特点1.LidarSLAM发展Lidar-basedSLAM(LidarSLAM)使用2D或3D激光雷达(也称为单线或多线激光雷达)。在室内机器人(如扫地机器人)上,一般采用2D激光雷达,在无人驾驶领域,一般采用3D激光雷达。优达学城创始人兼CEO、谷歌前副总裁、谷歌无人车负责人SebastianThrun在其2005年的经典著作《ProbabilisticRobotics》中,阐述了利用2D激光雷达基于概率方法进行地图构建和定位的理论基础。并解释了基于RBPF(Rao-blackwellized粒子滤波器)粒子滤波器的FastSLAM方法,该方法成为GMapping的基础,GMapping是2D激光雷达建图的标准方法之一。该算法也被集成到机器人操作系统(RobotOperationSystem,ROS)中。2013年,对ROS中的几种2DSLAM算法HectorSLAM、KartoSLAM、CoreSLAM、LagoSLAM和GMapping进行了比较和评估[2]。2016年,谷歌开源了其激光雷达SLAM算法库Cartographer。与GMapping相比,可以有效处理闭环,取得更好的效果。2、视觉SLAM的发展目前主流视觉SLAM系统的特点主要体现在前端和后端,如图5所示,前端对应视觉里程计,主要用于数据关联,研究帧间的变换关系,完成实时姿态跟踪,对输入图像进行处理,计算姿态变化。由于与后端有反馈,它也检测和处理闭环,在有惯性测量单元(IMU)信息时也可以参与融合计算。后端主要对前端的输出结果进行优化,利用滤波理论,如扩展卡尔曼滤波(EKF)、粒子滤波(PF)等优化理论对树或图进行优化,得到最优位姿估计和地图。图5典型SLAM的前端和后端2007年,第一个基于单目相机的纯视觉SLAM系统MonoSLAM[3]成功诞生。同年,Murray和Klein提出了实时SLAM系统PTAM(ParallelTrackingandMapping)[4],PTAM实现了架构上的创新,它将姿态跟踪(Tracking)和建图(Mapping)两个线程并行分离,即当时的创举,第一次让大家感受到地图的优化可以融入到实时计算中。这种设计被后来的实时SLAM(如ORB-SLAM)沿用,成为现代SLAM系统的标准配置。图6PTAM系统和EKF-SLAM系统产生的结果比较2015年,Mur-Artal等人。提出开源单目ORB-SLAM[6],2016年扩展支持双目和RGBD传感器ORB-SLAM2[7],是目前最全面、性能最好的支持传感器的视觉SLAM系统之一,也是所有在KITTI数据集提交结果的开源系统中排名第一的[8]。如图7所示,ORB-SLAM主要分为三个线程,分别是跟踪(Tracking)、建图(LocalMapping)和闭环检测(LoopClosing)。tracking部分主要是从图像中提取ORB特征,根据前一帧进行pose估计,或者通过globalrelocation初始化pose,然后跟踪重建的localmap,优化pose,然后根据一些确定新的key规则框架。建图部分主要完成局部地图构建。包括插入关键帧,验证过滤最近生成的地图点,然后生成新的地图点,使用局部束调整(LocalBA),最后过滤插入的关键帧去除冗余关键帧。闭环检测部分主要分为闭环检测和闭环校正两个过程。闭环检测首先通过二进制字典匹配检测(WOB)进行检测,然后通过Sim3算法计算相似度变换。闭环校正,主要是EssentialGraph的闭环融合和图优化。由于ORB-SLAM系统是基于特征点的SLAM系统,它可以实时计算相机的运动轨迹,生成场景的稀疏3D重建。图7ORB-SLAM2的三线程结构2016年,Engel等人。TUM机器视觉组的研究人员提出了DSO系统[9],它是一种基于直接法和稀疏法的新型视觉里程计,将最小化光度误差模型与模型参数的联合优化方法相结合。为了满足实时性,不对图像进行平滑处理,而是对整幅图像进行均匀采样(如图8所示)。该系统在TUMmonoVO、EuRoCMAV和ICL-NUIM三个数据集上进行了测试,并取得了很高的跟踪精度和鲁棒性。图8DSO系统2017年,香港科技大学沉少杰教授课题组提出了集成惯性测量单元(IMU)和视觉信息的VINS系统[10]。移动平台代码的视觉IMU融合SLAM系统。该系统可以运行在iOS设备上,为手机上的增强现实应用提供精确定位功能。同时,该系统也应用于无人机控制,取得了良好的效果。SLAM的未来展望SLAM的前20年(1986-2004)堪称“经典时代”。经典时代引入了SLAM概率论推导方法,包括基于扩展卡尔曼滤波、粒子滤波和最大似然估计;这里的第一个挑战是效率和数据关联的稳健性。接下来的几年,也就是我们所说的“算法分析”年(2004-2015),在算法分析时代,对SLAM的基本属性,包括可观察性、收敛性和一致性的研究很多。在此期间,研究人员了解了稀疏特征在高效SLAM解决方案中的重要作用,并开发了主要的开源SLAM库。现在我们正在进入SLAM的第三个时代。从鲁棒性觉醒时代来看,它具有以下特点:1.鲁棒性:这一时期,SLAM系统在任何环境下的故障率始终很低;系统具有故障保护。机构及自动调整功能,可根据应用场景自动选择系统参数;2.高层次理解:除了基本的几何重建,SLAM系统还可以理解更高层次的环境信息(如语义、启示等)、高层次的几何意义、物理意义等);3、资源敏感性:SLAM系统可以根据现有的传感器和计算资源进行裁剪,也可以根据现有的资源调整计算负载;4.判断任务驱动:SLAM系统可以自适应地表示地图,其复杂度可以根据机器人执行的任务而变化。地理信息广泛应用于视频监控。传统的二维地理信息数据无法与平安城市监控系统的业务数据有效融合关联,无法提供深度数据服务。已经不能满足城市发展和人民群众的需要。对生活质量的要求。如果将SLAM三维稠密地图应用在视频监控领域,可以更好的实现监控摄像头的搜索定位和视频决策分析。在3D地图中模拟云台的操作,也可以直接查看3D效果和视频效果,方便在3D地图中进行可视化调整,调试最佳监控点,方便摄像机安装和后期维护。参考文献:[1]S?renRiisgaardandMortenRufusBlas:SLAMforDummies,ATutorialApproachtoSimultaneousLocalizationandMapping[2]JoaoMachadoSantos,DavidPortugalandRuiP.Rocha.AnEvaluationof2DSLAMTechniquesAvailableinRobotOperatingSystem[3]AJDavison,IDReid,NDMolton.MonoSLAM:Real-timesinglecameraSLAM.IEEETransactionsonPatternAnalysisandMachineIntelligence,June2007[4]KleinG,MurrayD.ParalleltrackingandmappingforsmallARworkspaces.ProceedingsofIEEEandACMInternationalSymposiumonMixedandAugmentedReality.2007[5]KleinG,MurrayD.Paralleltrackingandmappingonacameraphone.ProceedingsofIEEEandACMInternationalSymposiumonMixedandAugmentedReality.2009[6]Mur-ArtalR,MontielJMM,TardosJD.ORB-SLAM:aversatileandaccuratemonocularSLAMsystem.IEEETransactionsonRobotics,2015,31(5):1147-1163[7]RaúlMur-Artal,andJuanD.Tardós.ORB-SLAM2:anOpen-SourceSLAMSystemforMonocular,StereoandRGB-DCameras.ArXivpreprintarXiv:1610.06475,2016[8]http://www.cvlibs.net/datasets/kitti/eval_odometry.php[9]JakobEngelandVladlenKoltunandDanielCremers.DirectSparseOdometry.IEEETRANSACTIONSONPATTERNANALYSISANDMACHINEINTELLIGENCE.2017[10]PeiliangLi,TongQin,BotaoHu,FengyuanZhuandShaojieShen.MonocularVisual-InertialStateEstimationforMobileAugmentedReality.ISMAR2017【本文为专栏作者“中国保密协会科学技术分会”原创稿件,转载请联系原作者】戳这里,Seemoregoodarticlesbythisauthor
