2012-03-17 106 views
5

我正在编写一些代码来参与AI挑战。 AI挑战的主要目标是采用模拟机器人,并通过迷宫导航到目标区域。可选的次要目标是找到放置在迷宫中的未知位置的充电器。这全部在2D网格中完成。二维三角测量

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

我在wikipedia http://en.wikipedia.org/wiki/Trilateration上发现了这个三边测量的例子,但是这适用于三维空间。我只处理2D空间。此外,我不明白如何使用维基百科中显示的公式,在网络上搜索插入数字的工作示例,并且Google搜索中最终的坐标很少。

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

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

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

任何使用我的样本数据的例子将不胜感激。一旦我可以将我的头围绕数学,编程将非常直接。

+2

只要采取三维公式和设置高度为零。 – 2012-03-17 04:57:03

+0

这肯定会工作,但我不知道如何使用维基百科上的公式。我正在寻找如何通过计算的一步一步的例子。 – Nebri 2012-03-17 15:39:51

+0

请问哪种AI挑战? – 2012-03-17 23:50:48

回答

10

由于维基百科trilateriation article介绍,您计算(X,Y)坐标通过连续计算:电子 X,I,E ÿ,d,J,X,Y。你必须熟悉向量符号,因此,例如,电子 X =(P2 - P1)/‖P2 - P1‖指:

  • ë X,X =(P2 X - P1 X)/ SQRT((P2 X - P1 X) +(P2 ý - P1 Ÿ))
  • ë X,Y =(P2 ý - P1 Ÿ)/ SQRT((P2 X - P1 X) +(P2 ý - P1 Ÿ))

您的数据是:

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

的计算步骤如下:

  1. Ë X =(P2 - P1)/‖P2 - P1‖
  2. 我= E X(P3 - P1)
  3. Ëŷ =(P3 - P1 - I·电子 X)/‖P3 - P1 - I·电子 X
  4. d =‖P2 - P1‖
  5. J =ËÝ(P3 - P1)
  6. X =(R 1 - R + d )/ 2D
  7. Y =(R 1 - R + I + J )/ 2J - IX/J
+0

完美谢谢。现在我可以理解这些变量来自哪里。当然,我必须做一些练习,但这是一个好的开始。谢谢唐:)。 – Nebri 2012-03-18 03:15:35

+0

以及获取未知点的真实坐标的最后一步,告诉Wiki如下:'8。 p1,2 = P1 + x * ex + y * ey'给出原始坐标系中的点,因为基本单位向量“ex”和“ey”是在原始坐标系中表示的。 - 来自匿名用户编辑的评论 – Dariusz 2013-05-09 08:10:39

+0

http://stackoverflow.com/questions/23400351/localizing-a-point-using-distances-to-three-other-points-in-3-d/23401529?noredirect = 1#23401529请问您是否也可以查看这篇文章? – padawan 2014-05-01 18:47:28