B-Human 软件是跨平台的, 包含两个用于 NAOqi 的实际机器人共享库,一个用于机器人的附加可执行文件,相同的运行在模拟器SimRobot(没有 NAOqi)的软件,以及一些库和工具,因此,该软件分为以下组件。
bush
是一个可以同时部署和管理多个机器人的工具(参看官方手册的10.2节)。
Controller
是一个静态库,其中包含模拟器 NAO 特定的扩展,机器人代码框架的接口
以及在 NAO 上运行的代码的控制和高层调试。
copyfile
是一个将编译好的代码复制到机器人上的工具,在 Xcode 工程中,叫做 Deploy。更多参看官方手册2.5节内容。
libbhuman
是 B-Human 可执行文件与 NAOqi 进行交互的共享库。
libgamectrl
是一个与 GameController 通信的共享 NAOqi 库。此外,它实现了官方的按钮界面,并按照规定设置 LED。更多资料见官方手册的第3.1节末尾。
libqxt
是一个静态库,为 Windows 和 Linux 上的 Qt 供了一个额外的部件。在 mac 系统上,相同的源文件只是 libraryController 的一部分。
Nao
是 NAO 的 B-Human 可执行文件,依赖于于 libbhuman 和 libgamectrl。
qtpropertybrowser
是一个在 Qt 中实现属性浏览器的静态库。
SimRobot
是用于运行和控制 B-Human 机器人代码的模拟器可执行文件。它动态链接到组件 SimRobotCore2,SimRobotEditor,SimulatedNao 和一些第三方库。SimRobot 可在编译,开发和调试配置中编译。所有这些配置都包含调试代码,但是 Release 会执行一些优化 并去除调试符号(Linux 和 macOS)。Develop 生成可调试的机器人代码,同时连接不可调试但更快的 Release 库。
SimRobotCore2
是一个共享库,它包含SimRobot的仿真引擎。
SimRobotEditor
是一个共享库,其中包含模拟器的编辑器小部件。
SimulatedNao
是一个共享库,其中包含模拟器的B-Human代码。它依赖于Controller、qtpropertybrowser和libqxt。它是静态连接的。
所有组件都可以构建成三种配置:Release,Develop 和 Debug .Release 是为了“游戏代码”而设计的,因此可以实现最高的优化; Debug 供了全面的debugging 支持,并且没有优化。Debug 是一个特例。它生成可执行文件,并对组件 Nao 和 SimulatedNao 供一些调试支持(请参阅下面的表格详细信息)。对于所有其他组件,它与 Release 相同。