Skip to content

Groot2 行为树编辑器

  • 可视化行为树
  • 编辑行为树
  • 添加自定义节点

要显示默认的编辑器视图,首先启动 Groot2 可执行程序。 默认情况下,Groot2 只能显示 BT.CPP 自带的行为树和节点,并不了解 Nav2 或其他项目的自定义节点。 因此,需要让 Groot2 加载我们的调色板(palette),即 Nav2 及自定义行为树节点的索引:

  1. 以编辑器模式打开 Groot2,界面应如下方第一张图所示。
  2. 点击第二张图中红色图标所示的按钮,打开文件 /path/to/navigation2/nav2_behavior_tree/nav2_tree_nodes.xml,导入导航所用的全部自定义行为树节点。加载完成后,即可看到 Nav2 自定义节点的完整调色板。
  3. 点击第二张图中蓝色图标所示的按钮,浏览并选择要可视化的行为树,然后点击 Open。Nav2 的行为树位于 /path/to/navigation2/nav2_bt_navigator/behavior_trees/ 目录下。

Groot2 默认编辑器视图

已加载 Nav2 自定义节点的 Groot2

如果选择默认的行为树 navigate_w_replanning_and_recovery.xml,Groot2 编辑器将显示完整的行为树结构,如下方图片所示。

完整 Nav2 默认行为树

还可在偏好设置(preferences)中勾选或取消勾选节点(Nodes)的可视化选项,以便更清晰地观察行为树。

Groot2 偏好设置

注意:如果调色板中缺少某些节点而导致行为树无法显示,需要将这些节点添加到调色板中。Nav2 团队会尽量保持 BT 节点与调色板同步,但如果发现某个节点缺失,请提交 ticket 或 pull request,我们会尽快更新。

在编辑器模式下用 Groot2 打开 Nav2 行为树后,即可通过 GUI 轻松修改它。 从侧边面板拖入新节点,添加到工作区中。 然后在节点的输入和输出端口之间通过拖放操作进行连接,将新节点组装到行为树中。

选中某个节点后,可以修改其元数据,例如名称或可参数化端口的值。修改完成后,保存新的配置文件,下次即可在机器人上使用。

编辑行为树

行为树中的每个节点都承担一项专门的功能。 在设计过程中,有时需要在实现完成之前就创建新节点并添加到调色板中。 这样可以让设计者将节点的实现细节抽象出来,专注于行为树本身的高级逻辑以及与特定节点的交互方式(例如类型、端口等)。 在 Groot2 中,可以创建新的自定义节点添加到行为树中,并将这些新节点导出到调色板中。 节点本身的实现需要在 Groot2 之外单独完成,相关内容详见编写新的 BT 插件。

当 Groot2 处于编辑器模式时,点击红色标记的图标,即可开始创建新的自定义节点。

创建新的自定义节点

这将加载一个新窗口,如下图所示。

新节点创建界面

在这个新窗口中,需要填写新节点的元数据信息来完成创建。 所需的标准信息包括端口名称、节点类型,以及用于参数化或访问黑板变量的可选端口。 填写完成后,点击 OK,新的自定义节点将出现在 TreeNode Palette 中。

新节点出现在 TreeNode Palette 中

在 Groot2 中完成行为树的编辑或创建后,可将其导出供应用使用。 点击下图中所示的 Export Project 按钮,或使用旁边的 Save Current Project As 按钮,即可完成导出。

导出按钮

导出页面

行为树已成功导出。下次打开 Groot2 时,可重新加载该行为树。