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``,根据``DistanceController``设置的每1米,简单地规划到``goal``的新路径。如果在``path``黑板变量上计算出新路径,则``FollowPath``将获取该``path``并使用服务器的默认算法进行跟随。
该树包含:
没有恢复方法。
失败时不重试
没有选择的规划器或控制器算法。
没有上下文中更改设置以获得最佳性能的节点
没有与自动门、电梯或其他API的集成。
没有用户提供的自定义BT节点
没有针对其他行为(如对接、跟随等)的子树。
所有这些以及更多内容都可以在Nav2中设置和配置以定制化导航逻辑。