第二十一届 RoboMaster 机甲大师竞赛Ares战队 空中机器人六轴无人机云台 程序框架代码开源。

项目希望探索出,能够给 RoboMaster 比赛中的所有机器人都能使用的一套代码架构,即不同的机器人仅需要修改程序中的结构体和控制器即可复用。因此在设计程序架构时,尽量提高了代码的复用性,并将函数模块化和参数化。

项目代码开源地址: https://github.com/ittuann/RoboMaster_UAV-Gimbal_Ares2022

开发环境 STM32CubeIDE - V1.9.0, STM32Cube FW_F4 Package - 1.27.0, FreeRTOS Version - 10.3.1, CMSIS-RTOS Version - 1.02, DSP Library - 1.2.1

单片机为RM开发板C型,STM32F407IGHx

开源了程序框架用于讨论。 赛后会整理完整的项目工程 无人机摔了三次,项目被迫暂停,已上传目前的完整框架工程。

项目希望探索出,能够给 RoboMaster 比赛中的所有机器人都能使用的一套代码架构,即不同的机器人仅需要修改程序中的结构体和控制器即可复用。因此在设计程序架构时,尽量提高了代码的复用性,并将函数模块化和参数化。

RoboMaster论坛链接: https://bbs.robomaster.com/forum.php?mod=viewthread&tid=22085


代码框架图

节点机制和消息收发机制是这套框架的亮点。实现了很大程度的代码复用和模块化,以及上层逻辑代码与底层硬件配置代码的隔离。

  • HAL层

    HAL层是对硬件接口的封装抽象。包含了操作系统的线程设置,还有CubeMX使用HAL库对部分外设配置的初始化,同时也包含对HAL库的重封装。

  • Hardware层

    Hardware层的设置,是为了将底层硬件的配置代码与上层的逻辑代码分离。包含了一些外设的必要驱动,通讯协议以及解包函数,以及设备状态监控。

  • Message层

    Message层作为消息框架,是一个消息发布和订阅的机制。用于各个模块之间的消息传递,例如APP与APP之间、APP与Driver之间的通讯。同时适用于管理一对一和一对多的消息收发情况。

  • Nodes层

    Nodes层存储通用的算法函数库,如PID,Kalamn,Filter等。使用结构体封装或通过函数指针等方式实现,能很大程度简化结构,提高程序通用性和代码模块复用度,也能够拥有不错的灵活性。

  • Application层

    Application层为各种逻辑代码,如云台、底盘、发射机构等模块的控制任务。

2022赛季RoboMaster 空中机器人六轴无人机云台程序框架代码开源相关推荐

  1. 六轴无人机装配问题小结(Pixhawk飞控、APM固件、电机装配、电调校准)

    笔者近期需要组装一架六轴无人机供超声波避障模块.单点激光雷达等传感器的测试使用.由于是第一次碰真机,面对散落一箱的部件还是非常的头大的,不过好在实验室有经验的大佬能提供一些指导,并且还能够参考&quo ...

  2. 一套松下FP-XH六轴PLC设备程序,此程序已经实际设备上批量应用

    一套松下FP-XH六轴PLC设备程序,此程序已经实际设备上批量应用,成熟可靠,借鉴价值高. 包含详细的注释和触摸屏组态. 屏幕组态是台湾威伦通的. 是入门级电气爱好从业人员借鉴和参考经典案列 ID:6 ...

  3. 三菱FX3U六轴标准程序,程序包含本体3轴控制,扩展3个1PG定位模块,一共六轴

    三菱FX3U六轴标准程序,程序包含本体3轴控制,扩展3个1PG定位模块,一共六轴. 程序有轴点动控制,回零控制,相对定位,绝对定位. 另有气缸数个,一个大是DD马达控制的转盘,整个是转盘多工位流水作业 ...

  4. 维特智能六轴姿态传感器JY61P_stm32f1xx驱动代码解析

    目录 硬件准备/上位机直连 代码驱动 关于官方给出的示例 代码功能及其走位 1.怎样不依托代码验证传感器的某个功能是否有效或者能用? 2.写寄存器的方式 3.为什么不使用WIT私有协议中的关闭上电输出 ...

  5. 发那科机器人六轴放大器保险丝熔断_发那科机器人R-30iB控制柜保险丝解析——发那科机器人...

    发那科机器人R-30iB控制柜保险丝解析 一. 电源单元的保险丝 F1-AC 输入保险丝         (A60L-0001-0450#8R0) F3-+24E用保险丝         (A60L- ...

  6. 六轴机器人 宝元系统_庆云大国重器上线六轴智能焊接机器人,锻造高质量发展硬核...

    在大国重器坚持创新发展道路上,不断"借智"发展,提升科研保障能力,追求国际先进水平,为企业发展提供强劲动能. 六轴智能焊接机器人 六轴智能焊接机器人是大国重器自动化设备股份有限公司 ...

  7. 机器人建模中移动关节如何建立坐标系_解析:四轴机器人和六轴机器人有什么区别?---徕深科技...

    工业机器人的轴,可以用专业的名词"自由度"来解释.合理推测就是,当机器人的轴数增加,机器人就有更高的灵活性.四轴SCARA机器人(以下简称四轴机器人)和六轴关节式机器人(以下简称六 ...

  8. 六轴机器人光机_四轴机器人与六轴机器人有什么区别?

    小型装配机器人之所以获得越来越多包装企业的青睐,正在于它如今已可以胜任包括装配在内的各种包装生产任务,包括所有材料的处理,如取放.装卸.包装成型等包装前端流程相关的工序,以及打标签.检验.抽样等加工工 ...

  9. 你了解工业6轴机器人的轴指及运动方式吗?

    随着社会进步.科技发展,工业机器人的应用也越来越普遍.工业机器人是能够实现自动控制的.可重复编程的.多自由度的.运动自由度建成空间直角关系的.多用途的操作机.其工作的行为方式主要是通过完成沿着X.Y. ...

最新文章

  1. 【Git】Git 本地的撤销修改和删除操作
  2. python代码用c语言封装_树莓派开发ADC芯片CS1237(C语言和python库开发)
  3. 别人写好的爬虫怎么运行_怎么写好楷书?
  4. [转]C# 将类的内容写成JSON格式的字符串
  5. ajax返回数据报406,ajax – 406返回JSON对象时出错 – 意外内容
  6. 蓝色起源起诉NASA,不服其将月球着陆器合同授予SpaceX
  7. 新漏洞 RAMpage 曝光:2012年后发布的所有的 Android 手机都危险!
  8. python和c 的区别-Python和C区别该如何理解?如何适应这种区别?
  9. python mysql扩展_关于python:构建’_mysql’扩展错误:无法找到vcvarsall.bat
  10. 最新的ndkr20编译c_Android NDK-r20 交叉编译 FFmpeg 4.2
  11. layui监听多个radio事件
  12. get 请求中文乱码问题
  13. 阅读:IA-GCN: Interactive Graph Convolutional Network forRecommendation
  14. 十大三维动画制作软件(转载)
  15. Python将两个列表合并成一个列表
  16. 写给互联网大厂员工的真心话,醍醐灌顶!
  17. 最近影讯api数据库整合分享
  18. 豆瓣评分8.9,这本Python经典入门书重磅升级
  19. web前端动画_西游记
  20. 邮件服务器arp攻击,服务器的ARP欺骗攻击的防范的两种解决方法

热门文章

  1. Python之matplotib--plot(),plt.legend()以及maplotlib的汉字显示问题
  2. 在线资源链接 占位图 配色
  3. bzoj 5196: [Usaco2018 Feb]Taming the Herd
  4. 2021-07-29 Ubantu18.04下Cura编译
  5. 通信室计算机室采购配置co2灭火器,计算机机房灭火器材应选择()。
  6. 无人机倾斜摄影模型如何加工处理裁剪降噪补洞
  7. 数据可视化 d3操作汇总(二):圆弧、饼图、环图、玫瑰图绘制
  8. pyspark 并行调用udf函数
  9. CSDN回帖得分大全(近两年)
  10. CC2530的定时/计数器原理与应用