我正在研究一个部分通过超声波接近传感器导航的自主漫游车。在我们实现硬件之前,我们想用我现在正在编写的模拟器对我们的算法进行一些测试。
我遇到麻烦的一项任务是超声波传感器具有 60 度的视野。如果检测到对象,则该半径处沿该 60 度弧的任何点都可能有对象,但该半径以下的所有点都保证没有对象。
我需要做的是编写一个函数,该函数具有 (x,y) 坐标和方位角(我现在将其限制为 4 个基数)并让它返回给我一个半径内的像素列表和一个该半径处的像素列表。通过从多个位置和方位重复扫描,可以找到所有对象。
我最初的想法是迭代地工作。从传感器前面的行开始,以逐渐加宽的扫描(1、1、3、3、5、5、7、7 等)来回扫描。然而最终半径停止与行对齐。我的新搜索路径是弄清楚如何用像素绘制弧线,然后将半径逐步提高到第一次碰撞。
这个问题提出了一个类似的问题,但只对特定点感兴趣,所以我认为这是一个根本不同的问题。