【问题标题】:How to tell if N circle intersect each other and in which point?如何判断N个圆是否相交以及在哪一点?
【发布时间】:2015-04-09 17:15:25
【问题描述】:

这是我面临的问题:我有一个计划,但充满了障碍。我有一个愚蠢的迷路机器人。机器人不知道自己在哪里!但他知道他可以看到障碍物的一些顶点……并且使用它的传感器,他可以知道自己与每个可见顶点之间的距离。每个顶点都是障碍物的一部分。机器人不知道他的位置,所以他假设他的位置是 (0, 0)。机器人怎么知道他在地图上的位置。我正在尝试通过多点定位来解决这个问题。

问题是:如何找到N个圆之间的交点,并告诉它发生的确切点?

在任何情况下,我还没有说清楚,请问,我可以提供更多信息。

编辑:(考虑到相关的问题,我会尽量说清楚)

  • 我确实想知道是否所有的圆都有一个(并且只有一个)交点,我想知道它是什么点。
  • 考虑到机器人是 (0, 0),将顶点位置提供给机器人,因为他不知道自己在哪里!所以,他只能告诉每个顶点的距离和角度(实际上,他收到了坐标)。
  • N大于3

【问题讨论】:

  • 那么...trilateration?
  • 机器人是否知道顶点的位置?
  • 是的,他们是!但是……它们是相对于机器人而言的。机器人不知道与地图上 (0, 0) 相关的 X 顶点的坐标。只对他自己。
  • 所以你想知道所有的圆是否有一个共同的交点?或者你想知道每对圆相交的地方吗?在这一点上问题尚不清楚。同样,你可以从你所知道的开始。如果两个圆相等,则它们在所有点相交;如果它们不相等,技术上它们可能会在一点或两点相交。当然,我说的是无穷大;但这就是你应该开始的地方。但在我说更多之前先澄清一下。
  • 我很困惑。所以你有 N 个顶点 V0, V1... VN;并且每一个都是 R0, R1, ... RN 在 (0,0) 处与机器人的距离;你画圆心和半径为 (V0, R0), (V1, R1),... (VN, RN);你想找到所有这些圆圈的交点吗?当然,它们在 (0,0) 处相交。这实际上是同义反复。

标签: algorithm math geometry artificial-intelligence robotics


【解决方案1】:

所以,重申一下,您的机器人拥有所有顶点的“地图”,因为它们与全局位置 VG = {V1g, ..., VNg} 相关。它具有所有顶点 VL = {V1l, ..., VNl} 的局部视图,由与其位置的角度和距离给出 - 但是它不知道哪个顶点是全局的。它想知道它的全球地位。还给出了全局顶点的“唯一”分布。

如果是这样:

从 VG -> VL 中至少知道一个顶点映射使问题变得微不足道。因此,机器人需要首先这样做(再次假设独特的布局)。不确定任何点形状/模式匹配算法,但我猜有一些。您可能可以使用一些技巧,例如凸包是否是唯一的,这会使问题变得微不足道。也可以从图论的角度来解决这个问题,比如构建原始全局地图的最小生成树,然后将每个顶点与局部集进行匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    相关资源
    最近更新 更多