ROBOMASTER比赛作品集

2023-10-24 20:30
文章标签 比赛 作品集 robomaster

本文主要是介绍ROBOMASTER比赛作品集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ROBOMASTER比赛作品集

        • 一、ROBOMASTER比赛介绍
        • 二、项目介绍
        • 三、根据机械结构设计的控制方案
        • 四、机器人控制板与传感器模块
        • 五、机器人软件构架设计
        • 六、软件应用层流程图
        • 七、六轴姿态传感器模块
        • 八、项目成果展示

一、ROBOMASTER比赛介绍

全国大学生机器人大赛RoboMaster 机甲大师赛是由共青团中央、全国学联、深圳市人民政府联合主办,DJI 大疆创新发起并承办的机器人赛事,作为全球性的射击对抗类的机器人比赛,在其诞生伊始就凭借其颠覆传统的机器人比赛方式、震撼人心的视听冲击力、激烈硬朗的竞技风格,吸引到全球数百所高等院校、近千家高新科技企业以及数以万计的科技爱好者的深度关注。
简单来讲RoboMaster机器人比赛就是通过队伍之间使用自研机器人对抗,发射弹丸来判断胜负的比赛。比赛的规则类似MOBA类游戏,双方机器人需要攻击对方的基地通过基地剩余血量来决定比赛的胜负。双方的机器人组织不同策略,进攻、防守。击杀敌方机器人能够获得更高的功率上限,枪口热量上限,为最终击破地方基地做准备。
所以各队伍的自研机器人的性能,稳定性会很大程度上影响比赛的结果。

二、项目介绍

本人参加了两届RoboMaster比赛,在比赛中负责英雄机器人的嵌入式软件开发。英雄机器人在比赛中能够发射大弹丸,大弹丸伤害高射速慢,对发射机构与云台系统有较高的考验。一台成功的英雄机器人在比赛中能够实现远距离攻击地方基地,斩杀敌方地面机器人等效果。
根据规则,我们将英雄机器人战术定位为队内的炮手,专门负责远距离吊射前哨站,哨兵,以及基地等高血量建筑及机器人,追求远程吊射精确度高设计了类坦克的丝杆传动Pitch轴和下供弹的供弹设计可进行高精度的云台运动瞄准,加装了左右摇摆臂悬挂的底盘具有一定的机动性与越障能力,并且可根据需要适配安装步兵的双云台结构,攻守兼备。
在这里插入图片描述

英雄机器人在设计时提出以下控制上的功能需求:
1.麦克纳姆轮全向底盘控制,加速快且平滑,稳定爬坡
2.两轴云台运动控制稳定,静止发射时保证不会抖动偏移
3.功率控制不超功率,控制上流畅不造成卡顿
4.超级电容充放电控制
5.发射射频射速稳定,不超热量,发射延迟低且稳定

本人在项目中负责整台机器人硬件线路布局规划、机器人控制主板嵌入式驱动开发、机器人嵌入式软件构架设计、机器人运动 控制算法等。协调与机械组员、嵌入式硬件(PCB)组员和视觉算法组员共同开发机器人。

三、根据机械结构设计的控制方案

云台pitch轴采用了无刷减速电机直连导程12mm的丝杆并通过鱼眼轴承+铝柱的连杆结构将丝杆螺母的上下运动转化为云台的俯仰运动。pitch轴俯仰使用的丝杆可以实现自锁,而且主要需求电机高转速,所以pitch轴的正常控制模式下采用电机编码器反馈速度闭环,能保证pitch轴的快速响应与静态稳定需求。
云台的yaw轴采用了1:5的同步带轮传动设计,使用无刷减速电机作为动力源,旋转响应速度快。yaw轴统一需求动态响应与静态精度,为了保证控制精度,yaw轴采用外置绝对值编码器位置闭环与陀螺仪提供云台相对于地面的绝对角度校正编码器坐标系,相当于使用了编码器的精度与陀螺仪的地面坐标系角度校准的双传感器反馈模式。在原有的单陀螺仪反馈在精度和控制稳定性上大大提升。
原创控制流程图

四、机器人控制板与传感器模块

嵌入式熟悉机器人操作与控制流程,外设硬件使用,所以就负责硬件线路布局规划了
在这里插入图片描述
机器人主控板有很多的外设,包括与裁判系统,小电脑,六轴姿态传感器模块等使用的UART串口,舵机,BLDC电调使用的PWM,电机与双主控通讯用到的CAN等等。
设计硬件连接布线需要考虑很多因素,模块安装位置,滑环通过电流,裁判电源系统安装,线材与保护的选择,接口选择等

五、机器人软件构架设计

在这里插入图片描述
仿造操作系统HAL层,API层,应用层的结构设计软件结构
在这里插入图片描述

六、软件应用层流程图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、六轴姿态传感器模块

1.性能参数
1)测量维度:加速度 3维,角速度 3维,角度 3维
2)量程:加速度:±2/4/8/16g 角速度:±250/500/1000/2000°/s
3)数据输出内容:角速度 角度
4)数据输出频率:1HZ~500HZ (默认使用500HZ)
5)串口(TTL 电平,波特率支持 2400、4800、9600、19200、38400、57600、115200(默认))
2.实物图及引脚
在这里插入图片描述

3.软件算法
1)大致流程
在这里插入图片描述

首先通过SPI总线读取BMI160传感器的原始数据,使用低通滤波和均值滤波对原始数据进行处理,由加速度数据计算重力倾角,再通过卡尔曼滤波对重力倾角进行修正,得到动态角度。
2)角度解算
Pitch与roll轴角度解算采用卡尔曼滤波融合加速度与角速度,得到的最优估计角作为pitch轴与roll轴的动态角度
在这里插入图片描述

卡尔曼滤波流程:
i.由上一时刻的最优估计角加上输入的当前角速度减去上一时刻角速度误差的差乘MCU运算周期时间得到当前的预测角即先验估计角

 angle_kf += (gyro_m - q_bias) * dt;

ii.上一时刻误差协方差矩阵P通过状态转移方程模型加上过程噪声Q计算得到当前先验误差协方差矩阵
在调参过程中:误差的协方差矩阵表示对当前预测值的信任程度,越小则越信任当前的预测值,由于实际测试中角速度积分角度可信度较高只受到陀螺仪测量动态精度影响(角度漂移)参数Q的值可以调小提高对预测值即角速度的信任程度

Pdot[0] = P[1][1] * dt + Q_angle - P[0][1] - P[1][0];
Pdot[1] = -P[1][1]; 
Pdot[2] = -P[1][1]; 
Pdot[3] = Q_gyro; P[0][0] += Pdot[0] * dt;  
P[0][1] += Pdot[1] * dt; 
P[1][0] += Pdot[2] * dt;  
P[1][1] += Pdot[3] * dt;  

iii.先验估计角与倾角做差得到角度残差(表示测量值和预测值的偏离程度(预测值即使用角速度数据的先验估计)(测量值即加速度计算的重力倾角)

   angle_err = angle_m - angle_kf;

iv.计算残差协方差:基于误差协方差矩阵P与测量协方差R
调参过程中:卡尔曼增益即对残差的信任度,则残差协方差E越大对测量值(加速度倾角)越不信任,在实际测试中加速度倾角受到陀螺仪水平移动影响较大(平移过程中产生水平加速度不只存在重力加速度,导致通过重力估算倾角失效)测量协方差R则需要增大以降低对重力倾角的信任程度

E = R_angle + P[0][0] ;

v.计算卡尔曼增益:基于误差协方差矩阵P与残差协方差E

K_0 = P[0][0] / E; 
K_1 = P[1][0] / E;

vi.计算最优估计角度

angle_kf += K_0 * angle_err;//角度最优估计
q_bias += K_1 * angle_err;  //角速度偏差
angle_dot = gyro_m - q_bias;  //角速度估计

vii.更新后验协方差矩阵(用过误差协方差矩阵的迭代对估计值进行优化以得到最优估计值,卡尔曼滤波器可以基于我们对于系统状态估计值的修正度来自动修正误差协方差矩阵。修正系统的状态既要基于误差协方差矩阵P也要基于残差的协方差E)

t_0 = P[0][0]; 
t_1 = P[0][1]; 
P[0][0] -= K_0 * t_0; 
P[0][1] -= K_0 * t_1; 
P[1][0] -= K_1 * t_0; 
P[1][1] -= K_1 * t_1;  

3)Yaw轴处理
由于未采用磁力计,yaw轴加速度积分角度无法通过卡尔曼滤波进行校准
Z轴角速度进行处理在可接收范围内降低Z轴角速度的动态精度提高其静态精度以降低yaw角度漂移现象
云台控制中通过控制逻辑切换陀螺仪闭环模式与编码器闭环模式去除陀螺仪yaw轴漂移的影响
在这里插入图片描述

4)陀螺仪零飘及温漂校准
通过采集数据求均值及写入芯片FLASH操作对陀螺仪角速度进行零飘校准

校准流程:
在这里插入图片描述

4.测试效果数据
通过j-scope进行测试陀螺仪输出波形
1)陀螺仪三轴角度正常工作
在这里插入图片描述

2)Yaw轴响应灵敏
在这里插入图片描述

3)Yaw轴静态精度测试
在这里插入图片描述

零飘校准及精度调整之后的效果
4)卡尔曼滤波效果
以roll轴为例
在这里插入图片描述

紫色是重力倾角绿色为卡尔曼最优估计角,在对陀螺仪施加外部高速加速度变化,重力倾角影响很大,通过卡尔曼滤波处理,卡尔曼角度几乎不受外部平移加速的影响
在这里插入图片描述

5.数据输出

0xfegxHgxLgyHgyLgzHgzLrollHrollLpitchHpitchHpitchHpitchLyawHyawL0xee

计算方法:
角速度:

gx =((gxH<<8)| gxL)/100(°/s)
gy =((gyH<<8)| gyL)/100(°/s)
gz =((gzH<<8)| gzL)/100(°/s)

角度

roll =((rollH<<8)| rollL)/100(°)
pitch =((pitchH<<8)| pitchL)/100(°)
yaw =((yawH<<8)| yawL)/100(°)
八、项目成果展示

(只能放已发布视频 先放团队的总体视频)

东莞理工学院ACE战队2019机器人中后期形态视频

在这里插入图片描述

这篇关于ROBOMASTER比赛作品集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/277584

相关文章

我们依旧在追梦的路上-山东省第六届ACM比赛总结

这场比赛从结果而言达到了预期(金牌),从过程而言和我的预期相差甚远(打的太乱,个人发挥很差),还好关键时刻队友抗住压力,负责后果真的不堪设想。 热身赛 热身赛纯粹测机器的,先把A,B,C草草水过(A题小写x打成大写的也是醉了),我和老高开始各种测机器,long long不出所料是lld的,试了一下除0和数组越界的re问题,发现没有re,只有wa(甚至数组越界还AC了),至于栈深的话也没过多追

ACM比赛中如何加速c++的输入输出?如何使cin速度与scanf速度相当?什么是最快的输入输出方法?

在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal一等吗?答案是不言而喻的。一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中

结合Python与GUI实现比赛预测与游戏数据分析

在现代软件开发中,用户界面设计和数据处理紧密结合,以提升用户体验和功能性。本篇博客将基于Python代码和相关数据分析进行讨论,尤其是如何通过PyQt5等图形界面库实现交互式功能。同时,我们将探讨如何通过嵌入式预测模型为用户提供赛果预测服务。 本文的主要内容包括: 基于PyQt5的图形用户界面设计。结合数据进行比赛预测。文件处理和数据分析流程。 1. PyQt5 图形用户界面设计

保研 比赛 利器: 用AI比赛助手降维打击数学建模

数学建模作为一个热门但又具有挑战性的赛道,在保研、学分加分、简历增色等方面具有独特优势。近年来,随着AI技术的发展,特别是像GPT-4模型的应用,数学建模的比赛变得不再那么“艰深”。通过利用AI比赛助手,不仅可以大大提升团队效率,还能有效提高比赛获奖几率。本文将详细介绍如何通过AI比赛助手完成数学建模比赛,并结合实例展示其强大功能。 一、AI比赛助手的引入 1. 什么是AI比赛助手? AI比

Kaggle刷比赛的利器,LR,LGBM,XGBoost,Keras

刷比赛利器,感谢分享的人。 摘要 最近打各种比赛,在这里分享一些General Model,稍微改改就能用的 环境: python 3.5.2 XGBoost调参大全: http://blog.csdn.net/han_xiaoyang/article/details/52665396 XGBoost 官方API: http://xgboost.readthedocs.io/en

【HDU】1285 确定比赛名次 拓扑排序

确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10963    Accepted Submission(s): 4374 Problem Description 有N个比赛队(1<=N<=500),

第八届湘潭大学程序设计比赛A题

A Love Letter Accepted : 33 Submit : 66Time Limit : 1000 MS Memory Limit : 65536 KB  题目描述   CodeMonkey终于下定决心用情书的方式向心爱的女神表白,当他历经几天几夜写完之后才知道女神有很多不喜欢的词,所以他不得不有把这些词删掉。例如:原文是:ILOVEYOU,女神不喜欢的词是‘LV’

天池-OppO-OGeek比赛总结

赛题资源 题目链接 数据链接 我的代码 这份代码是复赛的代码,写的比较规范些,也添加了一些注释。因为实在阿里云的平台上运行的,所有有些地方会报错,不能直接运行。最主要的问题应该是输入数据的路径不对,改成对应的路径即可。 赛题描述及分析 在搜索业务下有一个场景叫实时搜索(Instance Search),就是在用户不断输入过程中,实时返回查询结果。赛题的数据如下: 字段说明数据示例pr

【数学建模比赛】国赛论文怎么写?——标题及摘要

一、标题怎么写        国赛论文标题需要表达准确,能很好的,简洁明了的概括论文的核心思想,尽量少用修饰词去形容,并且使用大家都常见的词语,不建议另辟蹊径!!字数尽量限制在一行内。 1、常见标题类型 (1)基于XXX模型的XXX问题研究 (2)基于XXX模型/算法的XXX问题研究 其中XXX模型就是正文里的核心模型,XXX问题就是赛题的中心词。 2、近两年优秀论文标题示例 (1)

hdu1285-确定比赛名次-拓扑入门

A - 确定比赛名次 Time Limit:1000MS    Memory Limit:32768KB    64bit IO Format:%I64d & %I64u Submit Status Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能