控制猎鹰火箭的软件怎么开发,SpaceX软件团队告诉你

 马斯克的SpaceX十年来第一次实现了美国本土的载人航天发射,是美国的航天英雄。火箭的飞控软件非常复杂,龙飞船的交互界面第一次使用触摸屏,这些都是软件团队完成的工作,是如何实现的呢?

SpaceX的软件团队在Reddit上进行了一次问答活动,向大家阐述了如何完成这些工作。


开发猎鹰火箭和龙飞船最常用的编程语言是什么

程序员们经常争论哪种语言是最好的编程语言,那火箭的软件是使用什么语言编写的呢?

龙飞船的软件设计负责人,Josh Sulkin:

“所有应用程序级自主软件都是用C ++编写的。


我们通常使用C ++的面向对象编程技术,我们使用了开放的源代码库,主要是标准C ++库,还有一些其他库。但是,我们将开放源代码库的使用限制为仅高质量的库,并且在可行时常常会选择开发自己的库,以便我们可以自己控制代码质量。

在错误处理方面,有很多不同的方面。通过拥有多台冗余计算机并对其输出进行投票,可以处理计算机中由辐射引起的错误。通过使用多个不同的传感器来处理传感器中的错误。数据传输中的错误通过使用附加到有效负载的错误检测或错误纠正代码来处理。”


龙飞船的显示界面是怎么实现的

龙飞船的显示界面是航天飞船第一次使用触控面板,让人印象深刻,它是怎么实现的呢?

SpaceX的软件团队:

“我们使用Chromium,和SpaceX开发的库完成了龙飞船的显示界面,我们绝对希望分享龙飞船显示器的一些高分辨率屏幕截图。我们将看看是否能获得此批准。


在为龙飞船开发和测试软件时遇到的最奇怪的错误是什么

编程中总会出现各种奇怪的问题,SpaceX遇到了些什么?


此次载人飞行的软件负责人,John Dietrick:

“对于特定的问题,我不能过多介绍,但是内核错误绝对是最“有趣”和令人难忘的。我们的大多数控制软件都是单线程的,以避免同步问题可能带来的不确定性,但是在任何给定时间,OS中当然都会发生很多事情。我们已经做了很多努力,将Linux变成可靠的实时控制平台,其确定性比您在台式机操作系统中看到的要高得多。

如在其他地方提到的,我们使用CONFIG_PREEMPT_RT补丁,这是一个巨大的帮助。但是即使如此,在早期的开发中,有时我们仍会发现该系统的实时性能不如我们期望的那样,挖掘这些问题始终是一种冒险。”

相关产品

评论