Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 66 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,81 +1,95 @@
# IRobot 算法组培养路线
1. IRobot 算法组培养路线

| 版本 | 日期 | 人员 | 修改记录 |
| ---- | ---------- | ---------------------- | -------- |
| v1.1 | 2023-11-16 | 吴勇前, QQ:1102567801 | |
| v1.0 | 2023-06-25 | 郑桂勇, QQ:2712089295 | 首次提交 |
| 版本 | 日期 | 人员 | 修改记录 |
| ---- | ---------- | ---------------------- | ------------------------------------------------------------ |
| v1.1 | 2023-11-16 | 吴勇前, QQ:1102567801 | 添加 *2.2.1 slam基础部分* 的推荐学习课程与方法,细化了里程计与定位方法 |
| v1.0 | 2023-06-25 | 郑桂勇, QQ:2712089295 | 首次提交 |

## 1. 通识基础
## 1. 通识基础

### 1.1 基础中的基础
### 1.1 基础中的基础

1. Ubuntu 安装、系统文件结构介绍,常用操作(命令行操作需要背诵)
2. C++基础与 ToolChain(CMake,gcc(认识))
3. 传统 CV 基础(图像原理和 OpenCV 对应代码)
4. 自定义训练级下 YOLO 训练及调参
5. 相机模型、标定、2D-3D (PNP)
1. Ubuntu 安装、系统文件结构介绍,常用操作(命令行操作需要背诵)
2. C++基础与 ToolChain(CMake,gcc(认识))
3. 传统 CV 基础(图像原理和 OpenCV 对应代码)
4. 自定义训练级下 YOLO 训练及调参
5. 相机模型、标定、2D-3D (PNP)

### 1.2 工程基础
### 1.2 工程基础

1. ROS2 基础
2. 大恒相机使用
3. Can 通信和串口通信
4. 基本 python 和 matlab 使用
5. 常用调试工具、设备认识和使用
6. 常见报错处理认识和解决途径
1. ROS2 基础
2. 大恒相机使用
3. Can 通信和串口通信
4. 基本 python 和 matlab 使用
5. 常用调试工具、设备认识和使用
6. 常见报错处理认识和解决途径

### 1.3 进阶基础
### 1.3 进阶基础

1. 基本滤波器状态估计机理(KF,EKF)
2. 优化基本原理及优化库的使用(G2O,Ceres)
1. 基本滤波器状态估计机理(KF,EKF)
2. 优化基本原理及优化库的使用(G2O,Ceres)

## 2. 细化方向
## 2. 细化方向

### 2.1 深度学习方向
### 2.1 深度学习方向

#### 2.1.1 深度学习方向基础
#### 2.1.1 深度学习方向基础

1. 目标检测和目标分类基础原理及代码基础
1. 目标检测和目标分类基础原理及代码基础

2. 数据集处理和数据增强
2. 数据集处理和数据增强

3. YOLO 的主干网络更改裁剪,输出层设计,LossFunciton 设计4. YOLO 网络剪枝和量化
3. YOLO 的主干网络更改裁剪,输出层设计,LossFunciton 设计4. YOLO 网络剪枝和量化

4. YOLO 后端推理(OpenVino,TensorRT,OpenCV(dnn),ONNXRuntime)
4. YOLO 后端推理(OpenVino,TensorRT,OpenCV(dnn),ONNXRuntime)

#### 2.1.2 深度学习方向研究方向建议
#### 2.1.2 深度学习方向研究方向建议

1. 论文阅读,关注热点,多看代码
1. 论文阅读,关注热点,多看代码

2. 探讨将语义分割引入比赛(雷达站,哨兵)等,比较与目前方案的优劣性
2. 探讨将语义分割引入比赛(雷达站,哨兵)等,比较与目前方案的优劣性

3. 探讨将单双目深度估计引入比赛(雷达站,哨兵)等,比较与目前方案的优劣性
3. 探讨将单双目深度估计引入比赛(雷达站,哨兵)等,比较与目前方案的优劣性

4. 探讨将深度强化学习引入比赛(控制,决策)等,比较与目前方案的LIO优劣性
4. 探讨将深度强化学习引入比赛(控制,决策)等,比较与目前方案的LIO优劣性

5. 更多请自由探索,发挥想象力
5. 更多请自由探索,发挥想象力

### 2.2 SLAM 方向
### 2.2 SLAM 方向

#### 2.2.1 SLAM 基础
#### 2.2.1 SLAM 基础

1. 了解常用的地图格式
2. 在 Nav2 中实现仿真环境下的导航问题,并理清不同 Frame 之间的转换及作用,以及理清定位,里程计,全局地图,局部地图和全局规划,局部规划的关系
3. 了解 AMCL 定位原理,以及补充里程计相关知识
4. 了解全局路径规划(A*,Dijkstra)等原理,了解局部规划算法(TEB,DWA )的原理
5. 尝试使用 Gammping 或 cartographer 使用激光雷达在仿真和真实世界中建图
6. 尝试 LIO 如 Fast-LIO 的 Demo 运行(Bag、真实设备)
7. 尝试 VIO 如(ORB-SLAM、VINS-FUSION)的 Demo 运行(Bag、真实设备)
8. 使用 Nav2 框架在真实世界进行 2d 下的机器人的导航规划(激光雷达使用 2d,里程计使用 **LIO** 或 VIO 输出或轮式里程计,预建全局地图)
9. 使用 Nav2 的决策树模块,模拟赛场哨兵决策。
1. 了解常用的地图格式 (推荐:高飞 移动机器人运动规划)

#### 2.2.2 SLAM 研究方向建议
2. 在 Nav2 中实现仿真环境下的导航问题,并**理清不同 Frame 之间的转换及作用**,以及**理清定位,里程计,全局地图,局部地图和全局规划,局部规划的关系**(可通过tf2_tools观看Frame之间的转换帮助理解,通过rqt_graph理清导航的完整框架)

1. 多学理论基础,关注热点,多看代码,多看论文
3. 了解**全局路径规划**(A*,Dijkstra)等原理,了解**局部规划算法**(TEB,DWA )的原理(推荐:高飞 移动机器人运动规划)

2. 了解各种传感器(IMU,深度相机,雷达,UWB)等特性,以及其融合、标定、同步
方案
4. 补充**里程计**相关知识,了解**定位方法**的原理

3. 深入学习算法原理(IMU 预积分,建图算法,规划算法,感知算法等
- 视觉:了解特征点法,光流法的原理(推荐:《视觉slam十四讲》7、8讲

4. 心有余力者,可多看书如《机器人的状态估计》,多看论文(Mars Lab(hku) , HKUST Aerial Robotics Group , Fast Lab (zju) , STAR Lab(sysu) )
- 激光:了解 AMCL 等定位方法的原理(推荐:《概率机器人》 蒙特卡洛定位,知乎 Churlaaaaaaa AMCL包源码分析)

- 其他:如轮式,GNSS

5. 尝试使用 Gammping 或 cartographer 使用激光雷达在仿真和真实世界中建图

6. 尝试 LIO 如 Fast-LIO 的 Demo 运行(Bag、真实设备)

7. 尝试 VIO 如(ORB-SLAM、VINS-FUSION)的 Demo 运行(Bag、真实设备)

8. 使用 Nav2 框架在真实世界进行 2d 下的机器人的导航规划(激光雷达使用 2d,里程计使用 LIO 或 VIO 输出或轮式里程计,预建全局地图)

9. 使用 Nav2 的决策树模块,模拟赛场哨兵决策。

#### 2.2.2 SLAM 研究方向建议

1. 多学理论基础,关注热点,多看代码,多看论文

2. 了解各种传感器(IMU,深度相机,雷达,UWB)等特性,以及其融合、标定、同步
方案

3. 深入学习算法原理(IMU 预积分,建图算法,规划算法,感知算法等)

4. 心有余力者,可多看书如《机器人的状态估计》,多看论文(Mars Lab(hku) , HKUST Aerial Robotics Group , Fast Lab (zju) , STAR Lab(sysu) )