2d三边测量

时间:2012-03-17 04:24:20

标签: artificial-intelligence trilateration

我正在编写一些代码来参与AI挑战。人工智能挑战的主要目标是采用模拟机器人并将其通过迷宫导航到目的地区域。可选的次要目标是找到放置在未知位置的迷宫中的充电器。这都是在2D网格中完成的。

我的程序可以调用方法从充电器获取距离测量值。所以使用三边测量法,我应该能够通过调用这种方法来定位充电器,记录我的ai的当前位置以及充电器远离该点3倍的距离。

我在维基百科http://en.wikipedia.org/wiki/Trilateration上找到了这个trilateration的例子,但这适用于3d空间。我只处理2D空间。此外,我不明白如何使用维基百科中显示的公式,在网上搜索插入数字的工作示例,并且谷歌搜索时很难煮沸到最终坐标。

我不是数学专业;我只是一个探索AI问题的狂热爱好者。

如何计算问题的解释和分步示例是我需要的,因为数学不是我的强项。以下是一些示例数据:

  • 点1:x = 39,y = 28,距离= 8
  • 点2:x = 13,y = 39,距离= 11
  • 第3点:x = 16,y = 40,距离= 8

非常感谢使用我的样本数据的任何示例。一旦我能够掌握数学知识,那么编程就会非常直接。

1 个答案:

答案 0 :(得分:11)

正如Wikipedia trilateriation article描述的那样,你通过连续计算来计算(x,y)坐标:e x ,i,e y ,d, j,x,y。您必须熟悉矢量符号,因此,例如,e x =(P2 - P1)/‖P2 - P1‖表示:

  • e x,x =(P2 x - P1 x )/ sqrt((P2 x - P1 x 2 +(P2 y - P1 y 2 )< / LI>
  • e x,y =(P2 y - P1 y )/ sqrt((P2 x - P1 x 2 +(P2 y - P1 y 2 )< / LI>

您的数据是:

  • P1 =(39,28); r 1 = 8
  • P2 =(13,39); r 2 = 11
  • P3 =(16,40); r 3 = 8

计算步骤如下:

  1. e x =(P2 - P1)/‖P2 - P1‖
  2. i = e x (P3 - P1)
  3. e y =(P3 - P1 - i·e x )/‖P3 - P1 - i·e x
  4. d =‖P2 - P1‖
  5. j = e y (P3 - P1)
  6. x =(r 1 2 - r 2 2 + d 2 )/ 2d
  7. y =(r 1 2 - r 3 2 + i 2 + j 2 )/ 2j - ix / j