环境与依赖
以 Ubuntu 24.04 为主环境,安装持续更新的 Daedalus Release、SDK 和自瞄依赖。
先说结论
本教程以 Ubuntu 24.04 LTS x86_64 作为自瞄主开发与复现实验环境。Windows 10/11 x86_64 仍可用于运行模拟器、熟悉 SDK 和进行跨平台兼容性验证。
原因很实际:车载 NVIDIA Jetson NX 运行 Linux。把日常编译、依赖管理和运行方式尽量靠近车端,能显著减少“电脑能跑、上车不能跑”的环境差异。若个人电脑条件允许,推荐保留 Windows,再安装 Ubuntu 双系统;不要把 CUDA、工业相机 SDK 与高帧率视频流的长期开发完全押在虚拟机里。
Windows 当然可以用于学习和调试。本教程会同时给出 Windows 与 Linux 路径;但后续 C++ 构建、视觉依赖、部署排错和车端复现实验优先以 Linux 为准。
本章配置的是 通用开发底座。模型权重、TensorRT engine、标注数据、厂商相机 SDK 和具体通信库必须由对应项目按版本单独管理,不能“为了省事”从别的项目复制过来。
1. 先准备什么
| 项目 | Windows | Ubuntu 24.04 x86_64(推荐) | 作用 |
|---|---|---|---|
| 代码管理 | Git | Git | 下载代码、记录版本 |
| C++ 工具链 | MSVC / Visual Studio 2022 | GCC / G++ | 编译自瞄与 SDK |
| 构建系统 | CMake + Ninja | CMake + Ninja | 统一生成与构建 |
| 基础视觉库 | 按项目用 vcpkg 安装 | OpenCV、Eigen 等 apt 包 | 图像、矩阵与日志等 |
| 模拟器 | Daedalus 最新稳定 Windows Release | Daedalus 最新稳定 Linux Release | 自瞄学习与算法验证 |
建议在开始前创建一个不含中文和空格的工作目录,例如 Windows 使用 C:\RoboMaster,Linux 使用 ~/robomaster。
2. Daedalus 的仓库、Release 与使用模式
Daedalus 的公开起点来自河北科技大学 Actor&Thinker。3SE 战队在此基础上持续进行适配、扩展和工程化,并维护模拟器、公共 SDK、发布版本与实验流程。
- 原始公开参考:河北科技大学 Actor&Thinker《Daedalus Simulator》。
- 3SE 的公开普通发行仓库:Daedalus Simulator Releases。
- 3SE 的公开比赛发行仓库:Daedalus Simulator Contest Releases。
发布包如何获取
公开仓库会随着模拟器和 SDK 更新。首次安装应先阅读发行仓库首页,再从全部 Releases选择最新稳定版本;releases/latest只作为便捷入口。
Windows 下载当前 Release 的 windows-x86_64.zip;Ubuntu 24.04 优先下载 linux-x86_64.tar.gz。完整包应同时包含运行程序、资产、配套 SDK、相机标定、release.json、文档和启动脚本。不要只复制 bin/,也不要把不同 Release 的 SDK、标定和可执行文件混用。
教程安装入口跟随最新稳定 Release;需要复现实验时,则必须记录并固定实验实际使用的 Release、SDK、平台、相机和数据 manifest。安装指南可以滚动更新,实验事实不能跟着改版本号。
普通学习包和比赛包不是一回事
| 发行类型 | 面向用途 | 目标真值 |
|---|---|---|
| 普通 Release | 学习 SDK、运行完整自瞄链路、离线研究 | 是否支持离线标签以包内 release.json 和文档为准;当前公开包不承诺在线目标真值 |
| Contest Release | 公平比赛和统一验收 | 在线目标真值固定关闭,只开放比赛允许的图像、控制、场景和计分接口 |
当前比赛版为 Linux x86_64 的独立发行,下载和规则均以比赛发行仓库为准。比赛版不能用于声称“算法读取了真值仍属于完整自瞄”——完整自瞄必须从图像经过检测、角点、PnP、跟踪和预测得到状态。
研究环境可以使用 Release 明确提供的、默认关闭的同曝光离线标签来画投影、生成训练 target 或评价误差,但真值不能进入 detector、PnP、tracker、预测器或火控的在线输入。单独的在线 oracle 学习模式目前尚未公开发布,教程不会预先伪造这个接口。
3. Windows:适合先跑模拟器与熟悉工程
3.1 安装基础工具
使用 Windows 10/11 x64,并以 PowerShell 作为后续命令行。先安装 Git、CMake 和 Ninja:
winget install --id Git.Git --exact
winget install --id Kitware.CMake --exact
winget install --id Ninja-build.Ninja --exact然后安装 Visual Studio 2022 Community 或 Build Tools for Visual Studio。在安装器中勾选:
Desktop development with C++(使用 C++ 的桌面开发)- MSVC x64/x86 生成工具
- Windows 10/11 SDK
- CMake tools for Windows(如安装器提供)
Microsoft 的 C++ 构建工具说明见官方文档。安装完成后,重新打开 PowerShell 并检查:
git --version
cmake --version
ninja --version如果
cl命令找不到,请从开始菜单打开 x64 Native Tools Command Prompt for VS 2022,或直接在 Visual Studio 的 Developer PowerShell 中运行 CMake。
3.2 可选:用 vcpkg 管理 C++ 视觉依赖
当你的自瞄工程的 CMakeLists.txt 明确需要 OpenCV、Eigen、fmt 或 spdlog 时,再安装它们;不要在不需要时盲目堆积依赖。
git clone https://github.com/microsoft/vcpkg.git C:\dev\vcpkg
C:\dev\vcpkg\bootstrap-vcpkg.bat
C:\dev\vcpkg\vcpkg install opencv4:x64-windows eigen3:x64-windows fmt:x64-windows spdlog:x64-windows第一次编译可能较久。使用 CMake 配置工程时传入 vcpkg 工具链文件:
cmake -S <你的自瞄源码目录> -B build\autoaim -G Ninja `
-DCMAKE_BUILD_TYPE=Release `
-DCMAKE_TOOLCHAIN_FILE=C:\dev\vcpkg\scripts\buildsystems\vcpkg.cmake
cmake --build build\autoaim --parallelx64-windows 是 Windows x64 的常用 triplet;若项目要求静态链接或特定运行库,以项目自己的 vcpkg.json / 构建说明为准。可参考 vcpkg 依赖安装教程。
3.3 安装并启动 Daedalus 模拟器
从公开发行仓库选择最新稳定的 Daedalus Simulator 完整 Release。安装、SDK 和固定相机标定必须来自同一个发布包。
- 从全部 Releases下载最新稳定版本的
windows-x86_64.zip,完整解压到例如C:\RoboMaster\Daedalus。 - 确认目录中至少有
bin\、assets\、sdk\、camera-calibration.json、docs\和start-simulator.ps1。 - 可以双击
setup.cmd安装,也可以直接在解压目录便携运行。便携运行时,在 PowerShell 中执行:
Set-ExecutionPolicy -Scope Process Bypass
cd C:\RoboMaster\Daedalus
.\start-simulator.ps1 -Visible-Visible 用于打开可视窗口,便于观察场景;不带该参数时采用高性能无窗口模式,图像仍通过 SDK 输出。
3.4 接入 Release 自带的 SDK
完整 Release 已包含对应平台的预编译 SDK,不需要先编译模拟器源码。用户工程只约束 SDK 主版本:
find_package(DaedalusSimSdk 1 REQUIRED CONFIG)
target_link_libraries(your_target PRIVATE DaedalusSimSdk::DaedalusSimSdk)配置时让 CMAKE_PREFIX_PATH 指向 Release 中的 sdk:
cmake -S <你的自瞄源码目录> -B build\autoaim `
-DCMAKE_PREFIX_PATH=C:\RoboMaster\Daedalus\sdk4. Linux:推荐的主开发环境
4.1 安装 Ubuntu 与更新系统
推荐 x86_64 台式机或笔记本使用 Ubuntu 24.04 LTS。双系统安装时请为 Linux 预留足够的磁盘空间,并确认 NVIDIA 独显驱动正常工作;不要在尚未确认硬件驱动时急着安装 CUDA / TensorRT。
打开终端后执行:
sudo apt update
sudo apt upgrade -y
sudo reboot重启后检查系统与 GPU(无 NVIDIA GPU 的读者可跳过第二条):
lsb_release -a
nvidia-smi4.2 安装通用构建与调试工具
sudo apt update
sudo apt install -y \
git build-essential cmake ninja-build pkg-config \
gdb python3 python3-pip python3-venv验证工具链:
git --version
g++ --version
cmake --version
ninja --version4.3 安装基础视觉依赖
对于典型 C++ 自瞄工程,可先安装下列通用库:
sudo apt install -y \
libopencv-dev libeigen3-dev libfmt-dev libspdlog-dev
pkg-config --modversion opencv4若最后一行输出版本号,说明 OpenCV 的 pkg-config 信息可用。某个工程如只使用其中一部分库,可以按它的 CMakeLists.txt、README 或锁定文件删减;不要把本节当作所有自瞄项目的强制依赖清单。
模拟器在 Ubuntu 24.04 上常用的运行依赖为:
sudo apt install -y \
libvulkan1 mesa-vulkan-drivers vulkan-tools \
libudev1 libasound2t644.4 安装并启动 Daedalus 模拟器
Linux 同样从公开仓库下载最新稳定的完整 Release:
mkdir -p ~/robomaster/daedalus
tar -xzf linux-x86_64.tar.gz -C ~/robomaster/daedalus
cd ~/robomaster/daedalus
chmod +x ./install-linux.sh ./start-simulator.sh
./install-linux.sh
# 可视模式,用于首次验收
./start-simulator.sh --visible
# 高性能无窗口模式,用于算法运行
./start-simulator.sh使用 SDK 构建自己的程序时,将 -DCMAKE_PREFIX_PATH=<发布目录>/sdk 传给 CMake。
4.5 推荐的目录与构建方式
mkdir -p ~/robomaster/{src,build,recordings,configs}
cd ~/robomaster/src
# 将后续自瞄仓库克隆到此处;仓库地址以你实际使用的项目为准
git clone <你的自瞄仓库地址> autoaim
cmake -S ~/robomaster/src/autoaim -B ~/robomaster/build/autoaim \
-G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build ~/robomaster/build/autoaim --parallel建议把源代码、可再生成的构建产物、录制数据和实验配置分开保存:
~/robomaster/
├── src/ # 自瞄源代码
├── build/ # 可删除并重新生成的构建目录
├── recordings/ # 可公开或已脱敏的录制数据
└── configs/ # 标定与实验配置4.6 Jetson NX / 车端部署提示
桌面 Linux 与 Jetson NX 都是 Linux,但 CPU 架构、JetPack、CUDA、cuDNN 和 TensorRT 版本可能不同。不要将在 x86_64 桌面机生成的 TensorRT engine 直接带到车端使用。
在 Jetson 上先记录环境:
uname -m
cat /etc/nv_tegra_release
dpkg -l | grep -E 'nvinfer|tensorrt|cuda'CUDA / TensorRT 应跟随目标 JetPack 版本安装。NVIDIA 对 Jetson 的建议是由 JetPack 管理平台组件;具体流程请以 Jetson 软件文档 和 TensorRT 安装说明 为准。未经版本核对,不要升级车端驱动、CUDA 或 TensorRT。
5. Windows 与 Linux 如何分工
| 工作 | 推荐环境 | 说明 |
|---|---|---|
| 运行 Daedalus 最新稳定完整包 | Windows / Ubuntu 24.04 x86_64 | 模拟器、SDK、标定和文档必须来自同一 Release;首次使用先运行可视模式验收 |
| 阅读源码、写教程、整理数据 | Windows / Linux | 选择顺手的环境即可 |
| 编译 C++ 自瞄、运行单元测试 | Linux 优先 | 与车端工作方式更接近 |
| 工业相机、CUDA、TensorRT、车端联调 | Linux / Jetson | 严格记录版本与硬件 |
| 发布前复现 | Windows + Linux | 至少验证模拟器侧和车端侧各一次 |
6. 常见问题
cmake 找不到 OpenCV / Eigen
先确认依赖是否已安装,再删除 构建目录 后重新配置;不要删除源码或模型。
rm -rf ~/robomaster/build/autoaim
cmake -S ~/robomaster/src/autoaim -B ~/robomaster/build/autoaim -G NinjaWindows 则检查 CMAKE_TOOLCHAIN_FILE 是否指向实际的 vcpkg 路径,以及使用的 triplet 是否为 x64-windows。
Windows 能跑、Linux / 车端不能跑
优先比对以下信息,而不是先重装系统:
uname -m
g++ --version
cmake --version
cat /etc/nv_tegra_release # Jetson 才有同时记录 Git 提交、CMake 配置参数、CUDA / TensorRT 版本和模型输入输出约定。
模拟器画面不出现或启动失败
先确认使用的是完整 Release,并从该目录运行相应平台的启动脚本。查看 release.json 确认版本、平台和 SDK 契约,不要从 bin\ 单独拷走运行程序。Windows 高性能模式需要 DX12,可视模式需要 Vulkan;Linux 可视模式需要有效桌面显示会话,高性能模式可以在无窗口环境运行。
7.Tips
模拟器有问题都可以给我反馈,包括帧率低,画面卡顿,或者linux的模拟器不能用显卡渲染画面 戳一下作者 作者花两块钱租个有显卡的服务器验证一下就可以了,以及所有的环境配置都可以交给AI完成,包括模拟器怎么使用,作者提供了给AI阅读的文档,能够帮助AI了解模拟器结构 还有安装方式。环境安装就不要来问我了,我没装双系统,我用的是WSL ;常见的问题AI都可以解决,只有涉及到自瞄有关的问题再来问我。