El desarrollo de software y procesamiento de imágenes son tareas claves para la industria espacial. Nuestro país está pisando fuerte en estas áreas, tal como se observó con la reciente puesta en órbita de satélites de comunicaciones de datos y el desarrollo de sistemas de navegación propios, con tecnología de punta que no tiene nada que envidiar a cualquier otra agencia espacial extranjera. Durante esta publicación compartimos el valioso testimonio de tres graduados en Ciencias de la Computación del DC, quienes comentan sobre la formación fundamental necesaria para trabajar en este tipo de industrias.
Cada vez que la tecnología forma parte de hitos históricos de la humanidad, nos preguntamos sobre las condiciones que posibilitaron estos logros, que llevaron años de trabajo y la intervención de diferentes disciplinas y generaciones en ciencias. Lo vimos en los recientes lanzamientos de los satélites argentinos de observación de la tierra, SAOCOM, pero también en los primeros desarrollos de nano satélites nacionales. También nos enorgullece cuando encontramos casos de investigadores y técnicos argentinos trabajando en centros de desarrollo de primer nivel, que lideran las principales misiones al espacio.
En ese entrecruzamiento de potencialidades se encuentran las Ciencias de la Computación, como una de las formaciones requeridas para poder desempeñarse en proyectos de la industria aeroespacial. Algunas de las áreas más comunes donde se aplican en forma directa estos conocimientos informáticos son:
- Desarrollo e ingeniería de software: cada uno de los satélites y dispositivos de navegación tiene un software atrás que lo controla. Estos programas, que son de misión crítica, necesitan tener una corrección absoluta y carecer de errores (ya que están en juego vidas humanas y bienes de alto costo) así como también requieren consumir la menor cantidad de recursos. En este marco, la tarea de la ingeniería de software para supervisar la calidad de los programas, es clave.
- Sistemas de navegación autónoma: el funcionamiento, en particular de los satélites que se ponen en órbita, tiene que ser totalmente autónomo. En este contexto, el desarrollo de sistemas de navegación que aprendan automáticamente del entorno y lo hagan con precisión (para que el hardware no falle), teniendo en cuenta condiciones de gravedad, radiación y rango de temperaturas, vuelve la tarea altamente compleja.
- Simulación computacional: el modelado y la simulación computacional de las misiones que se llevan a cabo permite predecir escenarios con diferentes variables y reducir el riesgo de que el proyecto no llegue a buen puerto. Además, la simulación ayuda a comprender sistemas físicos y/o naturales que por sus características no admiten una experimentación directa.
- Procesamiento de imágenes satelitales y espectrales: el análisis y procesamiento de las imágenes obtenidas, a través de técnicas de visión por computadora, ayudan a ampliar o bien duplicar la visión humana y generar patrones significativos sobre aquellas variables a observar. En el caso de los satélites argentinos, las imágenes de teledetección óptica y sensores brindan información importantísima para la medición de la humedad del suelo y aplicaciones en emergencias, tales como detección de derrames de hidrocarburos en el mar y seguimiento de la cobertura de agua durante inundaciones.
Para saber mucho más sobre el estrecho vínculo entre Computación e industria aeroespacial conversamos con 3 graduados destacados, que acreditan diversa experiencia en estos temas.
Juan Vuletich trabajó como especialista en procesamiento de imágenes en Satellogic (2011-2018). Tuvo a su cargo el software de procesamiento de imágenes y el sistema óptico para una nueva cámara hiperespectral de los satélites de esta firma argentina, que construyó los dos primeros nano satélites nacionales y que se convirtió en el primer proveedor comercial de datos hiperespectrales (ver nota anterior del DC).
Pedro Varangot, por su parte, lideró el equipo de ingeniería óptica de Satellogic. Además estuvo a cargo de la ingeniería de sistemas de carga, prototipos y simulación de sistemas de control, procesamiento de señales, arquitectura de software e implementación de los desarrollos alcanzados. Trabajó en la empresa desde 2012 a 2018.
Mariano Moscato es investigador permanente del National Institute of Aerospace, un instituto vinculado directamente con el centro de investigación Langley de NASA en Virginia, Estados Unidos. El equipo de métodos formales de dicho centro de investigación lleva más de treinta años aplicando técnicas de demostración semiautomática de teoremas a la verificación de sistemas críticos en aeronáutica. El doctorado realizado por Moscato en el DC, estuvo directamente relacionado con estos temas.
¿Qué aportes les brindó su formación para poder trabajar en la industria aeroespacial o investigar en un centro de primer nivel?
Juan Vuletich (JV): Estudiar en Exactas me ayudó a organizar proyectos complejos y a entender cómo funciona la investigación científica. Haber cursado Métodos Numéricos y Procesamiento de Imágenes me dio la base teórica para los proyectos que desarrollé en la industria aeroespacial. Las materias de programación son fundamentales para cualquier proyecto que incluya software. Me resultó de utilidad haber estudiado Electrónica en la secundaria. Pero en esta industria hay mucho trabajo interdisciplinario (colaboración con ingenieros mecánicos, ingenieros en electrónica y físicos). Tuve que estudiar mucho de óptica y sensores, por mi cuenta, así como estudiar en detalle las condiciones de operación de un satélite en órbita. Y tuve que profundizar en temas específicos de imágenes satelitales.
Pedro Varangot (PV): Apliqué bastante de lo que aprendí en las materias de Algoritmos y en Ingeniería del Software 1, creo que son muy buenas materias para aprender a programar. En mis roles en la industria es también importante saber de Sistemas Operativos y microcontroladores o diseño de circuitos o digital. Tengo una copia de «Sistemas Operativos» de Tanenbaum que me compré cuando tenía 15 o 16 [años] y cuando me mudé a Estados Unidos es uno de los pocos libros que traje porque tengo una conexión emocional. Acá no trabajo en aeroespacial porque sin ciudadanía es difícil, pero trabajo en software embebido. Lo otro importante que apliqué trabajando en aeroespacial, para simulación y para algoritmos de control y procesamiento de señales, es saber un poco de ecuaciones diferenciales y señales y sistemas. Mucho de esto lo aprendí por mi cuenta.
Mariano Moscato (MM): En mi doctorado, que realicé en el DC, estuve utilizando las mismas técnicas y herramientas que se venían usando activamente por el equipo de métodos formales de NASA Langley. Mi director de doctorado, Marcelo Frías, fue quien sirvió de nexo para conectarme con los investigadores de este centro. El National Institute of Aerospace es una de las organizaciones que emplea a extranjeros para trabajar en NASA Langley, ya que por reglamentación interna sólo pueden contratar ciudadanos estadounidenses. Un aspecto adicional es que en la materia de Algoritmos 1, en la que fui docente, diseñamos junto a Azul López un material audiovisual para exponer a estudiantes sobre la importancia de demostrar la corrección de programas (aplicado a lo que son los métodos formales de la NASA).
¿Podrían destacar algunos proyectos en los que han trabajado en el ámbito aeroespacial?
JV: El primer proyecto en Satellogic fue determinar qué características generales tenía que tener un satélite que pudiera capturar imágenes como las deseadas. Hice el análisis de factibilidad para una cámara con un telescopio mucho más pequeño (y económico y liviano) que cualquier satélite comparable. Para esto, además de estudiar óptica y sensores, tuve que bosquejar el tipo de procesamiento de imágenes que íbamos a poder hacer, para «exprimir» al máximo lo que un telescopio tan chico podía entregar. Otros proyectos importantes fueron el de hacer todo el software de captura para un pequeño Cubesat, diseñé y programé un rectificador de imágenes. En este proyecto, el más ambicioso de todos, era necesario que el procesamiento pueda hacerse en tiempo real, a 200 millones de píxeles por segundo, en una cpu/gpu de bajo consumo (y baja performance). Todo esto, por supuesto, con garantías formales (demostradas) de precisión geométrica y de los valores de luminosidad medidos. También trabajé en la reconstrucción de imágenes hiperespectrales a partir de una secuencia de imágenes crudas, tomadas a medida que el satélite sobrevuela el terreno, con una cámara especial donde cada fila de píxeles captura una longitud de onda de luz distinta. Y desarrollé una forma de hacer mediciones de performance óptica del telescopio, en condiciones de vuelo.
PV: Los primeros años trabajé mucho en elegir sensores, actuadores y algoritmos de control para los satélites. Este trabajo se llama Ingeniería en Sistemas en la industria de la ingeniería y si me baso en lo que aprendí en la facultad te diría que no sabía que existía. Para hacer eso hicimos simuladores y prototipos en software y también bastantes experimentos donde juntamos datos y los procesamos. También con ayuda de ingenieros ópticos o aeroespaciales trabajé implementando software de control o de medición. Yo era también responsable por el sistema completo y más adelante responsable por el equipo en un rol de liderazgo.
MM: Mi tema de investigación son los métodos formales aplicados a la ingeniería de software, en particular a la verificación y validación de sistemas. Más en detalle, nuestro equipo se ocupa de desarrollar y aplicar técnicas y herramientas que permitan alcanzar un alto nivel de confiabilidad en el análisis de corrección de sistemas críticos como controladores de tráfico aéreo, sistemas de navegación automática, sistemas de geolocalización, etc.
¿Qué desafíos consideran que tiene esta industria respecto a otras?
JV: En general, algunas condiciones especiales de la industria aeroespacial incluyen: Una falla de hardware, por tonta que sea, significa perder el satélite. No es posible ir a repararlo; tampoco es posible ir a rebootearlo, o quitarle la energía y volverlo a encender; una falla en la actualización de software también podría significar perder el satélite; el funcionamiento tiene que ser totalmente autónomo; y el funcionamiento en vacío, la falta de gravedad, y la radiación ponen restricciones fuertes al hardware. El posible rango de temperaturas de trabajo de las distintas partes, también.
En particular, hablando de procesamiento de imágenes, las imágenes producidas son en realidad mediciones. Por eso, no alcanza con que se vean bonitas. Para cada valor de cada pixel de cada imagen tenemos que poder saber a qué punto en la superficie de la tierra corresponde, y con qué error de geolocalización. Para los valores medidos, tenemos que saber qué están midiendo, qué error tienen, qué estadística de ruido, qué posible error por efecto atmosférico, etc. En general, son más importantes la ingeniería y la física, que los gustos del usuario.
PV: Los desafíos más grandes en aeroespacial para mí tienen que ver con el hecho de que probar las cosas en un escenario realista es muy caro. Muchos sistemas del satélite no funcionan si no estás en órbita o funcionan de manera diferente. Tenés que usar simulación o diseñar el software o los experimentos con mucho cuidado para poder probar todo.
MM: Los desafíos de esta industria, desde el punto de vista del análisis de software, están directamente relacionados con el desarrollo de técnicas que permitan determinar fehacientemente un correcto comportamiento de sistemas críticos tanto en tierra como a bordo de las aeronaves. Estos sistemas se llaman críticos debido a que de su correcto funcionamiento dependen bienes de alto costo y hasta vidas humanas.
Por último, ¿qué le recomendarían a alguien que estudie Computación y que quiera trabajar en temas relacionados con la industria aeroespacial? ¿En qué temas de la carrera creen que debería profundizar para poder hacerlo?
JV: Que le dé para adelante, es un campo apasionante y no se van a aburrir nunca. Más en concreto, que estudien en todo detalle Métodos Numéricos. Procesamiento de Imágenes puede ser útil incluso para quienes trabajen en otras áreas, como sistemas de control. Y por afuera de los contenidos de la carrera, es bueno entender la física involucrada. Esto es bastante distinto en, por ejemplo, aviones y satélites.
En las materias que ya tenemos, como Métodos Numéricos y Procesamiento de Señales / Imágenes, podrían incluirse ejercicios relacionados directamente con problemas reales de la industria. Eso facilitaría hacer el salto a la industria.
En cuanto a los temas para profundizar estaría bueno que hubiera materias nuevas sobre simulación numérica de sistemas físicos (órbitas, aerodinámica, óptica, sensores, mecánica, etc). Esto incluiría conocimientos de Física, por supuesto, y también ejemplos y ejercicios de la industria. Tendrían que ser materias especialmente prácticas, no limitadas a la teoría.
PV: Del lado del software lo que es ingeniera del software, testing, diseño. Hay muchos roles de software «normal» en la industria, como todo lo que corre en las computadoras en tierra o simuladores. Creo que eso no es lo que se imagina la gente cuando piensa en trabajar en aeroespacial igual, sino más el lado de software embebido.
Para trabajar en embebido es importante tener una base sólida en lo que se aprende en las materias de Organización del Computador y Sistemas Operativos. Aunque para un rol «junior» con saber programar tipo como se aprende en Algo 1 y 2 alcanza. Al empezar en un rol junior hay que tener en cuenta que la industria se mueve más lento porque hay que diseñar y construir hardware, y cambiar de empresa es más difícil porque seguro cambies de «framework».
Lo más importante es tener la voluntad de ir más allá de lo que ves en las materias y hacer optativas con mucha práctica con hardware, algo donde programes un SO desde 0 para aprender los fundamentos, y después co-diseño con GPU/FPGA que es el tipo de computadora de aplicación que me parece uno va a encontrar dando vueltas en la industria de hardware ahora. Tener un mini laboratorio en casa ayuda, y hoy en día no es muy caro.
MM: Las Ciencias de la Computación aportan a la industria aeroespacial desde diversos enfoques. Temas como por ejemplo inteligencia artificial, robótica, cómputo intensivo en simulación de sistemas complejos, sistemas de comunicación, son sólo algunos ejemplos. En particular, en mi campo de investigación, son imprescindibles los temas que se ven en la carrera desde materias iniciales como las tres materias de Algoritmos, Métodos Numéricos, y temas más avanzados que se comienzan a ver en las Ingeniería de Software y optativas relacionadas con el análisis formal de sistemas de software y hardware. Actualmente me encuentro co-dirigiendo una tesis de licenciatura en el DC, centrada en los temas de mi línea de investigación. Hay también diversos temas disponibles para posibles interesados.
Las historias de estos tres egresados en Ciencias de la Computación, evidencian que la carrera brinda los fundamentos para poder trabajar en cualquier industria que requiera conocimientos y capacidades de alto valor agregado. No obstante, la curiosidad, exploración de otras temáticas y ganas de formarse complementariamente a la carrera, para adquirir experiencia en nuevas técnicas, resultan un plus, especialmente en una industria tan desafiante y compleja como la aeroespacial.
Tal como se relata en las entrevistas, en lo que hace a sistemas críticos como satélites, aviones, robótica espacial y navegación autónoma, la Computación y el Software están jugando un rol cada vez más preponderante. Al mismo tiempo, la Computación tiene un carácter inherentemente interdisciplinario lo que permite que alguien que estudia esta carrera pueda desempeñarse en cualquier campo del conocimiento.
Nuestro país necesita más muchos más egresados y egresadas para cubrir estos puestos de alto valor agregado de conocimiento.