
我与F450四旋翼无人机
最近在搭建个人网站,现在要上线网站第一篇文章,正好作为一个契机写下这篇小记,回顾笔者与F450的故事
缘起
小时候喜欢玩遥控飞机,有过多架玩具级遥控四旋翼
六年级时,从phonthon开始了解到大疆的四旋翼产品线,非常想拥有一台 phonthon那样的专业无人机,不过真的是太贵了,哪怕到现在我也买不起。
当时逛优酷刷到一些外国人做的组装机方案,使用的是那种红白相间的 F450 机架,性能相当强悍,
泡5IMX论坛,发现存在这样一个领域,人们自己组装飞机,实现大疆无人机一样的性能。
接着就开始上淘宝攒零件:

入坑
跟着论坛里各种帖子、各种教程的推荐,(主要是那一篇“魔豆窝”的F450装机教程,现在已经找不到了)先后购买了F450机架、电调、电机等零部件。
又学着用电烙铁焊分电板,搭好机架,装上电机之后,一台非常酷炫的红白相间F450雏形就这样出现了。
此时离起飞还有很远,飞控也还没买,但看着自己从零组装出这样一台大机架,内心还是非常满足。
这个时候笔者在读初一。

停滞
慢慢地为飞机添置了图传系统、新的电池、新的遥控器。慢慢调试到每个子系统、每个单独的模块都能 work,只差接入飞控统一调度飞行了。
硬件的工作已经结束,接下来就要进行地面站的软件调试。
跟着教程在电脑上配置好了 Mission Planner 环境。
第一次给飞控插电,看着飞控的红蓝两个指示灯亮起,非常满足,非常兴奋。
但当时他只是在给飞控上电罢了,并没有进行数据通联。飞控怎么也不能Connect
为了解决这个 bug 折腾了好久,排除了USB 接口问题,又按照教程重新配置驱动,发现仍然不 work。
后面无意间换了一根数据线,发现终于连上了。此前连不上的原因是那根线是电源线,没有数据传输功能,这也是我第一次意识到有些电线看起来相同,但功能完全不同。
用新的数据线成功地连接上了飞控,跟着向导开始校准陀螺仪,获得了地面站飞控姿态的显示。
Mission Planner 对当时的我来说就像一个军用飞船驾驶舱界面。手摆动飞机,视窗姿态数据也会随之改变。
虽然现在看这只是最基本的地面站交互,但是在那时的我看来自己简直厉害得不行。

从装好无人机硬件到连接上地面站进行调试,中间隔了大半个学期。
后续就一直卡在“加速度计”的校准界面。不管我怎样按指示旋转无人机,数据总是不能 hit 到校准点(忘记当初的页面名称是啥了,现在手边也没有 APM,没法在 Mission Planner 里复现)。
去搜索引擎排查问题,去论坛找经验帖,看了很多接线图和原理图,怀疑是自己使用的内置罗盘没有设定,说是要跳接焊点,插拔某个跳线帽等等。就第一次把飞控拆开,对着电路板上的焊盘按图索骏
现在回看,当时那是第一次看接线图、原理图,第一次对硬件的更改,也是第一次插拔跳线帽。
至于后续又卡在哪一步,我也忘了。反正当时一直在wizard面里徘徊,从头开始了无数次,但始终没有完成校准。
后面上初三了,也该忙中考了,也就把飞机搁置一边。
没想到,这一隔就是一年。上高中之后忙着应试,又加上住宿,也没太多时间和精力倒腾了。
高中入学以来成绩一直不太理想,到了高二,应试能力依旧堪忧,也找不到正反馈,就想着在航模这一片自留地里找回心气与信心。
于是乎,又想着把之前没有调起飞的F450调试起飞。

第一次发求助帖并且回复反馈,解决了问题:

有一个老哥一针见血地点出了问题,这是我第一次意识到版本鸿沟:

后续从官网下载了一个适配版本的地面站。非常顺利地完成了全部的地面站调试,飞机成功解锁。
在深圳城中村的那个杂乱小出租屋里,我非常满足地看着螺旋桨怠速旋转,听着呼呼的风声。
启航
地面站校准完成之后花了几天在室内调整了一下桨叶和重心,准备拿到室外去真正地试飞。
记得那是一个周六的中午,太阳很烈,是拎着大包小包,骑着共享单车去的。当时选择白石路的一个上盖公园作为试飞场地(现在已经部署帽子叔叔严格看守,禁止任何飞行),因为这里够偏僻,没什么人,场地也大,视野开阔。
起飞前准备,过程很短。先打开接收机、图传上电、最后插主电。
解锁看电机怠速旋转效果,接着是试探性地轻推油门,飞机上升平缓,试过悬停后测试一下俯仰角、偏航角、旋转角的运动姿态,效果很好。
那一刻心情十分舒畅。更让笔者惊喜的是,当时为了测试了一下遥控器通道的功能,试探性拨动了遥控器的六通道摇杆,发现无人机竟自主返航到了起飞点,这是我完全没想到的。
之前根本没记得自己配置过主动返航功能,后来上地面站复盘,发现这个通道是默认的返航开关,当时又配置了 GPS,所以就能实现自主返航。
试飞成功后的心情没有太大波澜,是平和的。可能是此前试错了太多次,如今漫长的试错终于抵达了一个结果,短时的惊讶也化作了长久的欣慰。
收摊前,又测试了一下这架无人机的最大飞行高度。
把油门慢慢推到顶,保持了好几秒。
看着图传画面里的视角越来越高,心里也开始害怕它掉下来。好在最后缓缓收油,花了很长时间才降落下来。
落地的瞬间出了一身冷汗,有点像极限挑战者临崖得救后的那种刺激
那天试飞之后,似乎就得到了一个圣杯。此后也就没有再继续折腾旧机子的欲望了。临近高三,该准备高考了,就没再继续折腾。
从产生组F450无人机的念头,到自己组装的飞机成功起飞,中间隔了四年。
继往开来
大学选择了机器人工程专业,加入了相关社团和实验室,认识了很多志同道合的小伙伴们。
大一下学期有一个好哥们建议我们组队参加全国大学生电子设计大赛,看了看历年赛题,我提出用我此前组装的四旋翼平台参加无人机赛道。
电赛要求是设计一台自主飞行的无人机完成各种任务。而笔者此前的技术一直是遥控飞行,还从未涉及过程序控制。
从家中翻出这台早已风尘已久的F450。带到学校用遥控和小伙伴们一起试飞了一下,效果还是不错,我们都很开心。
期末周后我开始找各种教程,看文档,还是没有搞清楚怎么用程序控制 APM 飞控,如何自主飞行。
还试着装配一个光流,刷写 APM 的固件,结果把它刷成砖了……
临近比赛也没有时间给我折腾了,于是就换了一套飞控架构,使用了匿名科创的凌霄飞控,由于此前装机经验的积累,我很快就把飞控平台迁移到了凌霄飞控上,并且顺利试飞。

但还是没有搞定程序控制,飞控C工程源码我也看不太懂,在正式比赛的前几天才大致理清了飞控工程架构,知道了在哪些文件里实现自定义的飞行效果。
在四天三夜的比赛进程中的第一天里,我们完成了遥控器拨杆通道开关的一键起飞;
第二天,我卡在了飞行控制指令,其实手册写得明明白白,但是我的飞行指令控制程序总是编译不通过(其实就是头文件没包含)。
事实证明我当时根本不会coding(到现在也是),好在有 GPT 反复迭代,最终还是编译通过,在第三天基本实现程序控制效果。
那次试飞的时候没有把八通道摇杆打上去,发现这次飞机位置极其稳定,几乎没有漂移。
重读飞控手册发现,原来开启八通道摇杆才能真正使用光流定点模式,之前一直用的是姿态模式……
在比赛最后一天下午,我们进行全流程试飞。
全程让飞机自己按照程序飞行,不进行遥控干预。但由于学校场地光线太暗、地面纹理稀少,光流模块不能很好地定位,导致飞机起飞几秒后就剧烈晃动,炸机了。
好在F450过硬,只是摔坏了螺旋桨保护罩。临近作品封箱,我们停止了所有新的尝试,抓紧修补飞机
正式测评当天,怀着侥幸的心理,认为场地光线充足,希望飞机能够顺利地飞完全程,完成基础任务。
但实际情况是飞机刚起飞就挂到场地笼顶层的防护网上了……
因为我把一键起飞的上升高度定义错了:原本应该是根据赛题要求起飞高度设定,但是由于我混乱地使用文件夹迭代源码工程,忘记将自定义高度的那行代码并入最终版本,导致赛场使用飞行高度参数是默认参数。
比赛结束后,学校报销要求上交参赛作品。我把关键零部件拆下来,用废弃组件和原有机架假组了一台像真机交上去
于是我和陪伴了七年的F450机架的缘分走到了尽头
余波
25 年的那次电赛对我来说是一个认知破圈。很高兴和队友有这样一段深刻的竞赛经历,也很幸运和互联网上的一群小伙伴交换 idear

六年级那年,我第一次知道可以自行组装飞机;大学一年级那年,我知道了嵌入式的概念,开始和代码打交道,用程序直接控制飞机。
就像从小时候不再满足于玩具级飞机一样,现在也不再满足于可以拿来就用的教具模块,就像从零学习焊接一样,开始从零学习coding/EE/CS。
玩飞机过程中也不禁感慨身边/网上优秀的同龄人实在是太多了。当我还在组 F450时人家已经在手搓飞控了……
总是跟别人比也没意思。比来比去比不赢,还不如专注自己的路,只和自己比,每天进步一点点,脚踏实地,持续进步。
最近读大疆创始人汪滔的访谈,觉得有几句话很值得琢磨:
真正 care 这些事的人,被一些没那么 care 的人管着;这套规则也并不 enable 那些从心眼里喜欢学术的人,反而 favor 一些以考试为驱动力的人。
唐僧说:“我早知道她是妖怪。” 沙僧问:“既然知道是妖,为何不让大师兄打死?” 唐僧答:“如果到处打打杀杀,我还取什么经?” 沙僧又问:“死了怎么办?” 唐僧说:“观音让我取经,不会让我随便死的。” 沙僧又说,“可我们现在分分钟会被杀掉。” 唐僧答,“若真要死,就是定业难转,我也认了。”
唐僧的心态是,他有信心,但又不是百分百有把握。取经要的就是这种心态——对结果有足够的信心,但又永远不可能、也不应该 100% 相信会成功。
结果不确定,路才有意义。
前一段话对评价体系有一个判断,套用到学科竞赛领域也是一样:真正care技术的人被一些不那么care的人管着;这套路径依赖和评价体系也不 enable 那些从心底里喜欢捣成技术和学习原理的人,反倒 favor 一些以title 为驱动力的人。
哪个公司的哪个岗位会以哪一个竞赛奖项作为门槛包你offer(RM可能除外)?你要打比赛,那你就一直打比赛,毕业了也打比赛,靠比赛吃饭,始终在这个三级市场徘徊,捡别人剩下的技术,学别人学完的原理。
现在临近大三,越来越发觉此前自己其实一直都有这个路径依赖,实际上是有力没地方使,有点像那些个中职大专,搞什么世界技能大赛,说到底还是一种弱者文化,总是想着破格或取,“不要学历要能力”。
如果想要在评价体系内有更高的upper limit,大部分中职大专的uu更应该做的是专升本,而这个世界第一的title ,似乎对专升本考试也没有任何正向加成和适配任何硬性门槛。
屠龙之后,皇帝会对你进行奖励,现在对大臣 showcaseca 你的拥有的屠龙技能——你为什么不越过大臣,甚至根本不去皇宫,直接把那个龙屠了爆金币隐退呢?这和 taste 无关,仅仅是屠龙者基于自身利益最大化动机的一个理性考量结果。
与其花时间在竞赛体系里反复证明自己,不如把同样的精力直接投入到解决和学习真实的技术问题上去,对标市场需求获得报酬。
在别人的规则里挣积分,实属没意思,而且也没利益……
最后一句话是篇柏拉图式的过程享受论,也是一种 old theory 了。
不管是小学生自己瞎倒腾,还是成功人士创业,心态都和取经有点像——知道前面有坑,也知道自己可能搞不定,但还是得往前走。
因为结果不确定,路才有意义。