文|王威 滕绍光 郑璐
摘 要: 移动机器人基于激光和视觉SLAM导航可实现环境的智能感知和非固定路径行走,其中视觉SLAM导航是指机器人利用视觉系统实现自主定位与地图创建,其优势为结构简单、成本低,信息量丰富。而视觉里程计作为移动机器人视觉SLAM导航的前端,能为机器人自主导航提供廉价、可靠的位姿估计。本文对移动机器人视觉里程计的概念与发展历程进行了简述,总结了实现视觉里程计的不同方法并分别对比了其优缺点,同时也分析了视觉里程计在移动机器人领域的应用以及未来研究展望。
关键词:视觉里程计、位姿估计、移动机器人、导航
一、引言
在移动机器人系统中,要进行目标探测和定位,对于自身位姿的估计非常重要。传统的里程计,如轮式里程计因为轮子打滑空转而容易导致漂移;精确的激光传感器价格昂贵;惯性传感器虽然可以测量传感器瞬时精确的角速度和线速度,但是随着时间的推移,测量值有着明显的漂移,使得计算得到的位姿信息不可靠等。而视觉里程计(Visual Odometry,VO)由于视觉传感器低廉的成本和长距离较为精准的定位在众多传统里程计中脱颖而出。
世界顶级的视觉传感器(工业相机)产品售价约为人民币3000元,是同等级的激光雷达产品售价的10%~20%。而较低的制造成本意味着较低的产品价格,对提升企业产品竞争力或终端客户投资回报周期都更加利好。
二、视觉里程计发展简述
所谓视觉里程计,就是从一系列图像流中恢复出相机的运动位姿,这一思想最早是由Moravec等人[1]提出的,他们首次提出了单独利用视觉输入的方法估计运动,并给出了一种最早期的角点检测算法,将其应用在行星探测车上,这体现了现阶段视觉里程计的雏形,包括特征点检测及匹配、外点排除、位姿估计三大块,使得视觉里程计从提出问题阶段过渡到了构建算法阶段。
Nister等[2]在CVPR上发表的论文中提出了一种利用单目或立体视觉相机来获取图像的视觉里程计系统,宣告VO技术进入了优化算法阶段。随着ORB-SLAM[3]的问世,VO作为SLAM的前端成为了研究热潮,也代表着主流基于特征点法VO的一个高峰。Engle等[4]提出的LSD-SLAM则成功地把直接法的视觉里程计应用在了半稠密单目SLAM中。
近年来涌现了各类新颖视觉里程计系统,例如VINS-Mono[5]是香港科技大学开源的一个视觉惯性里程计(Visual Inertial Odometry, VIO)算法,通过单目与IMU紧耦合恢复出尺度信息,效果较佳,已经被成功应用于小规模AR场景、中型无人机导航和大规模状态估计任务中。
三、视觉里程计的方法分类
传统的VO方法是基于模型的系统,按照采用的传感器类型可以分为单目(Monocular)、双目(Stereo)和深度相机(RGB-D)三个大类,而按照对图像的处理方法可以分为特征点法和直接法,此外还有新兴的基于深度学习方法的VO。
1.按传感器类型
只使用一个摄像头的VO系统称为单目VO系统,单目相机有着结构简单、成本低的特点,受到众多研究者的关注,常用的单目VO系统有PTAM[6]、SVO[7]、DSO[8]等。
双目相机和深度相机可以测量物体与相机的距离,从而克服单目相机无法测量距离的缺点。有了距离,场景的三维结构就可以通过图像恢复出来,也消除了尺度的不确定性。双目相机是由两个单目相机组成的,常用的双目VO系统有ORB-SLAM3[9]、RTAB-MAP[10]。深度相机主要利用红外结构光或者飞行时间差(Time-of-Flight, ToF)原理,通过物理测量手段获取距离参数,相比于双目相机可节省计算资源,常用的基于深度的VO系统有DVO[11]、RGB-D-SLAM-V2[12]等,但是深度相机有着易受光照影响、无法测量投射材质等不足,且主要用于室内测量,目前仍难在室外广泛应用。
2.按图像处理方法
根据VO系统是否对图像进行特征提取及匹配,可分为特征点法VO和直接法VO。
对于特征点法,在各帧图像中尽可能找到相同位置的点,再基于这些点计算位姿。常用特征如SIFT[13]、SURF[14]、ORB[15]等,这些特征相对于早期的特征有着更稳定更高效的优势,因而基于这些特征描述子衍生出了很多算法,如MonoSLAM[16]、PTAM[6]、ORB-SLAM3[9]等。杨冬冬[17]等人基于SIFT特征提出了一种基于局部和全局优化的双目VO,在满足实时性的基础上能够提高精度。
对于直接法,只对图像提取关键点,跳过描述子的计算,直接基于灰度不变等强假设根据像素灰度信息来计算相机的运动,因此可用于构建稠密地图。常用的基于直接法的VO系统有DTAM[18]、DSO[8]、DVO[11]等。
两种方法的优缺点对比如表1所示。
为了更加直观清晰地对比各个方法之间的区别与特性,表2列出了常用的基于传统方法的VO系统。
3.基于深度学习的VO系统
近几年来,深度学习的发展极大地促进了计算机视觉的相关科研工作。基于深度学习的VO系统在视觉相关任务的准确率、鲁棒性,以及执行效率方面相比于传统方法都展现出了非凡的效果。不同于传统的VO系统那样通过严格的几何理论方法实现,基于深度学习的VO是通过寻找数据规律与目标任务之间的函数关系来完成同样的工作。在基于深度学习的VO中,主要分为有监督、无监督和半监督三种学习方法,其中具有代表性的VO方案有DeepVO[19]、GeoNet[20]、CNN-SLAM[21]等。
四、视觉里程计在物流移动机器人中的应用
SLAM同步定位与地图构建技术(Simultaneous localization and mapping)可在未知的环境中实时定位移动机器人自身的位置,并同时构建环境三维地图。目前激光SLAM技术已发展较为成熟,视觉SLAM技术也在近几年得到快速发展,由于视觉SLAM使用的视觉传感器的成本较低,并且在某些场景下视觉SLAM是激光SLAM的有力补充,因此,视觉SLAM尤其是视觉里程计与激光SLAM相融合的技术是目前物流移动机器人导航技术的趋势,在移动抓取机器人、AMR、巡检机器人等移动机器人行业有着广泛应用。
1.融合视觉里程计的激光SLAM技术在实验室的测试验证
下面将融合视觉里程计与激光SLAM技术的物流机器人的具体实现方式及应用做一描述,我们使用实验室的移动机器人平台进行了相关算法的验证,移动机器人平台如图1所示。
验证的方法及过程如下:首先说明视觉里程计的信息获取方法,主要是通过双目相机获取环境的RGB彩色图像,并利用SIFT关键点检测的ORB算法对每一张连续图像关键帧进行特征点检测,为后续计算提供更精确的特征点,随后使用对极几何和三角化的方法计算得出特征点的三维坐标,并依此计算出相机的位姿变化,再根据相机与移动机器人参考点的相对位置关系可计算出移动机器人参考点的位姿变化,最终得到移动机器人的视觉里程计的信息,将此数据与IMU信息及移动机器人驱动编码器里程计信息使用扩展卡尔曼滤波进行数据融合,为激光雷达SLAM提供前端的预估初始位置的输入信息,提高了激光雷达SLAM前端数据的初始匹配精度,并通过激光SLAM后端的优化及回环检测对累计误差的消除,经过激光SLAM的建图模块,最终得到了精确的环境电子地图,并同时可为移动机器人的导航系统提供移动机器人参考点的运动轨迹信息,通过此方法所构建的实验室的精确环境地图如图2所示。
通过实验室移动机器人平台的测试验证,最终使移动机器人的定位精度达到±10mm,实现了预期的目标。
2.融合视觉、激光等多种传感器的SLAM技术的实际应用
许多物流移动机器人的本体厂商均使用了融合多种传感器的信息进行物流移动机器人的导航定位和自主决策,如北京极智嘉科技股份有限公司的搬运系统产品在导航方式中使用了视觉SLAM方式,在障碍物检测方式上也使用了视觉组件进行视觉避障,它们生产的物流移动机器人具体产品(M200C)如图3所示。
灵动科技(北京)有限公司生产的AMR系列物流移动机器人,采用基于视觉数据,融合激光雷达、惯性导航和电机编码器里程计等多种感知信息,实现自动建图、定位和导航等功能,它们的辊筒搬运式产品Max300如图4所示。
目前,这些公司使用融合视觉、激光等多种传感器的物流机器人产品已经在实际项目中得到应用,如灵动科技使用顶升式Max300移动机器人在TCL工厂的26条产线上完成了原材料的搬运任务。
随着技术的发展和各类产业的智能化升级,为了增强移动机器人导航的精度和鲁棒性,使用融合视觉、IMU、激光雷达等多种传感器信息的导航定位技术正在物流移动机器人行业得到更加广泛的应用。
视觉传感器除了在物流移动机器人的导航定位方面起重要的作用外,它在移动机器人对目标物的识别及定位方面也起到了关键的作用,当移动机器人到达目标物附近时,通过视觉传感器识别出目标物相对移动机器人的位姿,从而使移动机器人根据目标物的姿态调整移动机器人的运行轨迹,使移动机器人能更准确地与目标物进行对接操作。通过使用视觉技术在移动机器人上的应用,拓展了移动机器人的应用领域,增强了移动机器人的可靠性,推动了移动机器人产业的发展。
五、视觉里程计的未来研究展望
VO在移动机器人上的应用已经发展多年,在很多方面取得重大进展,但目前仍旧有一些问题等待解决,本文在总结现有方案的基础上提出了以下两个值得探索的研究方向。
(1)结合语义地图的视觉里程计系统。
由于环境中普遍存在动态场景造成的实际样本和检测样本之间的误差,降低了目前大部分的算法模型的位姿估计和轨迹的精度。通过结合语义地图的方式将从几何和语义两个方面来感知场景,使得应用对象对环境内容有抽象理解,获取更多的信息,能够减小动态场景带来的误差,还可以为SLAM中的回环检测带来更多信息从而提高精度。适合通过高性能的计算设备用于实现精密地图构建、场景理解等功能的场合。
(2)多机器人协同的视觉里程计系统。
单个机器人可能无法快速熟悉环境特征及其相对于环境特征的位置,此外单个机器人在执行任务的过程中会出现损坏的情况,要达到稳定的精准导航,开发分布式系统来实现视觉里程计将是一个发展方向。使用多个机器人可以有很多优点,例如可以减少探索一个环境所需的时间、不同的信息来源将提供更多的信息、分布式系统对故障更鲁棒等。
END