Developing
稳健开发测试中
本开源软件为青岛大学未来战队机器人的嵌入式控制代码。参考了官方开源和其他战队代码,结合对其他嵌入式项目的理解(如PX4),从零编写而成。中心思想:
这样做增加代码了的重用,减少了工作量。实现了可以通过命令行,切换所适配的机器人和操作手。代码完成后只需要烧写一次,减少维护的工作量,减少出错的可能性。
命令行界面(CLI) |
客户端UI |
利用命令行可以辅助调试程序、校准开发板、初始化机器人、读取不同参数配置。
Windows平台下用CubeMX生成项目,然后用Keil uvesrion进行编辑、烧写和调试。
TODO:利用CMake和VS Code实现跨平台开发,减少对收费软件和操作系统的依赖。
环境安装
克隆本库 git clone --recursive https://gitee.com/qsheeeeen/qdu-rm-mcu.git
因为本软件中与视觉通信部分用的是与视觉共同维护的一个库,因此要加上--recursive
,或在克隆完成后执行
git submodule init && git submodule update
(可选)针对不同板子需要到不同的CubeMX工程文件(DevA.ioc、DevC.ioc)。
利用CubeMX生成对应的外设初始化代码和Keil工程文件。
每次生成代码后,请利用Git丢弃Middlewares文件夹中的所有改变。原因如下。
因为已经生成过Keil工程文件,所以只会覆盖以前生成的代码,而不会影响手写的代码。
打开MDK-ARM中的DevC.uvprojx(或DevA.uvprojx)即可进行编辑、烧写或调试。
Keil工程中有两个Target,其中Debug用来调试,不包含编译器优化等;DevC/DevA用来编译输出最终固件。
文件夹 | 来源 | 内容 |
---|---|---|
Core | CubeMX | 包含核心代码,外设初始化,系统初始化等 |
Doc | 开发者 | 文档 |
Drivers | CubeMX | CMSIS相关库、STM32 HAL |
Image | 开发者 | 图片 |
MDK-ARM | CubeMX | Keil uversion 项目相关文件 |
Middlewares | 开发者 / CubeMX | 中间件 |
USB_DEVICE | CubeMX | USB相关文件 |
User | 开发者 | 手动编写的代码 |
Utils | 开发者 | 使用到的工具,如CubeMonitor, Matlab |
User内 | 内容 |
---|---|
bsp | 文件夹内包含开发板信息,基于STM32 HAL对板载的外设进行控制,方便适配各种开发板 |
component | 包含各种组件,自成一体,相互依赖,但不依赖于其他文件夹 |
device | 独立于开发板的设备,依赖于HAL和bsp |
module | 对机器人各模块的抽象,各模块一起组成机器人 |
task | 独立的任务,module的运行容器,也包含通信、姿态解算等 |
硬件系统框图(全官方设备) |
嵌入式程序数据流向图 |
嵌入式程序层次图 |
云台控制原理(与PX类似) |
云台控制参考PX4 Controller Diagrams
底盘Mixer和CAN的Control Group参考PX4 Mixing and Actuators
PID请参考pid.c
-O3
引起的BUG添加更全面的注释
完善与上位机通信,与视觉组配合完成自瞄、打击能量机关和哨兵全自主运行
添加上手指南
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。