1.1. GNSS全球导航卫星系统
针对室外大场景的移动机器人应用,绕不开的定位系统就是GNSS全球导航卫星系统了,在空旷园区、室外大广场、空旷农业基地和大型电站室外等场景下应用的移动机器人主要依赖的定位方式就是通过GNSS全球导航卫星系统实现的。
GNSS技术是指通过观测GNSS卫星获得坐标系内绝对定位坐标的测量技术。GNSS(Global Navigation Satellite System)全球导航卫星系统,主要有四个典型的代表,中国北斗卫星导航系统(BEIDOU),美国的全球定位系统(GPS), 俄罗斯的格洛纳斯卫星导航(GLONASS),欧洲的伽利略卫星导航系统(Galileo)。任一GNSS系统可以划分由卫星、地面观测站、用户接收机三部分组成。卫星上有精密原子钟,可以让所有卫星时间同步精度在纳秒级。地面观测站是对卫星位置,运动状态进行长时间精密观测,用来修正卫星的运动轨道信息。用户接收机用于接收卫星或基站信号进行解析。
GNSS广泛应用于手机导航、车载导航、测绘、农业、航空、机器人以及无人驾驶等领域。GNSS定位主要有两种模式,第一种是单点定位模式(Single Point Position),这种定位方式在空旷处的误差小于5m,但在多径干扰时误差可能会达到50m以上。第二种是差分全球导航卫星系统定位,又包括三类,即位置差分定位,伪距差分定位,载波相位差分定位。
差分定位方法在空旷地区的定位精度能够达到1m内,但在有多径干扰时容易造成50m以上的误差。城市环境下 GNSS 信号容易受到干扰和遮挡,单一的GPS系统可见卫星数、定位精度和可用性都会下降。现多采用GNSS结合IMU实现惯性导航,能够大大提高GNSS导航的鲁棒性,也越来越多的科研人员与工程师将GNSS与IMU,Lidar,camera结合实现精度更高鲁棒性更好的定位方式。
图1 GNSS定位示意图
1.2.磁导航
目前已经得到成熟应用的移动机器人(或者特指AGV)导航定位方式可分为磁导航与光导航两种,磁导航有电磁导引、磁带导引、磁钉导引等,光导航有色带导引、激光导航等。而市场上较常见的导航方式从技术角度分为三代,第一代是磁导航,第二代是二维码导航,第三代则是基于激光与视觉的SLAM算法导航,这三代导航定位系统会在下文中一一进行概述,虽然说是可以分成三代,但是每一代的定位方式都有其在应用场景中的优、劣势,每一代之间可以相互补充但难以做到完全替代,拟乎不应以“代”来划分。
磁导航,是诞生较早的导航方式,在机器人行进道路上铺设磁性物质作为引导的技术,磁性物质有地埋磁条,地埋磁钉,地埋电线,贴地磁条,RFID等。通过磁导航传感器不间断的感应磁信号,让车体一直保持在磁性轨迹上实现导航,通过读取预先埋设的RFID卡(路标)来识别当前位置。磁导航最大的优点是稳定可靠,且不受天气等自然条件的影响,即使风沙或大雪埋没路面也一样有效。但此系统实施过程比较繁琐,变更运营线路需重新埋设导航设备。根据行业应用场景,磁导航目前主要为码头集装箱自动搬运、工厂自动搬运的最优解决方案。
图2青岛港无人码头、工厂无人搬运
1.3. 二维码导航
服务机器人行业里使用的是贴在天花板上的定制反光码,通过机器人最上方的鱼眼相机,红外发射器和红外滤光片实时探测天花板上的二维码信息,实现导航。目前二维码导航方案主要应用于仓储物流搬运,服务送餐机器人等行业领域。
图3仓储物流机器人和服务送餐机器人
1.4. 激光定位技术
所谓激光定位技术,是指主要通过激光雷达来实现机器人在环境中的定位的技术。激光雷达(Light Detection And Ranging,LiDAR)是一种通过测量激光脉冲飞行时间(Time of Flight, ToF)来测距的设备,在传统的机械激光雷达范围内,根据激光发射器数量的不同,可以分为单线激光雷达(2D激光雷达)和多线激光雷达(3D激光雷达),无论是哪种,都是作为测量环境中几何信息的传感器来使用的。
通常来说,激光定位技术首先需要通过对环境的SLAM(Simultaneous Localization and Mapping, 同时定位与建图技术)来建立地图,并在地图中规划作业路径,然后在作业时通过实时扫描与地图的匹配来获取自己在地图中的位置,实现实时定位。
图4 激光SLAM地图(2D-3D)
1.5. 视觉定位技术
视觉传感器具有价格低、体积小和纹理信息丰富的特点,故在同时定位与建图技术的研究中占有很重要的地位。主流的视觉定位技术可以根据视觉传感模组的属性分为三大类:纯视觉定位、视觉惯导定位和RGB-D定位。纯视觉定位指仅依靠单(双)目相机形成二维图像来估计本体位姿,其中,单目视觉具有尺度不确定性,虽然双目视觉能一定程度解决,但纯视觉系统仍然有较高的位姿估计累计误差,并在复杂光照、纹理缺失的场景下可能失效。
这个问题往往通过增加IMU形成视觉惯导系统来解决,因为IMU价格低廉且可提供传感器自身的角速度和加速度。如何高效融合IMU和相机的数据也是备受业界关注的问题,其主要有两大主流解决方案可供选择:基于传统滤波的融合具有速度快的特点,但由于马尔可夫假设,其累计误差较大;基于优化的方法很好的解决了累计误差问题,但其需要较高的计算资源。视觉定位还可以通过增加深度传感器形成RGB-D模组来为视觉定位问题提供高质量的深度信息,在有稠密地图或高级语义地图需求时往往采用RGB-D定位。
图5 纯视觉&视觉惯导稀疏地图(左)RGB-D 稠密地图(右)
激光定位技术发展现状
2.1. 2D激光定位技术发展现状
2D激光定位技术发展较早,目前已经相当成熟。2D激光雷达可以获得环境切面的2D点云,在相邻帧的点云之间做点云配准,即可获得当前帧相对于上一帧的运动,一种典型的2D点云配准算法如下图所示,黄色点云为当前帧,首先将上一帧转化为概率图,当前帧在概率图上寻找使所有点的总概率最大的位置,即为当前帧的位置。基于这种位姿推断,我们得以获得机器人的轨迹,并获得全局的2D概率栅格地图。在定位作业时,采用与2D点云配准技术类似的匹配算法,将实时扫描和地图进行配准,获得机器人在地图中的位置,如下图所示。
目前,2D SLAM已经发展出了诸多有名的开源算法框架,包括但不限于Gmapping,Hector,karto等,其中的集大成者是由Google开源的Cartographer,实现了算法性能,稳定性,功能完整性,可抑制性等多个方面的统一,可以说支撑了很多机器人相关创业公司的发展。在Cartographer之后,鲜少再有同等级别的2D SLAM框架出现。随着2D SLAM技术不断落地,所面对的问题也更加高阶。
近年来在2D SLAM领域出现了相对成熟的life-long SLAM技术,实现了建图和定位的统一,并且在定位的过程中可以实时的修正地图,克服了环境动态变换引起的地图偏差问题,这方面的代表性工作如高仙机器人在IROS-2021学术会议上发表的工作《A General Framework for Lifelong Localization and Mapping in Changing Environment》。
图6 2D点云配准技术(左)2D SLAM建图(中)2D激光定位(右)
2.2. 3D激光定位技术发展现状
3D激光定位技术的发展相对滞后于2D,其中的原因主要有两点:3D激光雷达,3D SLAM算法。随着以velodyne公司为代表的激光雷达厂商的发展和3D激光雷达生产工艺的成熟和成本的下探,以及以LOAM系为代表的3D SLAM算法突飞猛进的发展,3D激光SLAM技术开始实现突破,并直接促成了3D激光定位技术的大规模落地。
常见的机械式3D激光雷达方案如下图所示,在3D激光雷达内部集成了多组激光发射器和接收器,它们在电机的驱动下360度循环旋转,实现对环境的扫描,每次扫描将返回一帧完整的点云。近年来,固态激光雷达也获得了快速的发展并开始投入商用,国内如览沃、速腾聚创、禾赛激光等厂商也初步推出了固态激光雷达产品。固态激光雷达的最大优势在于成本,随着产量的提升,成本预计将下探到同等机械激光雷达成本的十分之一。但固态雷达在点云形态上与机械激光雷达不同,通常FoV(视场角)较小,类似于深度相机。基于固态雷达的SLAM技术目前已经得到了发展,但仍有进一步提升的空间。同样受限于FoV太小,基于固态激光雷达的定位技术目前还不够成熟。
图7 传统旋转式机械激光雷达及其典型点云图
图8 固态激光雷达及其典型点云图
3D SLAM算法的爆发性发展可以追随到2014年由Ji Zhang发表的论文《LOAM: Lidar Odometry and Mapping in Real-time》,该论文首次提出了基于边缘特征和平面特征的点云配准算法,实现了兼顾速度和精度的激光SLAM建图,该方案简称为LOAM。其提出的特征点配准方法启发了大量后续研究,代表性的有LeGO-LOAM,LIO-SAM等。同时,随着算力和算法的进步,基于ICP(Iterative Closest Point, 迭代最近点)的一些衍生型点云配准算法(如G-ICP,VGICP)等也得到了发展。这些点云配准技术的进步,结合多传感器融合算法的进步(滤波和非线性优化,松耦合和紧耦合),实现了更高阶的3D SLAM技术,代表性开源方案有FAST-LIO2,Super-Odometry等。
图9 卫星图及算法所建点云图
图10 FAST-LIO2算法建图
3D定位技术与SLAM技术的发展息息相关,在机器人领域,3D定位功能作为SLAM的应用之一出现;而在自动驾驶领域,3D定位则未必需要建图(存在关于是否需要高精地图的技术路线之争)。3D定位技术同样非常强调多传感器融合,通常至少需要融合3D激光雷达和IMU,其它的传感器还包括轮式里程计、GNSS等。虽然有一些开源框架也支持定位模式,比如HDL-Graph-SLAM,Cartographer(3D)等,但并不能达到直接商用落地的要求。综合来讲,各个机器人公司的3D定位技术都会在开源算法的基础上进行开发,或直接借助开源算法框架,或借助开源技术和公开论文全栈自研。
图11 3D激光定位
视觉定位技术发展现状
定位技术往往伴随着传感器技术的进步而发展。比如,2D激光雷达使定位技术的鲁棒性第一次达到商用级别,3D雷达则进一步将其推广到更广阔的应用场景,比如自动驾驶。在过去数十年内,视觉传感器发展迅速,目前基于视觉定位的技术也达到商用水平,广泛地应用在VR、AR和基于视觉定位的移动机器人导航上。
图12 视觉SLAM运用在优必选服务机器人walker上
视觉SLAM算法可以根据传感器类型被分为三类:纯视觉SLAM、RGB-DSLAM和视觉惯SLAM。纯视觉算法根据追踪的目标不同又被划分为基于特征的(feature-based)和直接(direct)法。其中,前者通过最小化空间重投影误差来优化位姿计算,对弱纹理场景敏感且计算量大;后者通过最小化像素的光度误差来优化位姿,但依赖准确的初始值。
基于RGB-D相机的SLAM系统能直接提供深度图,形成稠密地图,往往被用在三维重建任务上,微软的KineticFusion 算法就是第一个具有实时性的重建算法;近年,用于机器人感知的语义SLAM问题也广泛采用RGB-D相机的深度图作为建图输入,如麻省理工大学的Kimera系统。视觉惯导SLAM,即使用相机和IMU的视觉SLAM方案,一直是视觉定位领域的佼佼者,在广泛的场景下得到应用(如,VR、无人机等)。
视觉惯导SLAM因相机和IMU具有信息互补的特性和低廉的价格而广泛受到关注:相机在低速状态下提供丰富的信息,但对场景尺度估计精度低,在光照变化和运动模糊时鲁棒性降低;IMU对场景变化鲁棒且具有高采样率,但伴有传感器偏置。对于通过传感器融合来提升SLAM系统精度的方案来说,IMU和相机的组合是在体积、重量、耗电和成本达到最优解的6自由度位姿估计器。
图13 视觉惯导SLAM在大疆无人机上的应用
相较于基于激光雷达的SLAM算法,纯视觉算法由于视野、尺度估计等硬件极限问题,目前精度和鲁棒性上尚无法和雷达达到同一水准。但其通过同IMU和主动结构光发射硬件的结合,目前已实现同水准的精度。同激光SLAM一样,视觉也面临当前SLAM领域的未解难题:软硬系统失效的检测和恢复、自动的参数调优、尺度地图的重定位和有限计算和存储资源下的Life-long SLAM。不同的是,视觉SLAM同时也蕴藏着解决这些问题丰富的机遇。图像相较激光具有丰富的纹理信息,通过深度学习能高效习得场景特征,在重定位问题上被广泛研究和验证(如,Patch-NetVLAD)。
图14 视觉用于解决光照和场景物体变化的重定位问题(Patch-NetVLAD)
而在life-longSLAM问题中,我们需要解决两大问题:如何判断是否更新地图,如何高效存储、表征和更新地图。传统激光雷达的点云地图和视觉的TSDF面元对存储和计算资源要求都极高,而近年发展起来基于视觉的高层级几何理解和物体语义为这些问题提供了新的解决思路。图像丰富的纹理信息使提取表征场景几何特征的点、线、面元素较易提取,这不仅使帧间的特征追踪更加稳定,还引入了鲁棒、紧凑的场景信息表达,使长周期的存储和更新计算变得可行。同时,视觉可以提取场景中物体级别的语义标签,这使得地图的更新标准可解释性和召回率显著提升,让全生命周期的语义地图维护更加精准高效。
图15 旷视科技的Struct SLAM