机器人定位导航技术详解(新手必看)
自主定位导航技术,简称定位与导航技术,是涵盖了实时定位、自主地图构建以及运动规划与控制等领域的综合术语。这一技术领域的主要目标是使机器人能够在非结构化的环境中实现自主移动,完成预定的任务,而无须人工干预。
自主定位导航技术负责解决机器人在操作中所面临的三大核心问题:
这一技术的重要性不仅体现在机器人领域,还在无人驾驶汽车领域扮演了关键性的角色。定位与导航技术的发展一直以来都备受行业的关注和研究,因为它直接关系到机器人和自动驾驶汽车的自主性和可靠性。
当机器人或自动驾驶汽车需要在复杂、未知的环境中行动时,定位与导航技术的高效应用成为确保任务成功完成的重要保障。这一技术的不断发展和创新推动了智能机器人和自动驾驶领域的前进步伐,使其能够更好地适应不断变化的现实世界需求。

图 1 机器人定位与导航技术框架
定位则扮演了机器人导航的基础性环节,它用来确定移动机器人在工作环境中相对于全局坐标的位置和机器人本身的姿态。
视觉导航定位系统的工作原理相对简单,它首先对机器人周围环境进行光学处理,然后使用摄像头捕获图像信息,并将其进行压缩。接下来,这些图像信息通过神经网络和统计学方法构建的学习子系统进行分析,将图像信息与机器人的实际位置相联系,从而实现机器人的自主导航定位功能。
激光测距具有光束窄、平行性好、散射小、测距方向分辨率高等优点。典型的红外传感器包括一个可以发射红外光的固态发光二极管和一个用作接收器的固态光敏二极管。由红外发光管发射经过调制的信号,红外光电管接收目标物反射的红外调制信号,环境红外光干扰的消除由信号调制和专用红外滤光片保证。
红外传感定位同样具有灵敏度高、结构简单、成本低等优点,但因为其角度分辨率高,而距离分辨率低,因此在移动机器人中,常用作接近觉传感器,探测临近或突发运动障碍,便于机器人紧急停障。
随着技术的发展,差分定位方法如 RTCM 或 NTRIP 得到广泛应用,尤其是 RTK(实时运动定位),可实现厘米级的定位精度。该技术的优点包括不需要外部源、获取绝对坐标、具有高精度;但在室内和受遮挡的情况下,定位精度会显著下降。
目前美国、中国、俄罗斯都有自己独立运行的 GNSS。GNSS 是一个泛称,包含在全球范围使用的不同型号的多种基于卫星的定位、导航和授时(PNT)系统。GPS(Global Positioning System,全球定位系统)便是 GNSS 的一种。

图 2 超声波定位原理
通过接收自身发射的超声波反射信号,根据超声波发射和接收的时间差及传播速度,计算出传播距离 S,就能得到障碍物到机器人的距离,即 S=Tv/2,T 为超声波发射和接收的时间差;v 为超声波在介质中传播的速度。
这种方法的优点是成本低廉、信息采集速度快、距离分辨率高,但受到天气、环境光照、障碍物遮挡以及表面粗糙度等外部环境因素的影响。
尽管它相对容易实现且成本较低,但它的一个主要缺点是随着时间的推移,由于里程计和 IMU 的累积误差,定位误差会逐渐增加,如下图所示。

图 3 运动轨迹推算
因此,通常需要其他定位数据来修正这些误差,从而维持定位的准确性。实际应用中,很少直接将使用航位推算法得到的位置信息用于定位,但它几乎是必不可少的环节,航位推算与定位之间的关联如下图所示。

图 4 航位推算与定位之间的关联
这是因为里程计或者 IMU 自身更新频率相对较高,一般可实现每秒 100Hz 到 10kHz 的更新频率,而且近年来,这类传感器的成本有了显著降低。在实际行业应用中,通常会在较短的时间间隔内,使用里程计和 IMU 获取的相对位置信息来估计当前位置。然后,在相对较长的时间间隔内,通过其他定位手段获取更准确的空间定位信息,用以校正之前的航位推算位置估计。
通过将高刷新频率的航位推算数据与更精确的其他定位数据相结合,可以在定位精度和刷新速度之间实现均衡,以满足不同应用场景的需求。
目前行业内典型的信标定位有超宽带(Ultra-wideband,UWB)、基于蓝牙的iBeacon和射频识别(RFID)标签的定位。
以 UWB 为例,它的工作原理几乎与 GPS 一致,基于信标实现定位的原理如下图所示。

图 5 基于信标实现定位的原理
机器人上安装的信标接收器接收预先布置在环境中的固定信标基站的信号,通过飞行时间(Time-of-Flight,TOF)来推测自身距离这些基站信标的位置,从而实现空间定位。在典型情况下,UWB 可以在室内实现亚米级别的定位精度。
这一技术的核心思想在于,机器人在移动过程中,利用传感器不断地获取环境数据,然后通过复杂的计算和算法,通过融合这些观测数据,精确估计自身的位置和姿态,并绘制环境地图。
SLAM 一直被视为实现全自主移动机器人的关键技术。SLAM 有助于机器人克服未知环境中的挑战,包括避障、路径规划和导航等关键任务。在 SLAM 的发展过程中,不仅需要处理数据的实时性和准确性,还需要应对噪声、误差、动态环境变化等复杂情况。
激光雷达在 SLAM 中的优势主要体现在其测量精度上,能够提供极为准确的角度和距离信息,通常达到小于 1° 的角度精度和厘米级别的测距精度。此外,激光雷达的扫描范围广泛,通常能够覆盖超过 270° 的平面范围。它还具备较高的数据刷新率,满足实时操作的需求。
然而,需要注意的是,激光雷达也有缺点,其中包括相对较高的价格,以及安装和部署时需要考虑确保扫描平面无遮挡的结构要求。
在激光 SLAM 中,通常生成占据栅格地图(Occupancy Grid Map)以表示环境,其中每个栅格以概率形式表示被占据的概率。这种地图表示方式非常紧凑,特别适用于路径规划和导航应用,允许机器人在未知环境中进行精确的自我定位和环境地图构建。这一技术对于自主移动机器人、自动驾驶汽车和无人飞行器等领域的应用具有重要意义。
视觉 SLAM 使用的传感器主要包括三种:单目相机、双目相机和 RGBD 相机。RGBD 相机通常通过结构光原理计算深度信息(如Kinect v1),或通过投射红外特征码并利用双目红外相机来计算深度(如Intel RealSense R200),还可以使用 TOF 相机来实现深度感知(如Kinect v2)。不论使用哪种类型的 RGBD 相机,它们都可以输出 RGB 图像和深度图像。
视觉 SLAM 系统通常可以划分为前端和后端两部分,如下图所示。

图 6 视觉SLAM计算框架(详见彩插)
前端主要负责数据关联,类似于视觉里程计(Visual Odometry,VO),它研究帧与帧之间的变换关系,主要用于实时的位姿跟踪。前端处理输入的图像数据,计算姿态变化,并检测闭环,如果有 IMU 信息,前端还可以将其与视觉数据融合,从而实现视觉惯性里程计(Visual Inertial Odometry,VIO)。
后端主要对前端输出的结果进行优化,它使用滤波理论如扩展卡尔曼滤波器(EKF)和粒子滤波器(PF)或优化理论,通过树状或图状的优化方法,得出最佳的位姿估计和地图构建,从而实现高精度的 SLAM 定位和地图生成。

图 7 用于位置估计的滤波和非滤波框架
采用滤波器的 SLAM,如图 7a 所示,估计 n 时刻的相机位姿 Tn 需要使用地图中所有路标的信息,而且每帧都需要更新这些路标的状态,随着新的路标的不断加入,状态矩阵的规模增长迅速,导致计算和求解耗时越来越严重,因此不适宜长时间大场景的操作。
采用优化算法的 SLAM,如图 7b 所示,通常结合关键帧使用,估计 n 时刻的相机位姿 Tn 可以使用整个地图的一个子集,不需要在每幅图像都更新地图数据,因此目前比较成功的实时 SLAM 系统大都采取此方法。
自主定位导航技术负责解决机器人在操作中所面临的三大核心问题:
- 机器人应该知道自己的位置(在哪里);
- 确定前往目的地的路径(要到哪里去);
- 规划行动方式(该如何过去)。
这一技术的重要性不仅体现在机器人领域,还在无人驾驶汽车领域扮演了关键性的角色。定位与导航技术的发展一直以来都备受行业的关注和研究,因为它直接关系到机器人和自动驾驶汽车的自主性和可靠性。
当机器人或自动驾驶汽车需要在复杂、未知的环境中行动时,定位与导航技术的高效应用成为确保任务成功完成的重要保障。这一技术的不断发展和创新推动了智能机器人和自动驾驶领域的前进步伐,使其能够更好地适应不断变化的现实世界需求。
定位与导航技术框架
如下图所示,定位与导航技术使得移动机器人能够通过感知环境和自身状态的传感器来自主导航,从而在充满障碍物的环境中朝向预定目标自主运动。
图 1 机器人定位与导航技术框架
定位则扮演了机器人导航的基础性环节,它用来确定移动机器人在工作环境中相对于全局坐标的位置和机器人本身的姿态。
自主定位导航机器人的定位方法
目前,应用于自主移动机器人的定位与导航技术有很多,归纳起来主要有以下几种。1、视觉导航定位
在视觉导航定位系统中,目前国内外应用较多的是基于局部视觉的在机器人中安装车载摄像机的导航方式。这种方法通常涉及在机器人上安装车载摄像机。视觉导航定位系统的工作原理相对简单,它首先对机器人周围环境进行光学处理,然后使用摄像头捕获图像信息,并将其进行压缩。接下来,这些图像信息通过神经网络和统计学方法构建的学习子系统进行分析,将图像信息与机器人的实际位置相联系,从而实现机器人的自主导航定位功能。
2、光反射导航定位
光反射导航定位方法主要利用激光或红外传感器进行距离测量。激光和红外技术通过光的反射来进行导航和定位。激光测距具有光束窄、平行性好、散射小、测距方向分辨率高等优点。典型的红外传感器包括一个可以发射红外光的固态发光二极管和一个用作接收器的固态光敏二极管。由红外发光管发射经过调制的信号,红外光电管接收目标物反射的红外调制信号,环境红外光干扰的消除由信号调制和专用红外滤光片保证。
红外传感定位同样具有灵敏度高、结构简单、成本低等优点,但因为其角度分辨率高,而距离分辨率低,因此在移动机器人中,常用作接近觉传感器,探测临近或突发运动障碍,便于机器人紧急停障。
3、GNSS卫星定位系统
GNSS(全球导航卫星系统)利用空间距离的交汇来计算机器人的绝对位置,前提是接收到来自至少四颗卫星的信号。随着技术的发展,差分定位方法如 RTCM 或 NTRIP 得到广泛应用,尤其是 RTK(实时运动定位),可实现厘米级的定位精度。该技术的优点包括不需要外部源、获取绝对坐标、具有高精度;但在室内和受遮挡的情况下,定位精度会显著下降。
目前美国、中国、俄罗斯都有自己独立运行的 GNSS。GNSS 是一个泛称,包含在全球范围使用的不同型号的多种基于卫星的定位、导航和授时(PNT)系统。GPS(Global Positioning System,全球定位系统)便是 GNSS 的一种。
4、超声波导航定位
超声波导航定位的工作原理与激光和红外类似,通常是由超声波传感器的发射探头发射出超声波,超声波在介质中遇到障碍物而返回到接收装置,超声波定位原理如下图所示。
图 2 超声波定位原理
通过接收自身发射的超声波反射信号,根据超声波发射和接收的时间差及传播速度,计算出传播距离 S,就能得到障碍物到机器人的距离,即 S=Tv/2,T 为超声波发射和接收的时间差;v 为超声波在介质中传播的速度。
这种方法的优点是成本低廉、信息采集速度快、距离分辨率高,但受到天气、环境光照、障碍物遮挡以及表面粗糙度等外部环境因素的影响。
5、航位推算(Dead Reckoning)法
机器人可以使用安装在轮组中的里程计以及惯性测量单元(IMU)来检测机器人在一段时间内的相对位移和转动,然后通过累积这些数据来推导机器人在某一时刻相对于起始点的位置,这种方法被称为航位推算法。尽管它相对容易实现且成本较低,但它的一个主要缺点是随着时间的推移,由于里程计和 IMU 的累积误差,定位误差会逐渐增加,如下图所示。

图 3 运动轨迹推算
因此,通常需要其他定位数据来修正这些误差,从而维持定位的准确性。实际应用中,很少直接将使用航位推算法得到的位置信息用于定位,但它几乎是必不可少的环节,航位推算与定位之间的关联如下图所示。

图 4 航位推算与定位之间的关联
这是因为里程计或者 IMU 自身更新频率相对较高,一般可实现每秒 100Hz 到 10kHz 的更新频率,而且近年来,这类传感器的成本有了显著降低。在实际行业应用中,通常会在较短的时间间隔内,使用里程计和 IMU 获取的相对位置信息来估计当前位置。然后,在相对较长的时间间隔内,通过其他定位手段获取更准确的空间定位信息,用以校正之前的航位推算位置估计。
通过将高刷新频率的航位推算数据与更精确的其他定位数据相结合,可以在定位精度和刷新速度之间实现均衡,以满足不同应用场景的需求。
6、空间信标定位
为了解决航位推算法带来的逐渐增加的定位误差问题,可以使用已经布置在环境中的参考物体进行信标定位。通过观察机器人相对于这些参考物体的位置关系,可以实现绝对位置定位。目前行业内典型的信标定位有超宽带(Ultra-wideband,UWB)、基于蓝牙的iBeacon和射频识别(RFID)标签的定位。
以 UWB 为例,它的工作原理几乎与 GPS 一致,基于信标实现定位的原理如下图所示。

图 5 基于信标实现定位的原理
机器人上安装的信标接收器接收预先布置在环境中的固定信标基站的信号,通过飞行时间(Time-of-Flight,TOF)来推测自身距离这些基站信标的位置,从而实现空间定位。在典型情况下,UWB 可以在室内实现亚米级别的定位精度。
7、同步定位与地图构建
同步定位与地图构建(Simultaneous Localization and Mapping,SLAM)最早在机器人领域提出,旨在解决机器人在未知环境中,从未知的初始位置出发,通过观测周围环境特征,同时确定自身位置和构建环境地图的技术难题。这一技术的核心思想在于,机器人在移动过程中,利用传感器不断地获取环境数据,然后通过复杂的计算和算法,通过融合这些观测数据,精确估计自身的位置和姿态,并绘制环境地图。
SLAM 一直被视为实现全自主移动机器人的关键技术。SLAM 有助于机器人克服未知环境中的挑战,包括避障、路径规划和导航等关键任务。在 SLAM 的发展过程中,不仅需要处理数据的实时性和准确性,还需要应对噪声、误差、动态环境变化等复杂情况。
1)激光 SLAM
也被称为基于激光雷达 SLAM 或 LiDAR SLAM,通常使用 2D 或 3D 激光雷达作为关键传感器。室内机器人,如扫地机器人,通常采用 2D 激光雷达,而在无人驾驶领域,通常使用 3D 激光雷达。激光雷达在 SLAM 中的优势主要体现在其测量精度上,能够提供极为准确的角度和距离信息,通常达到小于 1° 的角度精度和厘米级别的测距精度。此外,激光雷达的扫描范围广泛,通常能够覆盖超过 270° 的平面范围。它还具备较高的数据刷新率,满足实时操作的需求。
然而,需要注意的是,激光雷达也有缺点,其中包括相对较高的价格,以及安装和部署时需要考虑确保扫描平面无遮挡的结构要求。
在激光 SLAM 中,通常生成占据栅格地图(Occupancy Grid Map)以表示环境,其中每个栅格以概率形式表示被占据的概率。这种地图表示方式非常紧凑,特别适用于路径规划和导航应用,允许机器人在未知环境中进行精确的自我定位和环境地图构建。这一技术对于自主移动机器人、自动驾驶汽车和无人飞行器等领域的应用具有重要意义。
2)视觉 SLAM(Visual SLAM)
作为一种同步定位与地图构建技术,相对于激光SLAM具有一些显著的优点:首先,视觉SLAM所使用的相机相对较为便宜、轻便,且容易获得;其次,相机捕获的图像信息更加丰富,具有更高的特征区分度。然而,视觉SLAM的主要缺点是实时处理图像信息所需的计算能力相对较高。随着计算硬件性能的提升,现在已经能够在嵌入式设备,甚至移动设备上实时运行视觉SLAM。视觉 SLAM 使用的传感器主要包括三种:单目相机、双目相机和 RGBD 相机。RGBD 相机通常通过结构光原理计算深度信息(如Kinect v1),或通过投射红外特征码并利用双目红外相机来计算深度(如Intel RealSense R200),还可以使用 TOF 相机来实现深度感知(如Kinect v2)。不论使用哪种类型的 RGBD 相机,它们都可以输出 RGB 图像和深度图像。
视觉 SLAM 系统通常可以划分为前端和后端两部分,如下图所示。

图 6 视觉SLAM计算框架(详见彩插)
前端主要负责数据关联,类似于视觉里程计(Visual Odometry,VO),它研究帧与帧之间的变换关系,主要用于实时的位姿跟踪。前端处理输入的图像数据,计算姿态变化,并检测闭环,如果有 IMU 信息,前端还可以将其与视觉数据融合,从而实现视觉惯性里程计(Visual Inertial Odometry,VIO)。
后端主要对前端输出的结果进行优化,它使用滤波理论如扩展卡尔曼滤波器(EKF)和粒子滤波器(PF)或优化理论,通过树状或图状的优化方法,得出最佳的位姿估计和地图构建,从而实现高精度的 SLAM 定位和地图生成。

图 7 用于位置估计的滤波和非滤波框架
采用滤波器的 SLAM,如图 7a 所示,估计 n 时刻的相机位姿 Tn 需要使用地图中所有路标的信息,而且每帧都需要更新这些路标的状态,随着新的路标的不断加入,状态矩阵的规模增长迅速,导致计算和求解耗时越来越严重,因此不适宜长时间大场景的操作。
采用优化算法的 SLAM,如图 7b 所示,通常结合关键帧使用,估计 n 时刻的相机位姿 Tn 可以使用整个地图的一个子集,不需要在每幅图像都更新地图数据,因此目前比较成功的实时 SLAM 系统大都采取此方法。