机器人航位推算:深入研究里程计测试与分析
我保证会深入研究这个话题,但首先得从如何进行算法测试开始。我们之前在基于国际规范的模拟居家环境中收集了数据。但是,为了记录更多与航位推算精度直接相关的测试数据,我们在一个更简单、更小环境中对更多的方向变化进行了测试。
今天,我们将详细介绍我们所做的测试,向您展示这个话题的深度。和我一起深入了解,好吗?
对于新读者,我想快速回顾几个概念。如果您是这方面的行家,请直接跳到测试机器人航位推算的性能。
机器人航位推算的快速回顾
什么是机器人航位推算?
通过融合来自多个传感器的数据,航位推算可以利用随时间推移测得的速度值和方向信息来估计机器人所在的位置。就像人类一样,机器人可能不知道自己的确切位置,但它有很强的估计能力。这种能力也被称为里程计。
使用了什么传感器?
机器人航位推算算法通常使用车轮编码器、IMU和光流传感器(就像您鼠标里的那个一样)。在机器人上使用的一些光流传感器有LED光源和激光光源,前者适合在粗糙表面上工作,后者则更适合光滑表面。此外,机器人里程计也可以单独使用IMU和上述两种传感器之一来推算位置。
为什么这很有帮助?
一些机器人使用基于摄像头或激光雷达的同步定位和测绘(SLAM)算法来确定它们的位置,而且更整洁。机器人航位推算提供了该算法不可或缺的速度值和方向信息。另一些机器人不需要构建持续的测绘图(它们只需要在完成工作后返回原点),它们可能只需要进行航位推算就可以确定位置。
备注:这是摘自CliffNotes/SparkNotes的基础知识,帮助读者理解这篇博文的其余部分。但如果您想了解更多关于机器人航位推算传感器的信息,请参阅这篇博文。
测试机器人里程计的性能
收集数据
我保证会深入研究这个话题,但首先我们得从如何进行算法测试开始。我们之前在基于国际规范的模拟居家环境中收集了数据。但是,为了记录更多与航位推算精度直接相关的测试数据,我们在一个更简单、更小环境中对更多的方向变化进行了测试。这些更频繁的变化被整合到以下驱动算法中:
1. 以0.3m/s的速度向前行驶,直到撞墙
2. 停止0.1s
3. 以0.2m/s的速度后退0.5s
4. 以0.6rad/s随机旋转45°至180°
该旋转方向以使机器人的航向在其原始航向720°内为依据
5. 每行驶60s,静止5s
我们的测试对象是来自享誉全球的消费级机器人制造商的机器人开发平台。我们可以借助一个强有力的比较点,比较行业中佼佼者的发展水平。除了原始数据和来自我们自己研发的MotionEngine Scout骑手模块的输出值外,这个测试机器人还有自己的里程计算法输出值,我们也记录了这些数据。
除这两组数据外,我们还需要实况测量值。为此,我们安装了红外摄像头来覆盖整个测试空间,跟踪机器人的位置。这些摄像头的数据被用作实况值。这些摄像头可以用于各种高精度、低延迟的项目,包括这个自动瞄准弓。
我们在测试中想要调整的最后一个变量是不同类型的表面。在这些测试中,我们让机器人在硬木、短绒地毯、长绒地毯、人造瓷砖和这些表面的组合上运行。这些表面会产生与其相关的传感器误差,我们将在后面详细讲述这一点。
现在我们已经收集了测试数据,有了用于比较的实况值,以及在其上运行机器人的许多不同的测试表面,我们需要的最后一个要素是用来确定精度的度量。当我们在衡量定位性能时,比较基于开始位置和结束位置的误差非常有用。这种轨迹误差可以细分为多种类型。
绝对误差就是机器人认为它所在的位置和它真正所在的位置之间的差值。这很容易理解,但是任何时间点的绝对误差取决于之前所有时间点的航向和距离误差的历史记录,因此很难普及这个度量。
对于相对误差,我们会将在测量周期开始时匹配的位置归零,以消除先前距离误差的影响。重定向相对误差也会消除先前航向误差的影响。最后这个度量可以通过试验中许多大小固定的窗口计算,为我们提供每单位距离的误差增长率的连续视图。
重定向相对误差不如绝对误差直观,但更适用于处理家用机器人用例中行驶模式和任务持续时间的变化。
为了全面了解误差是如何在整个试验过程中增加的,我们计算了基于设定的移动距离(1m)滑动数据窗口期间的重定向相对误差。换言之,我们计算在每行驶1m的距离窗口(为每个数据点滑动1cm的窗口)期间算法的相对误差。
这个曲线图显示了在CDF(累积分布函数)中使用的每个平面和算法对应的这些误差值的分布,如上面的例子所示。查看曲线图(左边的线更好),我们可以很容易地将中值性能与最坏情况或其他百分比进行比较,并确定异常值。从这里您可以看到,在所有表面上,使用典型初始校准的动态校准模型始终比该开发平台具有更好的性能。
优化机器人里程计的性能
这些校准模型意味着什么?为什么校准传感器很重要?
亲爱的读者,让我们从更高层次的问题开始。校准传感器非常重要,因为即使传感器的质量控制在数据手册上列出的特定规格内,但是每个传感器都是不同的。这就是动态校准发挥作用的地方。简而言之,每个传感器的行为差异足以影响整体精度,根据这些差异进行调整可以充分提高性能。
正如您可能已经猜到的那样,静态校准模型使用初始校准,并一直使用它。但是,动态校准模型使用IMU和车轮测量值来调整光流传感器的输出。这可以随时间推移保持精度不变,无论温度、车轮打滑率、表面反射、表面柔软度等等如何变化。
我们在不同类型的地板上进行了测试,因为光流传感器和车轮会根据它们行驶的表面做出不同的反应。车轮会在表面上打滑,车轮编码器将给出不准确的读数。光流传感器在某些表面上工作比在其他表面上表现更好,通过仔细校准可以提高其精度。使用传感器的方式也很重要。机器人使用的领先光流传感器包括LED模式(照亮地板纹理进行跟踪)和激光模式(诱导可跟踪的“散斑图”)。确定何时切换模式,何时保留现有模式,这对于获得卓越的性能至关重要。
在各种地板表面上进行细致而详尽的测试后(见上面的gif),我们确定了每种光流光模式的典型校准值。每一种传感器的比例都需要根据地板类型进行调整。通过动态校准,IMU数据可以帮助在运行过程中实时调整初始校准。
我们分析中使用的调谐校准方法反映了校准精度的上限。计算方法是通过我们的算法离线传送原始传感器数据,然后调整光流传感器的比例,使误差尽可能接近于0。
我们的分析结果表明,在各种表面上使用最实际可行的机器人校准模式(动态,典型)进行测试时,我们比市场领先企业的精度高出22%以上。
这篇博文旨在强调我们的测试和分析能力,并希望吸引您深入了解更多细节。如果您感兴趣,请联系我们,了解更多关于MotionEngine Scout可以为您的机器人项目带来哪些益处,并关注即将发布的白皮书,其中详细介绍了我们的测试和分析的更多细节。
(来源:EDN电子设计,作者:Charles Pao,CEVA公司)