关于bhuman文件结构
代碼結構
進入Src目錄,主要是Representations和Modules兩個目錄。其中Representations是可調用的部分,通過調用其中的函數,可以編寫角色的策略代碼文件。Modules是實現Representations的部分。即調用Representations是通過執行Modules中的函數而執行相關action。
策略文件
進入Modules下的BehaviorControl下的BehaviorControl目錄。包含Options目錄,以及2個h文件及1個cpp文件。
進入options目錄下的GameControl,PlayingState文件中為比賽開始時的行為,ReadyState為比賽中ready狀態時的行為,一般是機器人入場。Options/Roles中包含各種角色代碼文件。
可調用接口文件
進入Src的Representations,可以看到8個模塊
這里是引用
其中pdf文檔介紹了其中5個部分。剩余的3個部分Communication和Configuration以及Infrastructure是文檔中5個的底層。
我們可以配合Modules修改或添加其中的內容,滿足我們的要求。
對于representations中文件結構的解釋
基于對第四章到第八章的pdf大致理解
1. perception感知模塊
基于兩個攝像頭,通過建立坐標系來實現對外界感知。其中涉及到防止識別自身身體,顏色管理識別,邊界識別,檢測黑白球(之前為橙色球),罰分和對障礙物識別以及對手的檢測。
2. modeling建模模塊
對于自我位置定位,對于球定位,對于障礙物定位,通過自身以及隊友的感知數據來建模。同時口哨聲的識別也存在于這里。
3. behaviorcontrol行為控制模塊
策略的規劃,包括角色安排等等(注意與motioncontrol區分)
4. proprioception自身感知模塊
如圖所示:
5. motioncontrol動作控制模塊
主要的行為操作,包括步行踢腿等等
關于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
感謝原作者
總結
以上是生活随笔為你收集整理的关于bhuman文件结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对于bhuman中striker文件解析
- 下一篇: 关于__VA_ARGS__的说明