# 25赛季培训
**Repository Path**: ZZH-IVY/25SeasonTrain
## Basic Information
- **Project Name**: 25赛季培训
- **Description**: 基于DJI standard_robot 升级的通用机器人下位机控制代码
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 40
- **Created**: 2024-10-17
- **Last Updated**: 2024-10-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# StandardRobot++

[](https://gitee.com/Ljw0401)
[](https://gitee.com/yuan-zaixiu)


[](https://gitee.com/SMBU-POLARBEAR/StandardRobotpp)
[](https://gitee.com/SMBU-POLARBEAR/StandardRobotpp)
[](https://gitee.com/SMBU-POLARBEAR/StandardRobotpp)
[](https://gitee.com/SMBU-POLARBEAR/StandardRobotpp)
## 简介
> 也许不是最好的?但一定是最适合上手的C板电控框架!
本项目的计划是基于 DJI StandardRobot 的基础上改造成一个更适合北极熊uu们的通用型机器人代码框架。
本框架致力于实现不同类型的机器人的代码通用化,只需要选择底盘云台的类型,修改一下对应物理参数即可实现对机器人的适配。
> 写代码时遇到问题可以查看:
- [培训指南](./doc/培训阶段指南.md)
- [API](./doc/API.md)
## 25赛季培训计划
### 前言
为了让大家快速融入到北极熊现有电控体系中,本赛季的培训计划以实践为主,让大家在实操过程中逐渐掌握需要的技能。
### 第一阶段
> 本阶段主要让大家学会主要外设的使用,不深入讲解具体实现原理(如对其原理感兴趣的可私聊)。
1. 实现电机的开环控制,能使用提供的函数实现对 DJI、DM 系列电机的控制。
2. 了解遥控器的使用,能用[上位机调试工具](https://gitee.com/SMBU-POLARBEAR/Serial_Port_Assistant)输出遥控器各个通道值的波形。
3. 了解陀螺仪的使用,用上位机调试工具输出波形。
### 第二阶段
> 本阶段主要让大家理解控制的基本逻辑和一些相关名词,让大家达到能独立编写控制任务的水平。
1. 在底盘模块(CHASSIS)中,根据`chassis_task.c`的内容编写一个完善的控制任务`train_virtual_ctrl.c/h`\
`主要要求:`
- 文件中有清晰的函数结构。
- 根据控制的基本逻辑完成函数 $f(r,p,y) = \sin r + \tan p +\cos y$ ,实现一个陀螺仪角度相关的变换。
- 用上位机调试工具输出结果波形。
2. 在底盘模块(CHASSIS)中,根据`chassis_task.c`的内容编写一个完善的控制任务`train_motor_ctrl.c/h`\
`主要要求:`
- 文件中有清晰的函数结构。
- 根据控制的基本逻辑实现任意型号DJI电机的 `速度闭环控制` 和 `位置速度闭环控制`。 (用两个电机同时由C板控制,分别实现两种控制。)
- 使用遥控器信号作为目标值,速度范围为$[-6,6]$单位:rad/s,位置范围为$[-4\pi,4\pi]$单位:rad。 (速度和位置都指末端输出轴,非转子)
- 早完成的同学可以尝试控制DM电机实现MIT模式下的速度闭环
### 第三阶段
> 本阶段主要让大家和机械的同学配合完成一个小车车的项目。
1. 在底盘模块(CHASSIS)中,根据`chassis_task.c`的内容编写一个完善的控制任务`chassis_train.c/h`\
`主要要求:`
- 文件中有清晰的函数结构。
- 实现小车底盘的平移、旋转。(若机械结构导致不能左右平移的话可以只做前后平移。)
- 用遥控器或上位机调试工具进行控制。
### 第四阶段
> 终于来到大家最想玩的环节了,本阶段将会带大家实现我们现有的步兵和英雄的整车控制。同时会穿插讲解一些外设的具体原理。
1. 实现底盘坐标系下的平移旋转运动。
2. 实现云台的陀螺仪绝对位置控制。
3. 实现云台坐标系下的平移旋转运动。
## 配套套件
- [StandardRobot++ Tool](https://gitee.com/SMBU-POLARBEAR/Serial_Port_Assistant) 上位机调试工具,可用于可视化查看机器人状态及相关参数,便于调试。
- [ROS2_StandardRobot++](https://gitee.com/SMBU-POLARBEAR/ROS2_StandardRobotpp) ROS2驱动包,可用于实现上位机对机器人的控制。
## 开发工具
使用VSCode作为代码编辑器,Keil5作为IDE。
> 虽然keil5老,但在嵌入式调试以及环境配置方面是非常简单易上手的。**千万不要用keil5来编辑代码!!!**
\
\
> VSCode作为现代化代码编辑器 ,通过各种插件即可实现各种提高效率的开发方式,**尤其是Github Copilot**
`.vscode` 文件夹已经提供了很多非常好用的插件,在`扩展`页面输入 `@recommended` 即可获取这些插件,点击安装即可。
## 开发日志
[LOG.md](./doc/LOG.md) 记录了大家在开发过程中的各种奇思妙想和经验。多翻一翻或许能发现惊喜哦。大家有什么想法也都可以往里面写。
[API.md](./doc/API.md) 为开发过程中所使用的模块接口标准,若在编写代码时发现接口代码与标准冲突,基于标准修改代码。
## 致谢
感谢各个战队的代码开源,所有本框架涉及到的主要的参考资料位于[reference.md](./doc/reference.md)
## 附录
本文的详细补充内容写在 [附录](./doc/appendix.md) 中。