我有一个在房间中导航的移动机器人,我已经有了房间的地图。我正在使用ROS的navigation_stack。我正在使用旋转编码器进行里程测量。我正在使用robot_pose_ekf融合来自旋转编码器和IMU的数据。我正在使用amcl进行本地化,并使用move_base进行规划。

现在,我必须编写一个完整的Coverage路径规划算法,我正在关注本文,我想问一问在其中生成Boustrophedon路径(简单的向前和向后运动)的最佳方法是什么?一个没有障碍的单元(可以是矩形,梯形等)?我读了一篇论文,其中他们使用了不同的模板,并以某种方式将它们组合起来,以得出Boustrophedon路径。我们还有其他方法可以生成牛牙裂路径吗?如果有人可以建议如何在ROS中实现它,那就太好了。

如果您需要我的更多信息,请告诉我。任何帮助将不胜感激。

#1 楼

我在大学里实现了这样的事情:

https://github.com/Auburn-Automow/au_automow_common/tree/master/automow_planning

基本上我们只是通过了Boustrophedon路径作为move_base的目标。这是一个播放包文件的视频:

https://www.youtube.com/watch?v=R7nLgYquECg

这是我们为计划人员:

https://github.com/ashgti/elect6350/tree/master/final_project

也许其中的某些内容会给您一些想法。在我们的例子中,我们不需要在比赛中进行大量的单元分解,而是依靠move_base的避障,但是在我们的论文中,我们确实展示了我们的实现在更复杂的场景下的工作:

https://github.com/ashgti/elect6350/blob/master/final_project/images/obstacle.pdf

我从经验中学到的是move_base非常适合最终获得成功A指向B并在此过程中避免障碍,但是很难按照计划者提出的方法对其进行调整。可以想像,在修剪草时,您希望尽可能靠近这条路,仅在绝对必要时才发散以避免障碍。用move_base很难做到这一点。

所以YMMV,但是move_base至少是一个起点。希望我链接的某些内容会有用。祝你好运!