一个月经历“四次国赛”的战队

2019-11-14 10:57
媒体报导
摘要:刷新,刷新,再刷新......2019年8月7日早7:30,当最终刷出题目的一刹那,程航、高良磊、刘成语瞬间松了一口气。在 TI 杯2019年全国大学生电子设计竞赛(以下简称“国赛”)面向本科生的8道题目中,如愿出现了飞行器控制相关的题目。B题要求设计一个基于

刷新,刷新,再刷新......
2019年8月7日早7:30,当最终刷出题目的一刹那,程航、高良磊、刘成语瞬间松了一口气。在 TI 杯2019年全国大学生电子设计竞赛(以下简称“国赛”)面向本科生的8道题目中,如愿出现了飞行器控制相关的题目。B题要求设计一个基于四旋翼飞行器的巡线机器人,能够巡检电力线路及识别杆塔状态,发现异常时拍摄存储,任务结束将拍摄到的照片在地面显示装置上显示。

众所周知,国赛的4天3夜对于参赛者来说堪称煎熬,精神的高度紧张加疯狂熬夜。但程航团队却显得过于从容,拿到题目后的一小时内即确定了云台方案,竞赛前两天主要在理清图像处理模块上的逻辑关系,晚上12点左右就入睡了;第三天在不断试飞、调PID、3D打印更换更轻的机架及云台零件、提升飞行器系统的稳定性,算是熬到了凌晨2点左右;第四天基本上就是按部就班地完赛封箱。这也是和他们一起参加国赛的上海大学其他3支飞控团队呈现出来的状态。

程航是这四组飞控团队成员中唯一一个参加过去年省赛的人,而那个记忆并不美好。全程基本上都在不停地解决问题,由于过于紧张,大家第一天开始就非常疯狂,熬到很晚。以至于第二天根本就没精神,做不下去,最终的结果也就可想而知。但今年国赛中上海大学4支飞控方向参赛团队全部获奖,2个国家一等奖(以下简称“国一”),2个国家二等奖,而且这是因为按照规则,参赛学校每一道题目最多只能有两支队伍获得国一。

而这归功于他们比别人多参加了3次“国赛”,自然对这个赛场上的一切都驾轻就熟。


左起:于军、高良磊、刘成语、吴嘉奇、程航、丁晓青老师、何晴、徐天舒、余涵蕾、方文智


前三次“国赛”
当大大小小模块前前后后已经尝试了多个版本,该掌握的内容都已经演练多次,在备赛的最后阶段,上海大学飞控团队成员们显得很焦燥,就像考试前再也复习不下去,练习项目时也都有些松懈。直觉让他们感到不能这样下去,于是他们找到指导老师——通信与信息工程学院丁晓青老师提议:能不能安排一项具体的任务,让大家找到备赛的紧迫感。而丁老师则提出了模拟竞赛的想法,即完全模拟国赛的要求与环境,不仅任务、时间,还包括最后写报告的格式,都完全与国赛看齐。

7月中旬,第一场模拟赛如期开始了。题目要求飞行器在飞行场地中寻找一个黑色圆形,然后通过图像处理模块引导小车行驶到该目标,之后再降落到指定地点。由于团队成员之前一直在关注飞行器设计与制作,题目设计的目的是锻炼他们做小车的能力。这时不少问题暴露了出来,“当时用的飞行器跟最后国赛用的是同一个型号,但那时还存在很多问题,”程航回忆起来还有些后怕。大家一方面要不断调稳飞行器,另一方面还要完整做出小车,并且能够精确地控制行动的角度和距离,这对第一次完整做小车的他们而言还是颇具挑战。但比赛的奖励也是诱人的,大家默默达成了一致,谁先做完谁先放假,这对于从备赛开始就一直996的他们着实是个不小的诱惑。结果第一次模拟赛结束时,团队之间竞争的态势被激发出来,备赛的热情一下子引燃了。

如果说第一次模拟赛是牛刀小试,主要锻炼了图像处理能力,那么7月下旬的第二次模拟赛更像是高手过招,题目的要求高端了不少,丁老师似乎把能想到的设计要求都放在了一起。飞行器首先要避开一堆竖立的金属杆到达指定地点,然后找到指定靶杆进行激光打靶,打中靶心后降落。这时问题再次显现,尤其是飞行器的避障功能。程航团队当时手工制作了一个激光雷达,使用激光测距和舵机旋转来检测金属杆以实现避障,同时又加载了2个OpenMV模块用于图像识别。组装完后才发现,飞行器要执行的任务太繁重了,怎么调都调不稳,飞行高度在不停地上下波动。好在赛后无意中忘插了飞行器上的激光传感器连线,发现飞行起来平稳很多。最后终于查出用激光定高程序中的bug,这也为他们的飞行器在国赛平稳飞行又一次打下了坚实的基础。

7月底,4支飞控团队又迎来了第三次也是赛前最后一次模拟竞赛,这次的任务相对简单——钻框。顾名思义,就是一个架子上面配一个框,飞行器钻框的同时并引导小车钻过架子。在前2次模拟竞赛中发挥稳定的吴嘉奇、于军和徐天舒团队遇到了一个突发状况,之前正常工作的飞行器突然偏航特别严重。团队成员赶忙查找问题,最后怀疑是芯片坏了,临时改用了备用板。紧赶慢赶,还是比要求的验收时间晚了3个小时。这让其他队员们也都一起总结国赛如果遇到这种情况该如何处理。

3次模拟赛下来,那种紧迫感给大家带来了很大的冲击。团队成员在经验积累之外,也在技术方面做了很多改进:比如在原来激光定高的基础上又新增了超声波和气压计定高,飞行器执行飞行任务时,可以随意调整三种定高方式的比例以获取数据,同时还去掉了一些不必要的传感器。不仅如此,吴嘉奇还做了数版OpenMV 模块,以优化电路设计。飞行器结构上也做了不少调整,设计机架的同学3D打印了很多零件替换原有部件以减轻飞行器重量。此时,国赛用的飞行器已基本成形。

在一个月的时间里,让一群基本没任何参赛经验的学生能够从容地走上国赛赛场,这需要智慧。丁老师的思路是:重点训练学生拿到题目之后如何迅速制定方案、碰到问题后又怎样快速地定位问题和解决问题。如果各种各样的问题和情况都能在这段训练期间遇到,学生们解决的思路和方法都打开了,正式比赛的时候就不会慌张和不知所措。靠着多年带学生参赛的经验,丁老师根据自己对出题方向的猜测有针对性地训练,例如:对立杆的测距避障,二维码识别,云台的使用,激光笔的使用、声光提示等,这些软硬件准备在比赛时都发挥了作用。

虽然最后比赛的题目和模拟赛时不是很吻合,但由于之前把现阶段市场上及开发能够用到的所有的模块基本上都做过一遍,国赛中用到的云台、图像处理、超声定高等技术都进行了演练,所以飞控团队上手非常快。既然方案之前都实现过,思路又确定,剩下的主要就是调程序了,而调通的逻辑程序全都有,只需移过来即可。 

不算备赛的备赛
与很多学校早早组队并展开集训不同,在三次模拟赛前,上海大学这12位飞控小组同学还没有正式组队聚在一起做项目。真正开始备赛也就是7月,即距正式比赛前一个月。看上去似乎显得对国赛不够重视,而且也无法解释短短一个月的时间,这12位同学如何能一步步走上最后的领奖台。显然需要靠学生自己的能力和此前的积累。

程航,2016年9月刚入校就加入了无人机协会,同时也知道了“国赛”这个本科阶段的重要目标。大二那年的12月,他的同学吴嘉奇参加了院里的国赛选拔,这样的选拔每次都有将近200人报名,占到当届学生的一半。报名之后,三人一组自由组队,完成老师布置的模拟电路方面的一个课题,小组用两周时间领元器件、设计、焊接、调试。由于学生刚刚接触专业课,更多考察的是学习态度,题目不会特别难,大约会有1/3的学生离开。直到第二年3月,竞赛的初步培训正式启动,主要涉及模拟电路、数字电路、高频、单片机、FPGA、电源等参赛必备的基础知识。老师会进行基础知识讲座并布置课题,然后进行验收并打分,基本上每个知识点都需要1-2周的时间。5月底会对所有课题验收时的分数相加排名,挑选出将近100人参与国赛。

之所以国赛的整体选拔从大二的冬季学期才开始,是因为特殊的课业设置。上海大学是按理学工学、人文社科、经济管理三大类招生,一年级不分专业、不分学院,都是通识课,大二才会分流到各个学院。而通信与信息工程学院第一年的课业非常繁重,每天课都排得满满的,是希望把学生的专业基础打好。虽然没有专门安排竞赛技能,但因为每门课的课程设计里有一些实践动手能力方面的练习,也相当于算是竞赛前的训练。

吴嘉奇通过了选拔,但由于功课和学生会的事务太忙而放弃了。如果他坚持下去,就会在6月开始接受根据国赛题目而进行的电源、高频、测量、自控分方向的更深入的培训。绝大部分人经过这一轮系统的学习,已经具备了备赛的基础。大三时他非常想参加国赛,就去找丁晓青老师,得到的答复是去选工程教育高级课程。这时他才发现无人机方向很特别,无需按照他之前参加的院里的选拔和备赛模式,只要能够坚持上完课,并做出成品来,就可以参加国赛。主要是因为这门课程相对较难,且以学生做项目为主,涵盖领域又很广,不仅包括竞赛的内容,还包括人工智能等最新的技术。通过课程,学生的综合实力如硬件、软件、系统构成、App编程等得到了有效提高,也就具备了国赛参赛的能力。

程航则是另外一条路径,他在无人机协会里如鱼得水,自己买了很多飞行器,寝室里全是四轴、固定翼飞行器,大二时他直接去找丁老师申请参加比赛。从四轴飞行器第一次出现在国赛题目中,上海大学就参与其中。之后历届学生不断积累、改进、创新,逐渐为四轴飞行器设计积累了相当多的经验。所以飞控竞赛筹备的很多软件、硬件知识,都是以老带新的方式传下来的。因此飞控方向虽然参赛的主要都是大三的学生,但传统上每年都会在大二学生中寻找一个组作为明年竞赛的种子队,一直痴迷于飞行器的程航当然是丁老师眼中的不二人选。

大三那年冬季丁老师的课上,当时程航做的飞行器还没有飞起来,他选用的主控芯片是 TI TM4C129。其实他之前也考虑过其他芯片,但是当时没有什么基础,反而 TI 芯片倒是接触过一些程序,而 TI TM4C129 内部器件初始化函数写起来非常方便。恰好有位学长毕业设计做到一半,使用的主控芯片也是 TI TM4C129,于是他就加入其中和学长一起研究。当学长完成毕设的时候,飞行器的各项基础功能也基本完成了,在后续学期和暑假中,他又对程序做了多次调整和优化,最终形成了征战国赛战场的主要程序。

同时,飞机硬件部分的更迭也很快,大致经历了3大版本。2018年省赛,程航团队使用的是380轴距的无人机,比赛结束之后,丁老师觉得大飞机太危险,容易伤人,于是在冬季工程教育高级课程上,要求大家做空心杯电机的小四轴飞行器。但是这类飞行器动力有限,稍有不慎就会飞不稳甚至飞不起来,因而最后虽然勉强通过了课程验收,但是程航不是很满意。后来在春季学期时,他想把一架125轴距的小型穿越机改造成可以参赛的无人机,便找到吴嘉奇来帮他做飞控的硬件部分,于是吴嘉奇改良了PCB的布局和设计,并适配了这架穿越机。不过到暑假备赛前,飞控团队仍然觉得这种太小的穿越机载重和续航能力还是不够,最多飞行2分钟,于是又经过了全面调整,最后换成了参赛用的250轴距的穿越机,满足了大部分的载重和续航要求,也通过了模拟赛的各种考验,这也是最后在国赛中使用的飞行器硬件版本。


小型穿越机改造的无人机

2019年国赛吴嘉奇团队的飞行器


“管”与“不管”

其实即使在模拟赛期间,除了出题和赛后作品评审和建议,丁老师给的只是一些方向上的建议。比如避障时建议用激光而不是超声波,板子如何改动可以让系统更稳定,除此之外,都是让学生自己去找资料摸索。在发现问题、分析问题、解决问题的过程中,团队成员也惊喜地发现了 TI 官方的社区——e2e 中文论坛,当时看到很多提问都能被及时回复,所以需要寻求帮助时,他们也会主动地去这个论坛逛逛。

平时飞控团队提出需要某些模块时,丁老师都是立刻下单,让团队成员能够很快拿到模块并验证模块。当丁老师发现有升级版的器件和模块时,也会第一时间推荐给学生,并买来给学生做调试。暑假特别热的时候,他甚至把西瓜搬到实验室给大家降暑。在学生备赛疲惫的时候,他也会把零食拿出来分享。

但是丁老师并没有过多“干涉”学生的设计过程,几乎都是放手,而当他提出一些建议时,飞控团队甚至会按照自己的想法坚持下去。这种“不管”的思路,也贯穿在丁老师飞控方向整个竞赛备赛培训中,出完题后,他就消失了,为的就是考验学生自己发现问题、解决问题的能力。也正因为如此,前期的培训让飞控团队学生们觉得很辛苦,碰到一个问题可能一天、两天才能解决。但后来半天就能解决,到最后只需要1小时就解决了。在丁老师看来,如果指导得很细,会限制学生的思路,学生会完全按照老师的想法去做,思路会越来越窄。“不管”的效果反而比“管得多”更好。

从2003年开始国赛带队的丁老师,经历了电赛从开始到 TI 杯的变迁,今年他惊喜地发现:新上线的全国大学生电子设计竞赛培训网的内容非常丰富,TI 为大赛做了很多的培训、讲座、资料整理,这些也成为他可以放心地让学生自己发现问题、解决问题的重要支撑。 

激发学生自身的潜力,正是上海大学所希望的,对国赛参赛人员的选拔模式就是一个证明。不是由老师指定,而是“普选”,选拔时看重的并不是成绩,而是挑选那些能够真正投入其中,具备顽强的毅力,并且动手能力、分析问题、解决问题能力特别强的学生。当时通信与信息工程学院院长提出的理念是参加竞赛的最终目的不是为了拿奖,而是为了吸引更多的学生走进实验室,让他们去带动学院学习的风气。基本上每个宿舍都会有学生参加竞赛培训,这样就会把学习的良好风气带到每个宿舍,提高大家学习电子电路方面课程的兴趣。而另一方面,也是为了带动课程在教学模式方面的一些改革,比如工程教育这门课也是在不断地更新内容,紧跟每次竞赛关注的新技术、新热点。这样的模式从最初到现在一直从未改变。

表面上不管,但在对学生备赛的支持上,学院绝对不含糊。特意提供了三个实验室为学生备赛,其中主要为竞赛服务的创新实验室甚至是由学生自己管理,学生可以充分利用双休日及节假日的时间泡在实验室。由于上海大学参加国赛的四轴飞行器方向已经好几届了,所以有很多积累,而这些积累会传给下一届,然后下一届在之前学长的基础之上再进一步地优化、创新,将飞行器做得更好、更稳定。目前,由历届学生完成的飞行器作品轴距由大到小的已有4、5种,主要的控制部件实现了自制。这其中,老师一般只是进行方向上的把握,比如在几种方案间纠结的时候,老师会参与讨论,但基本上还是靠学生自己。于是在创新实验室里,学生们以老带新,上一届参加过竞赛的学生带下一届,将软件、硬件的知识这样传递下去。

比赛时的创新实验室,因为飞行器需要试飞场地,所以桌椅没有摆成教室的样子


一路走来,对于最后的国赛成绩,丁老师并不在意,不管是2018年省赛,飞行器刚一上场就坠毁了,还是2019年的4支队伍悉数获奖。因为学校认为对学生的动手能力、实践创新能力的培养更为重要,而这些能力在今后学生考研、工作中会有更大的帮助。对此,于军的感受印证了学校和丁老师的想法。

他认为国赛的整个经历给自己带来的首先是培养了工程能力,一个新的任务下来之后,需要自己去思考怎样的方案会比较完备,怎样去实施能够鲁棒性更好。确定方案后把它分解成各个容易单独解决的小模块,各个模块调试完成后再组合在一起联调。其次是团队合作的能力,团队三个人分别负责不同的方向,方案制定时要综合考虑每个人对应部分的工作量,实施难度:出现问题时要各自去查找自己负责的部分。此外,这让他觉得自己今后会更加有信心面对困难,由于是第一次接触这么庞大的代码量,一开始接手的时候也非常焦虑,不知所措,经过几个月的努力,他已经能够独立去完成一个任务;这不仅仅只是编程能力的提升,更是对自身信心的提升。而这样的信心对他以后无论科研还是工作上都会极为宝贵。

在这里,国赛是比赛,但更是育人的工具。