一、设置开发环境
从本节开始我们将转战Linux系统,系统环境为Ubuntu22.04 LTS。
首先,先配置开发环境,快捷键Ctrl+Alt+T打开终端,安装以下软件包:
sudo apt install ccache clang cmake git graphviz libasound2-dev libbox2d-dev libgl-dev libqt6opengl6-dev libqt6svg6-dev libstdc++-12-dev llvm mold net-tools ninja-build pigz qt6-base-dev rsync xxd
二、克隆源码
由于B-Human存储库使用了子模块,因此必须使用以下方式clone它,直接将其下载为zip或tar.gz会丢东西,和Windows一样:
git clone --recursive https://github.com/bhuman/BHumanCodeRelease.git
或者也可以先下载zip或tar.gz,再将上一节提到的压缩包下载下来替换进去。
三、编译代码
在BHumanCodeRelease/Make/Linux/目录下运行:
./generate
再运行下面的命令以编译代码:
./compile
至此,编译完成,在Build->Linux文件夹下会出现Cmake、DeployDialog、Nao、Simrobot以及Tests这5个文件夹,其中,打开DeployDialog->Develop下有DeployDialog可执行文件,双击即可运行。
补充说明
编译代码标准指令为:
./compile [<configuration>] [<target>]
其中中括号里的内容为可选项,什么都不加的话等同于默认配置。
下表列出了 B-Human 系统的target构建目标:
| <target> | Description |
|---|---|
| SimRobot | 该代码旨在在模拟中运行。整个构建由我们的模拟器 SimRobot 及其库 SimRobotCommon、SimRobotCore2、SimRobotCore2D 和 SimRobotEditor 以及机器人控制程序 SimulatedNao 组成。 |
| Nao | 该代码是为了在NAO上运行而构建的。 |
| Tests | 一些单元测试。在 macOS 上,可以通过选择 SimRobot 然后切换到 Xcode 的 Tests Navigator 来获取此目标。 |
下表显示了不同configuration的效果。SimRobot 代表模拟中的所有内容,除了 SimulatedNao:
| <configuration> | without assertions (NDEBUG) | debug symbols (compiler flags) | debug libs4 (_DEBUG, compiler flags) | optimizations (compiler flags) | debugging support5 |
|---|---|---|---|---|---|
| Release | |||||
| Nao | ✓ | ✗ | ✗ | ✓ | ✗ |
| SimulatedNao | ✓ | ✗ | ✗ | ✓ | ✓ |
| SimRobot | ✓ | ✗ | ✗ | ✓ | |
| Develop | |||||
| Nao | ✗ | ✗ | ✗ | ✓ | ✓ |
| SimulatedNao | ✗/✓ | ✗/✓ | ✗ | ✗/✓ | ✓ |
| SimRobot | ✓ | ✗ | ✗ | ✓ | |
| Debug | |||||
| Nao | ✗ | ✓ | ✓ | ✗ | ✓ |
| SimulatedNao | ✗ | ✓ | ✓ | ✗ | ✓ |
| SimRobot | ✗ | ✓ | ✓ | ✗ |
在 Debug 模式下,为机器人(目标 Nao)编译的代码实际上太慢而无法使用,即动作会卡顿。在 Release 模式下,该代码不支持调试,这意味着 SimRobot 无法连接到运行它的机器人。
在 Develop 模式下,库 SimulatedNao 是Debug 和Release 代码的结合。模拟器的接口代码是经过优化的,而机器人代码通常没有。但是,如果不进行优化,某些机器人代码的运行速度会非常慢。因此,少数部分也经过了优化,无法调试。
四、最终B-human的目录结构
| Directory | Contents |
|---|---|
Build | 构建过程中创建的所有文件都位于此目录中。目录结构遵循Build/<os>/<target>/<configuration>模式。删除目录将删除所有构建文件。目录最初不存在。 |
Config | 所有的配置文件都位于这个目录中。本节中描述了一些子目录。Config/Scenes包含仿真场景(.ros2)以及仿真启动时执行的控制台脚本(.con)。在这里你还可以找到我们软件中使用的神经网络。 |
Install | 用于设置NAO机器人的脚本和其他文件。 |
Make | 用于软件开发的脚本和项目文件。Make/<os/ide>包含特定ide或构建系统的项目文件。Make/Common包含构建系统的共享部分。它还包含用于部署代码和下载其他工具使用的日志文件的脚本。 |
Src | 所有Bhuman源代码 |
Util | 不属于Bhuman系统的第三方工具 |
评论 · 0