更新效果展示图,完成README的全部内容

This commit is contained in:
NeoZng 2023-07-25 19:15:25 +08:00
parent cdb1d209fc
commit 1f713f17c4
4 changed files with 45 additions and 11 deletions

BIN
.assets/allrobot.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 MiB

View File

@ -2,9 +2,11 @@
> ***可能是最完整最详细最好的电控开源!***
湖南大学RoboMaster跃鹿战队2022-2023电控通用嵌入式框架。
[TOC]
本框架设计参考了哈尔滨工业大学深圳南工骁🦅战队的EC_framework以及RoboMaster官方的RoboRTS-firmware。
***==别忘了仓库根目录下的`.Doc`文件夹中有关于配置环境和开发更详尽的说明!==***
- 若无法访问github戳[gitee仓库](https://gitee.com/hnuyuelurm/basic_framework)
- 若gitee内容被屏蔽戳[github仓库](https://github.com/HNUYueLuRM/basic_framework)
@ -17,13 +19,32 @@
## 功能介绍
## 功能介绍和展示
这是湖南大学RoboMaster跃鹿战队电控组2022-2023赛季的通用嵌入式控制框架可用于**机器人主控**、自研模组imu/测距等各种传感器、超级电容控制器等。该框架旨在打造上手简单、易于移植、高代码复用、层级分明、结构清晰的一套SDK供队内使用&RM参赛队伍&嵌入式开发者交流学习。
通过精心设计的bsp和module支持以及成熟的app示例该框架可以在短时间内为不同类型和结构的机器人轻松构建电控程序可扩展性和可维护性相较目前的大部分开源代码和本队的老代码提升巨大。
同时相较于传统的基于KEIL MDK开发的工作流我们提供了基于arm-gnu工具链+VSCode/Clion+Ozone&Systemviewer/FreeMaster的现代化开发工作流你再也不用面对上个世纪的UI忍受没有补全和高亮的代码了在配套现代化开发工具支持下将极大提高电控开发效率和调试效率。硬件模块测试和整车联调从未如此简单
![](.assets/allrobot.jpg)
<center>搭载basic_framework的机器人阵容</center>
实战展示:
1. 400HP双云台哨兵30m/s弹速**对抗**2台200HP 15m/s弹速步兵120w底盘功率
2. 100HP步兵120w功率15m/s弹速**对射**限制射频0.5发/s
![sentry_infantry12](.assets/sentry_infantry12.gif)
<center>展示中的视觉识别与预测算法是基于rm_vision打造的</center>
> 更多测试视频可以关注我们的bilibili账号[湖南大学跃鹿战队](https://space.bilibili.com/522795884)或在bilibili搜索跃鹿战队观看我们的比赛视频。
## 架构
@ -109,7 +130,7 @@ app、module和bsp都有相应的rtos任务。其中bsp为创建任务提供了
### IDE?
使用VSCode作为“IDE”。需要的插件支持均已经在[VSCode+Ozone使用方法.md](.Doc/VSCode+Ozone使用方法.md)中给出。通过VSCode强大的插件系统、language server以及代码补全高亮助力效率倍增。编译则使用集成的task进行还可以将开发环境终端加入VSCode进一步提升体验。基本的调试如变量&寄存器查看均已在插件中提供支持,`launch.json`可以进行高自由度的自定义。
使用**VSCode**作为“IDE”也支持Clion/Visual Studio等现代化IDE需要自行配置。需要的插件支持均已经在[VSCode+Ozone使用方法.md](.Doc/VSCode+Ozone使用方法.md)中给出。通过VSCode强大的插件系统、language server以及代码补全高亮助力效率倍增。编译则使用集成的task进行还可以将开发环境终端加入VSCode进一步提升体验。基本的调试如变量&寄存器查看均已在插件中提供支持,`launch.json`可以进行高自由度的自定义。
`Git`集成与gitlens/gitgraph/githistory额外插件补充让版本管理和协作从未如此简单`live share`把你的伙伴们聚在一起集思广益一同对抗困难的bug。更多好用的插件、特性和开发技巧请参考"**如何使用本框架**"章节。
@ -157,14 +178,14 @@ app、module和bsp都有相应的rtos任务。其中bsp为创建任务提供了
`.Doc`目录下有**8**个markdown文档分别为
- Bug_Report.md 提供了一些提交issues的模板范例若在使用中出现问题请按照模板提供信息。
- TODO.md :框架后续开发计划和维护说明
- **VSCode+Ozone使用方法.md** :重要,开发必看。介绍了当前开发工作流和传统KEIL开发的不同先讲解一些与工具链有关的基础知识然后说明了如何配置开发环境安装必要的软件和一些”操作“。还涉及了VSCode编辑调试和Ozone示波器&trace功能的使用指南。
- 合理地进行PID参数整定.md 介绍了如何为PID控制器进行参数整定包括简单的经验准则和基于模型的前馈控制、扰动消除等方法。
- 如何定位bug.md 当嵌入式开发出现bug时以更高效地方法进行错误定位和复现。简单的调试器使用技巧。
- 必须做&禁止做.md :字如其名
- **架构介绍与开发准则.md** 重要,必看。若你希望为bsp或module增添新的模块组装新的app请参照此文档的编码和命名规范进行。阅读该文档有助于理解并写出和框架代码风格一致的程序。内含该项目的**文件树**,以框架的工作目录。
- 让VSCode成为更称手的IDE.md :安装好用的插件,对编辑器进行个性化配置,提升开发效率
- [Bug_Report](.Doc/Bug_Report.md) 提供了一些提交issues的模板范例若在使用中出现问题请按照模板提供信息。
- [TODO](.Doc/TODO.md) :框架后续开发计划和维护说明
- **[VSCode+Ozone使用方法.md](VSCode+Ozone使用方法.md)** **重要**,上手必看。介绍了当前开发工作流和传统KEIL开发的不同先讲解一些与工具链有关的基础知识然后说明了如何配置开发环境安装必要的软件和一些”操作“。还涉及了VSCode编辑调试和Ozone示波器&trace功能的使用指南。
- [合理地进行PID参数整定](.Doc/合理地进行PID参数整定.md) 介绍了如何为PID控制器进行参数整定包括简单的经验准则和基于模型的前馈控制、扰动消除等方法。
- [如何定位bug](.Doc/如何定位bug.md) 当嵌入式开发出现bug时以更高效地方法进行错误定位和复现。简单的调试器使用技巧。
- [必须做&禁止做](.Doc/必须做&禁止做.md) :字如其名
- **[架构介绍与开发指南](.Doc/架构介绍与开发指南.md)** **重要**,开发必看。若你希望为bsp或module增添新的模块组装新的app请参照此文档的编码和命名规范进行。阅读该文档有助于理解并写出和框架代码风格一致的程序。内含该项目的**文件树**,以框架的工作目录。
- [让VSCode成为更称手的IDE](.Doc/让VSCode成为更称手的IDE.md) :安装好用的插件,对编辑器进行个性化配置,提升开发效率
### 阅读代码
@ -203,7 +224,20 @@ ST官方现在将HAL放入github维护。想要获取最新的支持可以自
## 后续计划
- `.Doc/TODO.md`中列举了一些可能的功能增强和优化。
- 将所有配置移动到一处,方便修改(统一放入`app/robot_def.h`中?)
- 为三个层级都增加入门级培训教程,可以单独运行各个模块以方便上手。
- 优化pub-sub消息机制的性能同时将app的任务尽可能修改为**状态机+事件驱动**的回调机制。
- 使用Qt或命令行为机器人配置主要是robot_def和各个任务中的module初始化配置编写UI界面实现无代码机器人部署。
- 为框架编写ROSdriver通过usb连接到上位机NUC合并视觉/算法和电控的工作流。
---
## 致谢
本框架设计参考了哈尔滨工业大学深圳南工骁鹰🦅战队的EC_framework以及RoboMaster官方的RoboRTS-firmware🤖。姿态解算改进自哈尔滨工程大学创盟之翼🛩的四元数EKF姿态解算。裁判系统数据解析移植了深圳大学RoboPilot2021年电控英雄开源代码。
感谢2022-2023赛季跃鹿战队电控组参与新框架测试和开发的队员们包括设计出机器人平台的机械组队员还有一起联调的视觉组队员以及负责拍摄、记录、宣传的运营组成员。