soword科技言
永久公益免费API接口
提供永久免费的API接口,查看更多API接口,如果您有其他免费API资源,请联系我们,造福人类。
提供商务开发:小程序,系统,APP
定制开发,免费评估,免费咨询,价格便宜,售后保障,前往开发服务中心联系开发客服中心
使用开源软件在火星上飞行

美国东部时间周一凌晨3点31分发生了一个小奇迹。Ingenuity,一架美国宇航局的小型直升机,成为第一架在另一颗行星火星上飞行的动力飞机。这个工程壮举是用Linux,开源软件,美国宇航局根据https://www.jpl.nasa.gov/“target=”\u blank“rel=”noopener noreferrer nofollow“data component=”externalLink“>喷气推进实验室(JPL)开源(发音为F框架。

在距离地球11光分钟的地方,这并不是一件容易的事。诚然,火星的引力只有地球的三分之一,但火星的大气层密度只有地球空气的百分之一。

事实上,创造力纯粹是一种技术展示。它不是为了支持“坚忍不拔”任务而设计的,这项任务是寻找远古生命的迹象,收集岩石和泥土样本,以便日后返回地球。它的任务是展示使用商用现货(COTS)硬件和开源软件在火星上飞行的可能性https://github.com/“target=”\u blank“rel=”noopener noreferrer nofollow“data component=”externalLink“>GitHub首席执行官纳特•弗里德曼(Nat Friedman)和他的团队以及JPL的Ingenuity团队仔细研究了这个问题直升机的代码,发现“几乎GitHub上的12000名开发者通过开源为Ingenuity的软件做出了贡献。然而,就像https://youtu.be/sGC2rwOiaWc?t=240“target=”\u blank“rel=”noopener noreferrer nofollow“data component=”externalLink“>黑洞的第一张图像,大多数开发者甚至不知道他们帮助实现了火星直升机的首次飞行。”

他们现在就知道了。弗里德曼写道:“今天,我们想让看不见的东西看得见。所以,我们与JPL合作,在GitHub上为Ingenuity使用的任何开源项目和库的特定版本。

开发者列表由JPL创建,为GitHub提供Ingenuity使用的每个开源项目的每个版本的综合列表。GitHub可以识别所有参与这些项目的贡献者及其依赖关系。

一些获奖者,比如Linux的创造者Linus Torvalds,是著名的开发人员。还有许多人默默无闻地工作,但现在他们的工作得到了承认。正如GitHub的开发人员关系高级主管martinwoodward所解释的:“许多获得徽章的人可能不知道他们的软件被用来驾驶另一架直升机行星。我们希望确保每个人都能因他们对人类这一不可思议的成就所做的贡献而得到认可。”

伍德沃德继续说道:“我们发现,这是一个相互依赖的层次结构。一个项目可能有10个或更少的依赖项,但它们会从那里爬行出来,每个依赖项都依赖于其他东西。在你意识到这一点之前,你已经有了一大批为一个项目做出贡献的人。”

虽然在这种情况下,结果是非同寻常的,但今天几乎所有的发布软件都依赖于开源组件。Python的核心贡献者carolwilling补充道:“就像把一颗鹅卵石扔进湖里一样,你的小贡献会产生更大的影响。这是开源的魅力之一,其他人可以拿走你的好作品,让它变得更加强大和有意义。”

对于许多贡献者来说,看到他们的抽象作品变成一架在火星上飞行的小型直升机这样有形的东西,真是太好了在花了大量时间修复和维护bug之后,听到Python所支持的所有很酷的东西让人耳目一新,”Benjamin Peterson说,另一个核心Python维护者和Python兼容性库的创建者https://github.com/benjaminp/six“target=”\u blank“rel=”noopener noreferrer nofollow“data component=”externalLink“>六个

GitHub不认识程序员。该公司还向其他开源贡献者提供了信贷。例如,Python核心团队成员Mariatta Wijaya主要关注社区管理、文档和构建工作流工具,以帮助Python团队发挥作用并保持代码可用。”仅仅创建pull请求是不够的我们仍然需要审查代码、记录更改,并与社区合作来决定构建什么和如何构建。”

JPL开发人员长期以来一直在使用开源项目,并为之做出贡献。但是,有了F',JPL第一次启动了自己的开源项目。这是因为,据喷气推进实验室(JPL)的小型飞行软件组主管杰夫·列文森(Jeff Levison)说,喷气推进实验室的飞行软件在美国宇航局之外几乎没有应用程序。”“这在以前没有什么意义,因为我们的软件与定制硬件紧密结合,”莱维森解释说向公众发布它并没有真正的驾驶需求或好处。”

但事实并非如此。JPL嵌入式飞行软件工程师timothycanham解释说,直升机的程序是po由高通公司的Snapdragon 801以2.2GHz的频率运行。

虽然这听起来慢得让人痛苦,但它的速度远远快于火星探测器的处理器。这是因为NASA级cpu和芯片必须符合NASA的高性能航天计算(HPSC)辐射标准。这些定制的处理器需要经过多年的设计工作和测试才能通过太空飞行认证。例如,美国宇航局最新的通用处理器是ARMA53的变种,你可能知道从树莓皮3。然而,作为一个演示项目,机智可以使用更普通、更现代的CPU。

飞行控制软件本身的运行频率为500Hz。“那是赫兹,不是兆赫,”坎汉姆向ZDNet解释道。飞行软件“用于控制飞行硬件并每秒读取500次传感器,以保持直升机稳定。”事实上,坎汉姆解释说:“我们从SparkFun(电子)公司订购了部件。这是商用硬件,但我们会测试它,如果它运行良好,我们会使用它。”显然,正如我们今天上午看到的,它确实如此。

JPL在2013年开发了F'的第一个版本。这个想法是为各种各样的太空飞行项目创建一个可重用的软件框架,可以适应几乎任何硬件、目的或目的地。

F'标志着喷气推进实验室工作方式的转变,喷气推进实验室的火星直升机操作负责人蒂莫西·坎汉姆解释道。从历史上看,JPL的软件很难重新调整用途。它通常包含嵌入在其代码中的特定于上下文的功能。为了广泛的可重用性,F′必须是模块化的,而不是定制的。例如,该框架并不假设工程师会使用某个特定品牌的车载摄像头,或者任何摄像头。例如,如果需要拍照,可以根据需要添加或删除特定组件和功能。这同样适用于任何传感器或硬件仪器。

F'并不意味着一个盒子里的航天器系统,坎汉姆解释道。它更像一个初学者工具包。有一个地面控制系统可以向设备发送命令,一个序列器可以运行这些命令,还有一个组件可以将响应发送回地面控制。虽然有一个标准的组件库,但您需要编写大量自己的软件。

很快就发现,F´不仅在JPL内部可重用,而且在JPL外部也可重用。CubeSats是一种小型卫星,采用现成的商用硬件制造,通常部署在近地轨道(LEO)上,目前正得到广泛应用。”卡内基梅隆大学和其他组织的老师们都想把它用于他们自己的CubeSat项目我们最终意识到,对我们来说,开放源代码比让人们经历漫长的软件许可过程要容易得多。“团队仔细研究了代码,以确保没有任何商业秘密或受国际条约控制的技术,并在2017年7月根据Apache许可证发布了它。”,所有这些项目都使他们能够巧妙地飞向火星稀薄的粉红色天空。但是当Mirantis跨平台提供一致的Kubernetes体验

Canonical的迷你Kubernetes,MicroK8s,已经针对Raspberry Pi进行了优化