“对!应该可以了!”
林允儿插了句嘴,“那得多少架?”
“六百、八百、一千,反正国内现状够用了!”
莎曼仰着脑袋懵懵地看着她,朴素妍手里的石榴籽终于送进了自己嘴里,咸恩静已经重新靠回去了因为听不懂中文,但是她听到“拼人脸”几个词还是挤出来一句,“能拼出好看的样子吗?”
程嘟灵有点犹豫,“应该能……吧!我得叫导师来看看,是不是非均匀布点可以?”
“什么非均匀布点?”朴素妍一脸茫然。
“就是……就是……”程嘟灵卡住了,她看着朴素妍那张完全诚恳的脸,发现自己没法把“像素权重非均匀分配”“子簇内部加密”“轮廓边界光点倾斜”这些词翻译成朴素妍能听懂的语言。她深吸一口气,换了个说法,“就像画画,画人脸的时候你会在眼睛和嘴巴那里多描几笔,其他地方一笔带过。飞机也是,脸的部分多放一点,背景少放一点。”
朴素妍“哦”了一声,好像听懂了,又好像没完全懂,但她看程嘟灵那个狂喜的表情,觉得应该是好事。
程嘟灵又抓起游戏机,屏幕上的GAME OVER还亮着,她盯着它看了三秒,然后按了重启键,方块又开始落了,第一块落下来的速度很慢。“我就是玩这个想明白的。”她把游戏机举起来冲萨娜玛晃了晃,脸上是一种理科生特有的狂喜表情,像解开了一道压了很久的题。
萨娜玛点点头,站起来退后半步。她回头看了一眼蒙娜,蒙娜还保持着半站半坐的姿势,嘴角的纹路比刚才松弛了一些。那个“劝”字彻底沉下去了,连泡都没再冒。
“母妃”,萨娜玛轻声说,“她没事。她想通了。”
蒙娜慢慢坐回椅子里,手指在扶手上敲了两下,这次节奏不一样了,慢了一拍。“那就行。让她玩吧。”
“妈妈!”程嘟灵突然又叫了一声,撑着扶手自己要站起来,林允儿和萨娜玛一人架一边她才稳住重心,肚皮的重量把她的腰往下坠,她用手托了一下才站直。“我要打电话!给我导师!马上让他们过来!如果可行的话,真能赶上的!”
她光着脚就开始往外走,林允儿在后面喊“鞋!鞋!鞋!”程嘟灵折回来趿拉上拖鞋,左脚踩进了右脚的鞋里,右脚进了左脚的,她自己浑然不觉,裙摆拖在地毯上刮出一道浅浅的痕迹,门在她身后啪一声合上了。客厅里安静下来,只剩下窗外的鸟叫和游戏机被扔在沙发上时屏幕闪了两下之后自动待机的嘀一声。
蒙娜看着那扇还在微微震颤的门板,过了好几秒,说了一句,“她鞋穿反了。”
萨娜玛低头看了看地上残留的拖鞋方向印记,左脚踩了右脚的位置。“……是反了。”
“随她去吧。”蒙娜把薄毯重新裹紧,膝盖发酸的感觉得到了一点缓解,“把那个游戏机收起来。等她回来再还她。”
她其实想的是另一件事,瓦立德今天会不会真的去跟程嘟灵说“少玩点游戏”。她忽然觉得,他大概也不会说了。这个家,好像大家都学会了在对方最投入的时候闭嘴。她自己也刚学会。
第二天下午,埃米尔宫东翼那间挑高六米的小会议室里,阳光从北面的高窗斜斜切进来,把长桌切成明暗两半。瓦立德坐在暗的那半边,面前一杯白水,水面上有一粒浮尘在缓慢打转。程嘟灵坐在他左手边的椅子上,肚皮正好卡在桌沿和椅背之间,她侧着身子歪靠,一只手搭在桌面上,手指还在无意识地点着桌面,像在模拟按键。另一只手搁在肚皮侧面,掌心的温度隔着棉衫传过去,里面的小家伙好像醒了,在动。
对面坐了七个人。王志胜坐最中间,五十岁出头的男人,头发里有白茬,但精神头很足,眼睛不大但是亮。他面前摊着一摞A4纸,最上面那张的边角已经卷起来了,封面上有几个手写字,墨色褪了一些,程嘟灵自己写的“长空杯技术文档”几个字。
王志胜旁边依次排开六个年轻人,差一个就是葫芦七兄弟。左起第一个是薛申,高个子中分头,手里攥着一瓶没拧开的矿泉水,瓶身上的标签是阿联酋本地牌子,显然是从酒店里顺出来的。李想靠在他旁边,斯斯文文的,短发圆脸带个眼镜,他坐下之后先掏出一块眼镜布把镜片擦了擦。
顶着西瓜头的周浩坐在薛申右手边,两条胳膊搭在桌沿上,目光在会议室顶角的摄像头和瓦立德之间来回扫,他估算摄像头角度的时候,脑子里自动在算三角函数。仰角32度,水平覆盖范围大概120度,盲区在瓦立德身后那片阴影里。他忽然想,如果自己是刺客,该从哪个角度切入。这个念头让他笑了一下,然后赶紧收了。在阿联酋王室的会议室里当刺客,大概率是找死。但是他的脑子不听使唤,总是想着那些没用的东西,从高中的时候起就如此,数学竞赛卷子上的最后一道大题,他总是先想“如果条件不成立会怎么样”,不然就真的太没难度了。
张涛坐在长桌的一角,他的存在感很低,就像一棵放在角落里的盆栽一样,面前没有放任何东西,两只手规规矩矩地放在膝盖上。他面前的桌子上有一道划痕,是之前有人用裁纸刀不小心划出来的,从桌子左上角一直延伸到右下角,就像一道闪电。张涛看着那道划痕,把它想象成一条河,河的左边是薛申的矿泉水瓶,河的右边是姜凡的笔记本,他是河上的桥,但是没有人从他身上过去。他把这样的想法记在心里,没有告诉任何人,否则会被认为是神经病。但是他认为那道划痕很美,是某种命运的预兆。
姜凡是很有气质的人,挨着王志胜坐,手里已经打开了一本笔记本,笔尖停在空白页上,这是一支普通的黑色签字笔,笔杆上有一个牙印。黄毛陈希在另外一边,面前摆放着一台老式的ThinkPad,键盘上有一些键帽已经磨得发白了,空格键旁边有一个小块的黑斑,应该是咖啡干涸之后留下的。
“殿下”王志胜开口了,声音带着大学教授特有的那种稳重,不急不缓的说,“嘟嘟昨天下午给我打了个电话,说方案已经想好了。我和孩子们一起坐最早的一班飞机来,她说的那个东西我们在路上一直讨论。”
“辛苦了。”瓦立德说。
“我们不辛苦,她才辛苦。”王志胜看了一眼程嘟灵,目光在她肚子上停了一下,“怀孕了还想着技术问题,我教了这么多年书,这样的学生很少见。”
“教授!”程嘟灵的脸有些发红。本科大二就有了孩子,不能说是没有,但是也不多见,何况是在翠屏山男子职业技术学校、将军路男子航天技校、明故宫飞机修理厂?
“实事求是嘛。”王志胜笑着摇摇头,把面前的那叠纸往前推了推,“这是她上半年长空杯项目的原始技术文档,封面都被她翻毛了。殿下你看,上面还有她手写的批注,字圆圆的,跟她现在这个人还挺像的。整体思路其实……”
张涛差点笑出来,程嘟灵也是银牙暗咬的,这个导师到底会说话不?
瓦立德忍住笑伸手去接,然后翻了翻。有的地方已经卷起来了,上面还有程嘟灵的字迹,字体比较圆润,和现在她在白板上写的记号笔那种潦草风格不太一样。其中一页边上写着“此处逻辑有bug,已经修改,但是忘记了是哪个bug了,以后再想想”,旁边还画了一个皱着眉头的小人脸。瓦立德看到这一页的时候,嘴角微微抽搐了一下。
“你不许翻!”程嘟灵伸手去抢,但是瓦立德把文档往自己这边挪了半寸,她够不到。
“好的好的不翻了不翻了。”王志胜把那叠纸收了回去,清了清嗓子,进入正题的状态,“殿下嘟嘟说的那个方案我们在路上讨论了一路。首先我要说的是这个思路的方向是正确的。不是‘正确的’,而是‘“唯一能行的’。”
王志胜其实是不想接这个活的,因为这个事完全就是瓦立德的一种政治献礼工程,在科研上毫无意义,而且技术条件也不成熟,但是奈何瓦立德给的太多了,所以也就接了下来,但是一直都没怎么放在心上,全由着程嘟灵和薛申他们自己折腾,不过昨晚程嘟灵的想法让他真正的看到了实现的可行性。
程嘟灵坐直了身子,肚子抵着桌子也不在意,“教授,我又重新推了一遍。长空杯当时我们方案是二十架编队,中心化领航跟随,Pixhawk飞控加数传电台,GPS定位互相传位置姿态心跳报文。二十架没有问题。但是要达到人脸大小的六百架……”
“网关的算力会被炸掉了”李想接着说,语速很快,说话的时候摘下眼镜再戴上,好像在确认自己的视力是否正常,“单台地面网关同时处理六百架的心跳报文,我们之前测试过,四百架就出现丢帧现象。CPU占用跑到百分之九十以上,温度蹭蹭往上蹿,散热片都烫手。这还只是跑网关,飞机根本没飞的情况。”
“信道不够。”薛申拧开矿泉水瓶喝了一口,嗓子还带着刚睡醒的沙哑,但是思路很清楚,“2.4G频段那么窄,六百架挤在一起互相踩,延时从五十毫秒跳到三百毫秒,飞控根本来不及做姿态修正。想想看,一架无人机从收到指令到完成姿态调整,中间只有三百毫秒的时间,它早就飘到一边去了。”
“那么”,程嘟灵用小拳头敲了敲桌子,“我们干脆不搞全网互联。”
王志胜的眼睛眯了一下,“嘟嘟你详细说一遍。”
“我们放弃全网互联的思路。不搞一千架飞机互相聊天,只搞二十个小队各自闭环。小队合起来拼大图。”
会议室里静了两秒钟。张涛把盆栽的头抬起来一点。瓦立德转过头来望了程嘟灵一眼,脸上并没有什么表情,但是手指却在桌子上停顿了一下。他听不懂。不过不重要,他只买单就行了。
程嘟灵接着说,语速比昨天对萨娜玛说话的时候慢了一半,因为有专业人士可以接住,“从俄罗斯方块这个游戏里我们可以抽取三条局部规则。第一,固定层高、固定空域边界、禁止越层穿插。第二,每架无人机只负责监控它相邻的三到五架队友,而不去管整个空域的情况。第三,空位时自动补位,偏差时自动归中,碰撞时自动弹开。就是这三条。”
薛申咦了一声,歪着头看着姜凡,“诶!别说,你还真别说,程嘟灵这套真的可以。姜凡,你听明白了没有?”
姜凡把食指伸出来扶了扶眼镜,然后说,“这样看来和俄罗斯方块还真有点像。”
程嘟灵又说,“我们做区块自制,把整个图片像二维码一样分成一块一块的,一个小组负责一块。”
第758章 什么叫做概念神
“Reynolds鸟群算法简化版。”看着程嘟灵,王志胜嘴角抽了下,可惜了,好好的科研不搞去做什么王妃啊!他继续说道,“现有的低端飞控也可以用。算力没有压力。Pixhawk上用的是STM32的MCU来跑姿态解算和邻居报文处理,负载不到百分之三十。”
“问题是”李想向前倾斜了一下身子,矿泉水瓶放在桌子上,上面有一层水珠,“小队内部是怎么建立网络的?全域信道拥堵,但是局域组网也有单簇容量上限。不管是Wi-Fi还是短距数传电台,一个簇可以携带的节点数量是有限的。分成二十组,每组内部如何保证不丢包呢?”
“短距局域组网已经很成熟了。”程嘟灵说,“不需要全域广播,只需要给每架飞机分配三个到五个邻居的位置信息。Pixhawk只用处理五个邻居报文,剩余的计算能力很多。局域通信的带宽开销远远小于全域广播,在实验室里四轴编队十几架飞机飞得非常好,技术底子都差不多,就是数量级的问题。”
“但是……”
“而且不需要进行实时协调。”程嘟灵打断了他的话,手指在桌子上画了一个矩形,“起飞前预加载整个空域的GPS网格坐标。每架飞机都知道自己应该停在哪个格子里。它不是用实时全局规划的方式飞行的,而是用预先标定好的坐标进行边界对齐。区块和区块之间拼接的方式是用GPS坐标进行硬对齐,并不是通过跨区通信来实现的。因此子块A和子块B之间根本不需要交流。只须要知道自己所在的格子坐标即可。对上了就对上了,对不上整个方案就都失败了,但是只要GPS精度在可以接受的范围内,对上的概率要远远大于对不上。”
李想摘下眼镜擦了擦,再戴上,问,“你发来的文档里提到的二维码纠错?”
程嘟灵笑得很放松,“区块自治存在一个风险,就是如果一个小队炸毁了飞机、信号中断或者某架飞机走错了路线,那么整个大图就会缺少一块。采用二维码的里德-所罗门纠错算法。一个子块损坏了,相邻的子块就会自动微补边界。整体大图不会崩、不会变形、不会塌陷。单个小队内部损失三五架飞机,人眼是看不出来的。人眼的宽容度远远大于你的想象,特别是动态画面中缺少几个光点也看不出来。”
姜凡的笔在笔记本上写了一个关键词后说道,“必须事先进行测绘。提前布置好网格,把区块的坐标提前输入进去,并且精度要非常高。不能到现场之后再临时画网格,那样的话就来不及了。地面测绘要提前两周以上完成,以给飞控的固件编译和测试留出时间。”
瓦立德表示这完全不是问题,“沙特相关部门会配合。我让人两天之内给你。”
王志胜苦笑了一下,“殿下,这个‘不是问题’对我们来说本来是最大的问题。以前我们在实验室里做实验,申请一块试飞场地要跑三个月的流程,航管部门一个章要盖半年。”
“现在是最大的便利。”瓦立德说。
“对,现在是最大的便利。”王志胜搓了搓下巴,“就是来的太快了我们这些搞技术的人还没有缓过神来。”
众人乐了。
周浩把椅子往前挪了挪,“我刚刚计算了一下理论容量。通信方面存在子簇容量上限的问题。每个子簇用短距数传电台或者Wi-Fi等局域网来组网,单簇节点自然就有上限。信道不够用,再增加区块就会出现边界干涉。”
“你算出来的结果是多少?”
“乐观估计是四百到五百架。”周浩说,“极限赌一把,不加纠错备份,纯赌运气,最多六百。信道是有限的。飞控单机算力也有限制,嘟嘟这套极简规则本身的算力开销不大,但是GPS、气压计、陀螺仪的噪声滤波和邻居报文接收处理,是有负载上限的。消费级飞控的MCU性能就是这样的。子簇规模如果过大,单机处理邻居报文的数量就会增多,部分飞控就会出现过载、丢帧、控制滞后的情况。我们在做实验的时候十几架没有问题,但是你想想,五十架呢?每架要处理五条邻居报文,再加上自己姿态解算的压力很大,但是并不是做不了,只是不能做到像我们之前想象中的那样‘全网协调’的方式。”
“所以仍然达不到拼脸的程度”,薛申接话,“看得出来是个人,但是看不出来是谁。六百个像素点的分布之下,人脸部分的采样密度不够,轮廓边缘也变得模糊不清。只能看到一个大概的椭圆形,眉毛、眼睛、嘴巴的细节都糊在了一起。”
程嘟灵的手指停在了桌子上。她看着周浩,眨了下眼睛,然后又看向瓦立德。里面包含着一个很微小的询问,好像在问,“你那个准备好了吗?”
瓦立德低头看了一眼手机上的信息,好像刚刚收到了一条信息一样。他抬起头来,语气很平静,“刚才确定了一件事情。到时候可以使用军用网关、军用频段。”
会议室里静悄悄的,大约两秒钟左右。李想喝水的手停在了半空中,瓶口和嘴之间相隔两厘米。
程嘟灵却接上了,思路显然已经在瓦立德开口之前跑到了同一个方向,“我们不用地面电台。每一台改装军用无人机充当空中网关,负责分配信道、管理一个子簇,下辖几十架消费级无人机。多台军用网关无人机各自管自己的子簇,以此突破单一组网的终端上限,把整体可稳定工作的消费无人机数量往上抬。”
“一台网关稳妥带多少?”姜凡的笔已经举起来了。
“四十到六十架。看频段条件。要视具体频点规划来定。”
王志胜把交叉的手放下来,人往前坐了半寸。“你详细说,怎么架构。”
程嘟灵站起来,走到会议室侧面那面白板前。她够了一下记号笔,但是肚子挡住了她够不到的地方,林允儿不在场,也没有人给她递过去。肚子里的小家伙踢了一下,位置就在肋骨下面,好像在说“别够了我难受”。程嘟灵不理他,又够了一次,但是还是够不到。她突然想起小时候在奶奶家的时候,够到柜子上面的糖罐也是这样够不到,奶奶就在旁边笑,说,“等你长高了就够着了”。现在她已经长高了,但是还是够不到,因为肚子把她的“高”抵消了。她笑了笑,觉得这样的比喻可以写进以后的论文致谢中。
瓦立德站起来把笔递过去,程嘟灵接过笔,在白板上画了一个大圆,在大圆里面又画了二十个小圆。
“改装的军用无人机一台就相当于一个空中簇头网关。装有军用机载数传电台和多信道射频模块。但是它自己不当灯光像素点。它不亮。”她在每个小圈旁边标注“簇头,不发光”。
“每一台网关独立占用一套专属频段,管理自己的子簇。网关只给本簇下发预加载的区块任务和本地邻居测距规则。网关之间不互相通信,不交换子簇内部状态。子簇内部消费无人机只跟自己的网关和本簇邻居交互,不跨网关通信。”
她画了几个箭头,指向大圈的边界。“各个子簇起飞前已经预存好整片空域的GPS网格坐标。靠GPS完成区块拼接。网关之间不做协同。简单讲,把原本地面的分簇电台搬到天上,一台军用无人机背一套电台,一个管一个区块。”
她把笔帽一盖,搁在白板槽里,转过身来看大家。
沉默。薛申先破了,“也就是说……用军用无人机当空中Wi-Fi热点,每个热点带一个班的消费级无人机。”
“差不多就是这个意思。”程嘟灵说。
“我们以前做项目的时候根本想不到用军机来当中继网关,思路一直卡在‘怎么优化地面基站的架构’上。”薛申摇着头苦笑着,“你倒好,地面基站解决不了的是通信距离和信道数量问题,你直接把基站挂到天上去。”
王志胜开玩笑说,“不得不说,王妃就是王妃,我们打死都想不到用军方的无人机来这么玩。”程嘟灵不好意思的笑着。
姜凡的笔尖在纸上戳了一下。“那数量上就突破到八百了。”
“为什么是八百不是一千?”瓦立德问。
周浩把矿泉水瓶放下,瓶底磕在桌面上发出一声闷响。“打个比方。剧场,你有权买下全场所有座位,拿到全部频段许可,但你不能让一百个人同时挤在二十个座位上还互不打扰。座位总数是物理硬约束。”
他伸手去拿桌角的笔,手指在桌面上划了一下没划准,再划一次才捏住。“五十架一簇,一千架就需要二十个独立子簇、二十台空中军用网关。军用UHF、L波段,扣除雷达、通信、导航已占用的保护间隔,能拿出来、互相留有足够保护间隔、可以同时并行工作的干净频点,达不到二十个。频点不够,就只能把部分网关挤到邻近频段。邻道泄露、互调干扰就会出现,网关之间互相污染,下属消费机随机丢包、报文错乱,子簇抖动、区块漂移概率大幅上升。”
“军用电台的抗干扰能力应该更强一些吧”瓦立德问道。
周浩说,“但是抗干扰并不是无视干扰。很多台大功率的机载发射机挤在同一个天空下,干扰是客观存在的。即使勉强凑齐二十个网关,也会撞上另外两座大山。第一,GPS累计误差很大。子簇的数量越多,拼图累积的位置误差就越大。即使有空中锚点网关进行本簇内的校正,但是簇和簇之间并没有跨簇校准。最后的天幕图案会出现大面积拼接错位、撕裂、斑块偏移。”
“第二呢?”
“单点故障连锁的风险被加大了”,王志胜替他接了话,“一台军用网关出故障了,就会导致四十到六十架飞机的整个子块失效。二十个网关在空中同时存在,任何一个出现问题都会造成天空中缺少一块。实验室里极限试验能冲一千两百架,但是正式公开表演是肯定不敢上的。殿下这是公开庆典的政治献礼,出了事故政治代价很高。”
瓦立德靠在椅子上,拿起杯子又放下了,“八百是工程红线?”
周浩说,“起飞八百架,备份100-200架随时补位,这是在我们这套架构下图案完整性的极限。再多,肉眼可见大量拼图崩坏。”
王志胜接过来说,“但是八百架条件下人脸的清晰度是可以解决的。原理就是嘟嘟昨晚提出的非均匀布点。人脸的关键特征区,眼眶、嘴唇轮廓、脸型边缘,子簇内部加密。非关键背景区域比较稀疏。总的无人机数量没有变,把光点资源倾斜到轮廓和五官边界上,背景稀疏一些没有关系。就相当于图像领域中的非均匀采样。人脸辨识度显著提升,轮廓边缘锐利,背景部分稀疏,但人眼看的是脸,不是背景。”
“还可以在子簇内部加相对测距。”薛申又开口了,“用超声波、红外测距模块,只限同一个子簇内部使用。同一区块内无人机互相测距,做局部相对位置锁死。簇内相对位置精度从GPS的数米压缩到一到两米。测距数据只在本簇流转,不跨簇传输,不触碰全域通信的禁区。”
陈希拍了一下他的空格键,“只能改善单个子块内部的图案变形,解决不了不同子块之间GPS带来的整体偏移,不能消除区块与区块之间的拼接错位。也就是说,每个子块内部看起来是完整的、漂亮的,但子块和子块之间可能错开一条缝。而且……”
“我补充一个。我们刚才一直在讨论GPS漂移和局部误差,但我担心另一个问题。大量多旋翼高密度挤在一片空域,每架无人机向下的下洗气流会互相干扰。一个子簇内部可以通过预设计层高间隔来规避,但多个子簇挨在一起,不同子簇的尾流互相耦合。子簇越多,整体湍流越混乱,湍流扰动会大面积诱发姿态失控。”
众人不说话坐在那里冥思苦想了起来,这个问题就很致命了。
张涛从角落里弱弱地举起了一只手,又放下了,因为好像没人注意到他。薛申瞟了他一眼,“你说。”
“……能不能错配高度?”张涛的声音很小。
“什么意思?”薛申转过来。
“就是全部无人机不要挤在同一个水平面,我们竖起来一点。把不同二维码子块分配不同海拔高度,相差几米。人眼从地面仰视,透视投影把不同高度的光点投影到同一个天幕画面。这样的话,同高度大量无人机的下洗气流互相干扰就被规避了。”这次张涛的声音大了一点点,像盆栽长高了半寸。
全场静默了10秒之后,所有人竖起了大拇指。
薛申一脸无语的拍了拍自己的脑袋,“哎呀,我怎么就么想到呢!”
姜凡扭头看有些不好意思的张涛,眨了眨眼。“可以。高度分层确实能解决湍流问题。而且还有一个额外收益,当某一个子簇发生GPS漂移错位时,高度差会在一定程度上掩盖二维平面上的拼接裂缝,肉眼不容易察觉小块撕裂。”
瓦立德觉得很神奇,
“代价呢?”王志胜问。
“风向变化时透视关系改变,特定观测角度图案会轻微变形。”姜凡说。
“代价可以接受。”薛申接话,“本来就不是精密仪器校准,是视觉艺术。人眼不是测量仪器,不会拿尺子量高度差。”
“对。”陈希点头,“而且错配之后还有另一个好处,透视投影天然会把不同高度的光点汇聚到同一个画面里,这个原理很简单,你站在地面上看天,远处一架高一百米的飞机和近处一架高八十米的飞机,在人眼视网膜上的位置投影可能只差那么一点点。只要预计算做好,观众根本不知道那些光点不在同一个平面上。”