关于bhuman文件结构

代码结构

进入Src目录,主要是Representations和Modules两个目录。其中Representations是可调用的部分,通过调用其中的函数,可以编写角色的策略代码文件。Modules是实现Representations的部分。即调用Representations是通过执行Modules中的函数而执行相关action。
在这里插入图片描述

策略文件

进入Modules下的BehaviorControl下的BehaviorControl目录。包含Options目录,以及2个h文件及1个cpp文件。

  1. Options文件夹:包含行为控制的文件,每一个文件是以图的结构表示
  2. Options.h : 包含所有Options中的文件的路径,通过一个c++头文件将其关联在一起
  3. BehaviorControl.h: 包含options文件中所调用的函数,关联调用的Representations中的文件
    在这里插入图片描述
    进入options目录下的GameControl,PlayingState文件中为比赛开始时的行为,ReadyState为比赛中ready状态时的行为,一般是机器人入场。Options/Roles中包含各种角色代码文件。

可调用接口文件

进入Src的Representations,可以看到8个模块

这里是引用

在这里插入图片描述
其中pdf文档介绍了其中5个部分。剩余的3个部分Communication和Configuration以及Infrastructure是文档中5个的底层。
在这里插入图片描述
我们可以配合Modules修改或添加其中的内容,满足我们的要求。

对于representations中文件结构的解释

基于对第四章到第八章的pdf大致理解

1. perception感知模块
基于两个摄像头,通过建立坐标系来实现对外界感知。其中涉及到防止识别自身身体,颜色管理识别,边界识别,检测黑白球(之前为橙色球),罚分和对障碍物识别以及对手的检测。
perception
2. modeling建模模块
对于自我位置定位,对于球定位,对于障碍物定位,通过自身以及队友的感知数据来建模。同时口哨声的识别也存在于这里。
文件
3. behaviorcontrol行为控制模块
策略的规划,包括角色安排等等(注意与motioncontrol区分)
4. proprioception自身感知模块
如图所示:
xx
5. motioncontrol动作控制模块
主要的行为操作,包括步行踢腿等等
MOTION

关于Modules与Representation的主要不同

一定程度参考飞_飞的博客:

  • Modules文件夹的内容与Representation文件夹中的内容能一一对应。比如,Modules包含了BehaviorControl、Configuration、Sensing等,而Representation也包含了这些模块。
  • STREAM宏、以及serialize方法等“流”方法,在Representations中的所有模块都首先使用此宏进行了定义,以及blackboard也属于此文件夹,可见,Representation的真正用途为信息交流,因为STREAM的作用,所以使得各个模块可以相互传递信息。
  • MODULES宏的真正作用是创建BehaviorControl、Sensing、Modeling等模块,在这些模块中,模块的必要条件(用REQUIRES宏包含)从Representation文件夹内的各个模块获得。即在Modules文件夹中的各个模块使用include包含所需要的Representation头文件。因此,Representation描述了机器人的各个参数、以及基本物理信息,甚至各个模块的描述(但也不完全是,需要下次进行更输入的分析)。

另外部署可以参考下面这篇文章:
https://blog.csdn.net/qq_34062822/article/details/80326273
感谢原作者

发布了20 篇原创文章 · 获赞 12 · 访问量 3961

猜你喜欢

转载自blog.csdn.net/Athus_c/article/details/96144437