SLAM是Simultaneous localization and mapping缩写,意为“同步定位与建图”,主要用于解决机器人在未知环境运动时的定位与地图构建问题。
图片来源:OFweek维科网
SLAM的典型应用领域
主要应用于机器人定位导航领域:地图建模。
SLAM可以辅助机器人执行路径规划、自主探索、导航等任务。国内的科沃斯、塔米以及最新面世的岚豹扫地机器人都可以通过用SLAM算法结合激光雷达或者摄像头的方法,让扫地机高效绘制室内地图,智能分析和规划扫地环境,从而成功让自己步入了智能导航的阵列。
VR/AR方面:辅助增强视觉效果。SLAM技术能够构建视觉效果更为真实的地图,从而针对当前视角渲染虚拟物体的叠加效果,使之更真实没有违和感。VR/AR代表性产品中微软Hololens、谷歌ProjectTango以及MagicLeap都应用了SLAM作为视觉增强手段。
无人机领域:地图建模。SLAM可以快速构建局部3D地图,并与地理信息系统(GIS)、视觉对象识别技术相结合,可以辅助无人机识别路障并自动避障规划路径,曾经刷爆美国朋友圈的Hovercamera无人机,就应用到了SLAM技术。
无人驾驶领域:视觉里程计。SLAM技术可以提供视觉里程计功能,并与GPS等其他定位方式相融合,从而满足无人驾驶精准定位的需求。例如,应用了基于激光雷达技术Google无人驾驶车以及牛津大学MobileRoboticsGroup11年改装的无人驾驶汽车野猫(Wildcat)均已成功路测。
SLAM系统构成
SLAM系统一般分为五个模块,包括传感器数据、视觉里程计、后端、建图及回环检测。
传感器数据:主要用于采集实际环境中的各类型原始数据。包括激光扫描数据、视频图像数据、点云数据等。
视觉里程计:主要用于不同时刻间移动目标相对位置的估算。包括特征匹配、直接配准等算法的应用。
后端:主要用于优化视觉里程计带来的累计误差。包括滤波器、图优化等算法应用。
建图:用于三维地图构建。
回环检测:主要用于空间累积误差消除
其工作流程大致为:
传感器读取数据后,视觉里程计估计两个时刻的相对运动(Ego-motion),后端处理视觉里程计估计结果的累积误差,建图则根据前端与后端得到的运动轨迹来建立地图,回环检测考虑了同一场景不同时刻的图像,提供了空间上约束来消除累积误差。
ALAM回环检测
在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿解算当前帧位姿,因此其中的误差便这样一帧一帧的传递下去,也就是我们所说的累计误差。
我们的位姿约束都是与上一帧建立的,第五帧的位姿误差中便已经积累了前面四个约束中的误差。但如果我们发现第五帧位姿不一定要由第四帧推出来,还可以由第二帧推算出来,显然这样计算误差会小很多,因为只存在两个约束的误差了。像这样与之前的某一帧建立位姿约束关系就叫做回环。回环通过减少约束数,起到了减小累计误差的作用。
那如何判断两帧图片的相似度?最直观的做法是特征匹配。由于特征匹配非常耗时,回环检测需要与过去所有关键帧匹配,这个运算量是绝对无法承受的,因此提出了词袋模型来加速特征匹配。
词袋模型就是把特征看成是一个个单词,通过比较两张图片中单词的一致性,来判断两张图片是否属于同一场景。为了能够把特征归类为单词,我们需要训练一个字典。字典包含了所有可能的单词的集合,为了提高通用性,需要使用海量的数据训练。
SLAM分类
目前用在SLAM上的传感器主要分为这两类,一种是基于激光雷达的激光SLAM(Lidar SLAM)和基于视觉的VSLAM(Visual SLAM)。
1、激光SLAM
激光SLAM采用2D或3D激光雷达(也叫单线或多线激光雷达),2D激光雷达一般用于室内机器人上(如扫地机器人),而3D激光雷达一般使用于无人驾驶领域。激光雷达的出现和普及使得测量更快更准,信息更丰富。激光雷达采集到的物体信息呈现出一系列分散的、具有准确角度和距离信息的点,被称为点云。通常,激光SLAM系统通过对不同时刻两片点云的匹配与比对,计算激光雷达相对运动的距离和姿态的改变,也就完成了对机器人自身的定位。
激光雷达测距比较准确,误差模型简单,在强光直射以外的环境中运行稳定,点云的处理也比较容易。同时,点云信息本身包含直接的几何关系,使得机器人的路径规划和导航变得直观。激光SLAM理论研究也相对成熟,落地产品更丰富。
2、视觉SLAM
视觉SLAM从环境中获取海量的、富于冗余的纹理信息,拥有超强的场景辨识能力。早期的视觉SLAM基于滤波理论,其非线性的误差模型和巨大的计算量成为了它实用落地的障碍。近年来,随着具有稀疏性的非线性优化理论(Bundle Adjustment)以及相机技术、计算性能的进步,实时运行的视觉SLAM已经不再是梦想。
视觉SLAM的优点是它所利用的丰富纹理信息。例如两块尺寸相同内容却不同的广告牌,基于点云的激光SLAM算法无法区别他们,而视觉则可以轻易分辨。这带来了重定位、场景分类上无可比拟的巨大优势。同时,视觉信息可以较为容易的被用来跟踪和预测场景中的动态目标,如行人、车辆等,对于在复杂动态场景中的应用这是至关重要的。
通过对比发现,激光SLAM和视觉SLAM各擅胜场,单独使用都有其局限性,而融合使用则可能具有巨大的取长补短的潜力。例如,视觉在纹理丰富的动态环境中稳定工作,并能为激光SLAM提供非常准确的点云匹配,而激光雷达提供的精确方向和距离信息在正确匹配的点云上会发挥更大的威力。而在光照严重不足或纹理缺失的环境中,激光SLAM的定位工作使得视觉可以借助不多的信息进行场景记录。
国内SLAM发展现状
激光SLAM比视觉SLAM起步早,在理论、技术和产品落地上都相对成熟。基于视觉的 SLAM 方案目前主要有两种实现路径,一种是基于 RGBD 的深度摄像机,比如 Kinect;还有一种就是基于单目、双目或者鱼眼摄像头的。VSLAM 目前尚处于进一步研发和应用场景拓展、产品逐渐落地阶段。
随着SLAM技术重要性的凸显以及应用市场的扩大 ,一些企业开始纷纷投入到SLAM技术研发中,这其中也可分为两大类,一是专门提供导航定位模块的企业,另一类则是移动机器人厂商,其开发SLAM多为自用。
随着SLAM技术重要性的凸显,国内越来越多企业纷纷投入SLAM技术的研发中,除了一些移动机器人厂商作为自用研发,也不乏一些企业专门提供定位导航模块。思岚科技就是其中一家,作为机器人定位导航技术的领先企业,思岚科技主要以激光SLAM取胜。它是我国最早将激光SLAM应用于服务机器人的企业,为了帮助机器人实现自主行走,国内思岚科技推出了模块化自主定位导航解决方案SLAMWARE,这套定位导航方案以激光雷达作为核心传感器,搭配定位导航控制核心SLAMWARE Core,可使机器人实现自主定位导航、自动建图、路径规划与自动避障等功能。据了解,该开发套装具有12米家用版及25米商用版之分,主要区别在于传感器测距范围的不同,思岚科技商用版除了25米测距外,还推出了首款TOF激光雷达,测距半径可达到40米,能满足更多更大场景的应用,且抗光干扰能力更胜一筹。在室外60Klx的强光下依旧能实现稳定测距及高精度地图建图。无论是室内还是室外场景,都能轻松完成任务。
除了思岚科技,国内速感科技、布科思、米克力美、高仙、斯坦德等企业也涌入其中,且大多企业以激光SLAM为主,毕竟激光SLAM是当下最稳定、可靠的定位导航方案,而视觉SLAM将是未来主流研究方向,不过未来两者融合也将成为一种趋势,采用多传感器融合能做到取长补短,为市场打造出更好用的定位导航解决方案,进一步实现机器人的智能化进程。
总体来说,目前国内SLAM技术无论是在技术层面还是应用层面仍处于发展阶段,未来,随着消费刺激及产业链不断发展,SLAM技术将会有一片更为广阔的市场。