ros决策树结合——(1)构建一棵树

文件(pkg)结构:

include----

demo:(自定义的)

  1. tree_node.h:
    所有树的节点的声明,继承官方库的各种节点类型(RosActionNode/RosServiceNode等类)
    输入输出port的变量名称
    tick函数声明
    req和res函数的声明
  2. tree_xml.h:
    整棵树的逻辑,节点的顺序
    输入输出port的变量所带的参数
    节点的名字,即注册的时候输入的
    建立的服务名和server名,即定义函数时建立的,此处与自定义的服务建立连接

behaviortree_ros:(官方库)

  1. bt_action_node.h:RosActionNode类的封装
  2. bt_service_node.h:RosServiceNode类的封装

src----

  1. tree_node.cpp:定义各个在node.h声明的与节点有关函数,如res/req/tick/result 等函数
  2. server.cpp:server执行的内容,以及建立一个server+名称,与树节点独立
  3. action.cpp:action执行的内容,以及建立一个action+名称,与树节点独立
  4. bh_tree.cpp:注册各个节点(类型在node.h里找),创建树(类型在xml.h里)

msg/action/srv----

msg:
与决策树相关的数据类型
action:
action 文件内容组成分为三部分:请求目标值、最终响应结果、连续反馈,三者之间使用分割示例内容如下:

#目标值
int32 num
---
#最终结果
int32 result
---
#连续反馈
float64 progress_bar

C++tips:

  1. 关于std::bind
    C++的冒号
    仿函数
    std::bind总结
    operate()
上一篇:httplib使用


下一篇:基于Ubuntu18.04下的OpenCV3.4.11的安装及摄像头使用教程