Given a polygonal workspace $W$, a depth sensor placed at point $p=(x,y)$ inside $W$ and oriented in direction $\theta$ measures the distance $d=h(x,y,\theta)$ between $p$ and the closest point on the boundary of $W$ along a ray emanating from $p$ in direction $\theta$. We study the following problem: For a polygon $W$ with $n$ vertices, possibly with holes, preprocess it such that given a query real value $d> 0$, one can efficiently compute the preimage $h^{-1}(d) \subset W\times \mathbb{S}^1$, namely determine all the possible poses (positions and orientations) of a depth sensor placed in $W$ that would yield the reading $d$, in an output-sensitive fashion. We describe such an output-sensitive data structure, which answers queries in $O(k \log n)$ time, where $k$ is the number of vertices and maximal arcs of low degree algebraic curves constituting the answer. We also obtain analogous results for the more useful case (narrowing down the set of possible poses), where the sensor performs two antipodal depth measurements from the same point in $W$. We then describe simpler data structures for the same two problems, where we employ a decomposition of $W\times \mathbb{S}^1$, and where the query time is output-sensitive relative to this decomposition. Our software implementation for these latter structures is open source and publicly available. Although robot localization is often carried out by exploring the full visibility polygon of a sensor placed at a point of the environment, the approach that we propose here opens the door to sufficing with only few depth measurements, which is advantageous as it allows for usage of inexpensive sensors and could also lead to savings in storage and communication costs.
翻译:给定一个多边形工作空间$W$,一个放置于$W$内部点$p=(x,y)$处、朝向为$\theta$的深度传感器,可测量沿从$p$点出发、方向为$\theta$的射线上$p$与$W$边界最近点之间的距离$d=h(x,y,\theta)$。我们研究以下问题:对于一个具有$n$个顶点(可能包含孔洞)的多边形$W$,对其进行预处理,使得给定一个查询实数值$d>0$时,能够高效计算原像$h^{-1}(d) \subset W\times \mathbb{S}^1$,即以输出敏感的方式确定所有放置在$W$中可能产生读数$d$的深度传感器的位姿(位置和朝向)。我们描述了一种输出敏感的数据结构,其查询时间复杂度为$O(k \log n)$,其中$k$是构成答案的低次代数曲线的顶点和最大弧的数量。对于更实用的情形(缩小可能位姿的集合),即传感器在$W$中同一点执行两次对跖深度测量,我们也获得了类似结果。随后,我们为这两个问题描述了更简化的数据结构,其中采用了$W\times \mathbb{S}^1$的分解方法,且查询时间相对于该分解是输出敏感的。我们针对后一种结构的软件实现是开源且公开可用的。尽管机器人定位通常通过探索传感器在环境点所获的完整可见多边形来实现,但本文提出的方法为仅需少量深度测量即可完成定位开辟了新途径,这具有显著优势:既允许使用低成本传感器,也可能降低存储与通信成本。