SpaceX火箭发射成功,一文了解所用的软件技术栈

2020-06-01 13:10:31


北京时间5月31日22点30分,经由大约19个小时的航行后,SpaceX载人龙飞船与国际空间站实现成功对接。


载人龙飞船属于SpaceX研制的第二代龙飞船(Dragon 2),具备可反复使用的能力。第二代龙飞船可分为载人龙飞船和货运龙飞船两种,其前身是第一代货运龙飞船(Dragon 1)。新飞船能够主动与空间站完成对接,而不像第一代飞船那样,需要借助空间站上的机械臂的匡助。当然,载人龙飞船也保留了人工对接的选项。


本次使用的载人龙飞船,直径4米,高8.1米,最多可搭载7位宇航员,这与航天飞机搭载的宇航员数量沟通,也与中国5月5日测试的“新一代载人飞船”设计上可以搭载的宇航员数量沟通。


猎鹰9号火箭升空


SpaceX成功了,其发射成本仅不到美、中、俄国度队的十分之一,单凭这一项,我们就值得为SpaceX点赞,更应该向该团队学点什么。


要知道,昨天SpaceX的仿真场景还发生了爆炸,此刻天天主保佑成功得以发射成功。列位也知道,SpaceX的CEO马斯克在创立企业以来,可谓历经上百次灾祸:财务危机,董事会逼宫,员工去职,离婚以及外界各色人等的冷嘲热讽。


此刻天的事实让所有的人张开了眼睛,闭上了嘴。往前倒三年,Space X三次一连发射失败时,媒体问马斯克为何没考虑本身炒鱿鱼走人。马斯克斩钉截铁地回覆:“Never(决不)。我不知道什么叫抛却,除非我被困住或许死去。”,一如丘吉尔。


而SpaceX也是马斯克的第一个非互联网项目。其做为法式员、工程师,曾成功建立了Zip2、X.com/Paypal、特斯拉,SolarCity/The Boring、OpenAI公司和机构。


马斯克是一个超卓的缔造者,有着不凡的远见卓见和能力。马斯克本人非常用功,经常每周工作80个小时以上,他也要求他的工程师们和本身一般疯狂工作。


马斯克和我们一般,是从一名法式员起头做起。他12岁起头进修Basic说话,并行使编程能力..贴补家用。马斯克的毅力在昔时使令他三天学完了编程,如今使令他将对科技驱动将来的愿景酿成了实际。


或许我们能够从马斯克上进修到立异,务实,敢拼并布满斗志和毅力。


而SpaceX做为老马的第一个非互联网项目,在这些“高精尖”的产物身上都用了哪些软件和手艺呢,我们从GDC 2015/2016与各类SpaceX工程师的商议中一探事实。



一、SpaceX 软件工程师团队的职责


Falcon 9具有3个双核x86处理器,每个核上都运行Linux实例。而SpaceX软件斥地团队为Falcon9,Grasshopper和Dragon应用斥地软件,即让这些焦点..可以正常工作。此团队还负责编写仿真软件;测试航行代码;还要斥地布置在地面站中的通信和剖析软件,还有义务掌握范畴方面的工作,用来支撑正在进行的义务。


SpaceX 软件工程师的方针有 2 个:


  • 火箭和航天器上运行的代码;

  • 火箭和航天器的设计和制造过程的代码;


工作内容局限就很大了,从大型 Web 应用到小型嵌入式较量..都有涉及。


SpaceX 软件工程师的手艺栈:


  • C#、MVC4、EF、MSSQL (REST);

  • Javascript、Knockout、Handlebars、LESS;

  • C++、Linux、C、Python、LabVIEW、MATLAB;


看到这,一定有人冒出疑问了,C# 和 MVC 与火箭发射没有关系吧?



是的没紧要,这是做个汇总它们是用来斥地内部信息系统的。SpaceX中,首选的编程说话是C / C ++。对于AVR,Arduino和ARM之类的硬件,其斥地也首要使用C/C ++。


SpaceX 有 4 个自力的软件团队。


1、航行软件团队


大约有 35 人(这是 2013 年的人数)。猎鹰9号火箭、蚱蜢火箭和龙飞船上所有的代码,都由航行软件团队包圆了。


此外,这些团队成员还要做:


  • 编写仿真软件,测试航行代码;

  • 编写布置在地面站的通信和剖析软件;

  • 在航行义务掌握部门工作,为现役义务供应支撑。


2、企业信息系统团队


竖立内部软件系统,让 Spacex 得以正常运转。


在内部软件团队中的成员要身兼多职,但他们斥地和发布的旗舰产物,几乎所有 SpaceX 员工都在使用的内部 Web 应用法式。


包罗:

  • 建立采购订单和填写零件库存的人员,

  • 工程师建立设计和工作订单,

  • 手艺人员在现场打卡并凭据这些设计查察当天的工作内容。

  • (根基涉及到方方面面了。市面上有一些贸易化产物能够知足他们的需求,但 SpaceX 是本身斥地了)


SpaceX 正在从一个研究和工程公司转型为一个制造公司,该团队功弗成没。他们充裕行使了C#/MVC4/EF/SQL、Javascript/Knockout/Handlebars/LESS ,使用REST API对接。


3、地面软件团队


这个团队大约有 9 人。首要在 LabVIEW 中编码,斥地用于义务和发射掌握的 GUI,供工程师和把持人员监控航行器遥测和批示火箭、航天器和..支撑设备。


他们在高度分布式系统中推送高带宽的数据,并实现由严厉要求的复杂用户界面,以确保把持人员可以实时掌握和评估航天器。


LabVIEW 是什么?

LabVIEW(英语:Laboratory Virtual Instrumentation Engineering Workbench)是由美国国度仪器公司所斥地的图形化法式编译..,由杰夫·考度斯基(Jeff Kodosky)发现,法式最初于 1986 年在苹果电脑上揭橥。


LabVIEW 早期是为了仪器主动掌握所设计,至今改变成为一种逐渐成熟的高级编程说话,今朝普遍的被应用于工业主动化之范畴上。


图形化法式与传统编程说话之分歧点在于法式流程采用"数据流"之概念打破传统之脑筋模式,使得法式设计者在流程图构想完毕的同时也完成了法式的编写。—— ..


4、航电测试团队


他们与航电硬件设计工程师一路合作,编写测试软件,尽早发现硬件问题。


该团队的首要义务:写出非常周全和壮大的软件,以便可以在多量量的情形下主动发现硬件的问题。


测试软件平日是在机械情况测试的时候运行。




二、SpaceX 工程师答网友问


问:导航/推进掌握系统用了哪种把持系统?

答:龙飞船和猎鹰9号用的是 Linux。



问:主力编程说话是哪个?

答:火箭和飞船都是 C++。


【解说】:或者有童鞋要问,前文手艺栈栈提到了 Python,怎么没有说用在哪方面。测试团队做主动化测试时,一定用了 Python 剧本了。


问:你们当前最大的项目代码量是几多?

答:运载对象代码约为几十万行。


问:维护麻烦吗?

答:不麻烦,这就是我们的工作!实际上,我们对代码库非常写意。


问:你们最具挑战性的项目是什么?为什么?

答:龙飞船对接国际空间站是一个重大挑战。因为必需要斥地很多新代码。


(法式员的那些事 增补:今天成功发射的龙飞船,能够主动与空间站完成对接。第一代龙飞船需要借助空间站上的机械臂。当然,载人龙飞船也保留了人工对接的选项。SpaceX 在 2013 年的龙飞船是第几代,我没查。


问:你们感觉最有成就的是什么?

答:龙飞船对接国际空间站。



问:你们怎么均衡工作/生活?我据说在 SpaceX 很轻易职业倦怠。你们都在煎熬吗?


答:SpaceX 施展了小型企业的心态。我们全都投资于 SpaceX 及其成功。话虽如斯,我们的工作时间却更长。归根结底,照样要看你生活中最主要的是什么。我们当然要应对职业倦怠,那就是休假 :-)。


就我小我来说,大多数时候我甚至没有注重到我已经工作了12~14个小时。我看着时钟,想着“时间真快在哪里?”。我认为这证实了我们对项目感应兴奋的水平。当你真正享受本身的工作时,并不会感受像是在工作。话虽如斯,我仍然会时不时地休假,借以连结理智。



( SpaceX 的雇用信息,好多手艺岗位,根基都有一个额外要求:需要的时候,能加班。



还有个昔时正在攻读天体物理学的学位的童鞋问:


对于航天行业,你们感觉最常用/最有效的编程说话是什么?我的编程经验非常少,并且很想起头进修,因为这个行业的每一个方面/研究似乎都需要对编程有必然的认识。


SpaceX 工程师的复原说:


对于所有软件工程师来说,C 说话是一门很好的入门说话。它迫使你进修 CPU 是若何工作的,内存是若何工作的,等等。一旦你把握了 C 说话之后,再去看 C++。


我们团队所有人都有分歧的配景,没有什么稀奇的路径,我们都是沿着一条路走到这里的。就我小我而言,我在学校里获得的最好经验就是做了小我编程项目。这年头在网上和应用市肆里有好多机会,能够做一个产物,公开本身的作品让他人看到。


动画演示 SpaceX 龙飞船若何送宇航员去国际空间站


与依旧火热的互联网创业比起来,Space X死板而无味,甚至布满着弗成实际的想象,相信马斯克在这个阶段性的胜利后,Space X的团队和马斯克依旧持续践行那句“鄙俗不堪”的宣言:make the world better。


编纂:叨叨

起原:综合自Reddit,StackExchange以及法式员那点事,一并申谢。


点击展开全文
相关推荐
本站文章来自网友的提交收录,版权归原作者所有,