Smac Planner
SmacPlanner 是 Nav2 Planner 的插件。它目前包括 3 个不同的插件: 1.SmacPlannerHybrid: 高度优化完全可重新配置的 Hybrid-A* 实现,支持 Dubin 和 Reeds-Shepp 模型(腿足模型、ackermann 模型和汽车模型)。 2.SmacPlannerLattice: 高度优化完全可重新配置的状态格实现,支持可配置的最小控制集,并为阿克曼模型、腿足模型、差速模型和全向模型提供了控制集。 3.SmacPlanner2D:高度优化完全可重构的基于网格的 A* 实现,支持 8 个连接的邻域模型。 它还介绍了以下基本构建块 CostmapDownsampler:一个库,用于接收代价图对象并将其下采样到另一个分辨率。 AStar:规划插件使用搜索通用且高度优化的 A* 模板库。使用它还可以提供用于规划的其他模板。CollisionChecker:基于机器人半径或足迹的碰撞检查。 Smoother:一个简单的路径平滑器,用于平滑 2D、Hybrid-A* 和 State Lattice 路径。 有关其他参数说明,请参阅其配置指南页面。 介绍说明: nav2_smac_planner 包含一个优化的模板化 A* 搜索算法,用于为多种类型的机器人平台创建多个基于 A* 的规划器。它是由 Steve Macenski 在三星研究院时建造的。使用实现代价感知 A* 规划器的 SmacPlanner2D 规划器支持圆形差速驱动和全向驱动机器人。使用实现 Hybrid-A* 规划器的 SmacPlannerHybrid 插件支持腿足机器人、汽车、类车和阿克曼车辆。支持实现状态栅格规划器的 SmacPlannerLattice 插件可用于非圆形、任意形状的任何模型车辆。它包含用于阿克曼、腿式、差速驱动和全向车辆,但您可以为另一种机器人类型提供自己的,或具有不同的规划行为。最后两个插件对于曲率约束或运动学上可行的规划也很有用,例如在高速规划机器人以确保它们不会翻转或以其他方式打滑时失控。它也适用于需要基于姿势的碰撞检查的非圆形机器人(例如差速/全向传动系统的大矩形或任意形状的机器人)。 SmacPlannerHybrid 实现了 Hybrid-A* 规划器,如 Practical Search Techniques in Path Planning for Autonomous Driving 中提出的那样,修改了启发式遍历函数以提高路径质量,而无需昂贵的基于优化的平滑处理。 SmacPlannerLattice 实现了 State Lattice 规划器。虽然我们没有与State Lattices中的最优、平滑、非完整移动机器人运动规划(Optimal, Smooth, Nonholonomic MobileRobot Motion Planning in State Lattices)完全相同的方式实现它(使用为离散状态空间中的约束运动规划生成近最小跨度控制集找到控制集),但是它非常相似,可以作为一个很好的参考。使用了对接近分析扩展和改进的启发式函数的额外优化,在很大程度上与 Hybrid-A* 相匹配,以允许它们共享这些优化的实现,以更快地推动搜索朝着目标前进。 总结: SmacPlannerHybrid 设计用于: 1.阿克曼、汽车和类车机器人 2.高速或曲率受限的机器人(以免高速翻转、打滑或倾卸负载) 3.任意形状、非圆形差速或全向机器人需要运动学上可行的规划和 SE2 碰撞检查 4.腿式机器人 SmacPlannerLattice 设计用于: 1.任意形状的非圆形机器人需要运动学上可行的规划,并使用传动系统的全部功能进行 SE2 碰撞检查 2.灵活使用其他机器人模型类型或提供非圆形差速器、ackermann 和 omni支持 SmacPlanner2D 设计用于: 1.圆形、差速或全向机器人 2.相对于环境大小的相对较小的机器人(例如走廊中的遥控车或会议中心中的大型机器人),可以用圆形足迹来近似。 特性: 我们通过以下方式进一步改进了 Hybrid-A*: 通过使用小 10 倍的motion primitive元进行搜索(与其上采样率相同),消除了对上采样的需求。 多分辨率搜索允许在更宽的空间中以更粗略的分辨率进行规划(更快的 O(N^2))。 搜索中的代价感知惩罚函数导致更平滑的计划(进一步降低平滑的要求)。 梯度下降,基本的但快速更平滑 通过高度优化模板A*算法,比原论文更快的规划。 通过自定义预计算启发值、motion primitive和其他功能加快规划。 通过运动模型、代价地图分辨率自动调整搜索运动模型大小。 如果找不到精确路径或在无效空间中,则选择在误差范围内接近的最近路径。 多模型混合搜索,包括 Dubin 和 Reeds-Shepp 模型。可以轻松添加更多模型。 高单元和集成测试覆盖率,doxygen 文档。 使用现代 C++14 语言功能,各个组件很容易重用。 速度优化:主循环中没有数据结构图查找、接近零复制的主循环、动态生成的图和基于动态规划的障碍启发式算法、可选的启发式算法重新计算以用于同一目标的后续规划请求等。 模板化节点和 A* 实现以支持额外的机器人扩展。 选择性地重新评估每个目标/地图或每次迭代的障碍启发式算法,这可以将后续重新规划速度提高 20 倍或更多。 SmacP

SmacPlanner是一个包含三种插件的Nav2Planner插件,用于不同类型的机器人路径规划,如Hybrid-A*支持腿足和车辆模型,StateLattice适用于非圆形机器人,2DA*适合差速和全向机器人。该规划器优化了搜索算法,实现了多分辨率和代价感知惩罚,以提高路径质量和速度。此外,它还提供了平滑器和碰撞检查功能,适用于高速和曲率受限的规划场景。
最低0.47元/天 解锁文章
1924

被折叠的 条评论
为什么被折叠?



