|
1 |
| -# IRobot 算法组培养路线 |
| 1 | +1. IRobot 算法组培养路线 |
2 | 2 |
|
3 |
| -| 版本 | 日期 | 人员 | 修改记录 | |
4 |
| -| ---- | ---------- | ---------------------- | -------- | |
5 |
| -| v1.1 | 2023-11-16 | 吴勇前, QQ:1102567801 | | |
6 |
| -| v1.0 | 2023-06-25 | 郑桂勇, QQ:2712089295 | 首次提交 | |
| 3 | + | 版本 | 日期 | 人员 | 修改记录 | |
| 4 | + | ---- | ---------- | ---------------------- | ------------------------------------------------------------ | |
| 5 | + | v1.1 | 2023-11-16 | 吴勇前, QQ:1102567801 | 添加 *2.2.1 slam基础部分* 的推荐学习课程与方法,细化了里程计与定位方法 | |
| 6 | + | v1.0 | 2023-06-25 | 郑桂勇, QQ:2712089295 | 首次提交 | |
7 | 7 |
|
8 |
| -## 1. 通识基础 |
| 8 | + ## 1. 通识基础 |
9 | 9 |
|
10 |
| -### 1.1 基础中的基础 |
| 10 | + ### 1.1 基础中的基础 |
11 | 11 |
|
12 |
| -1. Ubuntu 安装、系统文件结构介绍,常用操作(命令行操作需要背诵) |
13 |
| -2. C++基础与 ToolChain(CMake,gcc(认识)) |
14 |
| -3. 传统 CV 基础(图像原理和 OpenCV 对应代码) |
15 |
| -4. 自定义训练级下 YOLO 训练及调参 |
16 |
| -5. 相机模型、标定、2D-3D (PNP) |
| 12 | + 1. Ubuntu 安装、系统文件结构介绍,常用操作(命令行操作需要背诵) |
| 13 | + 2. C++基础与 ToolChain(CMake,gcc(认识)) |
| 14 | + 3. 传统 CV 基础(图像原理和 OpenCV 对应代码) |
| 15 | + 4. 自定义训练级下 YOLO 训练及调参 |
| 16 | + 5. 相机模型、标定、2D-3D (PNP) |
17 | 17 |
|
18 |
| -### 1.2 工程基础 |
| 18 | + ### 1.2 工程基础 |
19 | 19 |
|
20 |
| -1. ROS2 基础 |
21 |
| -2. 大恒相机使用 |
22 |
| -3. Can 通信和串口通信 |
23 |
| -4. 基本 python 和 matlab 使用 |
24 |
| -5. 常用调试工具、设备认识和使用 |
25 |
| -6. 常见报错处理认识和解决途径 |
| 20 | + 1. ROS2 基础 |
| 21 | + 2. 大恒相机使用 |
| 22 | + 3. Can 通信和串口通信 |
| 23 | + 4. 基本 python 和 matlab 使用 |
| 24 | + 5. 常用调试工具、设备认识和使用 |
| 25 | + 6. 常见报错处理认识和解决途径 |
26 | 26 |
|
27 |
| -### 1.3 进阶基础 |
| 27 | + ### 1.3 进阶基础 |
28 | 28 |
|
29 |
| -1. 基本滤波器状态估计机理(KF,EKF) |
30 |
| -2. 优化基本原理及优化库的使用(G2O,Ceres) |
| 29 | + 1. 基本滤波器状态估计机理(KF,EKF) |
| 30 | + 2. 优化基本原理及优化库的使用(G2O,Ceres) |
31 | 31 |
|
32 |
| -## 2. 细化方向 |
| 32 | + ## 2. 细化方向 |
33 | 33 |
|
34 |
| -### 2.1 深度学习方向 |
| 34 | + ### 2.1 深度学习方向 |
35 | 35 |
|
36 |
| -#### 2.1.1 深度学习方向基础 |
| 36 | + #### 2.1.1 深度学习方向基础 |
37 | 37 |
|
38 |
| -1. 目标检测和目标分类基础原理及代码基础 |
| 38 | + 1. 目标检测和目标分类基础原理及代码基础 |
39 | 39 |
|
40 |
| -2. 数据集处理和数据增强 |
| 40 | + 2. 数据集处理和数据增强 |
41 | 41 |
|
42 |
| -3. YOLO 的主干网络更改裁剪,输出层设计,LossFunciton 设计4. YOLO 网络剪枝和量化 |
| 42 | + 3. YOLO 的主干网络更改裁剪,输出层设计,LossFunciton 设计4. YOLO 网络剪枝和量化 |
43 | 43 |
|
44 |
| -4. YOLO 后端推理(OpenVino,TensorRT,OpenCV(dnn),ONNXRuntime) |
| 44 | + 4. YOLO 后端推理(OpenVino,TensorRT,OpenCV(dnn),ONNXRuntime) |
45 | 45 |
|
46 |
| -#### 2.1.2 深度学习方向研究方向建议 |
| 46 | + #### 2.1.2 深度学习方向研究方向建议 |
47 | 47 |
|
48 |
| -1. 论文阅读,关注热点,多看代码 |
| 48 | + 1. 论文阅读,关注热点,多看代码 |
49 | 49 |
|
50 |
| -2. 探讨将语义分割引入比赛(雷达站,哨兵)等,比较与目前方案的优劣性 |
| 50 | + 2. 探讨将语义分割引入比赛(雷达站,哨兵)等,比较与目前方案的优劣性 |
51 | 51 |
|
52 |
| -3. 探讨将单双目深度估计引入比赛(雷达站,哨兵)等,比较与目前方案的优劣性 |
| 52 | + 3. 探讨将单双目深度估计引入比赛(雷达站,哨兵)等,比较与目前方案的优劣性 |
53 | 53 |
|
54 |
| -4. 探讨将深度强化学习引入比赛(控制,决策)等,比较与目前方案的LIO优劣性 |
| 54 | + 4. 探讨将深度强化学习引入比赛(控制,决策)等,比较与目前方案的LIO优劣性 |
55 | 55 |
|
56 |
| -5. 更多请自由探索,发挥想象力 |
| 56 | + 5. 更多请自由探索,发挥想象力 |
57 | 57 |
|
58 |
| -### 2.2 SLAM 方向 |
| 58 | + ### 2.2 SLAM 方向 |
59 | 59 |
|
60 |
| -#### 2.2.1 SLAM 基础 |
| 60 | + #### 2.2.1 SLAM 基础 |
61 | 61 |
|
62 |
| -1. 了解常用的地图格式 |
63 |
| -2. 在 Nav2 中实现仿真环境下的导航问题,并理清不同 Frame 之间的转换及作用,以及理清定位,里程计,全局地图,局部地图和全局规划,局部规划的关系 |
64 |
| -3. 了解 AMCL 定位原理,以及补充里程计相关知识 |
65 |
| -4. 了解全局路径规划(A*,Dijkstra)等原理,了解局部规划算法(TEB,DWA )的原理 |
66 |
| -5. 尝试使用 Gammping 或 cartographer 使用激光雷达在仿真和真实世界中建图 |
67 |
| -6. 尝试 LIO 如 Fast-LIO 的 Demo 运行(Bag、真实设备) |
68 |
| -7. 尝试 VIO 如(ORB-SLAM、VINS-FUSION)的 Demo 运行(Bag、真实设备) |
69 |
| -8. 使用 Nav2 框架在真实世界进行 2d 下的机器人的导航规划(激光雷达使用 2d,里程计使用 **LIO** 或 VIO 输出或轮式里程计,预建全局地图) |
70 |
| -9. 使用 Nav2 的决策树模块,模拟赛场哨兵决策。 |
| 62 | + 1. 了解常用的地图格式 (推荐:高飞 移动机器人运动规划) |
71 | 63 |
|
72 |
| -#### 2.2.2 SLAM 研究方向建议 |
| 64 | + 2. 在 Nav2 中实现仿真环境下的导航问题,并**理清不同 Frame 之间的转换及作用**,以及**理清定位,里程计,全局地图,局部地图和全局规划,局部规划的关系**(可通过tf2_tools观看Frame之间的转换帮助理解,通过rqt_graph理清导航的完整框架) |
73 | 65 |
|
74 |
| -1. 多学理论基础,关注热点,多看代码,多看论文 |
| 66 | + 3. 了解**全局路径规划**(A*,Dijkstra)等原理,了解**局部规划算法**(TEB,DWA )的原理(推荐:高飞 移动机器人运动规划) |
75 | 67 |
|
76 |
| -2. 了解各种传感器(IMU,深度相机,雷达,UWB)等特性,以及其融合、标定、同步 |
77 |
| - 方案 |
| 68 | + 4. 补充**里程计**相关知识,了解**定位方法**的原理 |
78 | 69 |
|
79 |
| -3. 深入学习算法原理(IMU 预积分,建图算法,规划算法,感知算法等) |
| 70 | + - 视觉:了解特征点法,光流法的原理(推荐:《视觉slam十四讲》7、8讲) |
80 | 71 |
|
81 |
| -4. 心有余力者,可多看书如《机器人的状态估计》,多看论文(Mars Lab(hku) , HKUST Aerial Robotics Group , Fast Lab (zju) , STAR Lab(sysu) ) |
| 72 | + - 激光:了解 AMCL 等定位方法的原理(推荐:《概率机器人》 蒙特卡洛定位,知乎 Churlaaaaaaa AMCL包源码分析) |
| 73 | + |
| 74 | + - 其他:如轮式,GNSS |
| 75 | + |
| 76 | + 5. 尝试使用 Gammping 或 cartographer 使用激光雷达在仿真和真实世界中建图 |
| 77 | + |
| 78 | + 6. 尝试 LIO 如 Fast-LIO 的 Demo 运行(Bag、真实设备) |
| 79 | + |
| 80 | + 7. 尝试 VIO 如(ORB-SLAM、VINS-FUSION)的 Demo 运行(Bag、真实设备) |
| 81 | + |
| 82 | + 8. 使用 Nav2 框架在真实世界进行 2d 下的机器人的导航规划(激光雷达使用 2d,里程计使用 LIO 或 VIO 输出或轮式里程计,预建全局地图) |
| 83 | + |
| 84 | + 9. 使用 Nav2 的决策树模块,模拟赛场哨兵决策。 |
| 85 | + |
| 86 | + #### 2.2.2 SLAM 研究方向建议 |
| 87 | + |
| 88 | + 1. 多学理论基础,关注热点,多看代码,多看论文 |
| 89 | + |
| 90 | + 2. 了解各种传感器(IMU,深度相机,雷达,UWB)等特性,以及其融合、标定、同步 |
| 91 | + 方案 |
| 92 | + |
| 93 | + 3. 深入学习算法原理(IMU 预积分,建图算法,规划算法,感知算法等) |
| 94 | + |
| 95 | + 4. 心有余力者,可多看书如《机器人的状态估计》,多看论文(Mars Lab(hku) , HKUST Aerial Robotics Group , Fast Lab (zju) , STAR Lab(sysu) ) |
0 commit comments