跳到内容

机器人/导航/定位

来自维基教科书,开放世界中的开放书籍

定位涉及一个问题:机器人现在在哪里?或者,以机器人的角度来说,我身在何处,记住“此处”相对于某个地标(通常是起点或目的地),并且如果你不在乎你在哪里,你就永远不会迷路。

尽管这是一个简单的问题,但回答起来并不容易,因为答案取决于机器人的特性。适用于一台机器人在一个环境中的定位技术可能不适用于另一个环境,或者根本不适用于另一个环境。例如,在户外环境中表现良好的定位方法可能在室内毫无用处。

所有定位技术通常提供两个基本信息

  • 机器人在某个环境中的当前位置是什么?
  • 机器人在该环境中的当前方向是什么?

第一个可以是笛卡尔坐标或极坐标,也可以是地理纬度和经度。后者可以是横滚、俯仰和偏航的组合,也可以是指南针方向。

当前位置

[编辑 | 编辑源代码]

机器人的当前位置可以通过几种截然不同的方式确定

航位推算

[编辑 | 编辑源代码]

航位推算使用里程计来测量机器人移动的距离。三角学和运动学方程是计算其新位置所需的一切。

此方法有两个要求

  • 它需要一种方法来确定其初始位置。
  • 随着时间的推移,其精度通常会下降,因为每次测量都会产生误差,并且误差会累积。

航位推算通常与其他方法一起使用以提高整体精度。

最小均方

[编辑 | 编辑源代码]

解决机器人定位问题的方案有很多。这些方案从简单的航位推算方法到使用昂贵雷达或视觉系统的先进算法不等。选择机器人定位算法的最重要因素是准确的相对位置和全局位置数据的可用性。对于具有基本相对位置传感器和某种全局位置传感器的简单系统,最实用且最易于实现的定位方法是最小均方。

有关使用最小二乘法为超定系统寻找解的更多信息,请参见最小二乘法:http://en.wikipedia.org/wiki/Least_squares

为了从一般意义上看最小均方 (LMS) 算法,首先要了解其背后的基本原理。所有定位方法的目标都是最小化机器人实际位置与其应在位置之间的误差。该算法必须能够遵循预设轨迹或找到机器人位置的最小误差(自适应算法和结构,第 97 页)。通过自适应地调整权重来最小化实际函数和 LMS 算法生成的函数之间的误差,将这些机器人定位目标应用于 LMS 算法。作为最速下降算法的子集 (http://en.wikipedia.org/wiki/Gradient_descent),该方法旨在通过估计梯度 (http://en.wikipedia.org/wiki/Gradient) 来最小化误差,并且被称为具有全局位置输出的最简单的定位方法。

LMS 算法推导

[编辑 | 编辑源代码]

LMS 算法可以应用于两种情况

• 并行多个输入

• 串行单个输入

File:LinearCombinerConfiguration.jpg

图 1:线性组合器配置 [1]

File:CurveFit.jpg

图 2:对数据进行曲线拟合以最小化误差 [3]

File:TransversalCombinerConfiguration.jpg

图 3:横向组合器配置 [1]

在这两种情况下,梯度计算如下

εk = dk - XTkWk

其中 ‘Yk’ 是期望输出,‘XTk’ 是实际输入,‘Wk’ 是第 k 个输入元素。接下来,梯度估计计算如下

现在我们有了梯度估计,可以通过以下公式更新权重

Wk+1 = Wk - μdelk = Wk + 2μεkXk

以通过迭代更改最小化误差。‘μ ’ 是用于训练算法的增益常数。使用训练来调整权重更新函数 [1] 对误差的校正速度。如果训练常数过高,系统将振荡并且永远不会收敛到最小误差值。

为了说明除数学格式以外的过程,可以通过使用伪代码来演示 LMS 算法。下面代码的目的是仅供说明。本示例旨在提供一个逐步的可视化工具,用于开始编码过程。

LMS 程序

[编辑 | 编辑源代码]

初始化权重重复选择训练对 (x,d) 对于所有 k 执行

   yk = WkXk	 

结束对于所有 k 执行

   εk = Yk - dk 

结束对于所有 k 执行

   Wk(j+1) = Wk(j) + μεkXk

结束直到达到终止条件

各种变体

[编辑 | 编辑源代码]

改进的 LMS 方法

对于具有顺序到达数据的问题,改进的 LS 方法可用于添加或删除数据行。在各种时间序列问题中,可以采用移动“窗口”来评估预定义时间范围内的数据。此方法在统计学、优化和信号处理 [2] 中出现的 LMS 问题中非常有用。

约束 LMS 方法

对于曲线和曲面拟合应用问题,约束 LMS 方法非常有用。此类问题需要满足具有各种未知量的线性方程组。只有在每个输入都可以按某个幅度缩放并且仍然保持常数的情况下,此方法才能提供有用的解决方案 [2]。

稀疏问题的直接方法

稀疏 LMS 问题涉及在矩阵具有“相对较少”的非零元素时解决 LMS 问题。“J. H. Wilkinson 将稀疏矩阵定义为‘任何具有足够零的矩阵,以至于利用它们是值得的’” [2]。更精确的定义更难提供。此类问题通常涉及大小很大,并且涉及大量的未知量。以下是可以归类为稀疏问题的示例:模式匹配、聚类分析和曲面拟合 [2]。

LMS 问题的迭代方法

解决稀疏问题(除了上面提到的直接方法)的第二种方法是迭代方法。一般来说,迭代方法用于分析欠定、稀疏问题,以根据输入数据的范数计算最小解 [2]。

非线性 LMS 方法

对于具有非线性系统的 problems,非线性 LMS 方法对于迭代计算问题的相对 LMS 解很有用。此方法可用于无约束优化和各种调查方法 [2]。

应用和理论的额外来源

[编辑 | 编辑源代码]

为了进一步参考和额外阅读,以下资源可用于更全面地概述该主题。

参考文献

[编辑 | 编辑源代码]
  • 自适应信号处理 [1]
  • LS 问题数值方法书籍 [2]

GPS 全球定位系统

[编辑 | 编辑源代码]

在广阔的地形上,GPS 可以提供或多或少的准确坐标,航位推算及其其他传感器的​​数据可以填补空白。但是,在地形狭小或室内,GPS 的不准确性会成为问题,而航位推算和传感器数据成为确定位置的主要因素。

GPS 类系统

[编辑 | 编辑源代码]

尽管 GPS 在室内不太有用,但与 GPS 中使用的类似技术可以在室内使用。机器人只需要测量它到 3 个固定信标的距离。每个距离都描述了一个以信标为中心的球体。3 个球体只会在一个点相交。

最简单的方法:在地面上画一条线,然后使用红外反射传感器来跟踪它。 作为轨道或标记机器人工作区域的边缘很有用。

这也可以通过在地面放置一根电缆并在其中发送调制信号来完成。 机器人可以使用磁性传感器(霍尔传感器或线圈)检测到这条电缆。

复杂的循线方式包括使用视觉(相机)等传感器,这有助于降低传感器的整体成本和实施成本,同时还能提供检测各种颜色线条的 versatility 。 它也为系统的自治提供了很大的范围。

放置地标是帮助您的机器人在其环境中导航的另一种方法。 地标可以是主动信标(红外或声音)或被动信标(反射器)。 使用条形码扫描仪是另一种可能性。

如果环境是预先知道的,一个特殊的技巧是使用碰撞检测(即传感器缓冲器或类似物)与已知物体进行碰撞检测。 与航位推算一起,即使使用廉价的设备,精度也可以非常高。

在新的环境中,地标通常需要由机器人本身确定。 通过使用激光、声纳或相机收集的传感器数据,可以识别特定的地标类型(例如墙壁、门、走廊)并将其用于定位。

当前航向

[编辑 | 编辑源代码]

可以使用指南针传感器确定机器人的航向。 这些传感器通常由以 90° 角放置的两个磁场传感器组成。

这些传感器测量地球的磁场,并且可能会受到其他磁场的影响。 扬声器、变压器、电缆和冰箱磁铁会降低指南针的精度。 指南针传感器模块可以内置用于过滤交流磁场的滤波器。

华夏公益教科书