Groot的使用

缺点

  1. 对一个控制节点,用Create Subtree创建子树后,无法恢复不是子树的状态。在左侧的树列表里,千万不要删除任何树,否则无法恢复
  2. 有的人在groot里添加SetBlackboard设置黑板变量,有的人是在C++里设置,而平时看行为树逻辑一般都在groot里,会不知道C++里做了什么
  3. 如果当前行为树设计有错,比如有多余节点,groot无法使用保存按钮

黑板变量的设置

Real Time Monitor Mode

目前只有Groot2 Pro版本可以使用

在版本4里,BT::PublisherZMQ已经消失了。取而代之的是BT::Groot2Publisher,可以这样用

1
2
3
4
5
6
7
8
9
10
factory.registerBehaviorTreeFromFile("/home/user/test.xml");
auto tree = factory.createTree("test", maintree_bb);
// createTree之后,tick之前
BT::Groot2Publisher publisher(tree);

while (true)
{
tree.tickOnce();
tree.sleep(std::chrono::milliseconds(100) );
}

打开groot之后,点击Connect毫无反应,官方说明没有帮助,读源码发现构造函数里有默认端口号:Groot2Publisher(const BT::Tree& tree, unsigned server_port = 1667);

使用1667后就成功了。Host需要看情况作修改

截图 2025-07-05 16-40-03.png
参考: BT::Groot2Publisher Class Reference