SpaceX rocket launched successfully, one article to understand the software technology stack used

(Star those things about programmers)

Original: those things about programmers (id: iProgrammer)

Are there any children's shoes that were watching the live broadcast this morning?

At 3:22 am on May 31st, Beijing time, NASA and SpaceX cooperated, and the Falcon 9 rocket lifted off smoothly. This is the first time that SpaceX has used the Crew Dragon spacecraft to send two astronauts into Earth orbit. The Dragon spacecraft is currently chasing the International Space Station and is expected to attempt to dock with the International Space Station in 19 hours.

(Falcon 9 rocket lifts off)

Some netizens joked, "Everyone selling electric cars is launching rockets."

There may be programmers (including myself) interested in the technology stack used by SpaceX engineers. So I searched for relevant public information.

Finally found that in 2013, the software engineer of SpaceX made a public response on Reddit, answering questions from netizens.

1. What is the SpaceX software engineer team doing

There are two goals for SpaceX software engineers:

  • Code running on rockets and spacecraft;

  • Codes for the design and manufacturing process of rockets and spacecraft;

The scope of work is very large, ranging from large-scale Web applications to small embedded computing platforms.

Technology stack of SpaceX software engineers:

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

  • Javascript、Knockout、Handlebars、LESS;

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

Seeing this, someone must have asked questions. C# and MVC are not related to rocket launch, right?

Well, it doesn't matter, they are used to develop internal information systems.

SpaceX has 4 independent software teams.

1. Flight software team

There are about 35 people (this is the number in 2013). All the codes on the Falcon 9 rocket, the Grasshopper rocket and the Dragon spacecraft were packaged by the flight software team.

In addition, they have to:

  • Write simulation software and test flight code;

  • Compile communication and analysis software deployed on the ground station;

  • Work in the flight mission control department to provide support for active missions.

2. Enterprise Information System Team

Build an internal software system to allow Spacex to operate.

The members of this team hold multiple roles, but the flagship product they develop and release is an internal web application that almost all SpaceX employees are using.

include:

  • The people who create purchase orders and fill in parts inventory,

  • Engineers create designs and work orders,

  • The technicians check in on the spot and check the work content of the day based on these designs.

  • (Basically all aspects are involved. There are some commercial products on the market that can meet their needs, but SpaceX developed it by itself)

SpaceX is transforming from a research and engineering company to a manufacturing company, and the team is indispensable. They make full use of C#/MVC4/EF/SQL, Javascript/Knockout/Handlebars/LESS and REST API.

3. Ground software team

The team has about 9 people. It is mainly coded in LabVIEW to develop a GUI for mission and launch control for engineers and operators to monitor aircraft telemetry and command rockets, spacecraft and platform support equipment.

They push high-bandwidth data in a highly distributed system, and implement complex user interfaces that are strictly required to ensure that operators can control and evaluate the spacecraft in time.

What is LabVIEW?

LabVIEW (English: Laboratory Virtual Instrumentation Engineering Workbench) is a graphical program compilation platform developed by National Instruments. It was invented by Jeff Kodosky. The program was first published on Apple Computer in 1986.

LabVIEW was designed for the automatic control of instruments in the early days, and it has been transformed into a mature high-level programming language. It is widely used in the field of industrial automation.

The difference between graphical programs and traditional programming languages ​​is that the program flow uses the concept of "data flow" to break the traditional thinking mode, allowing the programmer to complete the program while conceiving the flowchart. -- Wikipedia

4. Avionics test team

They work with avionics hardware design engineers to write test software to find hardware problems as early as possible.

The main task of the team: to write a very comprehensive and powerful software to be able to automatically find hardware problems in large quantities.

The test software is usually run during the mechanical environment test.

2. SpaceX engineers answer questions from netizens

Q: Which operating system is used for the navigation/propulsion control system?

Answer: The Dragon Spacecraft and Falcon 9 use Linux.

Q: Which is the main programming language?

Answer: Both the rocket and the spacecraft are C++.

[Description]: There may be questions about children's shoes. The technology stack mentioned in the previous article mentioned Python, but why didn't it say where it was used. When the testing team did automated testing, they must have used Python scripts.

Q: What is your current largest project code amount?

Answer: The vehicle code is about several hundred thousand lines.

Q: Is maintenance troublesome?

Answer: No trouble, this is our job! In fact, we are very satisfied with the code base.

Q: What is your most challenging project? why?

Answer: Dragon spacecraft docking with the International Space Station is a major challenge. Because a lot of new code must be developed.

(Additions from the programmer: The Dragon spacecraft successfully launched today can automatically complete docking with the space station. The first-generation Dragon spacecraft requires the use of a robotic arm on the space station. Of course, the manned dragon spacecraft also retains the option of manual docking. SpaceX In 2013, the dragon spacecraft is the first generation, I did not check. )

Q: What do you think is the most accomplished?

Answer: The Dragon Spacecraft docks with the International Space Station.

Q: How do you balance work/life? I heard that job burnout is easy at SpaceX. Are you all suffering?

Answer: SpaceX embodies the mentality of small businesses. We all invest in SpaceX and its success. Having said that, our working hours are longer. In the final analysis, it depends on what is most important in your life. Of course we have to deal with job burnout, and that is vacation :-).

Personally, most of the time I don’t even notice that I have been working for 12 to 14 hours. I looked at the clock and thought "Where is the time really fast?". I think this proves how excited we are about the project. When you really enjoy your work, it doesn't feel like you are working. Having said that, I still take vacations from time to time to stay sane.

(Additional information for programmers: I checked the recruitment information of SpaceX. Many technical positions basically have an additional requirement: you can work overtime when necessary.  )

There is also a child's shoe who was studying for a degree in astrophysics at the time asked:

For the aerospace industry, what do you think is the most commonly used/ most useful programming language? I have very little programming experience and I really want to start learning, because every aspect/research in this industry seems to require a certain understanding of programming.

Response from SpaceX engineers:

For all software engineers, the C language is a good entry language. It forces you to learn how the CPU works, how the memory works, and so on. Once you have mastered the C language, look at C++.

All of our team members have different backgrounds and there is no special path. We all walked here along the same path. Personally, the best experience I got in school is to do personal programming projects. These days, there are many opportunities in the online and application stores to make a product and make your work public for others to see.


Finally, a video is attached: an animation showing how the SpaceX Dragon spacecraft sends astronauts to the International Space Station

(Video transferred from Tencent Space)

Recommended reading Click the title to jump

What operating system is generally on an airplane?

Boeing 777 aircraft is driven by Ada language

Pay attention to "the programmer's things" star, don't miss the circle

Inside the circle, I'm watching ❤️

Guess you like

Origin blog.csdn.net/P5dEyT322JACS/article/details/106464145