【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,ROS)