Groot2 的缺陷
- 对一个控制节点,用Create Subtree创建子树后,无法恢复不是子树的状态。在左侧的树列表里,千万不要删除任何树,否则无法恢复
- 如果当前行为树设计有错,比如有多余节点,groot无法使用保存按钮,而且不提示哪里报错
- Switch最多有6个case,如果switch多设置了节点,Groot还不能报错
- 非Pro版本无法搜索节点,而且不能搜索节点的输入输出接口,注释等内容,只能按节点名称搜索
- 新建空文件 —-> 保存文件,结果出现对话框:
Please initalize new files on the disk before saving the project。这个现象说明了groot这个软件设计非常失败,我从没见过有哪个软件新建一个文件后还不能直接保存的,更可笑的是初始化的单词都是错的。这么低级的缺陷都有,还好意思对pro版本收费?需要到左侧的根节点,右键save保存,以后才能用保存按钮。 - 有时打开一个文件时间长了,拖动时发现不是手形的光标了,变成普通光标
- 只有Ctrl+Z,没有Ctral+Y。使用时不太方便
- 资料太少,全靠自己摸索,一个并不复杂的问题,摸索一整天。
Groot跟Qt的UI模式相比,差距很大。前者只是个调试辅助工具,后者是工业级UI开发框架,不是一个档次。
Qt的UI和数据是绑定的,数据变化后,UI自动更新。Groot做不到,黑板变量变化,Groot看不到更新,说明它的 数据绑定 (Data Binding) 做得很差。
有些团队最后会自己用 Qt 重写一套调试UI,Groot只用来看行为树。
注意:Groot可以跨文件复制节点,跨版本也可以

Real Time Monitor Mode
目前只有Groot2 Pro版本可以使用
在版本4里,BT::PublisherZMQ已经消失了。取而代之的是BT::Groot2Publisher,可以这样用
1 | factory.registerBehaviorTreeFromFile("/home/user/test.xml"); |
打开groot之后,点击Connect毫无反应,官方说明没有帮助,读源码发现构造函数里有默认端口号:Groot2Publisher(const BT::Tree& tree, unsigned server_port = 1667);
使用1667后就成功了。Host需要看情况作修改

