El cohete SpaceX se lanzó con éxito, un artículo para comprender la pila de tecnología de software utilizada

(Destaca esas cosas sobre programadores)

Original: esas cosas sobre los programadores (id: iProgrammer)

¿Hay zapatos para niños que estuvieran viendo la transmisión en vivo esta mañana?

A las 3:22 am del 31 de mayo, hora de Beijing, la NASA y SpaceX cooperaron, y el cohete Falcon 9 despegó sin problemas. Esta es la primera vez que SpaceX utiliza la nave espacial Crew Dragon para enviar dos astronautas a la órbita terrestre. La nave espacial Dragon está persiguiendo actualmente a la Estación Espacial Internacional y se espera que intente atracar con la Estación Espacial Internacional en 19 horas.

(El cohete Falcon 9 despegó)

Algunos internautas bromearon: "Todos los que venden autos eléctricos están lanzando cohetes".

Puede haber programadores (incluyéndome a mí) interesados ​​en la pila de tecnología utilizada por los ingenieros de SpaceX. Entonces busqué información pública relevante.

Finalmente descubrió que en 2013, el ingeniero de software de SpaceX hizo una respuesta pública en Reddit, respondiendo preguntas de los internautas.

1. ¿Qué está haciendo el equipo de ingenieros de software de SpaceX?

Hay dos objetivos para los ingenieros de software de SpaceX:

  • Código que se ejecuta en cohetes y naves espaciales;

  • Códigos para el proceso de diseño y fabricación de cohetes y naves espaciales;

El alcance del trabajo es muy amplio, desde aplicaciones web a gran escala hasta pequeñas plataformas informáticas integradas.

Pila de tecnología de los ingenieros de software de SpaceX:

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

  • Javascript 、 Knockout 、 Manillares 、 MENOS ;

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

Al ver esto, alguien debe haber hecho preguntas. C # y MVC no están relacionados con el lanzamiento de cohetes, ¿verdad?

Bueno, no importa, se utilizan para desarrollar sistemas de información internos.

SpaceX tiene 4 equipos de software independientes.

1. Equipo de software de vuelo

Hay alrededor de 35 personas (este es el número en 2013). Todos los códigos del cohete Falcon 9, el cohete Grasshopper y la nave espacial Dragon fueron empaquetados por el equipo de software de vuelo.

Además, deben:

  • Escriba software de simulación y código de vuelo de prueba;

  • Compilar software de comunicación y análisis implementado en la estación terrestre;

  • Trabajar en el departamento de control de misiones de vuelo para brindar apoyo a las misiones activas.

2. Equipo del sistema de información empresarial

Cree un sistema de software interno para permitir que Spacex funcione.

Los miembros de este equipo tienen múltiples roles, pero el producto estrella que desarrollan y lanzan es una aplicación web interna que casi todos los empleados de SpaceX están usando.

incluir:

  • Las personas que crean órdenes de compra y completan el inventario de piezas,

  • Los ingenieros crean diseños y órdenes de trabajo,

  • Los técnicos se registran en el lugar y verifican el contenido del trabajo del día en base a estos diseños.

  • (Básicamente, todos los aspectos están involucrados. Hay algunos productos comerciales en el mercado que pueden satisfacer sus necesidades, pero SpaceX lo desarrolló por sí mismo)

SpaceX se está transformando de una empresa de investigación e ingeniería a una empresa de fabricación, y el equipo es indispensable. Hacen un uso completo de C # / MVC4 / EF / SQL, Javascript / Knockout / Handlebars / LESS y REST API.

3. Equipo de software de tierra

El equipo tiene unas 9 personas. Codificado principalmente en LabVIEW para desarrollar GUI para misión y control de lanzamiento para ingenieros y operadores para monitorear la telemetría de aeronaves y comandar cohetes, naves espaciales y equipos de soporte de plataformas.

Impulsan datos de gran ancho de banda en un sistema altamente distribuido e implementan interfaces de usuario complejas que son estrictamente necesarias para garantizar que los operadores puedan controlar y evaluar la nave espacial a tiempo.

¿Qué es LabVIEW?

LabVIEW (Inglés: Laboratorio Virtual Instrumentation Engineering Workbench) es una plataforma de compilación de programas gráficos desarrollada por National Instruments. Fue inventada por Jeff Kodosky. El programa se publicó por primera vez en Apple Computer en 1986.

LabVIEW fue diseñado para el control automático de instrumentos en los primeros días, y se ha transformado en un lenguaje de programación maduro de alto nivel, ampliamente utilizado en el campo de la automatización industrial.

La diferencia entre los programas gráficos y los lenguajes de programación tradicionales es que el flujo del programa utiliza el concepto de "flujo de datos" para romper el modo de pensamiento tradicional, lo que permite al programador completar el programa mientras concibe el diagrama de flujo. - Wikipedia

4. Equipo de pruebas de aviónica

Trabajan con ingenieros de diseño de hardware de aviónica para escribir software de prueba para encontrar problemas de hardware lo antes posible.

La principal tarea del equipo: escribir un software muy completo y potente, para poder encontrar automáticamente problemas de hardware en grandes cantidades.

El software de prueba generalmente se ejecuta durante la prueba del entorno mecánico.

2. Los ingenieros de SpaceX responden a las preguntas de los internautas

P: ¿Qué sistema operativo se utiliza para el sistema de control de navegación / propulsión?

Respuesta: Dragon Spacecraft y Falcon 9 usan Linux.

P: ¿Cuál es el lenguaje de programación principal?

Respuesta: Tanto el cohete como la nave espacial son C ++.

[Explicación]: Puede haber preguntas sobre los zapatos para niños. La pila de tecnología mencionada en el artículo anterior mencionaba Python. ¿Por qué no dice dónde se usa? Cuando el equipo de pruebas realizó pruebas automatizadas, debe haber usado scripts de Python.

P: ¿Cuál es la mayor cantidad de código de proyecto actual?

Respuesta: El código del vehículo es de varios cientos de miles de líneas.

P: ¿El mantenimiento es problemático?

Respuesta: No hay problema, ¡este es nuestro trabajo! De hecho, estamos muy satisfechos con el código base.

P: ¿Cuál es su proyecto más desafiante? ¿por qué?

Respuesta: El acoplamiento de la nave espacial Dragon con la Estación Espacial Internacional es un gran desafío. Porque se debe desarrollar mucho código nuevo.

(Adiciones del programador: la nave espacial Dragon lanzada con éxito hoy puede completar automáticamente el acoplamiento con la estación espacial. La nave espacial Dragon de primera generación requiere el uso de un brazo robótico en la estación espacial. Por supuesto, la nave espacial Dragon tripulada también conserva la opción de acoplamiento manual. SpaceX En 2013, la nave espacial dragón es la primera generación, no lo comprobé ) .

P: ¿Qué crees que es el más logrado?

Respuesta: La nave espacial Dragon se acopla a la Estación Espacial Internacional.

P: ¿Cómo equilibras el trabajo y la vida? Escuché que el agotamiento laboral es fácil en SpaceX. ¿Están todos sufriendo?

Respuesta: SpaceX encarna la mentalidad de las pequeñas empresas. Todos invertimos en SpaceX y su éxito. Dicho esto, nuestras horas de trabajo son más largas. En última instancia, depende de lo que sea más importante en tu vida. Por supuesto que tenemos que lidiar con el agotamiento laboral, y eso son las vacaciones :-).

Personalmente, la mayoría de las veces ni siquiera me doy cuenta de que he estado trabajando durante 12 a 14 horas. Miré el reloj y pensé "¿Dónde está el tiempo realmente rápido?". Creo que esto demuestra lo emocionados que estamos con el proyecto. Cuando realmente disfruta de su trabajo, no se siente como si estuviera trabajando. Habiendo dicho eso, todavía tomo vacaciones de vez en cuando para mantenerme cuerdo.

(Adicional para programadores: verifiqué la información de contratación de SpaceX. Muchos puestos técnicos básicamente tienen un requisito adicional: puedes trabajar horas extras cuando sea necesario  ) .

También hay un zapato de niño que estaba estudiando para obtener una licenciatura en astrofísica preguntó:

Para la industria aeroespacial, ¿cuál cree que es el lenguaje de programación más utilizado / más útil? Tengo muy poca experiencia en programación y realmente quiero comenzar a aprender, porque cada aspecto / investigación en esta industria parece requerir una cierta comprensión de la programación.

Respuesta de los ingenieros de SpaceX:

Para todos los ingenieros de software, el lenguaje C es un buen lenguaje de entrada. Te obliga a aprender cómo funciona la CPU, cómo funciona la memoria, etc. Una vez que haya dominado el lenguaje C, mire C ++.

Todos los miembros de nuestro equipo tienen diferentes orígenes y no hay un camino especial, todos caminamos aquí por el mismo camino. Personalmente, la mejor experiencia que tengo en la escuela es hacer proyectos de programación personal. En estos días, hay muchas oportunidades en las tiendas en línea y de aplicaciones para hacer un producto y hacer público su trabajo para que otros lo vean.


Finalmente, se adjunta un video: una animación que muestra cómo la nave espacial SpaceX Dragon envía astronautas a la Estación Espacial Internacional.

(Video transferido desde Tencent Space)

Lectura recomendada Haga clic en el título para saltar

¿Qué sistema operativo hay generalmente en un avión?

El avión Boeing 777 es impulsado por lenguaje Ada

Presta atención a la estrella de "cosas del programador", no te pierdas el círculo

Dentro del círculo, estoy mirando ❤️

Supongo que te gusta

Origin blog.csdn.net/P5dEyT322JACS/article/details/106464145
Recomendado
Clasificación