自瞄教程

环境与依赖

以 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. 先准备什么

项目WindowsUbuntu 24.04 x86_64(推荐)作用
代码管理GitGit下载代码、记录版本
C++ 工具链MSVC / Visual Studio 2022GCC / G++编译自瞄与 SDK
构建系统CMake + NinjaCMake + Ninja统一生成与构建
基础视觉库按项目用 vcpkg 安装OpenCV、Eigen 等 apt 包图像、矩阵与日志等
模拟器Daedalus 最新稳定 Windows ReleaseDaedalus 最新稳定 Linux Release自瞄学习与算法验证

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


2. Daedalus 的仓库、Release 与使用模式

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

发布包如何获取

公开仓库会随着模拟器和 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 --parallel

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

3.3 安装并启动 Daedalus 模拟器

从公开发行仓库选择最新稳定的 Daedalus Simulator 完整 Release。安装、SDK 和固定相机标定必须来自同一个发布包。

  1. 从全部 Releases下载最新稳定版本的 windows-x86_64.zip,完整解压到例如 C:\RoboMaster\Daedalus。
  2. 确认目录中至少有 bin\、assets\、sdk\、camera-calibration.json、docs\ 和 start-simulator.ps1。
  3. 可以双击 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\sdk

4. 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-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.txt、README 或锁定文件删减;不要把本节当作所有自瞄项目的强制依赖清单。

模拟器在 Ubuntu 24.04 上常用的运行依赖为:

sudo apt install -y \
  libvulkan1 mesa-vulkan-drivers vulkan-tools \
  libudev1 libasound2t64

4.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 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 版本和模型输入输出约定。

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

先确认使用的是完整 Release,并从该目录运行相应平台的启动脚本。查看 release.json 确认版本、平台和 SDK 契约,不要从 bin\ 单独拷走运行程序。Windows 高性能模式需要 DX12,可视模式需要 Vulkan;Linux 可视模式需要有效桌面显示会话,高性能模式可以在无窗口环境运行。


7.Tips

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


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

On this page