RM 视觉学习手册¶
第一次来?只需三步¶
不用纠结点哪里,按这个顺序就行
- [10 分钟] 打开 ch00 学习路线总览,看一眼全书地图,知道自己要走的路。
- [30 分钟] 打开 ★ 端到端走读,看懂一帧图像从相机到子弹的完整旅程——这是全书唯一指定的起点。
- 回到本页,在下面 选你的路线 里对号入座,照着那条路线一章章读下去。
读的过程中遇到不懂的语法/概念?不要停下来补课,去 查字典,查完回来继续读。每读完一个阶段,去 训练页 做对应练习验收。
选你的路线(三种起点)¶
-
路线 A:完全零基础(不会 C++)
先补基础再读代码,预计 2-3 个月:
- ch01 开发环境(2-3 天)
- ch02 C++ 基础(3-4 周)
- ch04 ROS2 核心(2-3 周)
- ch05 OpenCV(2 周)
- 回到 端到端走读,进入核心篇
- 边读边做 M1 练习
-
路线 B:会编程,没碰过 ROS / 视觉
直接读主线,缺什么补什么:
-
路线 C:老队员 / 备赛冲刺
直奔高价值内容:
全书地图(每章讲什么、要多久)¶
按顺序排列;"前置"是指读该章前建议先读完的章节。通读时长按认真读(含代码)估算,实操另计。
| 篇 | 章节 | 一句话说明 | 难度 | 通读时长 | 前置 |
|---|---|---|---|---|---|
| 路线 | 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["⚡ 云台电机"]
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 | 看到 publish、subscribe、tf2、.msg 时 |
| ch05 OpenCV | 二值化 · 轮廓 · 透视变换 · 形态学 | 看到 cv:: 开头的函数时 |
| ch11 标定系统 | 内参 · 外参 · 手眼标定 | 看到 camera_matrix、R_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(🐧)的内容供队友参考。涉及平台差异的地方会标注对应图标。