优点

模块化

BT的每个子树都可以是一个模块。模块化系统可以设计、应用、测试和重用一个模块。分而治之的模块化系统会随着系统的复杂度增加而变得更加有益。

分层组织

BT包含多个级别的决策。在不同层次上的设计和分析结构能实现迭代细化和计划拓展。

可重用代码

BT的所有子树只需要返回“运行“、”成功“和”失败“,这使得一个子树在任意子树都是可重用的。

反应性

BT的反应性表现为每Tick对树进行闭环遍历 。

可读性

可读性可以降低开发和调试的成本。由于BT的树结构和模块化,使得BT具有可读性

表达能力

BT至少有四种表达方式:有限状态机、包容体系结构、远程反应程序、决策树。

适用于分析

BT可以从这几个特性进行定性和定量分析:安全性,避免不可逆的不良行为;鲁棒性,适用于很大的操作范围;效率性,完成时间的意义上;可行性,成功概率的意义上;可组合性,分析子任务的组合是否保留了属性。

适用于自动综合

BT适用于任务规划或机器学习技术自动合成任务或策略的动作排序。

缺点

BT引擎应用复杂

单线程顺序编程会使BT引擎的应用变得复杂。

检查所有的条件需要很大的代价

BT需要检查几个条件来执行闭环任务。在某些应用中需要付出很大的代价。

有时前馈执行效果足够好

机器人在结构化的环境中工作时,可以在空间和时间上预测机器人的状态,此时BT与更简单的架构相比没有任何优势。

BT与FSM不同

BT与FSM相比更容易理解,但在设计解决方案时需要新的思维方式,BT的执行并不关注状态,而是关注条件,并且切换不是事件驱动而是时钟驱动的。

BT工具不成熟

开发BT的软件在软件数量和成熟度上不如FSM。

原文地址:http://www.cnblogs.com/youzimo/p/16788506.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性