Developing
开发测试中
本开源软件为青岛大学未来战队机器人的嵌入式控制代码。参考了官方开源和其他战队代码,结合对其他嵌入式项目的理解(如PX4),从零编写而成。
主要特色:
- 实时性强,CPU利用率低
- 一个项目适配不同型号的机器人和不同的操作手。
- 利用Cmake & GCC实现跨平台开发
- 不依赖特定操作系统和IDE
实现了可以通过命令行,切换所适配的机器人和操作手。代码完成后只需要烧写一次,减少维护的工作量,减少出错的可能性。用到的系统和软件全部免费。
利用命令行可以辅助调试程序、校准开发板、初始化机器人、读取不同参数配置。
![]() |
---|
命令行界面(CLI) |
![]() |
---|
客户端UI |
- Visual Studio Code
- 安装必备插件
C/C++
CMake
- 安装必备插件
- 安装构建工具
sudo apt install cmake gcc-arm-none-eabi ninja-build
- 克隆本库
git clone --recursive https://gitee.com/qsheeeeen/qdu-rm-mcu.git
或者
git clone https://gitee.com/qsheeeeen/qdu-rm-mcu.git
git submodule init && git submodule update
-
命令行操作
cmake -DCMAKE_TOOLCHAIN_FILE:STRING=cmake/arm-none-eabi.cmake -H. -B./build -G Ninja
cd build && ninja
-
- 选择构建类型
- 编译
-
Ubuntu native
- 安装Jlink驱动
- 安装Ozone Linux版
- 正常调试
-
Windows WSL with WSLg
- Windows Host中安装Jlink驱动
- WSL中安装Ozone Linux版
- WSL中使用Ozone调试,通过网络连接Jlink
-
Windows WSL without WSLg
- Windows Host中安装Jlink驱动和Ozone
- Windows Host中使用Ozone调试,通过USB连接Jlink,在ozone project中修改路径
TODO
文件夹 | 来源 | 内容 |
---|---|---|
build | CMake | 构建产物 |
cmake | 开发者 | cmake脚本 |
doc | 开发者 | 文档 |
image | 开发者 | 图片 |
ld | 开发者 | 链接脚本 |
src | 开发者 | 源代码 |
third_party | 开发者 | 第三方仓库 |
utils | 开发者 | 使用到的工具,如CubeMonitor, Matlab |
src | 内容 |
---|---|
bsp | 文件夹内包含开发板信息,基于STM32 HAL对板载的外设进行控制,方便适配各种开发板 |
component | 包含各种组件,自成一体,相互依赖,但不依赖于其他文件夹 |
device | 独立于开发板的设备,依赖于HAL和bsp |
firmware | 固件入口 |
hal | 硬件抽象层 |
middleware | 中间件,基于RTOS为thread提供功能 |
module | 对机器人各模块的抽象,各模块一起组成机器人 |
rtos | 实时操作系统 |
thread | 独立的线程,module的运行容器,也包含通信、姿态解算等 |
usb | USB库 |
![]() |
---|
硬件系统框图(全官方设备) |
![]() |
---|
嵌入式程序数据流向图 |
![]() |
---|
嵌入式程序层次图 |
![]() |
---|
云台控制原理(与PX类似) |
-
云台控制参考PX4 Controller Diagrams
-
底盘Mixer和CAN的Control Group参考PX4 Mixing and Actuators
-
PID请参考pid.c