¿El equipo de Voyager usa un contenedor (Fortran (77?) a Python) para transmitir los comandos actuales?

Supongo que la gran mayoría de las personas que crearon el software para estas misiones ahora están jubiladas (los "jubilados espaciales" de la misión Voyager).

Pero en los últimos 40 años de desarrollo progresivo, los lenguajes de programación han avanzado mucho. Una vez, el equipo de Voyager tenía más de 200 empleados, ahora hay 8 (aquí hay un artículo de audio muy bueno sobre el equipo de Voyager, aquí hay un resumen ).

Después de todo, las dos sondas estaban programadas con Fortran y Assembler. En las propias sondas espaciales, los antiguos procesadores de General Electric hacen su trabajo. Se tienen que conformar con 64 kilobytes de memoria ( esta entrevista explica que son 64 kB, no menos como afirman algunos).

DE FORTRAN A PYTHON

Curiosamente, hay un contenedor de Fortran en Python ( más información ). ¿Es esta o una solución similar utilizada por el equipo de Voyager?

Sin duda, sería una posibilidad adaptar la fuente de envejecimiento en consecuencia. Si el equipo de Voyager usa Fortran 77, o C, o un envoltorio para ambos, no pude ver eso todavía. Allí, la información simplemente sigue siendo demasiado esponjosa.

Debería ser posible: la pregunta es ¿por qué lo harías? F77 es un lenguaje fácil de aprender y trabajar (siempre y cuando los autores originales del código no usaran cosas como GOTO asignados y calculados de FORTRAN anteriores), en mi humilde opinión, mucho más fácil que Python.
Ciertamente no soy un experto en esto, pero soy un ingeniero de software. Sospecharía que la necesidad de llamar a un módulo Fortran desde el código Python sería algo necesario en tierra, no en el espacio. Dudo que la nave espacial esté ejecutando Python. ¿Por qué? Tal vez para permitir la prueba unitaria del código Fortran, con todas las ventajas que vienen con Python disponibles para su uso. O bien, podría haber rutinas en Fortran para procesar datos de naves espaciales, y es más fácil usarlas sin modificar, pero luego aprovechar las bibliotecas de Python disponibles para el procesamiento. Solo una suposición, TBH, sin embargo...
¿Quién reclama menos de 64 kB? Wikipedia parece reclamar más : 32 kpalabras de 16 a 18 bits por palabra.

Respuestas (3)

En 2015, se retiró el último ingeniero original de la Voyager que seguía en el proyecto . La NASA especificó que su reemplazo tendría que saber FORTRAN.

El software se actualizó regularmente después del lanzamiento:

La última revisión verdadera del software fue en 1990, después del encuentro con Neptuno en 1989 y al comienzo de la misión interestelar. "El software de vuelo se reescribió básicamente por completo para tener una nave espacial que pudiera ser casi autónoma y continuar enviándonos datos incluso si perdiéramos la comunicación con ella".

La configuración de la nave espacial cambia con regularidad: se apagan los instrumentos para reducir los requisitos de energía y ambas naves espaciales pasan de usar sus propulsores de control de actitud a sus propulsores de maniobra de corrección de trayectoria . No sé si estos cambios implican código nuevo, o si se hacen simplemente subiendo archivos de configuración. Sospecho que hay cambios de código involucrados (debido a la pequeña cantidad de memoria disponible).

Los nuevos lenguajes de programación introducirían nuevos riesgos y requerirían pruebas exhaustivas. Sería más barato seguir usando Fortran en lugar de crear un nuevo entorno de construcción.

Ciertamente un aspecto, pero la pregunta también sobre el ahorro de equipos y la adaptación con respecto al uso económico de los recursos, ¿debe uno también tomar caminos modernos? ¿Adaptáis el desarrollo? ¿Y qué procesos y posibilidades hay?
Otros problemas que hablan de la programación nativa en Fortran serían/podrían ser: el rendimiento (¿un código de Python convertido a Fortran tiene el mismo rendimiento que el Fortran escrito de forma nativa) y la capacidad de inspección (¿qué tan bien se traduce Python a Fortran? ¿Podrían las personas inspeccionar completamente el Fortran? código resultante de la conversión?)
@DohnJoe No creo que nadie proponga transcompilar ningún código de Python a Fortran para este propósito. (Sin duda, eso también es posible hoy en día, pero los lenguajes dinámicos como Python son un punto de partida bastante malo para esto, especialmente si desea garantías de rendimiento estrictas). Según entendí la pregunta, solo se trataba de usar un contenedor de (estándar, interpretado ) Python en torno a las rutinas de Fortran existentes, para facilitar la creación de scripts de nivel superior sin cambiar nada sobre el código de bajo nivel crítico para el rendimiento. Ese es un enfoque que tiene mucho sentido en muchas aplicaciones.
"El software de vuelo fue básicamente reescrito por completo", ¡debe haber sido una implementación bastante aterradora! Nadie quiere ser el tipo que bloqueó la sonda Voyager...

Las naves espaciales Voyager ya no se reprograman, por lo que el idioma en el que se programan es en gran medida irrelevante.

El enlace ascendente es de solo 16 bits/segundo, lo suficiente para enviar comandos (simples). Cómo se generan estos comandos es irrelevante para la nave espacial. Teóricamente, cualquier lenguaje que pueda generar una secuencia de bits es suficiente.

Este documento pdf describe en la p. 11 detalló bastante cómo se emiten los comandos a la nave espacial Voyager mediante el envío de comandos discretos. Sin embargo, también describe cómo se pueden transmitir los comandos a los subsistemas, y no me queda del todo claro si dichos subsistemas se pueden reprogramar. En todo caso, en la pág. 18 establece que el programa central en el CCS (Computer Command Subsystem) no se modifica durante la misión.

Dicho esto: Fortran todavía se usa y desarrolla activamente (el último estándar es de 2018), por lo que mantener una fuente base de Fortran definitivamente no es imposible incluso después de 40 años, por lo que no es difícil imaginar que solo usan el mismo software de estación terrestre. como entonces.

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .

No trabajé en la Voyager, pero puedo decirles que las misiones en el espacio profundo tienden a conservar el hardware, el software, el lenguaje y el entorno de construcción originales en tierra, tanto por razones de continuidad/seguridad como de presupuesto. Puede haber poca o ninguna financiación para continuar la misión; incluso puede recaer en voluntarios absolutos. Es asombroso y triste para mí cuánto dependemos de esta dinámica para la administración a largo plazo, y las personas que lo hacen son verdaderos héroes.

Una persona a la que me complace poder saludar, porque ya es de conocimiento público, es Larry Kellogg, quien se esforzó por mantenerse en contacto con Pioneer 10. Me encontré con él en NASA Ames en a finales de los 90, y me sorprendió cuando me di cuenta de lo que estaba logrando: http://lkellogg.vttoth.com/LarryRussellKellogg/

En el caso de Voyager, cualquier financiamiento restante u otros recursos que lleguen se gastarían mejor haciendo exactamente lo mismo. Si alguien quiere trabajar en ello lo suficiente, se tomará el tiempo para aprender las idiosincrasias de la nave espacial; el idioma normalmente no es el factor de activación.

solo para su información, mencioné y mencioné su enlace en una actualización de ¿ Por qué el repentino (aparentemente) interés de la NASA en los motores híbridos Wax? ¿Qué propiedad es tan atractiva ahora?