【导语】: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)为立方体卫星和仪器开发的,几年前我们把它开源了。

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

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

开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

能上天的代码? NASA 火星无人机飞行控制系统开源了相关推荐

  1. 火星无人机「机智号」代码开源,1.2w人参与贡献

    视学算法报道 作者:小舟.陈萍 火星上的一小步,人类的一大步. 当地时间 19 日 NASA 宣布在毅力号的「注视」下,机智号(Ingenuity)无人直升机成功完成了火星上的首次飞行,并完成 3 米 ...

  2. openmv集成应用_使用OpenMV引导无人机飞行

    无人机调试,飞控硬件定制.固件修改,日志分析,请QQ联系:3500985284 一.添加测试程序 由于这里添加了新的硬件外设,无法直接进行软件仿真,所以我们需要先编写一些代码,模拟出OpenMV发送数 ...

  3. ubuntu 应用程序菜单_Ubuntu智能手机,塔式无人机飞行控制应用程序等

    ubuntu 应用程序菜单 在本周的开源新闻摘要中,我们介绍了新的Ubuntu智能手机,塔式无人机飞行控制应用程序,农民获得了开源等等! 开源新闻让您阅读愉快. 2015年2月7日至13日 Canon ...

  4. 多旋翼无人机仿真 rotors_simulator:用键盘控制无人机飞行

    多旋翼无人机仿真 rotors_simulator:用键盘控制无人机飞行 前言 书接上文 接口测试 键盘指令发布 指令转换与发布 修改 rotors_simulator 的控制接口节点 测试 前言 R ...

  5. 中小学招生强化就近入学;首次全女性太空行走取消;苹果付费新闻APP奔溃;NASA火星上发现鹅卵石;这就是今天的大新闻...

    今天是3月27日 农历二月廿一 今天星期三 有点闷已经开始用空调了 下面是今天的大新闻 中小学招生强化就近入学 (北京商报)中小学秋季入学新生招生已经陆续开始,近日,教育部办公厅也紧随其后,印发了&l ...

  6. 大疆无人机飞行+摄影测量航测不完全教程

    指北 前言 大疆无人机飞行 DJI GO 4 大疆无人机航测 Pix4Dcapture DJI GS Pro 异常情况处理 参考文献 前言 研一入门之后就一直在给老师的摄影测量课带实习,网上倒是挺多飞 ...

  7. 无人机基础知识:多旋翼无人机飞行原理及飞行模式

    无人机基础知识:多旋翼无人机飞行原理及飞行模式 力的来源 飞行原理 横滚运动 俯仰运动 偏航运动 升降运动 无人机的控制模式 纯手动模式 姿态模式 定高模式 悬停模式 其它模式 在此篇博客分析了 无人 ...

  8. 无人机服务器通信协议软件设计,无人机飞行管控系统及其数据处理软件设计

    摘要: 无人机遥感在数字城市建设.重大灾害救灾中拥有着较大优势,并且已经发挥了不可替代的作用.然而其发展中却存在一些问题,本文综合无人机遥感整个作业过程中遇到的这些问题,利用了目前一些现有的方法,同时 ...

  9. 无人机飞行控制实验平台

    无人机在研制过程中需要不断地进行飞行测试,而测试的过程不是万无一失的,飞行过程中发生任何错误都有可能会导致无人机的损毁或破坏,更严重地甚至会造成外界伤害. 基于此我们推出了无人机的三旋转自由度 (3- ...

  10. 基于Cesium的无人机飞行模拟

    点击查看:基于Cesium的无人机飞行模拟 2.安装 2.1 安装node.js环境. 2.2 下载离线地图包. 2.3 在sourceConfig.js中配置离线地图地址. 2.4 在cesium- ...

最新文章

  1. 知识库建设的5个步骤
  2. [Manifest]关于sharedUserIdsharedUserLabel
  3. Codeforces Round #297 (Div. 2)D. Arthur and Walls 搜索bfs
  4. 分享大麦UWP版本开发历程-03.GridView或ListView 滚动底部自动加载后续数据
  5. 制作空镜像与一个run的共享文件错误解决
  6. 图像增强之对比度拉伸
  7. 操作 Docker 容器
  8. 蓝桥杯第七届国赛JAVA真题----机器人塔
  9. npm设置和取消代理的方法
  10. 上海二手房8月排名:链家、悟空找房、中原、太平洋、我爱我家、易居、房天下、iwjw、房多多、房好多、q房网、、、...
  11. MapGISnbsp;K9nbsp;SP3amp;nb…
  12. DHU数据结构-顺序表- ADT应用-找匹配
  13. java工作了7年很迷茫,一个5年Java程序员的年终总结,献给还在迷茫中的你
  14. 00 后搞视频号月入过万,怎么做?
  15. 【形式化学习笔记】1:Event-B相继式(Sequent)和推理规则(Inference Rule)
  16. 中小型超市系统中的分类/产品属性/扩展属性的数据库设计
  17. PyTorch之—卷积层、激活层、BN
  18. 【转载】html转义字符
  19. ADS1.2 Error:(Fatal) L6002u:could not open file C:/...
  20. 移动互联网时代的新特点

热门文章

  1. 嵌入式软件工程师总结(1)
  2. Django开发收银系统二
  3. 计算机控制系统直流电机闭环调速实验,直流电机闭环调速控制系统
  4. matlab直流电机pid调速仿真,直流电机双闭环PID调速系统仿真设计
  5. 不可逆调速matlab,双闭环不可逆直流调速系统课程设计(matlab仿真设计)
  6. VMware Fusion FOR MAC使用教程
  7. windows清理_10款欧美流行的Windows清理软件
  8. 软著申请详细图文步骤(附模板)
  9. UG NX 12.0入门
  10. 数车计算机编程教学caxa,caxa数控车视频教程软件编程全套2016/2015