对B-Human代码的学习总结(Robocup_Nao)

时间:2021-07-30 14:35:23

为了寻得更多学习Robocup机器人学习研究者,在此,本人写出一些关于对SPL双足组三连冠Bhuman队伍的代码的一些总结。

我们的研究学习对象是Nao机器人。希望更多学习Nao机器人或者学习Bhuman代码的同学能够一起探讨学习,目前关于专门对Bhuman代码研究学习的同学尚未联系到,希望有对Bhuman学习的同学以及对NaoQi学习的同学能够联系本人,我们共同取得进步。

致敬!


以下只是从文件结构上对Bhuman的一些总结,更详细的讨论今后慢慢贴出来或者与我联系。


对BHUMAN代码的大概框架的进一步理解。
经过对b-human文档第三章的阅读以及对源码框架的浏览,理解得bhuman

部分框架,以后会继续深入理解。

 从源码的分类来看,现主要对Modules、Representations 进行代码大体总结。Modules文件夹的内容与Representation文件夹中的内容能一一对应。比如,Modules包含了BehaviorControl、Configuration、Sensing等,而Representation也包含了这些模块。

Modules与Representation的主要不同请见下面提到的:

 STREAM宏、以及serialize方法等“流”方法,在Representations中的所有模块都首先使用此宏进行了定义,以及blackboard也属于此文件夹,可见,Representation的真正用途为信息交流,因为STREAM的作用,所以使得各个模块可以相互传递信息。

 MODULES宏的真正作用是创建BehaviorControl、Sensing、Modeling等模块,在这些模块中,模块的必要条件(用REQUIRES宏包含)从Representation文件夹内的各个模块获得。即在Modules文件夹中的各个模块使用include包含所需要的Representation头文件。因此,Representation描述了机器人的各个参数、以及基本物理信息,甚至各个模块的描述(但也不完全是,需要下次进行更输入的分析)。 



关于Nao摄像头、声音模块以及platform在Bhuman工程中的作用
 因为Nao的摄像头模块、声音模块与DCM是独立分开的,因此,摄像头的接口、访问等需要另寻方法。

 在/Src/Platform文件夹中,我们可以看到,与摄像头、声音相关的头文件包含于其中。此外,还有一些通信、线程、以及系统调用相关的头文件在内。在各个操作系统平台下,也有响应的工具和摄像头的设置。


 在这各个平台下,我们应该重点放在linux文件夹中的文件,这里面的包含了诸如 主函数、机器人进程列表的创建、共享内存块、调试处理器等最为基础核心的部分。

 因此,摄像头、声音、机器人程序的main函数等基础架构应当从此文件夹阅读寻找。