Behavior-tree 在ROS中的应用(入门)

Behavior-tree 在ROS中的应用综述(入门)

    • 放在最开始的话
    • 关于BT在ROS中应用的资料汇总
    • 关于行为树的基本知识
    • 行为树的编程

放在最开始的话

Behavior-tree(BT,行为树)自诞生以来也有很多年了,并且在AI游戏设计中有着非常广泛的应用,但是博主最近在学习BT在ROS中的编程应用时,浏览了国内各大论坛上的博文,发现内容甚少。于是,秉着“前人栽树,后人乘凉”的美德,博主也来种一回树。
本文主要涉及了一些资料的推荐以及基础编程指北,所用的环境是Ubuntu 18,ROS版本是melodic,所用语言主要是C++。对于行为树的基础知识介绍这里就不再赘述了。

关于BT在ROS中应用的资料汇总

博主主要收集的范围是国外的一些书以及国内古月居等ROS大牌的资料,也会保持持续更新:

  1. 《ROS by example2》
    《ROS by example》相关丛书可以说是ROS最经典的教材之一。书中开头有关于Behavior-tree的介绍,特别是给出了BT中很经典的pi_tree的样例,但由于成书较早,书中使用版本是indigo,所以实际运行起来的借鉴意义不是很大。博主这里使用的是中山大学出版社的中文译本,主要是看起来方便。
  2. 《Behavior trees in ROS and AI》
    《Behavior trees in ROS and AI》是一本很好的行为树入门介绍的书。书中主要把行为树和有限状态机等进行了比较,凸显出了行为树的优缺点。这本书更侧重于理论研究,在介绍行为树的基础上,进一步介绍了行为树的一些扩展以及行为树与Automated planning以及Machine learning等相关内容结合的介绍。并且书中还提供了一些行为树的模板,博主将在接下来的篇幅中进行详细的介绍和分析。
  3. 古月居小明工坊的 《ROS实验 | 行为树实现机器人智能》
    网页链接:https://www.guyuehome.com/5311
    这篇文章主要在《Behavior trees in ROS and AI》所提供程序的基础上,结合古月居ROS入门的系列教程,做了一个非常有意义的创新,非常适合新手学习。
  4. 关于创建一个Behavior tree的教程
    网页链接https://behaviortree.github.io/BehaviorTree.CPP/tutorial_01_first_tree/
    主要介绍了一些关于行为树特有结点的创建代码,csdn上也有中文版的翻译,但整体来说不是很适合新手研读,主要还是因为比较零碎。因此适合对BT有一个整体概念后再进行更深层次的学习。
    以上所有的内容均可以在google上找到免费的资源,博主就不一一列出了。

关于行为树的基本知识

https://behaviortree.github.io/BehaviorTree.CPP/BT_basics/
中关于行为树的基本知识有一个非常精炼的介绍,此处就不再赘述了。

行为树的编程

本文主要是依据《Behavior trees in ROS and AI》中所提供的代码进行分析和介绍。所用的全部代码均可在此处下载得到。
https://github.com/miccol/ROS-Behavior-Tree
程序运行效果如图所示:Behavior-tree 在ROS中的应用(入门)_第1张图片
Behavior-tree 在ROS中的应用(入门)_第2张图片

你可能感兴趣的:(ROS,c++)