Smac Planner

可以在 Github 上找到源代码和包含设计、说明和指标的“README”。下面可以找到简要说明,但“README”包含框架和规划器实现的最详细概述。

Smac Planner 插件实现了三种基于 A* 的规划算法:2D A*、Hybrid-A* 和 State Lattice 路径规划器。 值得注意的是,在 2021 年 6 月和 2021 年 12 月,该软件包收到了几次**重大**更新,将路径质量和运行时间提高了 2-3 倍。

提供的插件

下面列出的插件位于“nav2_smac_planner”包内。请参阅页面以了解各个配置信息。

描述

nav2_smac_planner 包包含一个优化的模板化 A* 搜索算法,用于为多种类型的机器人平台创建多个基于 A* 的规划器。它使用模板节点类型来开发不同的基于搜索的规划器。

我们使用实现成本感知 A* 规划器的 SmacPlanner2D 规划器支持圆形差速驱动和全向驱动机器人。我们使用实现混合 A* 规划器的 SmacPlannerHybrid 插件支持汽车类(阿克曼)和腿式车辆。我们使用实现状态格规划器的 SmacPlannerLattice 插件支持非圆形、任意形状、任何模型车辆(例如全向、差速、阿克曼、腿式、自定义)。它包含用于阿克曼、腿式、差速驱动和全向车辆的控制集和生成器,但您可以为其他类型的机器人提供自己的控制集和生成器,或者拥有不同的规划行为。

最后两个插件都是**运动学上可行的**,并且支持**反转**。通过高度优化的启发式函数和高效的编程,它们的性能与 2D-A* 和 NavFn 等 2D 对应插件相似。下面是 3 个规划器的示例,规划了一条大约 75 米的路径。

  • Hybrid-A* 在 144 毫秒内计算出路径

  • State Lattice 在 113 毫秒内计算出路径

  • 2D A* 在 243 毫秒内计算出路径

  • 供参考:NavFn 在 146 毫秒内计算出路径,包括一些令人讨厌的路径不连续伪影

在某些环境下,规划时间通常低于 100 毫秒,有时甚至接近 200 毫秒。这 3 个规划器的性能与长期以来一直是 ROS 导航生态系统支柱的简单 2D 搜索算法大致相当,但还实现了运动学可行性、支持倒车并使用了现代最先进的技术。

Paths generated by the Smac Planners

Figure 7 2D A* (Panel 1), Hybrid-A* (Panel 2), State Lattice (Panel 3)