Navigation中全局路径规划效果对比

A*算法

Navigation中全局路径规划效果对比效果图中比较光滑,跟学长沟通时学长说A*和Djikstra算法是基于八连通的,得到的路径是折线相连接。因此不会这么光滑,但是后来学长说navigation包中的是基于梯度势场的,而非栅格,这种找到的路径在八连通意义上可能不是最佳的。但是路径会比较光滑。
但是在规划的时候,有时会报错,或者是后退。报错显示如下:
Navigation中全局路径规划效果对比在设置 use_grid_path后路径会变成沿着栅格,效果如下:
Navigation中全局路径规划效果对比不过这种在导航过程中,有时会报错,类型和之前提到的一样。此时只有local_path。local_path也很奇怪。
Navigation中全局路径规划效果对比

Dijkstra算法

Navigation中全局路径规划效果对比在使用这个算法时,也会报错,得不到路径。但是在一段时间后会重新得到。
使用use_grid_path后,效果和A*参数改为use_grid_path后效果类似,会有很多折线出现。

ARA* 和AD*

ARA*
Navigation中全局路径规划效果对比AD*

Navigation中全局路径规划效果对比这两个算法都比较光滑,其中ARA算法中一个特性是将A算法和预先设计的光滑的运动基元结合起来。最后是有由这些基元拼接,所以相对比较光滑。

遇到的问题

在刚开始的时候,在之气的turtlebot_navigation中有相关launch以及参数,因此就直接使用了,由于也没报啥错,感觉没啥问题。但是后来发现用A*算法和其他的几个算法,效果都很相似,并且在use_grid_path参数修改后效果也不会有折线。这就很不应该了,最后发现在turtlebot_navigation中的参数,是默认的,虽然加载了global_planner的参数,但是在move_base中全局规划路径插件这个参数未指定。最后指定参数后又重新测试了这几个算法。

然后也查了一些ros 中插件的知识

参考博客: https://blog.****.net/xmy306538517/article/details/79032324?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare

最后!以后还是应该自己参照wiki一些参数来自己写。