
“定位”这个概念大家都不陌生。可以说定位技术的飞速发展给我们的日常生活带来了极大的便利。
比如手机的定位导航系统,让“路痴”不再害怕走远;航天器可以在浩瀚宇宙中自由穿梭却无法逃脱人类的控制;无人驾驶技术离不开定位系统的支持.
接下来,我们将介绍一种简单的定位算法:三边测量定位算法。
[简介]
简单来说,你只需要做以下两件事就可以实现定位:
从某种意义上说,你能测到的数据几乎都取决于“位置”,你可以用测到的数据来定位。理想的情况是测量对“位置”非常敏感的数据。例如,如果你测量温度,你可能知道你在哪个洲。当然这个结果并不准确,但是如果你测量你相对于某些点的距离或者角度,你的位置可能会更准确。
参考点描述的是某个位置,正确的做法是描述它相对于某些参考点的位置。参考点可以是“你的家”、“北极星”或者“天上的一些卫星”。对我们来说,我们将使用锚。用三个锚点可以描述一个二维坐标系,我们可以在其中找到自己的位置。对于三维定位系统,我们需要四个定位点。
以下是一些例子:
定位系统测量参考点
GPS测距*卫星
Pozyx距离锚
摄像机文章图像摄像机指定方向
WiFi和接收信号强度数据库中指纹的指纹识别
数字罗盘磁场矢量磁场北极
航位推算加速度和角速度的初始位置和方向(来自陀螺仪)。
注意:一些GPS接收机也使用多普勒频移定位。
[三边测量法]
最常见的定位方法是使用基本几何来估计位置。通过测量离定位点的距离,你可以确定你的位置。如果只知道我们离锚点的距离,那么我们的位置一定会在一个以锚点P为圆心,测量距离D为半径的圆上。如果用三个锚点测量距离,会发现我们的位置在三个圆的交点上,如图1所示。这种方法称为三边测量(如果使用三个以上的锚点,则称为多边测距)。
这种方法的难点在于测量中总会有一些噪声,测量并不完美。因此,圆不会相交于一点。为了解决这个问题,我们试图找到最接近所有圆的点。
图1:三边测量
注意:你可以选择跳过算法的描述,直接进入下一篇文章:UWB是如何工作的。
[一个基本算法]
在本节中,我们将介绍一种简单的算法,它可以根据一系列距离测量来计算位置。这个基本算法不是最佳的,但是当距离测量足够精确时,它将工作得很好。
我们将解释2D定位的算法。位置p由坐标x和y给出。第I个定位点pi的位置坐标是(xi,yi)。如果我们有n个锚点,那么I的值是从1到n,这些锚点的坐标是已知的。
现在,位置p和第I个锚点之间的距离由di表示,其由以下公式给出:
等式两边的平方:
上述方程的问题在于,它包含了非线性项X 2和Y 2。我们可以通过从di^2中减去dN^2来消除这些非线性项,得到N-1个方程,其中第I个方程为:
现在我们有了一些关于坐标x和y的线性方程组,这很好,因为线性方程组很容易解。我们把它写成矩阵的形式:
其中包括:
我们现在可以解这个方程组了。
如果我们恰好有三个锚点:N=3,我们会得到两个方程来求解两个未知数。通过解下面的方程,我们可以找到P的位置:
如果我们有三个以上的锚点:n”3,我们得到的方程的个数比未知数的个数多,A的逆矩阵不存在。为了解决这个问题,我们可以使用伪逆算子来计算这个位置。这导致以下等式:
请注意,上面的公式将尽可能地将坐标x和y与所有不同的方程相匹配。所以用的锚多了,定位精度就会提高。
上述算法称为线性最小二乘算法。“线性”是因为我们线性化方程(通过平方)和“最小二乘法”是因为矩阵的(伪)逆矩阵会最小化所有方程的平方误差。
[扩展]
上述算法是一种非常简单且低复杂度的算法。如果你想了解更多先进的定位技术,我建议你寻找以下主题:非线性最小二乘法,卡尔曼滤波,粒子滤波,信念传播.
本文来源:并联机器人
声明:本文为转载文章。转载这篇文章的目的是为了传递更多的信息。版权归原作者所有。如涉及侵权,请联系边肖后台处理。
japan quarterly 日本季刊









