查看原文
其他

能上天的 C++ 代码? NASA 火星无人机飞行控制系统开源了

The following article is from 开源前哨 Author 小秋

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

简介

最近美国“毅力号”火星车成功登陆火星,配合它完成探测任务的“机智号”无人机搭载的是“骁龙801”处理器,并且“机智号”实际上是通过 Linux 操作系统控制的,这是人类第一次在火星上运行 Linux。

机智号

值得一提的是,多年前 NASA 把这个专门为火星无人机开发的飞行控制系统开源了,它就是本文的主角:F Prime

F´(F Prime)是一个组件驱动的框架,可以快速开发和部署太空飞行及其他嵌入式软件应用程序。 现已成功部署在多种太空应用中,它是为小规模航天系统量身定制的,但是也完全可以使用在其他嵌入式系统开发中。

“毅力号”和“机智号”模拟示意图

包括以下几个内容:

  • 将飞行软件分解为具有定义良好的接口
  • 提供消息队列和线程等核心功能的C++框架
  • 提供自动生成代码的建模工具
  • 丰富可用的组件集合
  • 用于在单元和集成测试飞行软件的测试工具

项目地址:

https://github.com/nasa/fprime

简单使用

的安装要求环境中有以下工具:

  • cmake
  • git
  • Python 3.5+

执行以下命令即可完成安装:

git clone https://github.com/nasa/fprime.git
cd fprime
pip install --upgrade wheel setuptools pip
pip install Fw/Python Gds/

带有两个示例部署,其中一个向我们展示了束河在树莓派上运行F´,如何通过交叉编译,驱动程序等在嵌入式中入门;同时也提供了相关教程,以帮助我们理解框架,教程涵盖了基本的组件创建,系统和拓扑设计,工具等。详细的示例和教程参考官网。

具有以下几个特性:

  • 可重用性。基于组件的体系结构可实现高度的模块化和软件重用。
  • 快速开发。F´提供了一个完整的开发生态系统,包括建模工具,测试工具和地面数据系统。开发人员可以使用建模工具编写规范,并自动生成实现。框架和代码生成器提供F´部署所需的所有样板代码,包括线程管理的代码,组件通信的代码以及处理命令,遥测和参数的代码。
  • 可移植性。F´可以从微控制器运行到多核计算机的多种处理器以及多种操作系统上运行。移植到新的操作系统很简单。
  • 高性能。采用点对点架构,减少了计算资源的使用,非常适合较小的处理器。
  • 可适应性。F´是根据小型任务所需的复杂性程度定制的,使得它易于使用。
  • 可分析性。类型化的端口连接提供了强大的编译时正确性保证。

结语

NASA 工程师在接受 IEEE 采访时表示:

这是我们第一次在火星上使用 Linux。机智号是在 Linux 操作系统上运行的。它使用的软件框架是我们在喷气推进实验室(JPL)为立方体卫星和仪器开发的,几年前我们把它开源了。

所以,大家可以得到一个在火星直升机上飞行的软件框架,并且用在自己的项目上。这是一种开源的胜利!

所以有了这个开源项目,是不是意味着我们也有可能造出一架可以上天的无人机?感兴趣的童鞋,快来学一下吧。


- EOF -


推荐阅读  点击标题可跳转

1、连续 3 天霸榜狂增 9500 Star,1 秒钟就可以在 VS Code 中阅读 GitHub 代码

2、一款号称最适合程序员的编程字体

3、CTO:再写 if-else,逮着罚款 1000!


觉得本文有帮助?请分享给更多人

推荐关注「算法爱好者」,修炼编程内功

点赞和在看就是最大的支持❤️

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存