第5章
金陵以南,梦想以北------------------------------------------,南京下了一场大雨。,听雨水打在空调外机上的声音,噼噼啪啪,像有人在窗外敲架子鼓。他没有失眠,但也算不上睡得踏实。凌晨四点多醒了一次,翻了个身,脑子里忽然闪过一个念头——如果明天数学最后一道大题的第三小问考导数与数列不等式的综合证明,他准备的几种放缩法够不够用?。再醒来是六点二十,天已经亮了,雨停了,空气里有一股潮湿的泥土味。。他走出卧室的时候,餐桌上已经摆好了早饭——白粥、酱菜、一个煎蛋、一小碟切成细丝的海蜇头,还有一根油条和两个鸡蛋,旁边放着一张写了字的便利贴:“旗开得胜,马到成功。”。不是因为**,而是因为他确实饿了。。从家到考点大约四十分钟车程,一路上父亲没有说话,车载广播也关了,车里安安静静的。顾望舒坐在副驾驶,看着窗外的南京城从睡梦中慢慢醒过来——早餐店门口的蒸笼冒着白气,环卫工人正在清扫人行道上昨夜积攒的梧桐落叶,一个穿校服的女生骑着自行车从旁边经过,车筐里放着一个透明的文件袋,里面装着准考证和几支笔。,密密麻麻站满了家长和考生。父亲把车停在两百米外,说:“我就在这儿等你,出来不用找我,我会看到的。”,推开车门准备下去,想了想,又回过头说了一句:“爸,要是第三小问真的考导数与数列不等式,我觉得我准备的放缩法应该够用。”,然后笑了:“进去吧,别想这些了。”,顾望舒觉得还可以。作文题目是关于“守正与创新”的议论文,他写的是“守正是根,创新是翼,有根有翼才能飞得远”。走出考场的时候太阳很大,他眯着眼睛在人群里找父亲,看到父亲站在一棵梧桐树下,手里举着一瓶冰红茶,晒得满头大汗。“怎么样?”父亲问。“还行。”顾望舒接过冰红茶,拧开盖子喝了一大口,“作文写了飞行。什么题目你都能扯到飞行。”父亲笑着摇了摇头,语气里听不出是嫌弃还是骄傲。,顾望舒检查了三遍答题卡,确认没有涂错一个空,放下笔的时候距离铃响还有七分钟。他靠在椅背上,看着窗外的天空发呆。考场在二楼,窗外有一棵很高的水杉,树梢上停着一只鸟——看不太清是什么鸟,也许是麻雀,也许是白头鹎。,扑棱棱地冲向天空,越飞越高,越飞越远,最后变成了一个黑点,消失在一片蔚蓝里。
铃声响起。
顾望舒站起来,把文具收拾好,排队走出考场。走廊里有人在哭,有人在笑,有人在对答案,有人在约晚上去哪里吃饭。顾望舒穿过人群,走到校门口,看到父亲站在那棵梧桐树下——同样的位置,同样的姿势,手里还是拿着一瓶水,这次是矿泉水。
“最后一门考完了。”顾望舒说。
父亲点了点头:“走吧,回家。**做了红烧排骨。”
高考出分那天,顾望舒正在自己房间里拆一个坏掉的舵机,想看看能不能修好。
他用螺丝刀打开了舵机的塑料外壳,露出里面的直流电机、电位器和控制电路板。他用万用表测了一下电机绕组的电阻,又检查了电位器的阻值变化,发现是电位器的碳膜磨损导致了信号抖动。这东西没法修,只能换。
他正准备在网上搜一下同型号的电位器,手机震了一下。是江苏省教育**院的短信。
他点开短信,看到那串数字。
语文124。数学138。英语109。物理A+。化学A。
总分371(不含小高考加分)。
江苏高考总分是四百八还是四百八?顾望舒盯着那个数字愣了几秒,才反应过来江苏高考**后的总分是四百八——语文数学英语各一百六,语文和数学附加题各四十分,两门选修按等级划分,不计入总分。他的总分超过了南航往年在江苏的最低录取线不少。
他放下手机,又拿起螺丝刀,把舵机外壳合上,螺丝拧好,放在桌角,然后起身走出卧室。
母亲在阳台上晾衣服,父亲坐在沙发上看手机。
“出分了。”顾望舒说。
“多少?”父亲抬起头。
“三百七十一。”
父亲沉默了两秒,站起来,走过来,抱了他一下。力气有点大,后背被拍得有点疼。
母亲从阳台跑进来,手上还拿着一件没晾完的T恤:“多少?三百七十一?能上南航吗?”
“应该可以。”顾望舒说。
母亲的眼眶一下子就红了。她没哭出声,只是把那件T恤攥在手里,在原地站了一会儿,然后转身回阳台继续晾衣服。顾望舒听见她在阳台上自言自语:“三百七十一,三百七十一,这孩子……”
填报志愿的时候,顾望舒只填了一个学校:南京航空航天大学。
第一专业:无人驾驶航空器系统工程。
第二专业:飞行器设计与工程。
第三专业:飞行器动力工程。
没有**专业。没有服从调剂。
父亲看到志愿表的时候,皱了皱眉:“至少填一个保底的。”
“不需要保底的。”顾望舒说,“我会被录取的。”
“你怎么知道?”
两种可能。一、他的分数够了;二、他不会选其他学校。
父亲看着他的眼睛,看了几秒,没再说话,在志愿表上签了字。
录取通知书寄到的那天,顾望舒正在小区门口的快递柜旁边取一个包裹。快递员喊了一声“顾望舒,有你的录取通知书,要本人签收”。他接过那个大红色的EMS信封,看到“南京航空航天大学”几个烫金大字的时候,手忽然有点抖。
不是因为激动,而是因为这一切太不真实了。
他花了十二年——从趴在禄口机场落地窗玻璃上的七岁,到走出高考考场的十八岁。十二年的每一天、每一页书、每一架摔碎的模型飞机,所有的汗水和等待,在这一刻凝聚成了一个具体的东西——一个信封,几页纸,一个印章。
他拿着那个信封走回家,没有拆。
进门换鞋的时候,他发现自己的鞋带系得太紧了,半天没解开。母亲从厨房探出头来,看到那个红色的信封,围裙都没解就跑过来了。
“拆啊,赶紧拆啊!”
顾望舒坐在沙发上,慢慢撕开封条。里面是录取通知书,硬质的红色卡片,打开后有他的照片、姓名、专业、报到日期。他一个字一个字地看,看到“无人驾驶航空器系统工程”那一行的时候,呼吸停了一拍。
父亲不知道什么时候也站在了旁边,手里拿着手机,看起来是想拍照,但忘了按快门。
母亲已经哭了。不是那种无声的流泪,而是真的哭出了声,一边哭一边说:“我就知道,我就知道你能考上……”
顾望舒把录取通知书放在茶几上,站起来,走进了自己的房间。
他关上门,站在书桌前,看着墙上那张他十三岁时贴上去的南航校训贴纸——“智周万物,道济天下”。贴纸的边缘已经翘起来了,颜色也褪了不少,但字还是清晰的。
九月。明故宫校区。大一新生。无人驾驶航空器系统工程专业。
他终于可以光明正大地走进那扇门了。
不是参观,不是研学,不是航模队的开放日。是以主人的身份,走进那个地方。
顾望舒在那张贴纸前面站了很久,然后说了一句话。声音很轻,像是说给自己听,也像是说给那面墙听。
“我来了。”
大学报到那天,顾望舒只带了一个行李箱和一个双肩包。
行李箱里是衣服和日用品。双肩包里是他最重要的东西——一台用了三年的笔记本电脑、一个便携式逻辑分析仪、一把十字螺丝刀,以及那本几乎被他翻烂了的、纸张已经泛黄的《航空概论》。
母亲坚持要送他到学校。顾望舒说不用,母亲说“**要上班,我一个人在家也没事”,顾望舒就让她跟着了。
地铁二号线坐到明故宫站,出站后走不到十分钟就到了南航的校门。不是他小时候站在外面仰头看过无数次的那个门,而是他即将走进去、走出来、走进去、走出来、反反复复走上整整四年的那道门。
校门口挂着“热烈欢迎新同学”的红色**,有几个穿红马甲的志愿者举着各个学院的牌子。顾望舒找到了“航天学院”的牌子,走过去,一个扎着马尾辫的学姐看了他的录取通知书,笑了:“小学弟,走,我带你去办手续。”
母亲在旁边悄悄拍了好几张照片。她不太会用手机拍照,总是拍糊,但她还是固执地拍了很多张。她拍了校门口的石碑,拍了顾望舒拖着行李箱走在梧桐树下的背影,拍了宿舍楼下那一排花花绿绿的迎新展板。每一张都有点糊,但每一张她都舍不得删。
宿舍在一栋有点旧的楼里,六人间,上下铺。顾望舒到的时候已经有三个人在了。
靠窗下铺那个正躺在床上玩手机的人叫周远舟——这个名字顾望舒后来会记很久。周远舟当时穿着一条花哨的沙滩裤,上面印满了菠萝图案,光着脚翘在床栏杆上,看到顾望舒进来,瞟了一眼,说了句:“这位兄弟装备挺专业啊,带螺丝刀来上大学?”
顾望舒看了看自己手里的那把十字螺丝刀,觉得确实有点奇怪,但没解释。
另一个正在整理柜子的人叫方旭,戴眼镜,说话轻声细语的,一看就是个老实人。他的床上摊着一本《C++ Primer Plus》,书脊已经开裂了,里面夹满了便利贴。
还有一个叫刘嘉瑞,本地人,报到那天就带了**电竞设备——机械键盘、电竞鼠标、耳机支架——把书桌摆得满满当当。他看了一眼顾望舒的螺丝刀和逻辑分析仪,说了句“电工兄弟?以后帮我修电脑”,然后继续装他的键盘。
顾望舒选了靠门的上铺。不是因为喜欢,而是因为他觉得上铺清净,不会被路过的人打扰。他铺好床单,把行李箱塞进床底,双肩包挂在床头的钩子上,那本《航空概论》放在枕头旁边。
母亲帮他把书桌擦了又擦,把牙杯毛巾摆放整齐,又把带来的零食分给宿舍其他几个人。周远舟接过一包牛肉干,说了声“谢谢阿姨”,然后对顾望舒说:“**人真好。”
母亲走的时候,在校门口抱了抱顾望舒。她的个子只到他肩膀,抱他的时候头靠在他胸口,像一只依偎在大树旁的小鸟。
“好好吃饭,别熬夜,天冷了多穿点。”
“知道了。”
“有什么事给家里打电话。”
“知道了。”
“别光说知道了。要真的知道。”
顾望舒笑了。母亲松开他,转身走了几步,又回头看了一眼,然后快步走向地铁站的方向。顾望舒站在校门口看着她的背影消失在人群中,站了一会儿,转身走向宿舍。
太阳很大,梧桐树的影子落在他的肩膀上,斑斑驳驳的。
大学,开始了。
大学的第一堂课是《航空航天概论》。
顾望舒提前二十分钟到了教室,坐在第二排靠窗的位置,摊开笔记本,把笔摆在右边,像一个等待升空指令的飞行员。八点整,一个五六十岁、戴黑框眼镜、穿深蓝色夹克的教授推门走了进来,头发花白,但腰板笔直,走路带风。
他在黑板上写了自己的名字——李维先。然后转过身,面对坐得稀稀拉拉的教室,开口说了一句话,声音不大,但每个字都清清楚楚。
“你们坐在这里,是因为你们想飞。我来告诉你们,飞,不是一件容易的事。”
顾望舒的脊背一瞬间挺直了。
那堂课讲的是飞行器发展史。莱特兄弟、冯如、二战时期的螺旋桨战斗机、喷气时代的黎明、冷战时期的军备竞赛、阿波罗登月、航天飞机的辉煌与悲壮、无人机的**。这些故事顾望舒从小到大看了无数遍,每一个年份、每一个名字、每一个技术参数他都烂熟于心,但李教授讲出来的和他的记忆不太一样。
李教授讲的是技术,但更多的,是人。
他讲莱特兄弟的时候,花了很久讲威尔伯·莱特的那句话:“我们一直认为,飞行是自然的、简单的,直到我们试图去实现它,才发现它是如此困难,困难到几乎不可能。”
他讲冯如的时候,说了一组数据:冯如在**造飞机,先后试飞六次,失败了六次,第七次成功了,但成功后仅仅两个月,在一次飞行表演中失事遇难,年仅二十九岁。
他讲中国无人机的时候,讲了一个顾望舒从未听过的细节——长空一号无人机在西北做核试验取样任务的时候,试验基地夜里温度零下三十多度,发动机的润滑油冻成了固体,技术人员用棉被把发动机裹起来,用炭火盆在旁边烤了整整一个晚上。
“这些事你从书本上学不到。”李教授说,“不是因为它们不重要,而是因为它们太普通了。普通到每一个真正做航空的人,都经历过类似的事情。不是每个人都有机会飞到天上,但每一个做航空的人,心里都有一片天空。”
下课铃响了。李教授合上讲义,说了一句话:“下节课讲空气动力学基础,把流体力学预习一下。”
然后他走了。走得很快,夹克下摆被风掀起来,像一面小小的旗。
顾望舒坐在座位上,久久没有动。他发现自己的笔记本上只记了三行字——
“飞,不是一件容易的事。”
“真正的英雄,往往不被人看见。”
“每一个做航空的人,心里都有一片天空。”
他把“心里都有一片天空”下面划了两道线,合上笔记本。
他想,这四年,能学的东西太多了。
大一上学期的生活,比顾望舒想象的要丰富,也比顾望舒想象的要有挑战。
“丰富”是因为活动太多了。开学第一周是军训,军训结束后各种社团招新、学生会招新、班委竞选、新生晚会、迎新篮球赛……事情一件接着一件,顾望舒参加了两三个社团的招新面试,最后只加入了一个——南航航模队。
“挑战”是因为课程并不轻松。《高等数学》《线性代数》《大学物理》《C语言程序设计》——这些都是硬课,没有一门是可以糊弄过去的。顾望舒的数学底子不错,但高等数学的第一章“函数与极限”就让他意识到,高中和大学之间隔着的不是一道门槛,而是一堵墙。那些被称为ε-δ语言的极限定义,用到了他和极限概念完全不同的思维方式。他在自习室里反复看了三遍教材,又在网上搜了几个视频讲解,才终于理解“对任意ε>0,存在δ>0,使得当0<|x-x₀|<δ时,有|f(x)-A|<ε成立”这句话的真正含义。
周远舟也在同一节高数课,但他的态度和顾望舒完全不同。顾望舒在笔记本上工工整整地推导定理的时候,周远舟在旁边打哈欠,说了一句“这玩意儿不是一看就懂吗”,然后趴在桌上睡着了。
顾望舒没有理他。不是因为他不好相处,而是因为他知道人和人不一样。周远舟是他见过的最聪明的人之一——那种聪明不是刻苦训练出来的,而是天生的。他的数学直觉好到离谱,**前翻翻书就能考九十分以上。顾望舒不嫉妒,但也绝不会因为周远舟不努力就放松自己。
航模队每周六下午活动,地点是校区东南角的一片草坪。草坪不大,周围种了一圈冬青树,远处是几栋居民楼。顾望舒每次去都带着自己那架“小九”——那架他高中时组装的固定翼飞机,经过几次升级改版,换了一台效率更高的无刷电机,升级了螺旋桨和电调,飞控从开源基础版换成了功能更全面的Pixhawk。
航模队的主力机型是四轴飞行器,但顾望舒执意飞固定翼。队长叫徐朗,大三的学长,瘦高个,说话语速极快,看到顾望舒飞了几圈之后,走过来说了句:“你固定翼飞得可以,但你要学的东西还多着呢。我们下周有个任务,要飞一个固定翼自动航线规划,你来试试?”
顾望舒答应了。
那个自动航线规划的任务看起来不难——用地面站软件设定好航点,飞机自动起飞、巡航、降落。但顾望舒在做地面准备的时候发现了一个问题:这块场地的GPS信号不太稳定,飞机在高空没问题,但近地面的时候定位漂移严重,如果用全自动模式起飞和降落,风险很大。
他跟徐朗说了这个情况。徐朗想了想:“那你打算怎么办?”
“手动起飞,高度超过二十米以后再切自动。降落的时候切回手动。”
“行,你来飞。”
顾望舒握着遥控器,深吸一口气。**门,飞机加速滑跑,到合适速度后他轻轻拉杆,机头抬起,飞机离开地面。他保持手动控制,观察着飞机的姿态和高度,到大约二十五米的时候,拨动开关,切到自动模式。飞机微微晃了一下,然后稳稳地沿着设定好的航线飞去。
整个过程很顺利。飞机自动飞完了六个航点,然后回到起降场上空开始盘旋。顾望舒切回手动模式,推杆减速,对准跑道,带杆,接地。飞机在草坪上滑行了不到两米就停住了。
徐朗在旁边鼓了鼓掌。不是很大声,但顾望舒听到了。
回到工作室之后,顾望舒打开飞行日志,仔细分析了一下飞行数据,发现自动模式切换的那一瞬间,飞机有一个轻微的俯仰振荡——虽然不影响飞行安全,但说明PID参数还不是最优的。他把日志数据导出来,准备回去之后慢慢调。
晚上回到宿舍,他打开笔记本电脑,用MATLA*把飞行数据画成曲线图,盯着那几个波峰波谷看了很久,在笔记本上写了一行字:“俯仰通道的阻尼系数需要提高。”
方旭从他的上铺探出头来,看了一眼顾望舒的屏幕:“你在搞什么?飞机坠了?”
“没有。在调参数。”
“参数有什么好调的?能飞不就行了?”
顾望舒没回答这个问题。不是不想回答,而是不知道该怎么回答。
对于有些人来说,“能飞就行”就够了。但是对于顾望舒来说,“能飞”只是起点。他想让飞机飞得更好——更稳、更准、更省电、更安全、更可控。这些“更”字背后,是无穷无尽的细节,是PID参数的每一次微调,是风洞实验中的每一个数据点,是飞行日志里每一个不起眼的毛刺。
他不讨厌这些细节。
相反,他觉得这些细节里有某种让他安心的东西。每一次拧紧一个螺丝、校准一个传感器、调整一个参数,都是在向“完美飞行”这个目标靠近一步。一步再一步,也许永远到不了终点,但每一步都算数。
这就是他的大学。
不是电影里那种热血沸腾的大学,也不是小说里那种风花雪月的大学。他的大学是密密麻麻的公式、永远写不完的实验报告、反复刷新的飞行日志、深夜自习室日光灯管的嗡嗡声、食堂二楼的西红柿鸡蛋面,以及枕头旁边那本从大一入学就开始啃的、至今还没啃完的《空气动力学基础》。
很普通。很充实。很顾望舒。
大一下学期,顾望舒经历了一件不大不小的事情——他第一次挂科了。
不,不是挂科。是差点挂科。
高数下的期中**,他考了六十七分。六十七分在班里的排名大概是中下游,但对于从小到大**成绩一直稳在前列的人来说,六十七分就是一记耳光。
成绩公布的那天下午,顾望舒没有去航模队的活动,一个人坐在自习室里,对着那份考卷发呆。卷子上的红叉触目惊心——曲线积分算错了方向,格林公式用反了符号,第一类曲面积分的投影区域搞错了。这些错误他不是不会,而是在考场上乱了阵脚。
他想起了高三那年高考结束后对自己说过的话——“这辈子再也不想**了。”然后他笑了笑,觉得那时候的自己真是天真。上大学之后**多得要命,怎么可能不**?
高数下期末**前,他花了两个星期把整本书从头到尾整理了一遍,把所有的公式、定理、典型例题分类抄在了一个新的笔记本上。他把那本笔记本翻了至少五遍,翻到封面的边角都卷起来了。
**那天,他提前半小时交卷。不是逞能,是真的做完了,检查完了,觉得没什么可改的了。
成绩出来那天,他考了九十一分。周远舟考了九十七分。顾望舒看了一眼周远舟的成绩,没什么感觉。他的竞争对手从来不是周远舟——甚至不是任何具体的人。
他的竞争对手是昨天的自己。
大一结束的时候,顾望舒算了一下自己的绩点——3.74(满分4.0)。这个成绩在班里不算最高,但足够他拿到二等奖学金。母亲在电话里听到这个消息的时候,声音都高了八度:“你拿奖学金了?多少钱?两千块?两千块也是钱啊!这是你自己挣的钱,你要攒着还是给家里?”
“攒着吧。”顾望舒说,“下学期买新飞机。”
“什么飞机?”母亲问完就反应过来了,“哦,又是那个什么无人机是吧?行行行,你自己决定。”
挂了电话之后,顾望舒坐在宿舍的床上,把手机放在枕头旁边,脑子里忽然冒出一个念头。
一年前,他站在南航的校门口,对自己说“我来了”。
一年后的今天,他在南航的宿舍里,把奖学金的存在告诉母亲,然后在手机备忘录里删掉了。
下学期还有新的挑战。
大二那年,顾望舒第一次接触到了真正的工业级无人机。
不是他的,是导师课题组的。
大二上学期,学院要求本科生选择一个研究方向,联系导师,进入课题组进行科研训练。顾望舒翻了翻学院官网上的导师列表,看了每个人的研究方向,最后锁定了一个名字——刘远征,教授,研究方向是无人机飞行控制与导航、多智能体协同控制。
顾望舒给刘教授发了一封邮件。标题是“关于加入课题组科研训练的申请”,正文不长,写了四段——自我介绍,对飞控方向的兴趣,他在航模队的经历和编程基础,最后附上了他的成绩单和一份他写的飞控调试报告。
刘教授第三天回复了邮件,只有一句话:“下周二下午三点来我办公室,带**的飞控调试报告。”
下周二,顾望舒准时出现在刘教授的办公室门口。他深吸一口气,敲了敲门。
“进来。”
刘教授大约五十岁出头,头发稀疏,穿着格子衬衫和深色长裤,桌上摊着一大堆论文和两三个拆开的飞控板。他看到顾望舒,指了指对面的椅子:“坐。报告带来了?”
顾望舒递上那份飞控调试报告。他写了整整十五页,有文字描述、有数据表格、有MATLA*绘制的曲线图、有PID参数整定的详细记录,甚至连他在航模队飞固定翼时的手感描述都写了进去。
刘教授接过报告,翻了翻,看到那些曲线图和参数记录的时候,目光顿了一下。他把报告翻到最后一页,看到顾望舒手写的总结:“飞行控制的本质不是让飞机听话,而是让飞机听懂人想让它做的事情。”
“这是你自己写的?”刘教授问。
“是的。”
“这句话,”刘教授顿了一下,“有点意思。”
他把报告放在桌上,推了一下眼镜,终于抬起头正式看了一眼对面的学生。
“你可以进课题组。先去熟悉一下我们现有的平台,下次课题组会的时候我会叫你。你先把这份综述看了。”他递过来一份英文综述,关于多旋翼无人机容错控制的。大约五十页,密密麻麻的公式和引用文献。
顾望舒接过来,翻了一下,发现有一半的数学符号他还没学过。
“看不懂很正常。”刘教授说,“先把能看懂的看完,看不懂的标出来,下次来问我。”
顾望舒点了点头,把综述小心地对折了一下,放进书包里。
走出办公室的时候,他的心情很平静,但脚下很轻。他知道,从今天开始,他可以接触真正前沿的东西了——不是航模,不是玩具,而是真正的科研。
那些东西现在还看不懂。但不久后就能看懂了。
他在走廊上加快了脚步。
大二那年顾望舒参与了人生中第一个正式的科研项目。项目名称很长,甚至到现在他也无法一次完整地复述出来——“复杂环境下多无人机协同搜索的分布式鲁棒控制方法研究”,简单来说就是:让一群无人机在坏境里自主分工找到一个目标。
项目由刘教授主持,是**级科研项目的一部分。顾望舒在课题组里的工作最初很基础——帮博士生整理文献、跑**、搭建实验平台的软硬件环境。
课题组里有一个博士生,叫赵博,戴一副厚厚的眼镜,说话带着浓重口音,脾气不太好。特别是**数据跑出来效果不好的时候会拍桌子骂人。
“这个怎么搞的,你这个代码是不是写错了?”赵博指着屏幕上的某一行,语气有点冲。
顾望舒凑过去看了一眼:“我应该没写错,是数据这里出了问题。”
“数据怎么可能有问题?数据是提前处理过的,过滤掉了噪声信号——”
顾望舒没有辩解。他把那一段数据重新导入,分析了频谱特性,发现有一个频率成分确实超出了预期范围。他把分析结果整理成一张图,发给了赵博。
赵博沉默了很久。
从此以后,赵博再也没有用“你这个代码是不是写错了”的句式跟顾望舒说过话。
大三的时候,顾望舒已经能够独立负责一个子模块的开发了。他的任务是设计一种分布式一致性算法,让多架无人机在没有中央控制的情况下,通过对等通信达成对整个环境的共同认知,从而实现协同搜索。
分布式协同,是个很迷人的概念。
想象一下:十架无人机在一片陌生的区域上空散开,它们之间没有指挥塔,没有中央大脑,每一架都只拥有局部的信息——自己看到了什么、附近几架同伴发来了什么。但它们通过某种规则不断地交换信息、更新自己的判断,最终在没有全局信息的情况下,共同“拼”出了整个区域的地图,并且各自分配好了搜索任务——你去东边,我去西边,他去看那块可疑的阴影。
这不是中央下令的结果,而是自组织涌现的秩序。
顾望舒在纸上画了很多张图。十架飞机,随机分布的初始位置,他要设计一个算法,让它们收敛到一种“每个人都清楚自己该做什么”的状态。这是运筹学、控制理论、分布式计算交汇的地方。
赵博帮了很多忙,但问题大多要靠自己解决。有一段时间,顾望舒每天晚上躺在宿舍床上都在想那个算法。熄灯后四周漆黑,他的脑子像一块正在过热的芯片,不断模拟十架飞机的运动轨迹,试图找到一种更好的信息融合方式。
有时候睡不着,刘嘉瑞打游戏的声音从对面床铺传过来,方旭在磨牙,周远舟在说梦话(内容通常是代码或者骂人)。顾望舒翻了身,闭上眼睛,脑子里十架无人机还在飞,一圈一圈地飞,像困在一个打转的循环里。
算法跑通的那天是一个普通的周四下午。
顾望舒独自在实验室里运行**。他把初始条件设得非常苛刻——十架无人机的起始位置随机分布在很大一片区域里,通信范围受限,目标藏在一个很刁钻的死角里,单机根本看不见。
代码开始运行。前三十秒,十架无人机各自在局部区域内搜索,毫无章法,像无头**。顾望舒握紧了自己的膝盖。
第三十一秒,第一架无人机发现自己视野内的一个特征点,生成了一个初步猜测,把它发送给了邻居。
第三十五秒,三架无人机交换了信息,形成了一个小共识区域。
**十秒,六架无人机开始收敛,各自调整了自己的搜索方向。
**十八秒,十架无人机的估计位置全部收敛到目标周围。目标被锁定。
顾望舒把这次**的最终状态截图保存了下来。回到宿舍后,他打开电脑,盯着那张截图看了很久——十架无人机,十种颜色,全部聚集在目标点周围。
他给赵博发了一条消息:“分布式协同跑通了。”
赵博秒回:“明天上午给我看看代码。”
顾望舒靠在椅背上,长长地呼出一口气。
窗外的天已经黑了,他的手机屏幕亮了一下,是刘嘉瑞发来的微信:“食堂还有饭,要帮你带一份吗?”
“带一份。西红柿鸡蛋面,加一个煎蛋。”
那天晚上他吃的西红柿鸡蛋面,比平时都香。
大学四年,像一条大河,流过春夏秋冬,流过无数个日夜。
顾望舒在这条河里慢慢长大。十八岁进校的时候,他是一个沉默寡言、只知道埋头读书和做航模的少年。二十二岁毕业的时候,他是一个能够独立设计算法、撰写论文、在学术会议上做报告的年轻人。
变化是慢慢发生的。
大一的他会在课上紧张,被老师点名回答问题时会脸红。大四的他已经能够在全国性学术会议上,面对台下的专家教授,不紧不慢地讲完自己的研究成果,然后从容地回答每一个**。
大一的他会在航模队活动时紧握遥控器、手心冒汗。大四的他已经成为航模队的副队长,负责带新生训练,告诉他们“舵量不要太大,柔和一点”。
大一的他会因为一次没考好而耿耿于怀好几天。大四的他已经明白,人生那么长,一次**算不了什么。
他学会了和不同的人相处。周远舟嘴上损他但心里敬他,方旭话不多但值得信任,刘嘉瑞除了打游戏还会在室友生病的时候帮忙带饭和买药。他也学会了和一些人和解——但不是所有人都是朋友,保持适度距离也是成年人的必修课。
他学会了独立。离家的头两年,他每周给家里打两次电话,后来变成一次。不是不想家了,而是习惯了。他在深夜的自习室里学会了一个人面对难题,在实验室里学会了一个人调试代码到凌晨,在南航的操场上学会了一个人在雨中收拾飞机残骸并且没有怨言。
他也对“未来”这两个字有了更清晰的认知——它不再是一片混沌的云,而是一条有方向的路。虽然路上还有很多雾气,但脚下的路面已经踏实了。
大四上学期,顾望舒开始准备考研的方向。
他纠结了很久。以他的成绩可以直接保研,但他的排名不够靠前,想跟的导师名额有限,不确定能不能竞争过。如果考研的话他可以冲击更好的学校,比如北航。
一边是稳妥,一边是进取。
有一天他在导师办公室和刘教授聊起这件事。刘教授听完之后,没有直接给建议,而是问他:“你觉得你以后想做什么样的工作?”
顾望舒想了想:“做无人机。不是做产品,是做系统。”
“什么样的系统?”
“有用的系统。”顾望舒说,“救灾、物流、**、农业——就是那种真正能帮到人的系统。不只是为了好看,也不只是为了**文。”
刘教授看着他,半晌没有说话,然后忽然笑了。不是那种客气地、职业化的笑容,而是真正的、发自内心的高兴。那种笑容顾望舒第一次在刘教授脸上看到——那种“我看到这个想成为什么样的人”后的鼓励与欣慰。
“那你留在南航吧。”刘教授说,“我这里的东西你还没学完。”
顾望舒最终选择了考本校的研究生。不是保研,是考——刘教授告诉他“名额不够,想留下来就得考”。顾望舒说好,然后大四上学期一边写****一边复习考研科目,把数学、英语、**和专业课的真题刷了至少三遍。
考完试的那个下午是冬天,天阴沉沉的,零星的几片雪花从灰蒙蒙的天空中飘下来,还没有落地就已经化了。他走出考场,被一阵冷风呛得咳了两声,把羽绒服的拉链拉到最顶端,戴上**,沿着校道一路走回宿舍。
就在这个时间节点前后,一件意想不到的小事悄然发生。
在南航东区外的某个常去的快递点取包裹时,他撞见了一个高挑的女生。她大约一米六八,穿着一件深灰色羽绒服,背着一个双肩包,正在快递架的一堆纸箱间翻找,动作有点笨拙——踮起脚尖够最高一格的时候,她的几本书从臂弯里滑了出去,“哗啦”一声全掉在了地上。
几本书散落一地:《运动解剖学》《康复评定学》《针灸学》……以及一本封面印着繁体字的《思考中医》。
顾望舒恰好蹲下去捡快递,顺手帮她把那几本书捡回了手里。
女生接过书,眉梢微微一挑,声音清脆:“谢谢。”然后低头看了一眼其中一本被摔皱了封面的《运动解剖学》,轻轻叹了口气,把书脊的折角抚平,夹到臂弯里继续找快递去了。
两人各自取了东西,走出快递点的玻璃门。南京冬季的风吹得人脸生疼,顾望舒拉上卫衣的**。女生走在前面几步远,在冷风中微微缩着脖子,双肩包的拉链上不知什么时候坠了一只毛绒柯基挂件,随着步伐一摇一晃。
两辆共享单车经过时溅起了一小片融雪,女生朝内侧闪了一下,险些崴了脚。顾望舒下意识想伸手扶一把,但她自己扶住了旁边的立柱,站稳后自嘲地笑了一下,刘海被风吹得乱七八糟,她就那么大大方方地用手拢了拢头发,接着往前走了。
清冷的人行道上,两个人一前一后地走着,消失在各自的方向里。顾望舒不知道为什么在今天回想起这件小事。有可能是快递站那阵冷风让他又想起了那个冬天傍晚,那个眼光明亮、蹲下来捡书的女生的模样——但那一切已经像这雪花一样,落下去的瞬间就化了。
他不知道她的名字。甚至不知道她是不是南航的学生——那些康复医学的书不像南航的专业课教材。
他甚至不确定那个下午是否真的发生过。
也许只是他走进考场前的一个幻觉。
考研出分那天顾望舒查到了自己的成绩——总分超过本校复试线二十多分。他给母亲打了个电话:“妈,我考上了。”
电话那头母亲先是愣了一下,然后哭了。不是去年那种放声大哭,而是忍着声音的、带着笑的哭:“好……好……我就知道……你从小就喜欢这个……你喜欢天上的东西……”
“妈,就是考上了研究生而已。”
“我知道。我就高兴。”
3月的一个傍晚,顾望舒在微信上收到了研究生导师发来的消息:“祝贺你通过复试,加入我的课题组。”
他盯着那条消息看了二十秒,回了一个字:“好。”
然后他把手机放在一边,在床沿坐了一会。
窗外的梧桐树正在发芽,嫩绿色的新叶在夕阳下透着光,像一片片半透明的翡翠。有鸟在叫,不是麻雀,是那种声音很清亮的鸟——也许是乌鸫,也许是白头鹎,他分不清。
他只知道,这条路还没走完。
还有研究生三年。还有更远的路。
但此刻,他坐在南航的宿舍里,窗外是四月的风、梧桐树和鸟鸣,一切都是最好的样子。
毕业典礼那天,顾望舒穿上了学士服。黑色的袍子有点大,袖子长得要挽起来,**戴在头上也不太稳当,风一吹就歪。
校长在台上讲话,他坐在台下,听不清在说什么,太阳很大,晒得脖子发烫。他抬头看天,天很蓝,蓝得像他七岁那年从中山陵看到的天空一样。
二十二年过去了。他还在看同一片天空。
和那年不一样的,是他的心里装下了更多的东西——伯努利原理、纳维-斯托克斯方程、PID控制、卡尔曼滤波、无人机协同算法,《航空概论》扉页上的字迹、“长空一号”机身上淡**的旧蒙皮、刘教授的格子衬衫、航模队工作室那股快干胶和机油混在一起的味道、几百架次的飞行和几十次大大小小的摔机,以及南航梧桐树荫下走过的四千多个日夜。
他弯下腰系了一下鞋带,站起来的时候发现兜里从录取通知书里掉出的纸片还在。上面是他用铅笔写的七个字:“智周万物,道济天下。”
字迹歪歪扭扭,像十三岁时写下的梦想,一笔一划还很用力。
他把纸片折好,放回口袋。
该走了。不能就这样停在这里。
路还长。
铃声响起。
顾望舒站起来,把文具收拾好,排队走出考场。走廊里有人在哭,有人在笑,有人在对答案,有人在约晚上去哪里吃饭。顾望舒穿过人群,走到校门口,看到父亲站在那棵梧桐树下——同样的位置,同样的姿势,手里还是拿着一瓶水,这次是矿泉水。
“最后一门考完了。”顾望舒说。
父亲点了点头:“走吧,回家。**做了红烧排骨。”
高考出分那天,顾望舒正在自己房间里拆一个坏掉的舵机,想看看能不能修好。
他用螺丝刀打开了舵机的塑料外壳,露出里面的直流电机、电位器和控制电路板。他用万用表测了一下电机绕组的电阻,又检查了电位器的阻值变化,发现是电位器的碳膜磨损导致了信号抖动。这东西没法修,只能换。
他正准备在网上搜一下同型号的电位器,手机震了一下。是江苏省教育**院的短信。
他点开短信,看到那串数字。
语文124。数学138。英语109。物理A+。化学A。
总分371(不含小高考加分)。
江苏高考总分是四百八还是四百八?顾望舒盯着那个数字愣了几秒,才反应过来江苏高考**后的总分是四百八——语文数学英语各一百六,语文和数学附加题各四十分,两门选修按等级划分,不计入总分。他的总分超过了南航往年在江苏的最低录取线不少。
他放下手机,又拿起螺丝刀,把舵机外壳合上,螺丝拧好,放在桌角,然后起身走出卧室。
母亲在阳台上晾衣服,父亲坐在沙发上看手机。
“出分了。”顾望舒说。
“多少?”父亲抬起头。
“三百七十一。”
父亲沉默了两秒,站起来,走过来,抱了他一下。力气有点大,后背被拍得有点疼。
母亲从阳台跑进来,手上还拿着一件没晾完的T恤:“多少?三百七十一?能上南航吗?”
“应该可以。”顾望舒说。
母亲的眼眶一下子就红了。她没哭出声,只是把那件T恤攥在手里,在原地站了一会儿,然后转身回阳台继续晾衣服。顾望舒听见她在阳台上自言自语:“三百七十一,三百七十一,这孩子……”
填报志愿的时候,顾望舒只填了一个学校:南京航空航天大学。
第一专业:无人驾驶航空器系统工程。
第二专业:飞行器设计与工程。
第三专业:飞行器动力工程。
没有**专业。没有服从调剂。
父亲看到志愿表的时候,皱了皱眉:“至少填一个保底的。”
“不需要保底的。”顾望舒说,“我会被录取的。”
“你怎么知道?”
两种可能。一、他的分数够了;二、他不会选其他学校。
父亲看着他的眼睛,看了几秒,没再说话,在志愿表上签了字。
录取通知书寄到的那天,顾望舒正在小区门口的快递柜旁边取一个包裹。快递员喊了一声“顾望舒,有你的录取通知书,要本人签收”。他接过那个大红色的EMS信封,看到“南京航空航天大学”几个烫金大字的时候,手忽然有点抖。
不是因为激动,而是因为这一切太不真实了。
他花了十二年——从趴在禄口机场落地窗玻璃上的七岁,到走出高考考场的十八岁。十二年的每一天、每一页书、每一架摔碎的模型飞机,所有的汗水和等待,在这一刻凝聚成了一个具体的东西——一个信封,几页纸,一个印章。
他拿着那个信封走回家,没有拆。
进门换鞋的时候,他发现自己的鞋带系得太紧了,半天没解开。母亲从厨房探出头来,看到那个红色的信封,围裙都没解就跑过来了。
“拆啊,赶紧拆啊!”
顾望舒坐在沙发上,慢慢撕开封条。里面是录取通知书,硬质的红色卡片,打开后有他的照片、姓名、专业、报到日期。他一个字一个字地看,看到“无人驾驶航空器系统工程”那一行的时候,呼吸停了一拍。
父亲不知道什么时候也站在了旁边,手里拿着手机,看起来是想拍照,但忘了按快门。
母亲已经哭了。不是那种无声的流泪,而是真的哭出了声,一边哭一边说:“我就知道,我就知道你能考上……”
顾望舒把录取通知书放在茶几上,站起来,走进了自己的房间。
他关上门,站在书桌前,看着墙上那张他十三岁时贴上去的南航校训贴纸——“智周万物,道济天下”。贴纸的边缘已经翘起来了,颜色也褪了不少,但字还是清晰的。
九月。明故宫校区。大一新生。无人驾驶航空器系统工程专业。
他终于可以光明正大地走进那扇门了。
不是参观,不是研学,不是航模队的开放日。是以主人的身份,走进那个地方。
顾望舒在那张贴纸前面站了很久,然后说了一句话。声音很轻,像是说给自己听,也像是说给那面墙听。
“我来了。”
大学报到那天,顾望舒只带了一个行李箱和一个双肩包。
行李箱里是衣服和日用品。双肩包里是他最重要的东西——一台用了三年的笔记本电脑、一个便携式逻辑分析仪、一把十字螺丝刀,以及那本几乎被他翻烂了的、纸张已经泛黄的《航空概论》。
母亲坚持要送他到学校。顾望舒说不用,母亲说“**要上班,我一个人在家也没事”,顾望舒就让她跟着了。
地铁二号线坐到明故宫站,出站后走不到十分钟就到了南航的校门。不是他小时候站在外面仰头看过无数次的那个门,而是他即将走进去、走出来、走进去、走出来、反反复复走上整整四年的那道门。
校门口挂着“热烈欢迎新同学”的红色**,有几个穿红马甲的志愿者举着各个学院的牌子。顾望舒找到了“航天学院”的牌子,走过去,一个扎着马尾辫的学姐看了他的录取通知书,笑了:“小学弟,走,我带你去办手续。”
母亲在旁边悄悄拍了好几张照片。她不太会用手机拍照,总是拍糊,但她还是固执地拍了很多张。她拍了校门口的石碑,拍了顾望舒拖着行李箱走在梧桐树下的背影,拍了宿舍楼下那一排花花绿绿的迎新展板。每一张都有点糊,但每一张她都舍不得删。
宿舍在一栋有点旧的楼里,六人间,上下铺。顾望舒到的时候已经有三个人在了。
靠窗下铺那个正躺在床上玩手机的人叫周远舟——这个名字顾望舒后来会记很久。周远舟当时穿着一条花哨的沙滩裤,上面印满了菠萝图案,光着脚翘在床栏杆上,看到顾望舒进来,瞟了一眼,说了句:“这位兄弟装备挺专业啊,带螺丝刀来上大学?”
顾望舒看了看自己手里的那把十字螺丝刀,觉得确实有点奇怪,但没解释。
另一个正在整理柜子的人叫方旭,戴眼镜,说话轻声细语的,一看就是个老实人。他的床上摊着一本《C++ Primer Plus》,书脊已经开裂了,里面夹满了便利贴。
还有一个叫刘嘉瑞,本地人,报到那天就带了**电竞设备——机械键盘、电竞鼠标、耳机支架——把书桌摆得满满当当。他看了一眼顾望舒的螺丝刀和逻辑分析仪,说了句“电工兄弟?以后帮我修电脑”,然后继续装他的键盘。
顾望舒选了靠门的上铺。不是因为喜欢,而是因为他觉得上铺清净,不会被路过的人打扰。他铺好床单,把行李箱塞进床底,双肩包挂在床头的钩子上,那本《航空概论》放在枕头旁边。
母亲帮他把书桌擦了又擦,把牙杯毛巾摆放整齐,又把带来的零食分给宿舍其他几个人。周远舟接过一包牛肉干,说了声“谢谢阿姨”,然后对顾望舒说:“**人真好。”
母亲走的时候,在校门口抱了抱顾望舒。她的个子只到他肩膀,抱他的时候头靠在他胸口,像一只依偎在大树旁的小鸟。
“好好吃饭,别熬夜,天冷了多穿点。”
“知道了。”
“有什么事给家里打电话。”
“知道了。”
“别光说知道了。要真的知道。”
顾望舒笑了。母亲松开他,转身走了几步,又回头看了一眼,然后快步走向地铁站的方向。顾望舒站在校门口看着她的背影消失在人群中,站了一会儿,转身走向宿舍。
太阳很大,梧桐树的影子落在他的肩膀上,斑斑驳驳的。
大学,开始了。
大学的第一堂课是《航空航天概论》。
顾望舒提前二十分钟到了教室,坐在第二排靠窗的位置,摊开笔记本,把笔摆在右边,像一个等待升空指令的飞行员。八点整,一个五六十岁、戴黑框眼镜、穿深蓝色夹克的教授推门走了进来,头发花白,但腰板笔直,走路带风。
他在黑板上写了自己的名字——李维先。然后转过身,面对坐得稀稀拉拉的教室,开口说了一句话,声音不大,但每个字都清清楚楚。
“你们坐在这里,是因为你们想飞。我来告诉你们,飞,不是一件容易的事。”
顾望舒的脊背一瞬间挺直了。
那堂课讲的是飞行器发展史。莱特兄弟、冯如、二战时期的螺旋桨战斗机、喷气时代的黎明、冷战时期的军备竞赛、阿波罗登月、航天飞机的辉煌与悲壮、无人机的**。这些故事顾望舒从小到大看了无数遍,每一个年份、每一个名字、每一个技术参数他都烂熟于心,但李教授讲出来的和他的记忆不太一样。
李教授讲的是技术,但更多的,是人。
他讲莱特兄弟的时候,花了很久讲威尔伯·莱特的那句话:“我们一直认为,飞行是自然的、简单的,直到我们试图去实现它,才发现它是如此困难,困难到几乎不可能。”
他讲冯如的时候,说了一组数据:冯如在**造飞机,先后试飞六次,失败了六次,第七次成功了,但成功后仅仅两个月,在一次飞行表演中失事遇难,年仅二十九岁。
他讲中国无人机的时候,讲了一个顾望舒从未听过的细节——长空一号无人机在西北做核试验取样任务的时候,试验基地夜里温度零下三十多度,发动机的润滑油冻成了固体,技术人员用棉被把发动机裹起来,用炭火盆在旁边烤了整整一个晚上。
“这些事你从书本上学不到。”李教授说,“不是因为它们不重要,而是因为它们太普通了。普通到每一个真正做航空的人,都经历过类似的事情。不是每个人都有机会飞到天上,但每一个做航空的人,心里都有一片天空。”
下课铃响了。李教授合上讲义,说了一句话:“下节课讲空气动力学基础,把流体力学预习一下。”
然后他走了。走得很快,夹克下摆被风掀起来,像一面小小的旗。
顾望舒坐在座位上,久久没有动。他发现自己的笔记本上只记了三行字——
“飞,不是一件容易的事。”
“真正的英雄,往往不被人看见。”
“每一个做航空的人,心里都有一片天空。”
他把“心里都有一片天空”下面划了两道线,合上笔记本。
他想,这四年,能学的东西太多了。
大一上学期的生活,比顾望舒想象的要丰富,也比顾望舒想象的要有挑战。
“丰富”是因为活动太多了。开学第一周是军训,军训结束后各种社团招新、学生会招新、班委竞选、新生晚会、迎新篮球赛……事情一件接着一件,顾望舒参加了两三个社团的招新面试,最后只加入了一个——南航航模队。
“挑战”是因为课程并不轻松。《高等数学》《线性代数》《大学物理》《C语言程序设计》——这些都是硬课,没有一门是可以糊弄过去的。顾望舒的数学底子不错,但高等数学的第一章“函数与极限”就让他意识到,高中和大学之间隔着的不是一道门槛,而是一堵墙。那些被称为ε-δ语言的极限定义,用到了他和极限概念完全不同的思维方式。他在自习室里反复看了三遍教材,又在网上搜了几个视频讲解,才终于理解“对任意ε>0,存在δ>0,使得当0<|x-x₀|<δ时,有|f(x)-A|<ε成立”这句话的真正含义。
周远舟也在同一节高数课,但他的态度和顾望舒完全不同。顾望舒在笔记本上工工整整地推导定理的时候,周远舟在旁边打哈欠,说了一句“这玩意儿不是一看就懂吗”,然后趴在桌上睡着了。
顾望舒没有理他。不是因为他不好相处,而是因为他知道人和人不一样。周远舟是他见过的最聪明的人之一——那种聪明不是刻苦训练出来的,而是天生的。他的数学直觉好到离谱,**前翻翻书就能考九十分以上。顾望舒不嫉妒,但也绝不会因为周远舟不努力就放松自己。
航模队每周六下午活动,地点是校区东南角的一片草坪。草坪不大,周围种了一圈冬青树,远处是几栋居民楼。顾望舒每次去都带着自己那架“小九”——那架他高中时组装的固定翼飞机,经过几次升级改版,换了一台效率更高的无刷电机,升级了螺旋桨和电调,飞控从开源基础版换成了功能更全面的Pixhawk。
航模队的主力机型是四轴飞行器,但顾望舒执意飞固定翼。队长叫徐朗,大三的学长,瘦高个,说话语速极快,看到顾望舒飞了几圈之后,走过来说了句:“你固定翼飞得可以,但你要学的东西还多着呢。我们下周有个任务,要飞一个固定翼自动航线规划,你来试试?”
顾望舒答应了。
那个自动航线规划的任务看起来不难——用地面站软件设定好航点,飞机自动起飞、巡航、降落。但顾望舒在做地面准备的时候发现了一个问题:这块场地的GPS信号不太稳定,飞机在高空没问题,但近地面的时候定位漂移严重,如果用全自动模式起飞和降落,风险很大。
他跟徐朗说了这个情况。徐朗想了想:“那你打算怎么办?”
“手动起飞,高度超过二十米以后再切自动。降落的时候切回手动。”
“行,你来飞。”
顾望舒握着遥控器,深吸一口气。**门,飞机加速滑跑,到合适速度后他轻轻拉杆,机头抬起,飞机离开地面。他保持手动控制,观察着飞机的姿态和高度,到大约二十五米的时候,拨动开关,切到自动模式。飞机微微晃了一下,然后稳稳地沿着设定好的航线飞去。
整个过程很顺利。飞机自动飞完了六个航点,然后回到起降场上空开始盘旋。顾望舒切回手动模式,推杆减速,对准跑道,带杆,接地。飞机在草坪上滑行了不到两米就停住了。
徐朗在旁边鼓了鼓掌。不是很大声,但顾望舒听到了。
回到工作室之后,顾望舒打开飞行日志,仔细分析了一下飞行数据,发现自动模式切换的那一瞬间,飞机有一个轻微的俯仰振荡——虽然不影响飞行安全,但说明PID参数还不是最优的。他把日志数据导出来,准备回去之后慢慢调。
晚上回到宿舍,他打开笔记本电脑,用MATLA*把飞行数据画成曲线图,盯着那几个波峰波谷看了很久,在笔记本上写了一行字:“俯仰通道的阻尼系数需要提高。”
方旭从他的上铺探出头来,看了一眼顾望舒的屏幕:“你在搞什么?飞机坠了?”
“没有。在调参数。”
“参数有什么好调的?能飞不就行了?”
顾望舒没回答这个问题。不是不想回答,而是不知道该怎么回答。
对于有些人来说,“能飞就行”就够了。但是对于顾望舒来说,“能飞”只是起点。他想让飞机飞得更好——更稳、更准、更省电、更安全、更可控。这些“更”字背后,是无穷无尽的细节,是PID参数的每一次微调,是风洞实验中的每一个数据点,是飞行日志里每一个不起眼的毛刺。
他不讨厌这些细节。
相反,他觉得这些细节里有某种让他安心的东西。每一次拧紧一个螺丝、校准一个传感器、调整一个参数,都是在向“完美飞行”这个目标靠近一步。一步再一步,也许永远到不了终点,但每一步都算数。
这就是他的大学。
不是电影里那种热血沸腾的大学,也不是小说里那种风花雪月的大学。他的大学是密密麻麻的公式、永远写不完的实验报告、反复刷新的飞行日志、深夜自习室日光灯管的嗡嗡声、食堂二楼的西红柿鸡蛋面,以及枕头旁边那本从大一入学就开始啃的、至今还没啃完的《空气动力学基础》。
很普通。很充实。很顾望舒。
大一下学期,顾望舒经历了一件不大不小的事情——他第一次挂科了。
不,不是挂科。是差点挂科。
高数下的期中**,他考了六十七分。六十七分在班里的排名大概是中下游,但对于从小到大**成绩一直稳在前列的人来说,六十七分就是一记耳光。
成绩公布的那天下午,顾望舒没有去航模队的活动,一个人坐在自习室里,对着那份考卷发呆。卷子上的红叉触目惊心——曲线积分算错了方向,格林公式用反了符号,第一类曲面积分的投影区域搞错了。这些错误他不是不会,而是在考场上乱了阵脚。
他想起了高三那年高考结束后对自己说过的话——“这辈子再也不想**了。”然后他笑了笑,觉得那时候的自己真是天真。上大学之后**多得要命,怎么可能不**?
高数下期末**前,他花了两个星期把整本书从头到尾整理了一遍,把所有的公式、定理、典型例题分类抄在了一个新的笔记本上。他把那本笔记本翻了至少五遍,翻到封面的边角都卷起来了。
**那天,他提前半小时交卷。不是逞能,是真的做完了,检查完了,觉得没什么可改的了。
成绩出来那天,他考了九十一分。周远舟考了九十七分。顾望舒看了一眼周远舟的成绩,没什么感觉。他的竞争对手从来不是周远舟——甚至不是任何具体的人。
他的竞争对手是昨天的自己。
大一结束的时候,顾望舒算了一下自己的绩点——3.74(满分4.0)。这个成绩在班里不算最高,但足够他拿到二等奖学金。母亲在电话里听到这个消息的时候,声音都高了八度:“你拿奖学金了?多少钱?两千块?两千块也是钱啊!这是你自己挣的钱,你要攒着还是给家里?”
“攒着吧。”顾望舒说,“下学期买新飞机。”
“什么飞机?”母亲问完就反应过来了,“哦,又是那个什么无人机是吧?行行行,你自己决定。”
挂了电话之后,顾望舒坐在宿舍的床上,把手机放在枕头旁边,脑子里忽然冒出一个念头。
一年前,他站在南航的校门口,对自己说“我来了”。
一年后的今天,他在南航的宿舍里,把奖学金的存在告诉母亲,然后在手机备忘录里删掉了。
下学期还有新的挑战。
大二那年,顾望舒第一次接触到了真正的工业级无人机。
不是他的,是导师课题组的。
大二上学期,学院要求本科生选择一个研究方向,联系导师,进入课题组进行科研训练。顾望舒翻了翻学院官网上的导师列表,看了每个人的研究方向,最后锁定了一个名字——刘远征,教授,研究方向是无人机飞行控制与导航、多智能体协同控制。
顾望舒给刘教授发了一封邮件。标题是“关于加入课题组科研训练的申请”,正文不长,写了四段——自我介绍,对飞控方向的兴趣,他在航模队的经历和编程基础,最后附上了他的成绩单和一份他写的飞控调试报告。
刘教授第三天回复了邮件,只有一句话:“下周二下午三点来我办公室,带**的飞控调试报告。”
下周二,顾望舒准时出现在刘教授的办公室门口。他深吸一口气,敲了敲门。
“进来。”
刘教授大约五十岁出头,头发稀疏,穿着格子衬衫和深色长裤,桌上摊着一大堆论文和两三个拆开的飞控板。他看到顾望舒,指了指对面的椅子:“坐。报告带来了?”
顾望舒递上那份飞控调试报告。他写了整整十五页,有文字描述、有数据表格、有MATLA*绘制的曲线图、有PID参数整定的详细记录,甚至连他在航模队飞固定翼时的手感描述都写了进去。
刘教授接过报告,翻了翻,看到那些曲线图和参数记录的时候,目光顿了一下。他把报告翻到最后一页,看到顾望舒手写的总结:“飞行控制的本质不是让飞机听话,而是让飞机听懂人想让它做的事情。”
“这是你自己写的?”刘教授问。
“是的。”
“这句话,”刘教授顿了一下,“有点意思。”
他把报告放在桌上,推了一下眼镜,终于抬起头正式看了一眼对面的学生。
“你可以进课题组。先去熟悉一下我们现有的平台,下次课题组会的时候我会叫你。你先把这份综述看了。”他递过来一份英文综述,关于多旋翼无人机容错控制的。大约五十页,密密麻麻的公式和引用文献。
顾望舒接过来,翻了一下,发现有一半的数学符号他还没学过。
“看不懂很正常。”刘教授说,“先把能看懂的看完,看不懂的标出来,下次来问我。”
顾望舒点了点头,把综述小心地对折了一下,放进书包里。
走出办公室的时候,他的心情很平静,但脚下很轻。他知道,从今天开始,他可以接触真正前沿的东西了——不是航模,不是玩具,而是真正的科研。
那些东西现在还看不懂。但不久后就能看懂了。
他在走廊上加快了脚步。
大二那年顾望舒参与了人生中第一个正式的科研项目。项目名称很长,甚至到现在他也无法一次完整地复述出来——“复杂环境下多无人机协同搜索的分布式鲁棒控制方法研究”,简单来说就是:让一群无人机在坏境里自主分工找到一个目标。
项目由刘教授主持,是**级科研项目的一部分。顾望舒在课题组里的工作最初很基础——帮博士生整理文献、跑**、搭建实验平台的软硬件环境。
课题组里有一个博士生,叫赵博,戴一副厚厚的眼镜,说话带着浓重口音,脾气不太好。特别是**数据跑出来效果不好的时候会拍桌子骂人。
“这个怎么搞的,你这个代码是不是写错了?”赵博指着屏幕上的某一行,语气有点冲。
顾望舒凑过去看了一眼:“我应该没写错,是数据这里出了问题。”
“数据怎么可能有问题?数据是提前处理过的,过滤掉了噪声信号——”
顾望舒没有辩解。他把那一段数据重新导入,分析了频谱特性,发现有一个频率成分确实超出了预期范围。他把分析结果整理成一张图,发给了赵博。
赵博沉默了很久。
从此以后,赵博再也没有用“你这个代码是不是写错了”的句式跟顾望舒说过话。
大三的时候,顾望舒已经能够独立负责一个子模块的开发了。他的任务是设计一种分布式一致性算法,让多架无人机在没有中央控制的情况下,通过对等通信达成对整个环境的共同认知,从而实现协同搜索。
分布式协同,是个很迷人的概念。
想象一下:十架无人机在一片陌生的区域上空散开,它们之间没有指挥塔,没有中央大脑,每一架都只拥有局部的信息——自己看到了什么、附近几架同伴发来了什么。但它们通过某种规则不断地交换信息、更新自己的判断,最终在没有全局信息的情况下,共同“拼”出了整个区域的地图,并且各自分配好了搜索任务——你去东边,我去西边,他去看那块可疑的阴影。
这不是中央下令的结果,而是自组织涌现的秩序。
顾望舒在纸上画了很多张图。十架飞机,随机分布的初始位置,他要设计一个算法,让它们收敛到一种“每个人都清楚自己该做什么”的状态。这是运筹学、控制理论、分布式计算交汇的地方。
赵博帮了很多忙,但问题大多要靠自己解决。有一段时间,顾望舒每天晚上躺在宿舍床上都在想那个算法。熄灯后四周漆黑,他的脑子像一块正在过热的芯片,不断模拟十架飞机的运动轨迹,试图找到一种更好的信息融合方式。
有时候睡不着,刘嘉瑞打游戏的声音从对面床铺传过来,方旭在磨牙,周远舟在说梦话(内容通常是代码或者骂人)。顾望舒翻了身,闭上眼睛,脑子里十架无人机还在飞,一圈一圈地飞,像困在一个打转的循环里。
算法跑通的那天是一个普通的周四下午。
顾望舒独自在实验室里运行**。他把初始条件设得非常苛刻——十架无人机的起始位置随机分布在很大一片区域里,通信范围受限,目标藏在一个很刁钻的死角里,单机根本看不见。
代码开始运行。前三十秒,十架无人机各自在局部区域内搜索,毫无章法,像无头**。顾望舒握紧了自己的膝盖。
第三十一秒,第一架无人机发现自己视野内的一个特征点,生成了一个初步猜测,把它发送给了邻居。
第三十五秒,三架无人机交换了信息,形成了一个小共识区域。
**十秒,六架无人机开始收敛,各自调整了自己的搜索方向。
**十八秒,十架无人机的估计位置全部收敛到目标周围。目标被锁定。
顾望舒把这次**的最终状态截图保存了下来。回到宿舍后,他打开电脑,盯着那张截图看了很久——十架无人机,十种颜色,全部聚集在目标点周围。
他给赵博发了一条消息:“分布式协同跑通了。”
赵博秒回:“明天上午给我看看代码。”
顾望舒靠在椅背上,长长地呼出一口气。
窗外的天已经黑了,他的手机屏幕亮了一下,是刘嘉瑞发来的微信:“食堂还有饭,要帮你带一份吗?”
“带一份。西红柿鸡蛋面,加一个煎蛋。”
那天晚上他吃的西红柿鸡蛋面,比平时都香。
大学四年,像一条大河,流过春夏秋冬,流过无数个日夜。
顾望舒在这条河里慢慢长大。十八岁进校的时候,他是一个沉默寡言、只知道埋头读书和做航模的少年。二十二岁毕业的时候,他是一个能够独立设计算法、撰写论文、在学术会议上做报告的年轻人。
变化是慢慢发生的。
大一的他会在课上紧张,被老师点名回答问题时会脸红。大四的他已经能够在全国性学术会议上,面对台下的专家教授,不紧不慢地讲完自己的研究成果,然后从容地回答每一个**。
大一的他会在航模队活动时紧握遥控器、手心冒汗。大四的他已经成为航模队的副队长,负责带新生训练,告诉他们“舵量不要太大,柔和一点”。
大一的他会因为一次没考好而耿耿于怀好几天。大四的他已经明白,人生那么长,一次**算不了什么。
他学会了和不同的人相处。周远舟嘴上损他但心里敬他,方旭话不多但值得信任,刘嘉瑞除了打游戏还会在室友生病的时候帮忙带饭和买药。他也学会了和一些人和解——但不是所有人都是朋友,保持适度距离也是成年人的必修课。
他学会了独立。离家的头两年,他每周给家里打两次电话,后来变成一次。不是不想家了,而是习惯了。他在深夜的自习室里学会了一个人面对难题,在实验室里学会了一个人调试代码到凌晨,在南航的操场上学会了一个人在雨中收拾飞机残骸并且没有怨言。
他也对“未来”这两个字有了更清晰的认知——它不再是一片混沌的云,而是一条有方向的路。虽然路上还有很多雾气,但脚下的路面已经踏实了。
大四上学期,顾望舒开始准备考研的方向。
他纠结了很久。以他的成绩可以直接保研,但他的排名不够靠前,想跟的导师名额有限,不确定能不能竞争过。如果考研的话他可以冲击更好的学校,比如北航。
一边是稳妥,一边是进取。
有一天他在导师办公室和刘教授聊起这件事。刘教授听完之后,没有直接给建议,而是问他:“你觉得你以后想做什么样的工作?”
顾望舒想了想:“做无人机。不是做产品,是做系统。”
“什么样的系统?”
“有用的系统。”顾望舒说,“救灾、物流、**、农业——就是那种真正能帮到人的系统。不只是为了好看,也不只是为了**文。”
刘教授看着他,半晌没有说话,然后忽然笑了。不是那种客气地、职业化的笑容,而是真正的、发自内心的高兴。那种笑容顾望舒第一次在刘教授脸上看到——那种“我看到这个想成为什么样的人”后的鼓励与欣慰。
“那你留在南航吧。”刘教授说,“我这里的东西你还没学完。”
顾望舒最终选择了考本校的研究生。不是保研,是考——刘教授告诉他“名额不够,想留下来就得考”。顾望舒说好,然后大四上学期一边写****一边复习考研科目,把数学、英语、**和专业课的真题刷了至少三遍。
考完试的那个下午是冬天,天阴沉沉的,零星的几片雪花从灰蒙蒙的天空中飘下来,还没有落地就已经化了。他走出考场,被一阵冷风呛得咳了两声,把羽绒服的拉链拉到最顶端,戴上**,沿着校道一路走回宿舍。
就在这个时间节点前后,一件意想不到的小事悄然发生。
在南航东区外的某个常去的快递点取包裹时,他撞见了一个高挑的女生。她大约一米六八,穿着一件深灰色羽绒服,背着一个双肩包,正在快递架的一堆纸箱间翻找,动作有点笨拙——踮起脚尖够最高一格的时候,她的几本书从臂弯里滑了出去,“哗啦”一声全掉在了地上。
几本书散落一地:《运动解剖学》《康复评定学》《针灸学》……以及一本封面印着繁体字的《思考中医》。
顾望舒恰好蹲下去捡快递,顺手帮她把那几本书捡回了手里。
女生接过书,眉梢微微一挑,声音清脆:“谢谢。”然后低头看了一眼其中一本被摔皱了封面的《运动解剖学》,轻轻叹了口气,把书脊的折角抚平,夹到臂弯里继续找快递去了。
两人各自取了东西,走出快递点的玻璃门。南京冬季的风吹得人脸生疼,顾望舒拉上卫衣的**。女生走在前面几步远,在冷风中微微缩着脖子,双肩包的拉链上不知什么时候坠了一只毛绒柯基挂件,随着步伐一摇一晃。
两辆共享单车经过时溅起了一小片融雪,女生朝内侧闪了一下,险些崴了脚。顾望舒下意识想伸手扶一把,但她自己扶住了旁边的立柱,站稳后自嘲地笑了一下,刘海被风吹得乱七八糟,她就那么大大方方地用手拢了拢头发,接着往前走了。
清冷的人行道上,两个人一前一后地走着,消失在各自的方向里。顾望舒不知道为什么在今天回想起这件小事。有可能是快递站那阵冷风让他又想起了那个冬天傍晚,那个眼光明亮、蹲下来捡书的女生的模样——但那一切已经像这雪花一样,落下去的瞬间就化了。
他不知道她的名字。甚至不知道她是不是南航的学生——那些康复医学的书不像南航的专业课教材。
他甚至不确定那个下午是否真的发生过。
也许只是他走进考场前的一个幻觉。
考研出分那天顾望舒查到了自己的成绩——总分超过本校复试线二十多分。他给母亲打了个电话:“妈,我考上了。”
电话那头母亲先是愣了一下,然后哭了。不是去年那种放声大哭,而是忍着声音的、带着笑的哭:“好……好……我就知道……你从小就喜欢这个……你喜欢天上的东西……”
“妈,就是考上了研究生而已。”
“我知道。我就高兴。”
3月的一个傍晚,顾望舒在微信上收到了研究生导师发来的消息:“祝贺你通过复试,加入我的课题组。”
他盯着那条消息看了二十秒,回了一个字:“好。”
然后他把手机放在一边,在床沿坐了一会。
窗外的梧桐树正在发芽,嫩绿色的新叶在夕阳下透着光,像一片片半透明的翡翠。有鸟在叫,不是麻雀,是那种声音很清亮的鸟——也许是乌鸫,也许是白头鹎,他分不清。
他只知道,这条路还没走完。
还有研究生三年。还有更远的路。
但此刻,他坐在南航的宿舍里,窗外是四月的风、梧桐树和鸟鸣,一切都是最好的样子。
毕业典礼那天,顾望舒穿上了学士服。黑色的袍子有点大,袖子长得要挽起来,**戴在头上也不太稳当,风一吹就歪。
校长在台上讲话,他坐在台下,听不清在说什么,太阳很大,晒得脖子发烫。他抬头看天,天很蓝,蓝得像他七岁那年从中山陵看到的天空一样。
二十二年过去了。他还在看同一片天空。
和那年不一样的,是他的心里装下了更多的东西——伯努利原理、纳维-斯托克斯方程、PID控制、卡尔曼滤波、无人机协同算法,《航空概论》扉页上的字迹、“长空一号”机身上淡**的旧蒙皮、刘教授的格子衬衫、航模队工作室那股快干胶和机油混在一起的味道、几百架次的飞行和几十次大大小小的摔机,以及南航梧桐树荫下走过的四千多个日夜。
他弯下腰系了一下鞋带,站起来的时候发现兜里从录取通知书里掉出的纸片还在。上面是他用铅笔写的七个字:“智周万物,道济天下。”
字迹歪歪扭扭,像十三岁时写下的梦想,一笔一划还很用力。
他把纸片折好,放回口袋。
该走了。不能就这样停在这里。
路还长。
阅读下一章(解锁全文)
点击即可畅读完整版全部内容
相关书籍
友情链接