- (1)“机器人映射”和“感知混叠”。
- (2) 两次相同的命中是不可避免的。由于机器人只能区分有限数量 X 的可区分树配置,即使配置是完全随机的,几乎可以肯定至少有一个位置看起来与其他位置“相同”,即使您遇到的位置远少于 X /2 不同的树。这些被称为“生日悖论碰撞”。您可能很幸运,您所在的特定位置实际上是独一无二的,但我不会把我的机器人打赌。
那么你:
- (a) 有一张大面积的地图,上面有一些但不是所有的树。
- (b) 在实际森林中某处的机器人,在不看地图的情况下,已经查看了附近的树木,并生成了一个小区域内所有树木的内部地图及其与它们的相对位置
- (c) 对于机器人来说,每棵树看起来都和其他树一样。
- 你想找:大地图上的机器人在哪里?
如果只有每棵实际的树上写有机器人可以读取的唯一名称,然后(其中一些)这些树及其名称出现在地图上,这将是微不足道的。
一种方法是在每棵树上附加一个(不一定是唯一的)“签名”,描述其相对于附近树木的位置。
然后,当您沿途行驶时,机器人会驶向一棵树并为该树找到一个“签名”,然后您会在地图上找到与该签名“匹配”的所有树。如果地图上只有一棵独特的树匹配,那么机器人正在寻找的树可能就是地图上的那棵树(是的,你知道机器人在哪里)——在地图上给机器人的亲戚放一个沉重但暂定的点匹配树的位置——机器人旁边的树肯定不是其他树地图上的树。如果地图上的几棵树匹配——它们都具有相同的非唯一签名——那么你可以在地图上相对于它们中的每一个的机器人位置放置一些权重较小的试探点。唉,即使找到一个或多个匹配项,仍然有可能机器人正在查看的树根本不在地图上,并且该树的签名巧合地与地图上的一棵或多棵树相同,并且所以机器人可以在地图上的任何地方。如果地图上没有一棵树匹配,那么机器人正在查看的树肯定不在地图上。(也许稍后,一旦机器人确切地知道它在哪里,它应该开始将这些树添加到地图中?)
当您沿着小路行驶时,您会将这些点推向您估计的行进方向和速度。
然后,当您检查其他树时,可能在沿着小路进一步行驶后,您最终会在地图上看到很多点,并且希望在实际位置有一个重的、高度重叠的簇,并且希望每个其他点都是容易忽略的孤立的巧合。
最简单的签名是从特定树到附近树的距离列表。地图上的一棵特定树与森林中的一棵特定树“匹配”,对于地图上的每一棵附近的树,在“相同”距离的森林中都有对应的附近树,尽可能远告诉你已知的距离和角度误差。
(通过“附近”,我的意思是“足够近,机器人应该能够肯定地确认树确实在那里”,尽管用类似“我的机器人可以看到所有树的范围”可能更简单R,所以我只会费心尝试匹配距离我的机器人 R*1/3 圈内的树木,而我的距离列表仅包括距离 R*2/3 圈内的树木我要匹配的特定树”)。
如果您甚至非常粗略地知道您的南北方向,您可以创建“更独特”的签名,即在地图上和(希望)在真实森林中具有更少的虚假匹配。机器人旁边的树的“匹配”发生在,对于地图上的每棵附近的树,森林中都有一棵对应的树,在“相同”的距离和方向上,就你所知的距离而言和角度误差。假设您看到地图上的树“Fred”在距离它的 N 到 W 象限 10 米处有另一棵树,但机器人旁边的一棵树在 N 到 W 象限的那个距离内绝对没有任何树,但它在南边 10 米处有一棵树。在那种情况下,那么(使用更复杂的签名)你可以肯定地告诉机器人不在 Fred 旁边,
另一种方法:“数字纸”解决了类似的问题……你能以专门设计的易于识别的图案种植几棵树吗?