行为树BehaviorTree.CPP

news/2025/11/28 11:02:22/文章来源:https://www.cnblogs.com/jieruishu/p/19281166

行为树BehaviorTree.CPP

BehaviorTree.CPP:

  BehaviorTree.CPP 本质上就是一个用现代 C++11/14 编写的、专注于行为树执行的开源库不是 ROS 专属,但被 ROS 2 生态广泛采用最为行为规划树(尤其是 Nav2)。

1.1 核心思想

行为树是一种模块化、可复用、可调试的决策结构,用于描述智能体(如机器人)在复杂环境中的任务执行逻辑。相比传统状态机(FSM),它更灵活、层次清晰、易于扩展。

 
  • 节点类型(关键):
    • 控制节点(Control Nodes)
      • Sequence:顺序执行子节点,任一失败则整体失败。
      • Fallback(或 Selector):顺序尝试子节点,任一成功则整体成功。
      • Parallel:并行执行多个子节点,按成功/失败数量决定结果。
    • 执行节点(Leaf Nodes)
      • Action:执行具体动作(如“移动到A点”)。
      • Condition:判断条件(如“是否到达目标?”)。
    • 装饰节点(Decorator)
      • Inverter:反转子节点结果。
      • RepeatUntilFailure:重复执行直到失败。
      • Timeout:带超时限制。
 

1.2 为什么 ROS 2 选择行为树?

  • 可读性强:XML 或代码可直观表示任务流程。
  • 动态重配置:运行时可热加载新树。
  • 与导航栈深度集成:如 Nav2 默认使用 BT 作为高层决策器。
  • 跨语言支持:C++ 编写高性能节点,Python 用于快速原型。

1.3 组件关系:  

    

BehaviorTree.CPP (底层库)

Nav2 BT Navigator (ROS 2 插件)

用户自定义 BT 节点(C++/Python)

XML 描述任务流程

1.4  使用方法:  

  • 替换默认树:修改 nav2_params.yaml 中的 default_bt_xml_filename
  • 扩展节点:实现如 “避障后重规划”、“充电后继续任务” 等自定义逻辑。
  • 调试工具:使用 Groot2(官方 GUI)可视化运行时树状态。

2 架构分析:

▶ 模块 2.1:树结构定义(Tree Structure)

  • BT::Tree:表示整棵树的运行时对象。
  • BT::Node:所有节点的基类(抽象类)。
  • XML 解析器:支持从 XML 文件构建树(使用 tinyxml2)。

▶ 模块 2:节点类型体系(Node Types)

BehaviorTree.CPP 将节点分为 4 类,每类有多个子类:

ReactiveSequence:反应式每次都从tick开始执行,用于持续监控类;Sequence同步式下次tich从中断的位置继续(状态记忆))

image

 

▶ 模块 3:节点通信机制:黑板(Blackboard)

    • 作用:所有节点共享的键值存储(Key-Value Store),用于节点间传递参数(如目标位置、路径),避免全局变量。
    • image

▶ 模块 4:执行模型(Execution Model)

  • Tick 机制:每帧调用 tree.tickOnce(),从根节点递归执行。
  • 异步支持
    • BT::AsyncActionNode:子线程执行耗时操作(如路径规划)。
    • 返回 RUNNING 表示“任务进行中”,下次 tick 继续检查。
  • 事件驱动:支持外部中断(如“紧急停止”)。

 

▶ 模块 5:工厂与插件系统(Factory & Plugin)

  • BT::BehaviorTreeFactory:负责注册节点类型。

注册方式

image

 

▶ 模块 6:调试与可视化(Groot2)

  • Groot2:官方图形化工具(Qt 编写),可:
    • 编辑 XML 树
    • 实时连接运行中的树,查看节点状态(红/绿/黄)
    • 回放执行日志

3 开发步骤:

  nav2用yaml作为系统配置工具(避免硬编码,告诉 bt_navigator:加载哪个 XML 行为树文件;告诉 pluginlib:需要动态加载哪些 C++ 插件库(.so 文件);为自定义节点提供运行时参数),用xml作为行为逻辑配置文件(Groot2所需,缩进支持嵌套和注释;定义任务执行逻辑:节点如何组合(顺序、选择、并行);通过 {key} 引用黑板数据;节点名必须与 pluginlib 注册名一致),至于为何选用他们见导航《脚本配置文件》

image

 

  • 利用Groot2图形工具设计流程图(拖拽式设计,调试验证),生成xml文件给nav2用做行为逻辑配置文件(行为树的地图),后者用其生成对应节点(C++用tinyxml2进行解析生成节点)。
  • 系统启动Nav2:加载参数文件yaml,启动一下核心模块:
    • amcl(定位)
    • global_planner(全局路径规划,如 SmacPlanner)
    • local_controller(局部跟踪,如 DWBController)
    • bt_navigator(行为树导航器) ← 主角
  • bt_navigator 初始化

    • 读取配置中的 default_bt_xml_filename(例如 navigate_w_replanning_and_recovery.xml
    • 使用 BehaviorTree.CPP 的 BehaviorTreeFactory 加载所有注册的节点插件(通过 pluginlib
    • 构建 BT::Tree 对象(但不立即执行

 

  • 用户发送导航目标,bt_navigator 作为 Action Server,收到该请求将目标存入黑板(Blackboard)【黑板是全局共享的 Key-Value 存储,所有 BT 节点都能读写】
  • 行为树开始执行(BT Execution Loop),启动主循环tree.tickOnce(),从根节点开始递归执行子节点

  • 执行更新目标condition节点, 执行 ComputePathToPose(Action 节点),执行 FollowPath(Action 节点),处理异常

1.x 资源文档:

  • 推荐中文教程/文章
    • 古月居:ROS 2 行为树入门(搜索“行为树”)
    • CSDN 系列:BehaviorTree.CPP 源码解析(适合 C++ 开发者)
    • B站视频:《ROS2 行为树原理与实战》(搜索关键词)
  • 官方 GitHubhttps://github.com/BehaviorTree/BehaviorTree.CPP
  • 官方文档(英文)https://www.behaviortree.dev/
    • https://github.com/ly0/BehaviorTree-RTThread(个人移植,无维护)
    • https://github.com/ixydo/rt-thread-bt-demo(基于 RT-Thread 4.0 + STM32F4)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/979444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 最新聚氨酯砂浆厂家推荐榜:基于国际测评数据的欧洲技术与一站式服务甄选指南水性聚氨酯砂浆 / 聚氨酯砂浆自流平公司推荐

引言 随着工业与食品行业对地坪安全与性能要求的升级,聚氨酯砂浆因卓越性能成为核心选择,但其市场呈现 “外资技术领跑、本土品质崛起” 的格局,据中国建筑材料地坪协会数据,外资品牌占 45% 市场份额,本土头部企业…

2025年热门的污水池清淤机器人厂家推荐及采购指南

2025年热门的污水池清淤机器人厂家推荐及采购指南行业背景与市场趋势随着城市化进程加速和环保要求日益严格,污水池清淤作业正经历着从传统人工向智能化、机械化方向的转变。2024年数据显示,全球污水池清淤机器人市场…

2025年口碑好的振动台行业内知名厂家排行榜

2025年口碑好的振动台行业内知名厂家排行榜行业背景与市场趋势振动台作为力学环境模拟和可靠性测试的核心设备,近年来随着航空航天、新能源、半导体等高科技产业的快速发展,市场需求持续增长。2025年,全球振动台市场…

2025 年 11 月电线电缆租赁厂家实力推荐榜:电缆线出租,临时用电电缆租赁,电力电缆租赁,空调电缆租赁,高效安全供电解决方案精选

2025年11月电线电缆租赁厂家实力推荐榜:电缆线出租,临时用电电缆租赁,电力电缆租赁,空调电缆租赁,高效安全供电解决方案精选 行业背景与发展趋势 随着现代化建设的快速推进和各类临时性活动的日益增多,电线电缆租…

2025 年 11 月牙刷品牌权威推荐榜:涵盖软毛/电动/儿童/便携/声波/护龈/脱敏/旋转式/超软毛牙刷,专业口腔护理与深度清洁口碑之选

2025 年 11 月牙刷品牌权威推荐榜:涵盖软毛/电动/儿童/便携/声波/护龈/脱敏/旋转式/超软毛牙刷,专业口腔护理与深度清洁口碑之选 随着人们对口腔健康意识的不断提升,牙刷作为日常口腔护理的基础工具,其技术迭代和品…

2025年11月医药翻译机构综合评测榜:十大服务商详细对比与选择要点

随着医药行业全球化进程加速,医药翻译需求呈现专业化、精细化趋势。根据行业调研,医药企业、科研机构及医疗机构在选择翻译服务时,通常面临术语准确性、合规性、多语种覆盖等核心需求。医药翻译不仅涉及药品注册文件…

2025氨氮水质监测设备厂家有哪些,废水监测设备厂家有哪些

2025氨氮水质监测设备厂家有哪些,废水监测设备厂家有哪些!一、废水监测设备厂家选型核心要点在水环境治理与工业废水达标排放要求不断提升的背景下,选择废水监测设备厂家需围绕技术适配性、数据可靠性、服务全面性三大…

2025年11月小红书代理商排名全览:基于多维度数据的中立评价

随着社交电商的快速发展,小红书已成为品牌营销的重要阵地。许多企业尤其是中小品牌和新兴消费品牌,面临内容创作乏力、流量获取困难、投放效果不稳定等痛点。选择专业的小红书代理商,能够帮助品牌系统化运营账号,提…

2025水质监测厂家全解析:COD水质监测设备厂家有哪些汇总

2025水质监测厂家全解析:COD水质监测设备厂家有哪些汇总!一、COD 水质监测厂家选型核心要点在水环境治理与水质安全监管日益严格的背景下,选择 COD 水质监测厂家需综合考量技术可靠性、设备适配性、服务完整性三大核心…

最新推荐:哪些国内PLM厂商更适合汽车零部件制造企业

最新推荐:哪些国内PLM厂商更适合汽车零部件制造企业产品生命周期管理(PLM)系统作为汽车零部件制造企业数字化转型的核心工具,不仅能管理复杂的产品数据和技术状态,还能实现设计与制造的高效协同。面对产品类型多、…

2025年质量好的西安水泵_西安水泵批发厂家最新推荐榜

2025 年质量好的西安水泵 / 西安水泵批发厂家最新推荐榜在西安城市建设加速、工业生产升级及民生工程推进的背景下,水泵作为供水、供暖、排污等场景的核心设备,其质量与供应效率直接影响项目推进与民生保障。2025 年…

2025年靠谱的西安水泵_西安水泵批发厂家实力及用户口碑最新推荐榜

2025 年靠谱的西安水泵 / 西安水泵批发厂家实力及用户口碑最新推荐榜随着西安工业升级、市政建设扩容及民生工程推进,水泵作为供水、供暖、排污等场景的核心设备,其供应效率与质量稳定性成为采购关键。据中国通用机械…

2025年口碑好的碳纤维3D打印耗材/TPU3D打印耗材最新TOP品牌厂家排行

2025年口碑好的碳纤维3D打印耗材/TPU3D打印耗材TOP品牌厂家排行行业背景与市场趋势随着3D打印技术的快速发展,高性能打印耗材市场需求持续增长。2025年,全球3D打印材料市场规模预计将达到150亿美元,其中碳纤维增强复…

完整教程:Linux----进程控制

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年热门的冲床送料机厂家推荐及采购指南

2025年热门的冲床送料机厂家推荐及采购指南行业背景与市场趋势随着制造业的持续升级和自动化水平的不断提高,冲床送料机作为冲压自动化生产线中的关键设备,市场需求呈现稳定增长态势。2024-2025年,全球冲床送料机市…

提高组模拟赛 50 B. 种树 洛谷 P9836 种树 题解

提高组模拟赛 50 B. 种树 题解 原题 题目中的 \(p_i\) 在下文为避免歧义均称为 \(a_i\)。 \(a_i\) 和 \(w\) 都可以拆为质因数的形式来处理,即: \[w=\prod p_k^{c_k} \]对于因数个数,有公式 \[sum=\prod_{i=1}^k (c…

【转载】从一个面试官的角度谈软件工程师的面试

一、概要 本篇文章主要向大家分享,作为项目经理面试别人的经验。大概从面试官的角度向家分析,心理,标准(每个面试官的标准都不一样但是都差不太多)等等。年底向大家分享一波之后,方便明年开年找工作或年底换工作…

望都县农村自建房找谁好?河北保定望都县自建房公司/机构深度评测口碑推荐榜

望都县农村自建房找谁好?河北保定望都县自建房公司/机构深度评测口碑推荐榜 一、引言 十年前,望都县农村盖房还停留在“找本村工匠、画简易草图”的粗放模式。作为华北平原上的农业县,从县城周边的砖瓦房到乡村的土…

NOIP 2025 邮急

enouaipiday -1 本来要打的模拟赛没了,好耶ヽ(✿゚▽゚)ノ 好紧张好紧张 day 0 咕咕咕与你的日常,便是奇迹

2025年口碑好的防火净化板厂家最新推荐权威榜

2025年口碑好的防火净化板厂家推荐权威榜行业背景与市场趋势随着我国工业制造水平的不断提升和安全生产意识的日益增强,防火净化板作为工业厂房、医药车间、电子无尘室等场所的关键建材,市场需求持续增长。2024年数据…