跳转至

RM 视觉学习手册

Navigator 战队视觉组内部手册

干活中学 · 真实代码 · 不懂就查 · 查完回来


快速入口


操作指南

怎么用这本手册(必读)

这本手册的核心理念是 "干活中学"——直接读代码,不懂就查字典,查完回来继续读。

第一次使用

  1. 打开 端到端走读 — 花 30 分钟看完整个流程,建立全局认识
  2. 打开 ch06 系统架构 — 理解代码仓库的目录结构和数据流
  3. 打开 ch07 装甲板检测 — 开始逐函数读真实代码

读代码时遇到不懂的怎么办

flowchart LR A["读代码遇到不懂"] --> B{"是什么类型的问题?"} B -->|"不懂 C++ 语法"| C["📖 查 ch02 C++ 字典"] B -->|"不懂 ROS2 概念"| D["📖 查 ch04 ROS2 字典"] B -->|"不懂 OpenCV 函数"| E["📖 查 ch05 OpenCV 字典"] B -->|"不懂缩写/术语"| F["📖 查 术语表"] B -->|"代码跑不起来"| G["🔧 查 调试指南"] C --> H["学完回来继续读代码"] D --> H E --> H F --> H G --> H

各章节怎么跳转

每个代码章节都有两个链接

  • GitHub 源码 — 点击直接打开对应的代码文件
  • 📖 知识库 — 点击跳转到相关知识字典

例如在 ch07 看到 cv::threshold() 不懂 → 点旁边的 📖 链接 → 跳到 ch05 OpenCV 字典 → 学完 → 回来继续

Mac 用户

本手册优先面向 Mac 用户(🍎),同时保留 Windows(🪟)和 Linux(🐧)的内容供队友参考。涉及平台差异的地方会标注对应图标。


代码走读主线(跟着数据流读代码)

阅读顺序

建议按顺序读,每一步都可以跳转字典补知识:

flowchart LR A["📷 相机采集
hik_camera_node"] -->|"/image_raw"| B["🔍 装甲板检测
armor_detector"] B -->|"/detector/armors"| C["📊 EKF 跟踪
armor_tracker"] C -->|"/tracker/target"| D["🎯 弹道解算
rm_serial_driver"] D -->|"/serial/gimbal"| E["⚡ 云台电机"]
步骤 代码走读 GitHub 源码 不懂时查这些字典
1 端到端走读 建立全局直觉
2 ch06 系统架构 RM_Vision_2027 📖 ch04 ROS2 · ch02 C++
3 ch07 装甲板检测 detector.cpp 📖 ch05 OpenCV
4 ch08 目标跟踪 ekf.cpp 📖 ch04 TF2
5 ch09 PnP 解算 pnp_solver.cpp 📖 ch05 透视变换
6 ch10 弹道与瞄准 solve_trajectory.cpp 📖 ch11 标定
7 ch12 进阶主题 planner.cpp 📖 ch04 Launch

基础字典

什么时候查字典

代码走读时遇到不懂的概念,点击旁边的链接跳转。不需要提前全部看完。

字典章节 内容 什么时候需要查
ch01 开发环境 Ubuntu · Git · VSCode · SSH · CMake git clone 代码、SSH 连工控机、cmake 编译报错
ch02 C++ 基础 变量 · 指针 · class · STL · lambda 看到 ::&*template 等不懂的语法
ch03 Linux 基础 文件系统 · Shell · vim · udev 在工控机上操作、改配置、看日志、权限报错
ch04 ROS2 核心 节点 · 话题 · TF2 · Launch · Component 看到 publishsubscribetf2.msg
ch05 OpenCV 二值化 · 轮廓 · 透视变换 · 形态学 看到 cv:: 开头的函数时

进阶字典

字典章节 内容 什么时候需要查
ch11 标定系统 内参 · 外参 · 手眼标定 看到 camera_matrixR_camera2gimbal
ch12 进阶主题 MPC · 全向感知 · 决策 · YOLO · 能量机关 完成基础走读后,深入研究

参考资料

资料 内容
调试指南 常见问题排查 · 工具速查 · 硬件检查清单
术语表 核心术语速查(EKF、PnP、QoS、TF2 等)
学习资源 教程网站、PDF、论文链接汇总

三个代码仓库

仓库 说明 主要对应章节
RM_Vision_2027 你们的 2027 赛季代码(主读这个) ch06-ch12
sp_vision_25 同济大学开源方案(参考对比) ch07, ch08, ch12
rm_vision 去年框架(ChenJun 开源) ch06-ch10
vision_tutorial 《了解CV和RM视觉组》PDF 全书参考

如果你完全零基础

可以先补基础,再回来读代码

如果连 C++ 都不会,可以先按这个顺序补基础:

  1. ch01 开发环境(2-3天)→ 能用 Ubuntu 写代码
  2. ch02 C++ 基础(3-4周)→ 能看懂 class、指针、STL
  3. ch04 ROS2 核心(2-3周)→ 理解节点/话题/TF2
  4. ch05 OpenCV(2周)→ 能看懂检测器里的 OpenCV 代码
  5. 然后开始 端到端走读

但如果你有一定基础,直接从端到端走读开始,遇到不懂的再查字典。