点击上方“大鱼机器人”,选择“置顶/星标公众号”

福利干货,第一时间送达!

本文出品公众号:达尔闻说

推荐各位关注

------------------正 文------------------

对无人机感兴趣的同学,工程师都可放心“食用”。

高能预警:此组分享人(上海大学:程航,高良磊,刘成语 )是2019全国电赛B题复测该组别的第1名,也就是国一队伍里的NO.1噢!!

B题可以说是所有题目里最具观赏性的,↓↓戳演示视频

B题制胜的最关键点是?

如果一定要强调一点,那就是飞机设计的精巧。

这一点在我们飞机轴距上有很大的体现,我们飞机的轴距约为210mm,这次竞赛大部分队伍所使用的飞机轴距都在300mm以上,轴距变小,使得飞机PID调参变得更加方便简单,也使飞机姿态调整速度快,更加灵巧。

针对此次竞赛题目而言,小飞机也有天然优势,比如拍照距离可以更近,飞机稳定性可以更好。

而针对小飞机存在的载重不足的固有缺陷,我们也通过精密计算,确定大致的载重需求,并挑选相匹配型号的电机,对该缺点进行了改进。

最终我们的飞机载重为680g左右,已经完全满足了模块搭载的需要,并且基本没有影响到飞机的稳定性。

其次是方案设计巧妙(下文会有详细介绍),在很多方面都跳出了题目的限制以及固有的思维,比如飞机巡线方案的设计、飞机自旋方案的设计相比之下都是独树一帜的,并且也取得了极好的飞行效果。

另外,在调试过程中完成的一些任务逻辑上的优化与改进也使得我们的设计方案更加完善,从而使得飞机能够更好地适应意外情况。

最后是充足的准备。我们不仅利用拨码开关设计了多版飞控程序,增强了飞机对于环境的适应性,并且针对自选题目也在测评前进行了突击训练,针对飞机的一些特殊飞行动作的软件设计思路进行了详细的整理,另外也准备了很多测评材料,在不违反赛事规则的前提下保证更加有利的测评环境,争取更好的测评效果。

比起正式的方案,我想更多人关心的是我们的设计思路和思考的过程,于是我们花大篇幅来分享,这些点也是大家容易踩坑的地方:

巡线方案的选择。与其他高校同学交流过后,发现大家都在被如何巡线的问题困扰,无论是地面很淡的灰白条纹,还是很细的电线,如果依靠图像识别去完成该题目的确有很大难度,并且存在着很大的不确定性,从结果来看,采用此方案的队伍验收情况也不是很好,飞机飞行很难稳定。

我们组则跳出了巡线的限制,选择依靠光流模块去做直线来完成任务,利用这一方案,则需要考虑以下几方面的问题:飞机稳定定高,我们的飞机定高采用的是超声波模块与气压计模块的数据融合,再经过高度方向上的PID调参,则可保证稳定的定高效果;

起始点与终点的选择,我们利用了激光测距模块来确定A.B两杆的位置,也就是确定飞机直线飞行的起点和终点,我们利用激光数据,保证飞机稳定飞行在距杆(线)30cm的位置,从而保证黄色色块识别的成功率。这样,飞机则可以保证稳定飞完全程。

地面的选择。由于我们飞机飞行依靠光流模块定位,因此地面环境的影响很大,题目中建议使用的灰白条纹同样不适用于我们的方案。

因此在市赛中,我们使用的地面是木质地板,国赛中,我们使用的地面是铺了半透明薄布大理石地面

(注:大理石由于其强反光性,光流是无法正常工作的,因此在征得评委同意后,在大理石地面上铺了一层薄布,消除了大理石地面的反光,保留了大理石地面的纹理,从而解决了地面问题)。

飞机自旋的问题。飞机自旋看上去是比较直接的绕杆方法,但实际上飞机自旋会严重影响飞机飞行的稳定性,另外也会破坏依靠光流模块建立的运动坐标系,从而增加软件设计的难度。

因此我们选择保持飞机朝向不变,仅通过前后左右平移来实现飞机的运动,同时加装舵机来控制摄像头旋转,从而保证飞行途中条形码与二维码均能进入摄像头视野中,这样既保证了任务的正常完成,也保证了飞行的稳定性不受干扰。

条形码与二维码的拍摄问题。条形码与二维码的拍摄与扫描是该任务的重点,增加扫描成功率是该题目拿分的关键,因此我们从如下角度对这一问题进行解决和优化:

首先经测试发现,盲拍到的条形码扫描成功率极低,因此我们在程序中加入了条形码与二维码的识别;

然后针对条形码与二维码识别率低的问题,我们在定位到黄色色块和B杆时,加入了飞机位置调整的步骤,将飞机尽可能靠近条形码(或二维码),从而提升识别率以及照片的清晰度;

最后在任务优化的过程中,我们将码识别方案改为限时识别,超时盲拍,从而保证了照片拍摄质量,又提高了任务完成效率。

另一方面,照片拍摄储存也有一定讲究,经实测后,我们发现,拍摄的照片为灰度图时,照片质量较高,并且将分辨率格式设置为VGA格式后,拍摄到的照片会更加清楚,在照片存储时,将照片格式保存为JPG,并将压缩质量调至最高,则可最大限度提升照片质量。

通过这些设置,进一步提升了照片拍摄的质量,也就进一步提高了条形码与二维码的识别率。

任务鲁棒性的提升。在我们的软件设计中,有许多应对意外情况的保护措施。例如当激光模块未扫描到A杆,到达一定距离后,飞机会进行往返运动,直至其扫描到A杆,保证任务的正常开始;

当视觉模块扫描到黄色色块时,飞机会进入距离屏蔽模式,在拍照离开色块一定距离后,识别任务重新开始,以避免同一色块重复识别的问题;当激光模块未扫描到B杆,飞机飞至极限距离后,飞机会返回至固定点,进行盲拍,保证任务的继续进行;

视觉模块中也设计了不重复拍照,不重复识别的保护。这些措施均是对于在我们调试过程中发现的一些意外情况进行的优化,从而使得我们的飞机在出现任何意外情况均可以飞完全程。

当然,针对环境的变化,我们利用飞控板上的拨码开关,可以进行飞行模式切换,从而适应激光模块失效,二维码位置变化等极端环境情况,大大增强了飞机飞行的可适应性,保证飞行任务的万无一失。

B题巡线机器人的任务要求   

方案解析:硬件、软件以及测试结果

以下主要分享的是软硬件系统及软件的流程,关于整体方案的论证选择,以及理论分析、测试情况的完整报告,可以在“达尔闻”微信号回复:电赛无人机,获取报告。

1)主要器件:

飞控板型号:TM4C129G

光流模块型号:PWM3901

超声波模块型号:KS103

激光模块型号:VL53L0X

姿态解算模块型号:MPU9250

2)视觉模块硬件设计:

主要器件方面,采用STM32H7高性能单片机作为主控,其主频为400MHz。摄像头采用的是软排线的模组,非BGA封装,体积减小的同时,还可以轻松焊接,并且可以根据实际需求更换不同功能的摄像头。

接口方面,采用了USB-Type-C接口,其寿命和稳定性都有大幅提高且不易损坏。

降压方面,选择线性稳压以确保输出的电源稳定无波纹。

设计时,为了使设备工作更加稳定,选用了4枚大容量钽电容,以确保图像信号的稳定无杂波。

配备了两个独立的大功率驱动电路,负责放大IO的控制能力,其中一个现在用于控制蜂鸣器,保证声音足够响亮。

配备3路舵机控制信号输出,用来快速转动响应。为了在调试时不至于损坏电脑,在USB供电和DC供电间使用了2枚二极管和一个电感进行隔离。

3)飞控板硬件设计:

飞控主芯片采用高性能的TM4C129芯片,主频为120MHz。

接口方面,从单片机引出了4路串口,1路IIC接口和2路SPI接口,具有丰富的扩展性。

配备2路舵机接口,可以由飞控直接控制舵机转动。4位拨码开关用于模式切换,以应对各种复杂的飞行任务。

一键起飞按键,可脱离遥控完成自主起飞。预留了nRF无线模块的接口,可以方便的进行调试或遥控飞行。

电源方面,分离式双电源供电,电池电压经分压板降压后输入飞控板,一路3.3V稳压负责供应板子上的核心芯片,另一路负责所有的外部设备。供电部分预留50%以上的供电余量,防止出现供电不足的情况,同时可减少线性电源的发热。

为了使设备工作更加稳定,选用了4枚大容量钽电容,以应对电流陡升的情况,确保飞行稳定。外接扩展设备提供供电选择跳线,可自行选择3.3V或5V供电。

4)软件框图

飞行器工作流程图 

流程解释:上电之后飞行器初始化各个模块,当按下按钮之后两秒飞行器自动起飞,之后飞行器会飞至A杆左侧30cm处,然后沿黑线向B杆移动3m,检测黄色凸起物。

若找到黄色凸起物,则发出声光报警,前后调整位置让黄色凸起物在视野中间,此过程限制4秒,若在4秒内黄色凸起物成功移动到视野中心,则飞行器向黑线靠近10cm识别黄色凸起物上的条形码并拍照,若4秒内无法让黄色凸起物移动到视野中心,则发出指令给OpenMV,令其直接拍3张照片。

当飞行器走满3m时,则开始读取激光测距数据,检测到距离低于70cm时表示移到了B杆处,然后校正自身的位置到距离B杆30cm处,之后每移动0.15m拍一张照片,共拍3张,然后绕过B杆,云台方向向左转180度,从B杆向A杆移动3m,当看到黄色凸起物时声光报警,最后在A杆边降落。

5)测试结果

悬停,飞行器放置在自定起点位置,一键启动,飞行器垂直上升至1m的高度,悬停十秒后自动降落,在此时间内,飞行器的水平坐标并未发生大幅偏移。

自主巡航,飞行器上电,一键启动,能够按照自定路线完成巡航,巡航过程中,摄像头基本能够拍摄到场地内的任意范围。

通信,OpenMV模块连接串口调试助手,双方通信正常,OpenMV可以通过接收串口调试助手发出的指令完成识别任务,同时发送正确的应答。

识别,手持OpenMV测试黄色色块识别,识别率接近百分之百。测试条形码与二维码的识别,在距离约为20cm处,识别率可以满足任务要求。悬挂重物悬停,飞行器分别在四个旋翼轴下方悬挂重物,经过修改偏移量之后,飞行器能够稳定悬停。

“此次比赛的成功,是意料之外却又在情理之中的”,说到总结心得有几点建议给到想要来年参赛的同学们:

  • 目标纯粹方能走得更远。我们参赛并非一心为荣誉,以学习心态参与,注重个人能力提升。珍惜每一次与其他高校交流的机会,保持低调,冷静,迎难而上。

  • 吃苦的精神。早9晚10,无周末,反复在实验室训练,多方面提升飞机性能。

  • 充分的准备和试错。提前备用各种材料,考虑各种情境、环境,以备不时之需。


推荐阅读:

知乎超热门话题:为什么要考985?

为什么程序员996会猝死,而企业家007却不会?

//end

大家好,我是张巧龙,一名电子技术爱好者,会写一些关于硬件与软件结合的技术文章。

若觉得文章对你有帮助,转发分享,也是我们继续更新的动力。

关注下方公众号,后台回复:更多资源。

送你一份学习资源大礼包~

长按识别图中二维码关注

国一B题方案解析:轴距仅210mm的四旋翼有多稳?相关推荐

  1. 第十一届蓝桥杯 2020年国赛真题及解析 (Java 大学B组)

    第十一届蓝桥杯 2020年国赛真题 Java 大学B组 A 美丽的 2 B 扩散 C 阶乘约数 D 本质上升序列 E 玩具蛇 F 蓝肽子序列 ​G 皮亚诺曲线距离 H 画廊 I 补给 J 质数行者 所 ...

  2. 蓝桥杯历年真题及解析(Java B组)

    蓝桥杯历年真题及解析 Java语言 B组省赛真题及解析 2016年第七届Java B组蓝桥杯省赛真题解及析 2017年第八届java B组蓝桥杯省赛真题及解析 2018年第九届Java B组蓝桥杯省赛 ...

  3. 2021 第十二届 蓝桥杯 国赛决赛 Java B组 真题 详细解析

    文章目录 2021 第十二届 Java B组 国赛 真题答案 详细解析 试题A: 整数范围 答案:255 分析: Code: 试题B: 纯质数 答案:1903 分析: Code: 试题C: 完全日期 ...

  4. 蓝桥杯到底难不难?(内附第11届省赛+国赛真题解析)

    前几天有粉丝留言蓝桥杯的事,刚好猪哥之前也参加过,就想和大家聊聊关于蓝桥杯的那些事! 今天猪哥会讲讲之前自己为什么参加蓝桥杯,拿到的成绩,以及讲解去年的真题,让大家感受一下真实比赛题目难度! 文章目录 ...

  5. 历届蓝桥杯Scratch编程国赛 初级 中级 青少年编程比赛国赛真题解析【持续更新 已更新至27题】

    历届蓝桥杯国赛真题 第十三界.十二届.十一届等历届青少年蓝桥杯Scratch编程比赛国赛真题解析 国赛真题01-河马带球[试看] [蓝桥杯国赛真题01]Scratch河马带球 少儿编程蓝桥杯Scrat ...

  6. 2020年数学建模国赛C题Demo【准确率只有61%,仅供参考】

    2020年数学建模国赛C题Demo[准确率只有61%,仅供参考] MPai下载链接:www.mpaidata.com 关注公众号:[万灵数据]可以看很多很多建模资料噢 附件数据下载:https://m ...

  7. 第五讲:2021年国赛B题-乙醇制备C4烯烃优化方案

    2021年国赛B题-乙醇制备C4烯烃原题 第五讲:国赛B题第一小问讲解 2021年国赛B题-乙醇制备C4烯烃数据: 数据一: 数据二: 开始建模 观察此题,就是一个统计推断问题,采取回归思想以及方差分 ...

  8. 2020年数学建模国赛B题题目和解题思路

    2020年数学建模国赛B题题目: 考虑如下的小游戏:玩家凭借一张地图,利用初始资金购买一定数量的水和食物(包括食品和其他日常用品),从起点出发,在沙漠中行走.途中会遇到不同的天气,也可在矿山.村庄补充 ...

  9. 2020年数学建模国赛B题解题思路

    2020年数学建模国赛B题题目: 考虑如下的小游戏:玩家凭借一张地图,利用初始资金购买一定数量的水和食物(包括食品和其他日常用品),从起点出发,在沙漠中行走.途中会遇到不同的天气,也可在矿山.村庄补充 ...

最新文章

  1. [笔记]C#基础入门(八)——C#标识符的命名规则
  2. 浅说 XSS 和 CSRF
  3. NOIP2011聪明的质监员题解
  4. react技术栈实践
  5. 机器人专用符文_英雄联盟【LOL】手游部分英雄天赋符文和出装推荐
  6. nusoap php 7,nusoap-用php的NuSoap 访问webservice遇到的问题。
  7. 【专栏】国内外物联网平台初探(篇二:阿里云物联网套件)
  8. 基于51单片机的音乐播放器
  9. 滑动到底部或顶部响应的ScrollView实现
  10. maven学习(五)——maven命令的组合使用
  11. 湖南师范大学计算机网络基础教学平台,基于网络的师徒式教学平台的设计与实现...
  12. 淘宝客、返利机器人详细解读(个人理解)
  13. 反汇编linux内核,如何反汇编linux固件内核
  14. 【系统架构设计师】软考高级职称,一次通过,倾尽所有,软考【系统架构设计师】论文写作方法必知必会!!!!
  15. Python练习题 01
  16. 初学makefile
  17. NOT EXISTS真的不走索引么?如何优化NOT EXISTS!
  18. 社区卫生服务管理系统
  19. java jtextarea 超出_java – 如何保持JTextArea的大小不变?
  20. C#之WinForms入门

热门文章

  1. 在SAP除了使用Cordova生产移动应用外,还有这种方式
  2. SAP CRM partner主数据的地址格式设计
  3. se16 and include table entries into TR SAT trace - Gross time and Net time
  4. SAP CRM right dimension attribute后台存储
  5. 关于如何根据UI的版本把Tab切换成新的Notes UI Component
  6. Chrome开发者工具Network标签页中观察到的set-cookie jsessionid是什么东西
  7. SAP标准培训课程C4C10学习笔记(四)第四单元
  8. SAP云平台,Netweaver,Kubernetes和C4C的用户和角色关系
  9. 我用ABAP做过的那些无聊的事情
  10. java redis缓存实例_spring项目整合ehcache和redis缓存实例