我正在研究一个turtlebot的探索策略,它应该在一个已知的环境中导航(借助预先构建的地图)并搜索一个物体(例如一个红色的球)。
使用gmapping生成地图,现在我正在尝试实施一种探索已知地图的策略。虽然在地图上生成随机点,然后在这些点上执行360°扫描是一种选择,但我对这种方法并不太热心,因为它不能保证在物体存在的情况下找到它。
我想要的是一组点,这样在访问所有这些点并在每个点上执行360°扫描后,地图的整个可访问/可见区域都被机器人覆盖。 / p>
我觉得艺术画廊算法(这里描述:http://cs.smith.edu/~orourke/books/ArtGalleryTheorems/Art_Gallery_Full_Book.pdf)也实现了类似的东西,因此试图在我的场景中实现它。
艺术画廊问题需要多边形,我发现很难从通过在真实机器人上进行gmapping生成的地图生成多边形(尽管对于更简单的地图,它是可能的)。
我尝试在Python中使用三角形模块来创建对象簇的凸包,但这在嘈杂的环境中并不像下面链接的那样有用。 (我通过仅绘制障碍点将.pgm文件转换为.png)
注意:我的turtlebot没有激光扫描仪。它只有一个华硕Xtion Pro Live 。
我非常感谢以下方面的一些帮助:
提前谢谢。