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.数据输出

0xfe gxH gxL gyH gyL gzH gzL rollH rollL pitchH pitchH pitchH pitchL yawH yawL 0xee

计算方法:
角速度:

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比赛作品集_邹俊添相关推荐

  1. 麻雀搜索算法(SSA)文章复现:《融合K_means的多策略改进麻雀搜索算法研究_欧阳城添》

    麻雀搜索算法(SSA)文章复现:<融合K_means的多策略改进麻雀搜索算法研究_欧阳城添> 策略为:k-means算法聚类种群+正余弦算法改进加入者策略+自适应策略扰动--SASSA. ...

  2. 数据挖掘比赛入门_以去年阿里天猫推荐比赛为例

    数据挖掘比赛入门_以去年阿里天猫推荐比赛为例 ·写在前面 整理资料的时候又把这篇文章翻到了,这篇文章对我启发还是很大的,所以就转载在这里做个存档吧,以下内容均为转载,非博主原创.之前写过关于<天 ...

  3. kaggle比赛数据_表格数据二进制分类:来自5个Kaggle比赛的所有技巧和窍门

    kaggle比赛数据 This article was originally written by Shahul ES and posted on the Neptune blog. 本文最初由 Sh ...

  4. 三角形加几笔能变成什么_一个圆添上几笔能出来什么形状?例如:表,太阳,向日葵.-圆形加几笔得什么事物-数学-伍靖都同学...

    概述:本道作业题是伍靖都同学的课后练习,分享的知识点是圆形加几笔得什么事物,指导老师为高老师,涉及到的知识点涵盖:一个圆添上几笔能出来什么形状?例如:表,太阳,向日葵._-圆形加几笔得什么事物-数学, ...

  5. 创客机器人比赛简讯_“让思维沸腾,让创造先行”——记我校参加同安区首届创客大赛活动报道...

    11月29日,厦门市同安区首届中小学创客大赛在厦门第二外国语学校拉开序幕,本次竞赛开展了机器人创客.手工创造创客.实验连环创客.动漫创客.3D+创客.编程创客.金牌讲师评比.创客社团评比等8个项目,活 ...

  6. ui设计作品集_所有强大的设计作品集都应避免的三件事

    ui设计作品集 重点 (Top highlight) I've had the privilege of screening hundreds of portfolios & candidat ...

  7. 荔枝hsv空间图像分割程序matlab,基于Retinex图像增强的不同光照条件下的成熟荔枝识别_熊俊涛...

    第29卷第12期农业工程学报V ol.29 No.12 170 2013年6月Transactions of the Chinese Society of Agricultural Engineeri ...

  8. kaggle 比赛分类_黑色素瘤分类在kaggle比赛中获得奖牌

    kaggle 比赛分类 Using deep learning to identify melanomas from skin images and patient meta-data 使用深度学习从 ...

  9. las格式测井曲线_邹榕,等:顺北和托甫台区块奥陶系断裂结构单元测井响应特征初探...

    引用格式:邹榕,徐中祥,张晓明,等.顺北和托甫台区块奥陶系断裂结构单测井响应特征初探[J].油气藏评价与开发,2020,10(2):18-23.ZOUR, XU Z X, ZHANG X M, et ...

最新文章

  1. windows boot files
  2. Ubuntu18.04 显卡驱动安装
  3. 实现lua面向对象的private属性
  4. 蚂蚁金服与阿里云宣布启动“蚂云计划”
  5. Python--第3次平时作业
  6. Linux服务器 | 事件处理模式:Reactor模式、Proactor模式
  7. 【一本通1347】格子游戏
  8. 分类(Classification)
  9. Asp.net MVC3 RTM的源代调试
  10. Ubuntu 安装 wxlua
  11. 类似MSN的消息提示
  12. 信号峰峰值Vpp与功率和dbm的换算
  13. verilog基础语法
  14. 论文阅读 (70):Exploring Self-attention for Image Recognition
  15. pico3pro使用unity播放360全景视频及事件交互
  16. 2022 CNCC 中国计算机大会参会总结
  17. word写论文时参考文献、目录以及页码设置
  18. 【Linux】实用文件指令
  19. “数据”到底是资产还是负债?
  20. 1-11 Java 多态、类型转型

热门文章

  1. cocoscreator的Bundle加载问题
  2. 每天一篇论文 365/365 Visual Odometry Revisited: What Should Be Learnt?
  3. 二十三种设计模式 python实现
  4. 服务器存储的作用和用途,存储服务器有四大作用你都清楚吗?
  5. 父盒子内子盒子居中的方法
  6. 2022-2028年全球与中国蜗牛美容产品行业竞争格局与投资战略研究
  7. linux暂停进程运行的按键组合是,Linux基础命令(五):进程——ps、top、jobs、bg、fg、kill、killall、shutdown...
  8. python文献检索_文献检索与下载
  9. 将串口转换成TCP连接
  10. 服务器上训练深度学习模型anaconda+cuda+cudnn+pycharm