只利用距离和方位角如何确定位置?

11

三角定位是通过检查您与三个已知目标的角度来工作。

“我知道那是亚历山大灯塔,它在这张地图上的位置为(X,Y),并且在我右侧90度。” 重复两次以获取不同的目标和角度。

三边测量是通过检查您与三个已知目标的距离来工作。

“我知道那是亚历山大灯塔,它在这张地图上的位置为(X,Y),而我距那里100米。” 重复两次以获取不同的目标和范围。

但是这两种方法都依赖于知道您正在看什么。

假设您处于一片森林中,无法区分树木,但您知道关键树木的位置。 这些树被精选为“地标”。

您有一个慢慢穿过森林的机器人。

您是否知道仅基于角度和范围确定位置的方法,利用地标之间的几何关系? 请注意,您也会看到其他树木,因此您将不知道哪些树是关键树木。 忽略目标可能被遮挡的事实。 我们的预算法会处理这个问题。

1)如果存在,它被称为什么? 我找不到任何内容。

2)您认为有两个相同的位置'命中'的可能性有多大? 我想这是相当罕见的。

3)如果有两个相同的位置“命中”,我如何在移动机器人后确定我的确切位置。 (我假设在重新定位机器人后连续出现两次完全相同的角度的几率在统计学上是不可能的,除非森林像玉米一样成行)。 我只需再次计算位置并祈求好运吗? 还是我会以某种方式将先前的位置估计纳入下一个猜测中?

如果这个已经存在,我想阅读有关它的信息。如果不存在,我会将其作为一个副项目进行开发。现在我没有时间重新发明轮子,也没有时间从零开始实现这个项目。因此,如果它不存在,我将不得不想出另一种方法来本地化机器人,因为这并不是该研究的目的。如果它存在,希望它是半易操作的。

我猜想,如果你的机器人同时知道了这三个手动选择的地标的位置,问题就会得到解决。如果我理解你的问题,你想知道如果机器人只看到其中一个或两个地标时可以做出哪些关于位置的评估。是这样吗? - Amichai
不,我的问题是:假设你在森林里,周围都是树木。你有一张覆盖大面积(数英里)的地图,上面标注了树木的位置。你知道在你周围某个地方,有些树木可以用作地标,但你不知道这些树木具体在哪里。只凭借测距和测向工具,你如何确定自己的位置? - Phil Salesses
5个回答

10

非常好的问题。

  1. 你正在研究的问题名称是本地化,它与地图制作一起是目前机器人领域中最重要和最具挑战性的两个问题。简单地说,本地化是“根据一些传感器观测结果,我如何知道我的位置?”的问题。

  2. 地标识别是支持大部分机器人实践的隐含“技巧”之一。如果不能唯一地标识一个地标,则可能会出现高比例的误报,特别是考虑到真实传感器是随机的(即/结果会存在一些不确定性)。您选择适当的本地化方法,几乎肯定取决于您能够唯一地标识地标或将地标模式与地图相关联的程度。

  3. 在许多情况下,最简单的自我本地化方法是蒙特卡罗本地化。实现这种方法的一种常见方式是使用粒子滤波器。其优点是,当你没有很好的运动模型、传感器能力和需要处理意外效应(如移动障碍物或地标遮蔽)时,它们可以处理得很好并且非常健壮。每个粒子代表车辆的一个可能状态。最初,粒子是均匀分布的,随着车辆的移动和添加更多的传感器观测结果,粒子状态被更新以远离不太可能的状态——在给定的示例中,粒子将从与当前位置估计应可见的范围/方位不匹配的区域移开。给定足够的时间和观测,粒子倾向于聚集在车辆可能位于的高概率区域。查阅Sebastian Thrun的工作,特别是他的书“概率机器人学”。


IMU的方位误差为正负2度,范围精度为3厘米。您认为使用Jonas下面的方法进行相对良好的本地化是否可能? - Phil Salesses
你可以尝试使用Jonas的方法 - 在某些条件下它可能有效,特别是如果地标可以被唯一识别并且分布良好。然而,这不是一个特别健壮的方法 - 因此它不太可能应对传感器误差、地标测量误差、随时间变化以及缺乏足够数量的地标的可见性等真实世界条件。 - Andrew Walker
你有没有参加机器人大战?更重要的是,你的机器人参加了吗? - Phil Salesses
很遗憾,看起来很有趣。我的背景更多是来自学术界 - 我正在攻读机器人运动规划的博士学位。 - Andrew Walker

2
我假设您想从森林中启动机器人。我进一步假设,机器人可以使用角度和距离计算每棵树的位置。
然后,您可以通过迭代树并计算与所有邻居的距离来识别地标。在Matlab中,您可以使用“pdist”获取所有(唯一的)成对距离的列表。
然后,您可以遍历树以识别地标。对于每棵树,将其与所有邻居的距离与已知的地标之间的距离进行比较。每当您找到一个候选地标时,您都会检查其可能的地标邻居是否具有正确的距离标记。由于您说您总是应该能够同时看到五个地标,因此您将尝试匹配20个距离,因此我认为误报的机会不太高。如果候选地标及其候选同伴地标未匹配完整的相对距离模式,则继续检查下一棵树。
一旦找到所有地标,您只需三角剖分即可。
请注意,取决于您能够测量角度和距离的精度如何,您需要能够在任何给定时间看到更多的地标树。我猜测,如果您具有高测量精度,则需要足够密集的地标树,以便您可以同时看到至少三个。

当你说“如果没有,那么你就犯了一个错误”时,我实际上笑了。我现在非常不在自己的领域内,迫不及待地想要找到立足之地。我们有标记的地标,所以我们可以同时看到5个...假设有时会有遮挡。 - Phil Salesses
邻居在Delaunay三角剖分中的含义是什么?http://www.mathworks.com/access/helpdesk/help/techdoc/ref/delaunay.html - Phil Salesses
@pinnacler:我认为pdist应该就足够了。我试图改进我对“错误”的解释。 - Jonas

2
你要找的是蒙特卡罗定位(也称为粒子滤波器)。这里有一个关于这个主题的好资源。或者从概率机器人学领域中选择Dellaert、Thrun、Burgard或Fox的任何东西。如果你感到有雄心壮志,可以尝试去实现一个完整的SLAM解决方案——一堆库被发布在这里。或者,如果你真的非常有雄心壮志,你可以使用因子图从第一原理开始实现。

0

我猜你只需要知道两个地标之间的距离和看到它们的顺序(例如,从左到右看到点A和B)


0
  • (1) "机器人地图制作"和"感知别名"。
  • (2) 两个相同的击中是不可避免的。由于机器人只能区分有限数量X的可区分的树木配置之间的差异,即使这些配置是完全随机的,几乎肯定至少有一个位置看起来“与某个其他位置相同”,即使您遇到远远少于X/2的不同树木。那些被称为“生日悖论碰撞”。您可能很幸运,您实际上所处的特定位置确实是唯一的,但我不会冒险去赌我的机器人。

因此,您:

  • (a)拥有大面积地图,并标记了其中一些树木。
  • (b)机器人在实际的森林中的某个位置,没有查看地图,已经查看了附近的树木,并生成了所有树木的内部地图及其相对位置。
  • (c)对于机器人而言,每棵树看起来都与其他每棵树相同。
  • 您想找到:机器人在大地图上的位置是哪里?

如果每棵实际的树上都有一个独特的名字,机器人可以读取它,然后(其中一些)这些树和它们的名称出现在地图上,那么这将是微不足道的。

一种方法是为每棵树附加一个(不一定唯一的)“签名”,描述其相对于附近树木的位置。

然后,当你行驶时,机器人会驱动到一棵树旁边并找到该树的“标志”,然后你可以在地图上找到与该标志“匹配”的所有树木。 如果地图上只有一个唯一的树木与之相匹配,那么机器人所看到的树木可能是地图上的那棵树(耶,你知道机器人的位置了)--在机器人相对于匹配树木的位置在地图上放置一个重要但暂定的圆点--机器人旁边的树木绝不是地图上的其他任何一棵树木。 如果地图上有几棵树木匹配 - 它们都具有相同的非唯一标志 - 那么你可以在地图上放置一些不太重要的暂定圆点,表示机器人相对于每个匹配树木的位置。 遗憾的是,即使找到一个或多个匹配项,机器人所看到的树木仍然可能根本不在地图上,其标志恰好与地图上的一个或多个树木相同,因此机器人可能在地图上的任何位置。 如果地图上没有任何树木与之匹配,则机器人所看到的树木绝对不在地图上。(也许以后,一旦机器人确切知道自己的位置,它应该开始将这些树木添加到地图中?)
当你沿着路径行驶时,你会按照自己估计的方向和速度推动点。
然后,当你检查其他树木时,可能在沿着路径行驶一段距离后,你最终会在地图上有很多点,并且希望在实际位置有一个重叠程度高的重型集群,而每个其他点都是可以忽略的孤立巧合。
最简单的签名是从特定树到附近树的距离列表。当地图上的特定树与森林中的特定树匹配时,对于地图上每棵附近的树,都存在一个相应的森林中的附近树,其距离“相同”,就你所知道的距离和角度误差而言。
(通过“附近”,我的意思是“足够接近机器人以便能够明确确认树木是否实际存在”,尽管使用类似“我的机器人可以看到范围为R的所有树木,因此我只会尝试匹配距离特定树木的圆形范围内R*2/3的树木,并且我的距离列表仅包括距离特定树木的圆形范围内R*1/3的树木)
如果您大致知道自己的南北方向,您可以创建“更独特”的签名,即在地图上和(希望)在真实丛林中具有更少的虚假匹配。 对于机器人旁边的树的“匹配”,当地图上每个附近的树都有一个相应的树在“相同”的距离和方向处,就像您用已知的距离和角度误差所能确定的一样。 比如说,“Fred”树在地图上有另一棵树,距离它10米,在N到W象限,但是机器人旁边的树明显没有任何在N到W象限这个距离上的树,而是有一棵树在南面10米开外。 在这种情况下,(使用更复杂的签名),您肯定可以告诉机器人不在Fred旁边,即使简单的签名会给出(错误的)匹配。
另一种方法: “数字纸张”解决了类似的问题...您能否按特定设计模式种植几棵树,以便轻松识别?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接