火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空

火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空






历经 203 天,穿越了 4.72 亿公里之后,美国“毅力号”火星车终于在美东时间下午 3:55 成功登陆火星。


结束近 7 个月的旅程后,“毅力号”传回了通过避险摄像机拍摄的第一张火星表面景象。这次,“毅力号”的主要任务是——寻找古代生命的迹象,并收集火星岩石和土壤样本带回地球研究。


值得一提的是,配合“毅力号”完成探测任务的“机智号”无人机搭载的是骁龙 801 处理器。没错,就是那个用在手机上的骁龙 801。当年,小米 4 用的就是这款芯片。


此外,这也是人类第一次在火星上运行 Linux 系统。“毅力号”上的无人机“机智号”实际上是通过 Linux 操作系统控制的。不止如此,NASA 还把这个专门为火星无人机开发的 Linux 飞行控制系统开源了!


这就是毅力号在火星表面拍摄的第一张图像:


火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空




“恐怖 7 分钟”艰难着陆


2020 年 7 月 30 日,耗资 24 亿美元的毅力号从美国佛罗里达州的卡纳维拉尔角太空部队站发射升空,带着收集火星样本的任务迈出了火星探索的第一步。


美国宇航局科学副主任托马斯说,“毅力号是从火星带回岩石的第一步,我们不知道这些来自火星的原始样本会告诉我们什么,但无疑是非常重要的,甚至可能包括曾经存在于地球之外的生命。”


火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空


毅力号进入下降阶段时,以大约 20000 km/h 的速度飞行,尽管火星的气氛很稀薄,但它仍将给毅力号带来极大的阻力。进入火星大气层大约 80 秒钟之内,航空器外壳外部的温度将达到 1300 摄氏度。


约四分钟后,毅力号的“降落伞”展开,保护性航空器外壳脱落。当毅力号下降到火星表面上方约 4 公里时,它将激活其地形导航系统。


410 秒后(将近 7 分钟),毅力号终于在火星成功着陆。与 2018 年 8 月的“好奇号”火星车非常相似,它也在着陆时经历了类似的“恐怖 7 分钟”。


火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空




火星表面首次有直升机起飞


毅力号首次将直升机带上了火星,机智号火星无人机将在火星表面飞起几英尺的高度,并在毅力号火星车的周围盘旋,收集图像信息。这将是直升机在火星极薄的大气层中首次实现动力飞行。


火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空


机智号无人机仅重 1.8 公斤,通过顶部安装的 4 个碳纤维螺旋桨提供动力,每分钟转速为 2400 转,功率为 350 瓦。为了配合毅力号的探测任务,它要面对许多挑战。


要知道,实现直升机在火星上飞行是有很大难度的。一方面火星的稀薄大气使得难以获得足够的升力。另一方面由于火星大气层的密度比地球密度低 99%,直升机的旋转叶片也要做的更大,并且转速要非常快才能起飞。


火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空




机智号采用骁龙 801 处理器,带着 Linux 系统上火星


由于太空探索对硬件设备的稳定性要求极高,很多设备都采用了已经在地面运行了多年的处理器,机智号也是如此。但值得注意的是,机智号这次没有采用商业级别的处理器,而是用于手机的民用处理器。这是因为,机智号被 NASA 视为一项“技术演示”,因此愿意接受更多风险,于是采用了民用的骁龙 801 处理器。


火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空


此外,由于毅力号的任务对信息的收集和处理要求极高,需要捕捉图像、分析特征,并以 30 赫兹的频率从一帧到另一帧跟踪它们。以往已经使用多年的商业级处理器已无法达到标准。而骁龙 801 的本质是一款手机处理器,而且它的主板非常小。它的功能远比其他火星车上的处理器多得多,拥有更强大的计算力。


除了手机处理器,机智号还带来了一个惊喜,将 Linux 带上了火星。


这是人类第一次在火星上使用 Linux 飞行控制系统,据 NASA 介绍,机智号使用的软件框架是JPL 为立方体卫星和仪器开发的,并在几年前就开源了。也就是说,任何人都能使用这个在火星直升机上的软件框架,并将它用在你自己的项目上。




将开源进行到底,火星无人机代码已全部公开


F Prime 是火星无人机“机智号”的飞行软件框架,目前已在 GitHub 上全部公开!


F Prime 是为机智号量身定制的一个组件驱动的框架,可以快速开发和部署太空飞行及其他嵌入式软件应用程序。


那么,有了这些公开的代码,我们是不是也能下载机智号同款代码搞个火星无人机出来了呢?


火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空


NASA 开源的 F Prime 提供了一个完整的开发生态系统,包括建模工具、测试工具和地面数据系统。开发人员使用建模工具编写高级规范,自动使用 C ++ 生成实现,并使用特定领域的代码填充实现。框架和代码生成器提供 F Prime 部署所需的所有样板代码,包括用于线程管理的代码,用于组件之间通信的代码以及用于处理命令,遥测和参数的代码。测试工具和地面数据系统简化了在工作站和实验室中的飞行硬件上的软件测试。


此外,F Prime 还实现了以下几个关键功能:


1.可重用性:基于组件的体系结构可实现高度的模块化和软件重用。

2.可移植性:F Prime 在从微控制器到多核计算机的多种处理器以及多种操作系统上运行,将其移植到新的操作系统非常简单。

3.高性能:采用点对点架构,最大程度地减少了计算资源的使用,非常适合较小的处理器。

4.量身定制,可满足小型任务所需的复杂程度,不仅易于使用,还能同时仍支持多种任务。

5.可分析性:类型化的端口连接为编译时的正确性提供了有力的保证。




快速安装指南


前提条件:


  • cmake
  • git
  • Python 3.5+ with pip


安装这些实用程序后,即可安装 F Prime Python 依赖项。在 Python 虚拟环境中安装依赖项可以防止系统级问题,但是不需要在虚拟环境中进行安装。
要快速安装 F Prime,请输入:
火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空




太空冒险迈上新台阶,“移民火星”不是梦


毅力号将在火星完成一系列高度复杂的任务,为人类探索古代生物信息和火星土壤研究提供有力支持。随着毅力号一起登陆火星的机智号也为人类的太空事业迈上了一个更高的台阶。
与此同时,中国的“天问一号”火星车也即将今年 5 月登陆火星。人类的太空冒险仍在继续,也许“移民火星”在未来的某一天真的将不止是梦想,而真正照进现实。
参考链接:

  • https://spectrum.ieee.org/automaton/aerospace/robotic-exploration/nasa-designed-perseverance-helicopter-rover-fly-autonomously-mars

  • https://www.futurezone.de/science/article216775269/Der-Mars-Hubschrauber-funktioniert-die-NASA-hats-bewiesen.html


GitHub 地址:https://github.com/nasa/fprime





火星无人机全部代码公开!毅力号带着手机芯片和 Linux 系统上太空


上一篇:CSP2019-D1T2 括号树 题解


下一篇:2019各省省选试题选做