Smac规划器
源代码和“README”包含了设计、说明和指标,可以在 Github 上找到。下面是一个简要解释,但是“README”包含了对框架和规划器实现的最详细概述。
Smac规划器插件实现了三种基于A*的规划算法:2D A*、Hybrid-A*和State Lattice路径规划器。重要的是要知道,在2021年6月和2021年12月,该软件包经历了多次**重大**更新,既改善了路径质量,又将运行时间提高了2-3倍。
Provided Plugins
下面列出的插件包含在“nav2_smac_planner”包中。有关各个配置信息,请参阅各个页面。
描述
``nav2_smac_planner``软件包包含了一个优化的模板化A*搜索算法,用于为多种类型的机器人平台创建多个基于A*的规划器。它使用模板节点类型来开发不同的基于搜索的规划器。
我们支持使用“SmacPlanner2D”规划器的圆形差分驱动和全向驱动机器人。该规划器实现了一个成本感知的A*规划器。我们支持使用“SmacPlannerHybrid”插件的类似汽车(Ackermann)和腿部车辆。该插件实现了一个混合A*规划器。我们支持非圆形、任意形状、任意模型的车辆,使用“SmacPlannerLattice”插件,该插件实现了一个状态格规划器(例如全向、差分、Ackermann、腿部、自定义)。它包含了用于Ackermann、腿部、差分驱动和全向驱动车辆的控制集和生成器,但您也可以为另一种机器人类型提供自己的控制集和生成器,或者使用不同的规划行为。
最后两个插件都是**运动可行**的,并支持**后退**。它们通过高度优化的启发式函数和高效的编程,具有与其2D对应物(如2D-A*和NavFn)类似的性能。下面是三个规划器的示例,规划一个大约75米的路径。
混合A*在144毫秒内计算出路径。
State Lattice在113毫秒内计算出路径
2D A*在243毫秒内计算出路径。
供参考:NavFn在146毫秒内计算出路径,包括一些不好的路径不连续性的痕迹
对于某些环境,通常的规划时间低于100毫秒,偶尔会接近200毫秒。所有三个规划器的性能与ROS导航生态系统中长期以来一直存在的简单2D搜索算法大致相当,同时实现了运动学可行性、倒车支持,并使用了现代的最新技术。