ROS2与Navigation2入门教程-行为树XMLs概述
说明:
- 介绍行为树XMLs
概述
Nav2是一个令人难以置信的可重新配置的项目。
它允许用户跨行为树、核心算法、状态检测器等设置许多不同的插件类型!
本节重点介绍Nav2项目中默认提供的一些用于执行有趣任务的示例行为树xml文件。
值得说明的是,这些行为树XML文件可以针对您的特定应用程序进行修改,或者作为指南帮助构建您自己的特定于应用程序的行为树。
这些模范示例可以说明如何使用行为树显著地重新配置导航行为。
Nav2在nav2_bt_navigator软件包中提供了其他行为树,但本节重点在于介绍一些重要的行为树。
下面的行为树XML展示了一个非常基本但功能强大的导航仪:
<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米规划一条到goal的新路径(通过设置DistanceController)。
如果新路径是在path黑板变量上计算的,则FollowPath动作插件将会接收这个path变量并使用服务器的默认算法遵循该路径。
这棵行为树具有以下特点:
没有恢复方法
失败时不进行重试
没有选定的规划器或控制器算法
没有根据上下文更改设置以获得最佳性能的节点
未与自动门、电梯或其他API集成
没有用户提供的自定义BT节点
没有诸如停靠、跟随等其他行为的子树。
所有这些以及其它内容都可以在Nav2中为您的自定义导航逻辑进行设置和配置。
下面将会重点介绍Nav2中的三个重要行为树:
- 导航至某个位姿(Navigate To Pose)行为树
- 导航通过多个位姿(Navigate Through Poses)行为树
- 跟随动态点(Follow Dynamic Point)行为树。
参考:
- https://navigation.ros.org/behavior_trees/index.html
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号