Getting started
BehaviorTree.CPP可以很容易整合进一些分布式的中间件当中,如ROS,SmartSoft;
可以静态链接到你的应用当中;
一些概念的理解:
节点和树
用户必须创建自己的行为节点和条件节点;这个库可以很容易将用户创建的节点组织到树当中;
把叶子节点当做积木(组成部分),可以用于构建复杂的系统;
自定义的节点应该可以高度复用,但是,开始的时候,一些包装接口需要与你的代码相适配。
The tick()回调函数
任何TreeNode可以被认为一种唤醒一个回调函数的机制,如,运行一小段代码。
在实际代码中,尤其是在Model Driven Developmen 和 Component Based Software Engineering中,一个行为和条件很可能与其他系统组件和服务通信。
继承和依赖注入模式
为了创建一个自定义的TreeNode,需要继承适当的类。
例如,为了创建你的同步行为,你应当从类SyncActionNode中进行继承。
另外,这个库提供了一种机制来创建一个TreeNode(通过一个函数指针指向一个包装器-依赖的注入)。
这种方法减少了你代码中样板范例的数量;as a reference please look at the first tutorial and the one describing non intrusive integration with legacy code.
数据流,接口和黑板
接口在后面进行解释Ports are explained in detail in the second and third tutorials.
目前需要知道的是:
一个黑板是一个键/值容器,这个容器可以由一个树的所有节点共享。
接口是一种机制,节点之间可以用该机制进行信息交换。
接口通过使用黑板上同样的key进行相互连接。
数量,名字以及一个节点的端口的种类必须在c++编译阶段知道;端口之间的连接在部署时间(XML)中完成。
在运行时使用XML格式来加载树
尽管库是使用C++来写的,树本身是可以在运行时构建,更具体的是,在部署时,因为在实例化树的开始一次性完成。
An XML format is described in details here.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2017-04-23 3.空域图像处理的洪荒之力