2026年2月2日,NASA的毅力号火星车完成了一件事:它第一次没有问地球,就自己搞清楚了自己在火星上的位置,精度25厘米。
这听起来好像没什么了不起,毕竟我们每天打开手机地图就能定位。但火星上没有GPS卫星,没有基站,什么都没有。过去5年里,毅力号每次开完一段路,都要把拍到的全景照片传回地球,由地面团队拿轨道卫星拍的地图一点一点比对,算出它的位置,再把结果发回去。
这一来一回,至少一天。
毅力号其实有一套“视觉里程计”系统:每开几米就用相机拍一张照片,对比前后两张照片里岩石和地形的位移,算出自己走了多远。问题是,每一步都有微小的偏差。火星地面松软,车轮会打滑;图像匹配也有微小误差。偏差积少成多,开得越远偏得越大。一趟长距离行驶下来,毅力号对自己位置的判断可能偏出35米。一旦它觉得自己可能离危险地形太近,就会自动停车,老老实实等地球确认位置。
工程师们当然知道这个瓶颈。毅力号的自动驾驶系统其实很能干,能自己绕开障碍物、规划路径,真正限制它跑远的,就是它不知道自己在哪。
解决思路说起来简单:让火星车自己干地面团队干的事。把轨道卫星拍的地形图存在车上,每次停车后拍一张全景照,用算法一比对,就能算出自己的位置。这套系统叫“火星全球定位算法”,大约两分钟就能完成一次定位。
但这里有个尴尬的问题。
毅力号的主电脑用的是一种抗辐射处理器。火星表面的辐射环境极其恶劣,普通芯片扛不住,所以火星车用的是专门设计的“防辐射加固”芯片,而代价就是性能极低。毅力号两台主电脑的硬件架构,源自1997年。你没看错,1997年,那一年乔布斯刚回苹果,谷歌还没成立。跑一个需要快速比对大量图像的定位算法,这两台电脑实在力不从心。
转机来自一个意想不到的地方。
2024年初,机智号火星直升机因为旋翼受损而退役。它飞了72次,远远超出原计划的5次,是人类航空史上最成功的“技术验证”之一。机智号留下了一件遗产:毅力号上用来和它通信的“直升机基站”。
这个基站里装着一块商用处理器,性能相当于2010年代中期的智能手机芯片。当年机智号团队敢用商用芯片,是因为直升机本身就是个实验项目——飞几次就算成功,坏了也不影响大局,正好借这个机会测试商用芯片能不能在火星上存活。结果它不仅活了下来,还干了72次任务。
这块芯片的运行速度是毅力号主电脑的100多倍。机智号退役后,它就闲着了。
毅力号的首席工程师盯上了这块芯片。机智号留下的遗产,现在可以让毅力号学会自己定位了。
故事还没结束。商用芯片能扛住火星辐射,不代表毫发无损。
团队在测试中发现一个诡异的现象:算法反复运行,每次结果都差1毫米。差得不多,但差得很稳定。工程师们顺藤摸瓜,最终在基站处理器1GB的内存里,找到了大约25个被辐射损坏的比特位。
1GB内存有80多亿个比特位,25个,相当于在一座城市里找到25块松动的砖。他们开发了一套方案,在算法运行时隔离这些损坏的比特位。同时,为了确保万无一失,团队还设计了一个“健全性检查”机制:定位算法在基站处理器上多跑几次,然后由毅力号的主电脑核验结果是否一致。
2026年2月2日和16日,火星全球定位算法在常规任务中成功运行。此前,团队已经用毅力号过去264个停车点的数据验证了算法,264次比对,264次准确命中,命中率100%。
现在,毅力号可以自己定位、自己规划路径、自己绕开障碍物,理论上可以无限距离地自主行驶,不用再停下来给地球打电话。
一架退役的小直升机,一块手机芯片,最后让一台火星车学会了认路。工程的魅力大概就在这里:最精彩的解决方案,往往来自最意想不到的角落。
~~~~~~
图源、信源:NASA官网新闻稿 http://t.cn/AXt3m6iD
发布于 美国
