毅力号去火星还带个无人机,由Linux+开源软件控制,Linux成为火星首个开源系统
大数据文摘出品
“毅力号”火星车登陆火星的视频传回来了!
这是NASA的“毅力号”火星车最黑暗的7分钟,这7分钟里,航天器与地球控制中心的通讯完全中断,这期间的着陆过程需要由火星车自主控制。
幸运的是,自主着陆系统表现良好,火星车成功着陆预定地点——耶泽洛陨石坑。
整个着陆的场面可谓是惊心动魄,着陆的时候,释放火星车的飞行器将火星地表的尘埃和沙砾卷起漩涡。
除了“毅力号”火星车本身,文摘菌注意到,这次参与火星探险的还有一个无人机,“机智号”。
“机智号”无人机不仅是第一个在外星球上测试动力飞行的飞行器,其飞行控制程序搭载在Linux上,也让Linux成为首个登上火星的开源系统。
并非主线任务,而是探索开源软件上火星的可能性
这次“毅力号”登陆火星的任务主要是寻找远古生命的迹象,收集岩石和泥土样本等,大多由火星车自己完成,“机智号”无人机并不参与。
“机智号”作为第一款在火星上进行飞行测试的无人机,更多是一种技术示范,目的在于展示使用商用硬件和开源软件在火星上飞行的可能性。
火星的大气密度只有地球大气密度的百分之一,引力也只有地球的三分之一,在此之前,还从来没有人尝试过在火星上飞行。
想要在火星上的飞行,要克服许多不利条件。
首先是其设计要足够轻巧和坚固,可以藏在火星车有限的空间中,并且能够在合适的位置正确展开。
其次是要克服火星恶劣的气候,在火星零下90摄氏度的寒冷夜晚,无人机要自动保持温度。
第三是没有外来能源,无人机还要能自主通过太阳能电池板充电。
最后就是自主飞行,这就要靠NASA的研究人员基于Jet Propulsion Laboratory's (JPL)的开源框架 F´(发音为F prime)开发的飞行程序来控制了。
这一切,都将集成在“机智号”仅1.8公斤的机身里,技术难度可想而知是非常大了。
“机智号”无人机主要技术参数
开源系统+开源框架,方便你也做一个
“机智号”无人机的飞行控制程序是基于Jet Propulsion Laboratory's (JPL)的开源框架 F´定制的,搭载于Linux系统中,这让Linux成为第一个登上火星的操作系统。
F´ 是一个组件驱动的框架,支持航天飞行和其他嵌入式软件应用程序的快速开发和部署。
F´ 曾多次成功地部署在多个空间应用领域,支持量身定制,不仅限于小规模的航天系统,还可以在如小型卫星,以及像“机智号”无人机这样的自主飞行无人机上运行。
它包括:
将飞行软件分解为具有定义良好的接口的离散组件的体系结构
提供消息队列和线程等核心功能的C++框架
用于指定组件和连接并自动生成代码的建模工具
越来越多的通用组件集合
在单元和集成级别测试飞行软件的测试工具
几年前,这个框架在GitHub上已经开源。
F´ 框架GitHub链接:
https://github.com/nasa/fprime
在 IEEE Spectrum 的一次采访中,Timothy Canham,一位 JPL 嵌入式软件工程师表示:
这是我们第一次在火星上飞行 Linux。(无人机)实际上运行在一个 Linux 操作系统上。我们正在使用的软件框架是当时在 JPL 为立方体卫星和仪器开发的,几年前我们开源了它。
所以,你可以得到在火星直升机上飞行的软件框架,并将它用在你自己的项目上。这是一种开源的胜利,因为我们拥有一个开源的操作系统和一个开源的飞行软件框架,还有一些现成的商业部件,如果你有一天想自己做的话,你可以买到。
Linux是最成功的太空操作系统
当然,还有许多其他的 NASA 开源项目,美国宇航局有超过500个开源3.0许可认证的项目。
早在出现自由软件和开放代码的概念之前,美国宇航局就在 COSMIC 程序下自由地分享了它的大部分代码。
至于Linux,除了是第一个登上火星的操作系统,也是最早进入太空的开源操作系统,NASA在国际空间站上就长期使用 Linux。
Linux 通往霸主开源系统地位的道路也始于NASA的戈达德太空飞行中心超级计算机中心(GSFC)的第一台 Beowulf 超级计算机。
和“机智号”无人机一样,Beowulf 超级计算机是用 COTS 设备打造的。它搭载16个 Intel 486DX 处理器和一个10mbps 的网络,总价格只有几千美元。
虽然它的运算速度相当慢,但 Beowulf 向我们展示了用极少的预算和开源的 Linux 就可以构建超级计算机。
包括到现在,“机智号”无人机依然向我们证明,在太空中,用 Linux 配合开源软件依然可以做成伟大的事情。
相关报道:
https://www.zdnet.com/article/to-infinity-and-beyond-linux-and-open-source-goes-to-mars/
https://mars.nasa.gov/technology/helicopter/
https://github.com/nasa/fprime