我的目标是让自主机器人使用摄像头在有围墙的迷宫中导航。摄像头固定在机器人顶部并朝下,以便能够从上方查看墙壁和机器人。
根据我的经验,我采取的最直接的方法是
- 阈值图像以提取红墙
- 执行 Canny 边缘检测
- 使用霍夫变换从边缘检测强线
如下所示,经过一些参数调整
我想让机器人向前移动并避免“撞到”红墙。问题是从霍夫变换中每个墙边缘检测到多条线。我的一个想法是执行 k-means 聚类以对线条进行聚类并找到每个聚类的中心(均值),但我不知道墙边的数量(因此不知道要输入 k-means 算法的聚类数量) 我将随时在迷宫中导航(前面的墙壁、后面的墙壁、多转弯路口等)。
任何帮助找到一个好的方法来获得一致的墙壁位置来比较机器人的位置(在每个图像帧中总是固定的)在任何时候导航迷宫将不胜感激。我也对解决这个问题的任何其他方法持开放态度。