Developing
开发测试中
本开源软件为青岛大学未来战队机器人的嵌入式控制代码。参考了官方开源和其他战队代码,结合对其他嵌入式项目的理解(如PX4),从零编写而成。
主要特色:
- BSP兼容层使用纯C实现,上层代码使用C++,稳定实时,开发方便
- 一个项目适配不同型号的机器人型号,现已支持步兵/英雄/哨兵/平衡
- 利用Cmake & GCC实现跨平台开发
- 多开发板支持
- 兵种配置文件及图形化配置
- 操作手自定义UI
- 命令行界面(CLI)
- USB上位机控制
- VSCode一键编译调试
利用命令行可以辅助调试程序、校准开发板、初始化机器人、读取不同参数配置。
VSCode调试界面 |
命令行界面(CLI) |
客户端UI |
- Visual Studio Code
- 安装必备插件
C/C++
CMake
- 安装必备插件
- 安装构建工具
sudo apt install cmake gcc-arm-none-eabi ninja-build kconfig-frontends
- 克隆本库
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=toolchain/toolchain.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 | 构建产物 |
config | 用户 | 配置文件 |
doc | 开发者 | 文档 |
hw | 开发者 | 板级支持包 |
src | 开发者 | 源代码 |
lib | 开发者 | 第三方仓库 |
toolchain | 开发者 | 编译工具链相关文件 |
utils | 开发者 | 使用到的工具,如CubeMonitor, Matlab |
src | 内容 |
---|---|
component | 包含各种组件,自成一体,相互依赖,但不依赖于其他文件夹 |
device | 独立于开发板的设备,依赖于bsp |
system | 系统兼容层 |
module | 对机器人各模块的抽象,各模块一起组成机器人 |
robot | 机器人的配置文件与初始化 |
硬件系统框图(全官方设备) |
嵌入式程序数据流向图 |
嵌入式程序层次图 |
云台控制原理(与PX类似) |
-
云台控制参考PX4 Controller Diagrams
-
底盘Mixer和CAN的Control Group参考PX4 Mixing and Actuators
-
PID请参考pid.c