本文主要是介绍【ROS】Nav2源码之nav2_behavior_tree详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【ROS】郭老二博文之:ROS目录
1、简介
nav2_bt_navigator实现ROS2节点以行为树的方式来处理。
nav2_behavior_tree模块提供如下功能:
- 一个c++模板类,可以轻松地将ROS2 动作(actions)和服务(services)集成到行为树(Behavior Trees)中。
- 特定于导航的行为树节点。
- 通用的BehaviorTreeEngine类,简化了将BT处理集成到ROS2节点中。
2、什么是行为树?
行为树,即Behavior Tree,简称BT,是Nav2中新引入的流程控制机制,该机制的加入使其在上层业务流程控制上更加灵活。
行为树的决策方式基于他的树形数据结构,在需要进行决策时,从树的根节点出发,按照一定顺序遍历子节点,遍历的过程中进行一系列的条件判断,决策得到最后的行为节点并执行。
- 行为树是树:执行时从根节点开始按照指定的顺序遍历,直到到达终结状态。
- 叶子节点都是可执行的行为:叶子节点会进行具体的操作,可以是一个简单的检测操作,也可以是一个更复杂的操作,节点会返回状态信息(成功,失败,运行中)。
- 内部节点控制树的遍历:内部节点会根据孩子结点返回的状态信息,按照特定的规则确定下一个执行的节点。
这篇关于【ROS】Nav2源码之nav2_behavior_tree详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!