Coder Social home page Coder Social logo

qdu-rm-mcu's Introduction

青岛大学 RoboMaster 嵌入式 代码开源

Developing

开发测试中

Gitee Github

软件功能介绍

本开源软件为青岛大学未来战队机器人的嵌入式控制代码。参考了官方开源和其他战队代码,结合对其他嵌入式项目的理解(如PX4),从零编写而成。

主要特色:

  • 实时性强,CPU利用率低
  • 一个项目适配不同型号的机器人和不同的操作手。
  • 利用Cmake & GCC实现跨平台开发
  • 不依赖特定操作系统和IDE

实现了可以通过命令行,切换所适配的机器人和操作手。代码完成后只需要烧写一次,减少维护的工作量,减少出错的可能性。用到的系统和软件全部免费。

图片展示

利用命令行可以辅助调试程序、校准开发板、初始化机器人、读取不同参数配置。

命令行界面(CLI)
命令行界面(CLI)
客户端UI
客户端UI

推荐开发配置

系统

配置环境

  • Visual Studio Code
    • 安装必备插件C/C++ CMake
  • 安装构建工具sudo apt install cmake gcc-arm-none-eabi ninja-build

获取源代码

  1. 克隆本库 git clone --recursive https://gitee.com/qsheeeeen/qdu-rm-mcu.git

或者

  1. git clone https://gitee.com/qsheeeeen/qdu-rm-mcu.git
  2. git submodule init && git submodule update

编译固件

  • 命令行操作

    1. cmake -DCMAKE_TOOLCHAIN_FILE:STRING=cmake/arm-none-eabi.cmake -H. -B./build -G Ninja
    2. cd build && ninja
  • VS Code 操作 命令行界面(CLI)

    1. 选择构建类型
    2. 编译

调试 & 烧写

Ozone

  • Ubuntu native

    1. 安装Jlink驱动
    2. 安装Ozone Linux版
    3. 正常调试
  • Windows WSL with WSLg

    1. Windows Host中安装Jlink驱动
    2. WSL中安装Ozone Linux版
    3. WSL中使用Ozone调试,通过网络连接Jlink
  • Windows WSL without WSLg

    1. Windows Host中安装Jlink驱动和Ozone
    2. Windows Host中使用Ozone调试,通过USB连接Jlink,在ozone project中修改路径

OpenOCD

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类似)
云台控制原理(与PX类似)

其他参考文献

TODO

  • 利用好CCM RAM参考文档
  • 使用TinyUSB
  • 使用MPU保护内存地址空间,防止错误访存出现。例如NULL指针读写。
  • 实现固件运行在开发板,机器人运行在Gazebo的Hardware in the Loop(HITL)仿真

qdu-rm-mcu's People

Contributors

aurora-e avatar cndabai avatar gengwentao2017 avatar jiu-xiao avatar qsheeeeen avatar yourpower avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

qdu-rm-mcu's Issues

一些提问

您好,你这边使用ac6编译器是我第一次看到,我想问下ac6编译器具体如何部署的呢,我这边一直都是失败的,总是会有很多报错,想请教下,非常感谢,另外从您的开源中也看到了很多新思路,非常感谢。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.