跳转至

RM 视觉学习手册

Navigator 战队视觉组内部手册

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

第一次来?只需三步

不用纠结点哪里,按这个顺序就行

  1. [10 分钟] 打开 ch00 学习路线总览,看一眼全书地图,知道自己要走的路。
  2. [30 分钟] 打开 ★ 端到端走读,看懂一帧图像从相机到子弹的完整旅程——这是全书唯一指定的起点。
  3. 回到本页,在下面 选你的路线 里对号入座,照着那条路线一章章读下去。

读的过程中遇到不懂的语法/概念?不要停下来补课,去 查字典,查完回来继续读。每读完一个阶段,去 训练页 做对应练习验收。


选你的路线(三种起点)


全书地图(每章讲什么、要多久)

按顺序排列;"前置"是指读该章前建议先读完的章节。通读时长按认真读(含代码)估算,实操另计。

章节 一句话说明 难度 通读时长 前置
路线 ch00 学习路线总览 全书知识地图与六阶段学习计划 12 分钟
基础 ch01 开发环境 Ubuntu、Git、VSCode、SSH、CMake 一站配齐 40 分钟
基础 ch02 C++ 基础 用自瞄代码实例讲透 C++ 核心语法(字典,可随用随查) ★★ 30 分钟
基础 ch03 Linux 基础 在无屏幕的工控机上用终端干活:权限、进程、udev 30 分钟 ch01
基础 ch04 ROS2 核心 节点、话题、TF2、Launch——自瞄系统的骨架 ★★ 50 分钟 ch02、ch03
基础 ch05 OpenCV 从灰度、二值化到轮廓筛选,看懂检测器的每一步 ★★ 55 分钟 ch02
核心 ★ 端到端走读 一帧图像从相机到子弹的完整旅程(全书起点 30 分钟
核心 ch06 系统架构 数据流、5 个 ROS2 包、Topic、串口协议鸟瞰 ★★ 50 分钟 ch04
核心 ch07 装甲板检测 逐函数拆解:找灯条 → 配对 → 数字识别 → 位姿 ★★★ 55 分钟 ch05、ch06
核心 ch08 EKF 目标跟踪 11 维 EKF 逐矩阵讲透:平滑噪声、估计转速、预测未来 ★★★★ 2 小时 ch07
核心 ch09 PnP 位姿解算 从 2D 角点求 3D 位姿,解决 yaw 二义性 ★★★ 35 分钟 ch05、ch07
核心 ch10 弹道与瞄准 重力/空气阻力补偿、选板、飞行时间迭代、开火决策 ★★★★ 1.5 小时 ch08、ch09
进阶 ch11 标定系统 内参标定与手眼标定:原理、代码、实操、验证 ★★★ 45 分钟 ch05、ch09
进阶 ch12 进阶主题 MPC、全向感知、导航决策、反陀螺、能量机关,按角色选读 ★★★★★ 2 小时 核心篇全部
训练 练习与里程碑 16 个分级练习 + 4 个里程碑,把"看懂"变成"能做" 配合各章
参考 调试指南 七大故障场景按"症状→排查→解决"速查 随用随查
参考 术语表 · 学习资源 核心术语速查 · 教程/论文链接汇总 随用随查

核心篇阅读顺序(跟着数据流读代码)

为什么是这个顺序

核心篇按数据流排列——一帧图像经过的每一站,正好就是你读代码的顺序:

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

每个代码章节里都有两类链接:GitHub 源码(直接打开对应代码文件)和 📖 知识库(跳到相关字典)。例如在 ch07 看到 cv::threshold() 不懂 → 点旁边的 📖 → 跳到 ch05 → 学完回来继续。


卡住了怎么办(查字典)

本手册的核心用法

读代码遇到不懂的,不要停下来系统补课——按下图对号入座查对应字典,查完回来继续读。字典章节不需要提前读完。

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
字典章节 内容 什么时候需要查
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
术语表 EKF、PnP、QoS、TF2 等缩写 看到不认识的缩写时
调试指南 七大故障场景排查 代码跑不起来、效果不对时

读完就练(里程碑验收)

看懂和会做之间差着几十小时的调试。每读完一个阶段,去 训练页 做对应练习,达到验收标准才算过关:

里程碑 对应章节 做完你就是
M1 跑起来 ch01-ch05、端到端走读 新队员 → 能独立跑通系统
M2 拆开看 ch06、ch07、ch09 视觉组正式成员
M3 改得动 ch08、ch10、调试指南 模块负责人
M4 设计者 ch11、ch12 及上游仓库 视觉组核心 / 组长

三个代码仓库

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

Mac 用户

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