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