马 凯,林义忠 (广西大学 机械工程学院,广西 南宁530004)
随着机器视觉技术和移动机器人技术的发展,将二者结合已经成为研究的一个新领域,通过视觉技术实现机器人的自主导航功能,从而使机器人更加自动化与智能化。目前视觉导航正逐步走出实验室并表现出很好的发展前景[1-4]。
移动机器人视觉技术即为机器人配置视觉装置,通过摄像头采集环境图像信息,对采集到的信息进行处理,转化为计算机可以使用的地图数据,然后对数据进行整合分析,最终通过含一定约束的计算为机器人到达目的地规划出一条合适的路径。
图1 视觉导航关键技术
视觉定位是指通过移动机器人上固定的视觉传感器感知周围环境信息,然后通过一系列的滤波降噪处理提取出环境特征信息,最后通过图像处理技术和机器视觉技术计算移动机器人的位姿。基于环境模型的定位方法主要有两种方式:相对定位和绝对定位[5]。相比于激光和红外超声传感器,视觉传感器有着价格低、精度高、信息丰富等特点。
相对定位方法又称航迹推算,通常是已知初始位姿,通过计算采集到的相邻两帧图像之间的相对位姿,由前一帧位姿估算下一帧位姿,继而推算整个运动轨迹,这一过程构成视觉里程计。视觉里程计可不受轮子打滑漂移等影响,提高了系统精度。由于相对误差是针对前一帧的结果,故常需要配合其他传感方式消除由增量式计算方法造成的累积误差。视觉里程计最早由Matthies等人[6]提出并设计了由特征值提取和特征匹配以及跟踪到运动估计的原始模型。赵黎明[7]通过改进SIFT算法对原始模型进行了优化,提高了系统的实时性,减小了实际偏差。
绝对定位方法又称全局定位,该方法不要求知道机器人的初始位姿而能确定任意时刻机器人的位姿。通过摄像头采集周围环境信息,提取环境特征。导航定位的方案选取很大程度取决于所处环境,通常分为基于视觉路标定位和基于环境场景的特征匹配定位[8]路标定位方法利用路标的颜色信息,通过图像分割技术来确定出路标的相对位置。环境场景特征匹配定位是利用摄像头拍摄周围环境,然后与地图中的关键图像库进行匹配,从而确定自身定位。王家恩等[9]提出一种基于QR码视觉定位复合导航方法。结合制造工位离散特点和机器人差速运动模型,利用离散QR码构建地面栅格地图;通过视觉定位QR码特征并提取机器人相对地标偏差,将此偏差作为地标间微机电系统(MEMS)惯性传感器轨迹推算的初始值,消除地标间行驶的累积误差。实验表明,复合导航方法使机器人1m/s速度和1.2m地标间距下的侧向距离偏差均值为8mm,方向偏差最大值在1°范围内。Royer等[10]提出了一种单目视觉训练导航方法,该方法的思路是先学习并建立完整地图,然后利用建立好的地图导航。通常是先将机器人置于环境中通过机器人的提前学习,感知并建立周围环境的三维模型。并在三维模型中标记出一些具有特殊特征的位置提供给后续导航使用。在导航阶段,便可利用已经学习并有标记的环境三维模型,通过关键帧的匹配进行定位,从而确定任意时刻在环境中的位姿。
目前,针对实际情况,在导航中的地图主要分为栅格地图、几何地图、拓扑地图以及综合几种地图优势的混合地图。
目前在移动机器人上应用得最为普遍的基于栅格地图的路径规划算法是由Elfes和Moravec提出[11-12]。栅格地图是将环境视为平面上的多个栅格,通过每个栅格携带的二值信息,来表征该空格区域是可行区域还是障碍区域[13],从而形成整个环境的障碍物信息,为后续的路径规划提供依据。栅格地图表现形式直观,创建和维护都比较容易,当栅格太小时,由于每个栅格内都会占据一定的内存空间,将会导致整个系统过大,在导航时会影响系统的搜索效率,导致实时性差。过大的栅格将会使得实际地图中相邻区域的信息变得模糊,严重的甚至会出现表征错误,影响导航的准确性,因此在使用时需要选取大小合适的栅格[14]。
几何地图是通过常见的几何特征去拟合障碍物信息,比如常见的点特征、直线特征、平面特征等来搭建环境的主要环境框架,因此需要知道这些特征在处于环境中的具体位置[15]。基于几何地图进行定位是通过对摄像头观测到的环境数据进行度量,并与搭建的环境框架进行比较,通过特征估计技术来确定机器人在环境中的具体位置来实现定位[16]。
用拓扑的结构来表示环境地图并用于移动机器人导航定位的概念最早由Mataric&Kuipers提出[17]。拓扑图由许多关键节点和连接这些节点的线条来描述环境,可以很形象的表示环境的拓扑结构。其中,节点代表环境中的地点,线条表示机器人可以在连接的节点间运动。拓扑地图能够为机器人在节点间的移动提供节点间距离及方位等信息。拓扑地图的特点是抽象、占用内存空间很小、搜索时间短、运用于导航定位系统的实时性较好。此外,运用拓扑地图进行导航定位的算法也经历了很长一段时间的发展,已经形成了许多成熟高效的搜索和推理算法,可以很方便的调用。缺点是每次匹配都需要从最邻近的拓扑节点开始匹配[18]。
混合地图主要包含3种形式:栅格—几何地图,几何—拓扑地图,栅格—拓扑地图。混合地图通常是考虑到具体场景下选择最为适用的地图,通常应用于大场景下的环境表示。相比于单一地图模式,混合地图更具灵活性,准确性和鲁棒性[15]。
3)通过在软件系统平台和技术架构中融入GIS,可保证大数据分析过程的可视化和分析结果时空位置动态展示的可操作性和实用性。
基于视觉的室内导航技术是通过摄像头捕获周围环境信息,通过周围障碍物与非障碍物的识别进而规划出一条可行的路径,从而实现移动机器人的自主导航。常见的移动机器人视觉导航方法有:基于环境信息的地图模型匹配,同步定位与地图构造以及不依赖地图导航。
在导航前对工作环境特征进行提取与处理,建立全局地图,并将地图存放在机器人的数据库中,在导航过程中调用地图进行匹配定位。将摄像头捕获的图像特征或路标与库中地图进行比对,计算匹配的概率,进而确定机器人的位姿,并通过规划模块规划出合适的路径。该导航技术过程可分为以下步骤[19]:
(1)图像获取:摄像头捕获周围环境的视频图像;
(2)路标识别及检测:通过图像处理技术对采集图像进行预处理;
(3)路标匹配:将拍摄到的图像与库中图像进行匹配;
(4)位置计算:当与库中的特征或路标匹配上后,系统会根据库中信息计算出机器人此刻在环境中的位姿。
典型的地图匹配定位方式有2种[15]:
(1)起点和地图均已知。这种情况最为简单,属于局部定位。
(2)不知起点,已知地图。属于全局定位,一般会引进一些辅助方法,常见的辅助方法有添加人工信标,红外或超声波系统进行辅助定位。
文献[20]使用的是一种基于完整线段和特征点的匹配方法。由有向线段特征、点特征构成环境全局地图,匹配是基于特征点相对有向线段的相对位置关系。郑宏等[21]为解决场景大且地图已知时的导航问题,研制了一套由地图编辑、地图匹配与定位模块以及多层递阶规划模块组成的导航控制系统。并通过实验验证了该系统的可行性。邱书波等[22]通过电子地图辅助摄像头识别地面标识线来实现AGV的自主导航。通过地面标识线以及电子地图中已知绝对坐标的标识物两个参数做为输入,来实现系统的精确定位。并通过实验证明,该方案对于直线和曲线有着较好的跟踪效果,方位偏差和横向偏差都较好地满足了实际使用需求。
也称为SLAM(Simultaneous Localization and Map Building)技术,是由Smith等人[23-24]提出,是目前移动机器人的一个研究热点。SLAM技术是指移动机器人在不知道自身处于环境中位置的情况下,通过摄像头不断的观察环境,增量式的构建完整环境地图。
文献[25]最早使用RGBD相机对室内环境进行三维重建。通过计算图像中的SIFT算子并结合深度图像和RANSAN方法计算机器人的运动变换,然后进一步计算得到精确位姿。文献[26]提出一种基于信标识别和双目视觉的改进SLAM算法,通过双目相机采集立体图像信息,检测视觉信标和提取ORB特征点,根据信标定位信息和特征点匹配信息解算相机位姿初值,基于图优化框架进行局部位姿优化和全局优化,维护地图点和关键帧数据,从而实现较高精度的定位和地图构建,实验表明误差控制在5cm以内。
文献[27]通过稠密图像对准的方式来进行自身定位,并构建出稠密的3D地图。文献[28]指出视觉SLAM中特征检测与匹配,关键帧的选择,闭环检测方法三个关键问题以及单目、双目和RGBD这几种相机SLAM方案的优缺点。Mur Artal等[29]提出了一种可以实现室内SLAM的ORB-SLAM方法,该方法提取图像关键帧进行配准,能够快速高效地进行检索与匹配。文献[30]针对传统视觉导航技术中ORB-SLAM算法的特征点分布均匀程度低、耗时长的缺点,通过构建尺度金字塔,设置感兴趣区域,引入非极大值抑制方法。实验表明,特征点期望数值为3 000时,特征点分布均匀程度提高71.13%,耗时降低比率为69.52。
这种方法中不需要构建环境地图,常用于避障环节。机器人的活动取决于当时摄像头捕获的环境障碍,而不必明确障碍物的绝对坐标。通常分为3大类[15]:基于光流的导航技术、基于外观信息的导航技术、基于目标识别的导航技术和基于目标跟踪的导航技术。
移动机器人视觉导航技术是一种快速发展,不断成熟的技术,也是移动机器人智能化的体现。在总结了一些常见的移动机器人视觉导航方案后,也综述了三类导航方式。但是移动机器人目前仍有着巨大的发展空间。目前的视觉导航技术通常需要在特定的场合下完成,而对于真实、复杂的环境下仍然不能很好的解决,如何使视觉导航方案适配于不同的复杂环境将有待解决。此外,光线对视觉效果会造成很大的影响,如何在图像处理方面减小环境因素对方案造成的影响。其次,视觉导航过程中需要识别大量的环境信息,同时也需要处理、计算大量的数据,因此,高效的计算速度和充足的运行内存是进行大环境视觉导航的前提。随着技术的不断更新,移动机器人视觉导航技术将会朝着定位更加精确,路径更加优化以及占用内存更加合理的方向前进。