【问题标题】:Find location of an object using 2D trilateration使用 2D 三边测量查找对象的位置
【发布时间】:2013-05-28 02:06:42
【问题描述】:

我正在尝试在程序中使用三边测量来模拟现实生活中的情况。 我有 3 个发射器,它们发出的信号在信号移动的每个方块后都会变弱。我正在使用一个二维数组和代码来生成一个粗略的数字圈。 这显示了其中一个发射器

00000000000000000000
00000000000000000000
00000000000000000000
00000000001000000000
00000000112110000000
00000001223221000000
00000001234321000000
00000012344432100000
00000001234321000000
00000001223221000000
00000000112110000000
00000000001000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000

我的问题是,如何在网格中找到接收器的位置? 如何找到所有三个圆圈相交的位置? 我尝试将圆的方程设置为彼此相等并求解,但这并没有给我任何东西,它给了我虚数。

如果有帮助,我还可以编辑代码以使圆圈未填充。 每个圆的半径都可以改变

接收器预先知道每个发射器的信号强度,并且强度也可以更改(在 100、200 或 300 范围内或任何其他范围内)

【问题讨论】:

  • 我还有一些问题。发射器是否有最小/最大半径。每个发射器的半径是否相同还是可以不同?
  • 您可以尝试使用 RANSAC:users.utcluj.ro/~raluca/prs_2012/prs_lab_02e.pdf
  • 每个接收器是否获得三个数字(信号强度)?给定两个信号强度,您知道到两个发射器的实际距离,还是只知道它们距离的比率?
  • @3xil3 他们可以是你想要的任何东西
  • @jwpat7 每个发射器都发出一个信号,所以接收器可以接收其中的 3 个信号,但考虑到信号强度,我不确定如何获得距离

标签: java algorithm geometry triangulation trilateration


【解决方案1】:

你基本上有2个问题

  1. 查找发射器的位置
  2. 计算交点

第 1 点:

点 1 可以通过以蛮力方式检查网格中的特定点来解决。然而,在尝试找到第一个时,有几个可能的优化。一旦找到一个,您就可以根据您刚刚找到的发射器的半径以及您需要找到的发射器,对其他发射器的位置做出有根据的猜测。

我建议以接近已知最大半径的间隔探测网格。假设所有发射器都完全在网格内,您可以如下图所示进行探测(假设您拥有的最大半径为 5)- A 标记探测点:

00000000000000000000
00000000000000000000
00000000000000000000
00000000001000000000
0000A00011211A000000
00000001223221000000
00000001234321000000
00000012344432100000
00000001234321000000
00000001A23221000A00
00000000112110000000
00000000001000000000
00000000000000000000
00000000000000000000
0000A00000000A000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000A00000000A00

有了这个,你可以用 8 个探针顶部探测你当前的网格。当涉及到与网格边缘的距离时,可以通过一些额外的检查来进一步减少这种情况。但在你的情况下,你会注意到你的第三个探测点落在一个半径内。从那里你可以中断探测并寻找找到的发射器的中心。

现在您至少找到了一个发射器的中心,您可以对其他发射器的位置进行有根据的猜测,因为您知道每个发射器的范围,并且您知道到下一个发射器的距离将是小于最大范围+最小范围的范围。同样,您可以在网格内以适当的间隔进行探测,以快速找到第二个发射器。再次计算第二个发射器的准确中心。

第三个发射器很容易计算。计算位于 2 个找到的发射器之间的线中心的点(在坐标系或网格中很容易做到)。缺失点应位于您在 2 个已找到的发射器之间绘制的假想线的任一侧,距离该线的中心点您尚未找到的发射器范围的最大距离。

第 2 点:

可以在这个post找到答案

另一种可能是TULIP Algorithm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多