自瞄教程

环境与依赖

从 Windows 入门、Linux 主开发环境到 Daedalus 模拟器和自瞄工程依赖的可复现配置。

在 GitHub 编辑

先说结论

推荐将 Linux(建议 Ubuntu 22.04 LTS)作为自瞄主开发环境,Windows 作为模拟器运行、资料整理和必要的兼容性验证环境。

原因很实际:车载 NVIDIA Jetson NX 运行 Linux。把日常编译、依赖管理和运行方式尽量靠近车端,能显著减少“电脑能跑、上车不能跑”的环境差异。若个人电脑条件允许,推荐保留 Windows,再安装 Ubuntu 双系统;不要把 CUDA、工业相机 SDK 与高帧率视频流的长期开发完全押在虚拟机里。

Windows 当然可以用于学习和调试。本教程会同时给出 Windows 与 Linux 路径;但后续 C++ 构建、视觉依赖、部署排错和车端复现实验优先以 Linux 为准。

本章配置的是 通用开发底座。模型权重、TensorRT engine、标注数据、厂商相机 SDK 和具体通信库必须由对应项目按版本单独管理,不能“为了省事”从别的项目复制过来。

1. 先准备什么

项目WindowsLinux(推荐)作用
代码管理GitGit下载代码、记录版本
C++ 工具链MSVC / Visual Studio 2022GCC / G++编译自瞄与 SDK
构建系统CMake + NinjaCMake + Ninja统一生成与构建
基础视觉库按项目用 vcpkg 安装OpenCV、Eigen 等 apt 包图像、矩阵与日志等
模拟器Daedalus v1.0.0 release bundle(已验证)Daedalus v1.0.0 release bundle(显卡加速待实机验证)自瞄算法验证

建议在开始前创建一个不含中文和空格的工作目录,例如 Windows 使用 C:\RoboMaster,Linux 使用 ~/robomaster


2. Daedalus 的来源、维护与发布状态

Daedalus 的公开起点来自河北科技大学 Actor&Thinker。3SE 战队在此基础上持续进行适配、扩展和工程化,并维护模拟器、公共 SDK、发布版本与实验流程。

发布包如何获取

3SE 维护 v1.0.0 完整 release bundle,其中包含运行程序、assets/、SDK、配置与启动脚本。

需要完整包时,请向 3SE 获取与 v1.0.0 对应的发布文件;若只需阅读或编译源码,可从维护仓库检出对应的版本标签。


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 CommunityBuild 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 --parallel

x64-windows 是 Windows x64 的常用 triplet;若项目要求静态链接或特定运行库,以项目自己的 vcpkg.json / 构建说明为准。可参考 vcpkg 依赖安装教程

3.3 安装并启动 Daedalus 模拟器

本教程固定使用 Daedalus Simulator v1.0.0 完整 release bundle。不要用 main 分支快照、SDK 单独目录或数据集目录代替正式包;公开下载资产的状态以上一节为准。

  1. 从 3SE 提供的 v1.0.0 完整发布包取得文件,并解压到例如 C:\RoboMaster\Daedalus。公开 release 资产上线后,使用上一节的下载入口。
  2. 确认目录中至少有 bin\assets\sdk\、配置文件和 start-simulator.ps1
  3. 在解压目录打开 PowerShell,首次使用可仅对当前终端临时放开脚本执行:
Set-ExecutionPolicy -Scope Process Bypass
cd C:\RoboMaster\Daedalus
.\start-simulator.ps1 -Visible

-Visible 用于打开可视窗口,便于观察靶车与画面;不带该参数时采用默认高性能模式。Windows 路径已完成验证;Linux 也有发布路径,但显卡加速仍待实机验证,详见上一节。

3.4 构建 SDK(需要接入模拟器时)

以下操作在模拟器根目录执行:

cmake -S .\sdk\cpp -B .\build\sim-sdk
cmake --build .\build\sim-sdk --config Release --parallel
ctest --test-dir .\build\sim-sdk -C Release --output-on-failure
cmake --install .\build\sim-sdk --prefix .\build\sim-sdk-install --config Release

你的自瞄工程通过 CMAKE_PREFIX_PATH 找到 SDK:

cmake -S <你的自瞄源码目录> -B build\autoaim `
  -DCMAKE_PREFIX_PATH=C:\RoboMaster\Daedalus\build\sim-sdk-install

4. Linux:推荐的主开发环境

4.1 安装 Ubuntu 与更新系统

推荐 x86_64 台式机或笔记本使用 Ubuntu 22.04 LTS。双系统安装时请为 Linux 预留足够的磁盘空间,并确认 NVIDIA 独显驱动正常工作;不要在尚未确认硬件驱动时急着安装 CUDA / TensorRT。

打开终端后执行:

sudo apt update
sudo apt upgrade -y
sudo reboot

重启后检查系统与 GPU(无 NVIDIA GPU 的读者可跳过第二条):

lsb_release -a
nvidia-smi

4.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 --version

4.3 安装基础视觉依赖

对于典型 C++ 自瞄工程,可先安装下列通用库:

sudo apt install -y \
  libopencv-dev libeigen3-dev libfmt-dev libspdlog-dev

pkg-config --modversion opencv4

若最后一行输出版本号,说明 OpenCV 的 pkg-config 信息可用。某个工程如只使用其中一部分库,可以按它的 CMakeLists.txtREADME 或锁定文件删减;不要把本节当作所有自瞄项目的强制依赖清单

4.4 推荐的目录与构建方式

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.5 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 v1.0.0 正式包Windows(已验证)/ Linux(待验证)Linux 包存在;Linux 显卡加速的实机结果尚未验收
阅读源码、写教程、整理数据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 Ninja

Windows 则检查 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 版本和模型输入输出约定。

模拟器画面不出现或启动失败

先确认使用的是完整 v1.0.0 release bundle,并从该目录运行相应平台的启动脚本。不要从 bin\ 单独拷走运行程序;它依赖同目录发布资产和环境配置。Linux 的显卡加速故障请记录 GPU 型号、驱动、渲染后端和完整日志,当前状态仍属待验证。


7.Tips

模拟器有问题都可以给我反馈,包括帧率低,画面卡顿,或者linux的模拟器不能用显卡渲染画面 戳一下作者 作者花两块钱租个有显卡的服务器验证一下就可以了,以及所有的环境配置都可以交给AI完成,包括模拟器怎么使用,作者提供了给AI阅读的文档,能够帮助AI了解模拟器结构 还有安装方式。环境安装就不要来问我了,我没装双系统,我用的是WSL ;常见的问题AI都可以解决,只有涉及到自瞄有关的问题再来问我。


8. 相关来源与进一步阅读

On this page