zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    [转][LeetCode]Longest Common Prefix ——求字符串的最长公共前缀
    [转]最长回文子串——4种解法
    [转]通过金矿模型介绍动态规划
    一句话说清楚什么是闭包函数
    [转]as3事件流机制彻底理解
    Eclipse 快捷键
    文件打包与解压缩
    第5节 环境变量与文件查找
    vim的多标签
    java思维导图
  • 原文地址:https://www.cnblogs.com/gary-guo/p/14693500.html
Copyright © 2011-2022 走看看