Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

AWAKENING

武汉科技大学 RoboMaster 崇实战队视觉算法代码仓库


持续开发中,欢迎向我们提供本仓库的错误与问题,欢迎进行技术交流


📑 目录


✨ 亮点

  • 多任务一体化视觉框架:覆盖自动瞄准、能量机关、全向感知、哨兵决策、雷达识别等 RoboMaster 视觉任务,算法模块与运行时入口分离,便于在不同兵种、车型和比赛需求间复用和裁剪。

  • 高性能低延迟推理链路:支持 OpenVINO 与 TensorRT/CUDA 后端,并针对多线程推理链路进行优化。

  • 完整的部署与调试工具链:支持 SSH + Web 远程控制与可视化,只需一根网线即可完成调试,无需桌面环境,减少无关图形界面对计算资源的占用。


🚀 运行效果

运行时性能

以 auto_aim 链路为例,统计范围为从获取图像到该帧完成识别与状态估计,神经网络模型使用 model/opt-1208-001.onnx。

硬件设备最大吞吐量平均端到端处理时间
Intel NUC 1240P + Hik CS016-10UC250Hz(受相机帧率限制)6-8ms
NVIDIA Orin NX 8G + Hik CS016-10UC250Hz(受相机帧率限制)2-6ms

效果演示

https://github.com/user-attachments/assets/96dacb29-bae6-425c-b271-9202b91a749c

🛠 部署

📦 依赖

基础构建环境

  • C++23 编译器
  • CMake
  • Ninja
  • OpenCV
  • fmt
  • Ceres
  • Eigen3
  • nlohmann-json
  • yaml-cpp
  • spdlog
  • TBB
  • Boost

推理与设备 SDK

  • OpenVINO 2024.0.0+ / TensorRT-CUDA(TensorRT 10.6.0.26,CUDA 12.6)
  • HikSDK / MvSDK / DaHengSDK(按实际相机型号选择安装)
  • ROS2(可选,用于 ROS2 通信与可视化)

⚡ Quick Start

安装 apt 依赖

sudo apt update

sudo apt install -y \
    clang \
    cmake \
    ninja-build \
    libopencv-dev \
    libfmt-dev \
    libceres-dev \
    libeigen3-dev \
    nlohmann-json3-dev \
    libyaml-cpp-dev \
    libspdlog-dev \
    libtbb-dev \
    libboost-all-dev

拉取代码并构建运行

git clone --recurse-submodules https://github.com/WUST-RM/awakening.git

cd awakening

sudo ./run.sh build

sudo ./run.sh run standard omni true

🌐 启动远程 Web 可视化

python3 web.py

雷达识别链路暂不适用 Web 可视化。


⚙️ 运行脚本

run.sh 支持以下命令:

sudo ./run.sh build                  # 配置并增量构建

sudo ./run.sh rebuild                 # 删除 build 后全量重构

sudo ./run.sh run <program> [args]    # 构建后运行

sudo ./run.sh race <program> [args]   # 不构建,直接运行 bin 下程序

sudo ./run.sh debug <program> [args]  # 构建后使用 gdb 启动

🔄 数据流图

数据流图

🏗️ 软件架构

flowchart TB
      subgraph App["运行时入口 runtime"]
          Standard["standard<br/>标准自动瞄准"]
          Sentry["sentry<br/>哨兵算法"]
          Radar["radar_detect / radar_cal<br/>雷达识别/标定"]
          Tools["control_test / delay_test / map_edit<br/>测试与工具程序"]
      end

      subgraph Task["任务算法层 tasks"]
          AutoAim["auto_aim<br/>装甲板识别 / 跟踪 / 控制"]
          AutoBuff["auto_buff<br/>能量机关识别 / 跟踪 / 控制"]
          WebTask["base/web<br/>Web 数据输出"]
          SentryBrain["sentry_brain<br/>哨兵决策"]
          RadarDetect["radar_detect<br/>雷达识别 / 定位 / 跟踪"]
          RadarIO["radar_io<br/>雷达通信协议"]
      end

      subgraph Infra["通用基础设施 utils"]
          Drivers["drivers<br/>相机 / 串口 / 视频输入"]
          Net["net_detector<br/>图像神经网络推理封装"]
          CUDA["cuda<br/>cuda代码"]
          IO["io<br/>视频 / 点云 IO"]
          Scheduler["scheduler<br/>调度器"]
          TF["tf / runtime_tf<br/>坐标变换"]
          Logger["logger / buffer / common<br/>日志与公共工具"]
      end

📂 文件结构

.
├── 3rdparty/             # 第三方依赖库
├── auto_start/           # 自启动脚本
├── cmake/                # 第三方 SDK 的 CMake 查找脚本
├── config/               # 运行配置
├── docs/                 # 技术文档与算法说明
├── model/                # 神经网络模型文件
├── script/               # 辅助脚本
├── src/                  # C++ 主代码
├── static/               # Web 可视化静态资源
├── templates/            # Web 可视化页面模板
├── CMakeLists.txt        # CMake 构建入口
├── run.sh                # 构建、运行、调试脚本
└── web.py                # 远程 Web 可视化服务

🧩 核心代码结构

src/
├── runtime/              # 各运行时入口
├── tasks/                # 任务算法模块
│   ├── auto_aim/         # 自动瞄准:识别、跟踪、控制
│   ├── auto_buff/        # 能量机关:识别、跟踪、控制
│   ├── base/             # 弹道、通信包、Web 数据等公共任务组件
│   ├── eyes_of_blind/    # 图传编码/解码链路
│   ├── radar_detect/     # 雷达识别、定位、跟踪与地图匹配
│   ├── radar_io/         # 雷达通信协议
│   └── sentry_brain/     # 哨兵决策逻辑
│
├── utils/                # 通用工具库
│   ├── cuda/             # CUDA 图像预处理
│   ├── drivers/          # 工业相机、UVC、串口、视频输入
│   ├── io/               # 视频、点云等数据 IO
│   ├── net_detector/     # 图像神经网络推理封装
│   └── scheduler/        # 调度器
│
├── _rcl/                 # ROS2 节点与可视化消息
├── _rerun/               # Rerun 可视化
└── pch.hpp               # 预编译头

🧠 算法详解

主题文档
“整车”状态估计docs/algorithm/estimation.md
轨迹优化docs/algorithm/traj_opt.md
图像识别docs/algorithm/detect.md
并发推理docs/algorithm/concurrent_inference.md

📝 TODO

  • 针对现实装甲板特征可见性的投影模型
  • 神经网络识别单独灯条
  • 针对 imu 图像时间对齐的延迟估计

👨‍💻 作者

  • 刘璧洁 MoCI-L
    雷达识别/通信部分开发与维护

  • 岳长鑫 TRIAuAuAu
    英雄图传

  • 武晓健 hyheiyue
    qq:1836871898
    vx:hy_xiaojian

    自动瞄准/能量机关/哨兵决策/雷达识别


🙏 对本项目有帮助的 RoboMaster 开源项目或者个人

排名不分先后。


📚 前作

wust_vision

关于 About

Awake to glory, crowned as champion at first sight
auto-aimrobomastervision

语言 Languages

C++89.6%
Shell2.4%
CMake2.1%
Python2.0%
Cuda1.3%
JavaScript1.2%
CSS0.9%
HTML0.4%
C0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
179
Total Commits
峰值: 21次/周
Less
More

核心贡献者 Contributors