Nav2 行为树
Nav2 是一个可重新配置的项目。它允许用户设置许多不同的插件类型,包括行为树、核心算法、状态检查器等等! 本节重点介绍了项目中默认提供的一些示例行为树 xml 文件,用于执行有趣的任务。 需要注意的是,这些文件可以针对您的特定应用程序进行修改,也可以用作构建您自己的特定于应用程序的行为树的指南。 这些是一些示例,说明如何使用行为树显著地重新配置您的导航行为。 Nav2 在“nav2_bt_navigator”包中提供了其他行为树,但本节重点介绍了重要的行为树。
下面是一个**非常**基本但实用的导航器。
<root main_tree_to_execute="MainTree">
<BehaviorTree ID="MainTree">
<PipelineSequence name="NavigateWithReplanning">
<DistanceController distance="1.0">
<ComputePathToPose goal="{goal}" path="{path}"/>
</DistanceController>
<FollowPath path="{path}"/>
</PipelineSequence>
</BehaviorTree>
</root>
此行为树将使用“ComputePathToPose”每隔 1 米(由“DistanceController”设置)简单地规划一条到达“目标”的新路径。 如果在“path”黑板变量上计算出一条新路径,“FollowPath”将采用此“path”并使用服务器的默认算法跟随它。
此树包含:
无恢复方法
失败时不重试
无选定的规划器或控制器算法
无节点可根据上下文更改设置以获得最佳性能
无与自动门、电梯或其他 API 集成
无用户提供的自定义 BT 节点
无用于对接、跟随等其他行为的子树
不使用其他类型的规划器,如完全覆盖(有用时)
所有这些以及更多内容都可以在 Nav2 中为您的自定义导航逻辑进行设置和配置。