lunes, mayo 03, 2021

Ingenuity & F prime: El vuelo del primer drone en Marte se hará con Linux

Desde hace unas semanas no se para de hablar de las nuevas misiones de la NASA en Marte, y yo quiero hacerlo también, reflexionando un poco sobre la importancia del código y, en concreto, del Software Libre en estas misiones. No hace mucho, nuestros compañeros y amigos Rafael Troncoso y Fran Ramírez nos contaron una microhistoria que explicaba como Don Eyles tuvo que hackear el código del Apolo 14 para salvar la misión. Así, en caliente haciendo un ataque de deception.

Figura 1: Igenuity & F prime. El vuelo del primer
drone en Marte se hará sobre Linux

En el caso de las misiones de la NASA de hoy en día, hace apenas unos días pudimos ver como el Rover Perseverance aterrizaba con éxito sobre Marte tras cruzar su atmóssfera a más de 19.000 kilómetros por hora. Junto a este avanzado laboratorio a distancia también ha viajado su pequeño acompañante, el Ingenuity, un pequeño drone (con forma de helicóptero) de apenas 1,8 kilos y que se ha convertido en el primer vehículo en sobrevolar la superficie del planeta rojo.

Figura 2: Libro Microhistorias: Anécdotas y curiosidades de la historia
de la informática (y los hackers) de Rafael Troncoso y
Fran Ramírez publicado en 0xWord

Volar un drone puede parecer una tarea relativamente sencilla, sin embargo, todo se complica cuando el drone se encuentra a más de 54 Millones de Kilómetros de la Tierra, donde la atmósfera tiene una centésima parte de la densidad de la atmósfera terrestre y la gravedad es considerablemente menor, ya es es aproximadamente un tercio de la gravedad terrestre.

Volar de manera controlada el Ingenuity será posible gracias a Linux y , un programa desarrollado por el JPL (Jet Propulsion Laboratory) de la NASA. De hecho, no habrá nadie pilotando el pequeño “helicóptero” ya que el pilotaje en tiempo real es totalmente inviable, volará de forma autónoma. 

Figura 3: Rover Perseverance y su drone Ingenuity.

Este pequeño drone tiene como misión realizar algunos vuelos de apenas 90 segundos y tomar fotos y videos de la superficie del planeta marciano, por desgracia su ciclo de vida operativa estimado es de tan solo 30 días, ya que después se quedará sin batería y se apagará. Esto se debe a que el Ingenuity cuenta con un procesador Qualcomm Snapdragon 801, un procesador ARM de 4 núcleos que corre a 2.2 Ghz, lo que puede parecer bastante anticuado.

Sin embargo, solo el procesador es más potente que el propio Perseverance. Sin toda esta potencia sería imposible alcanzar una capacidad de cómputo suficiente como para volar en unas condiciones tan exigentes como las de la atmósfera marciana ni utilizar el sensor de 13 Megapíxeles para tomar instantáneas.


Figura 4: Vídeo trailer de Ingenuity

Es importante tener en cuenta que, aunque nuestros smartphones actuales cuenten con procesadores y sensores de cámara muchísimo más potentes, su viabilidad para una misión en el espacio es prácticamente nula, ya sea por consumo energético o que no estén preparados para aguantar las condiciones de otro planeta. 

Uno de los mayores proyectos de la NASA durante los últimos años es el HPSC (High Performance Spaceflight Computing). Este proyecto se dedica a preparar y mejorar elementos electrónicos como chips o procesadores para aguantar las altas radiaciones, reducir los consumos energéticos y aumentar hasta en 100 veces su capacidad de cómputo. El ultimo procesador escogido por la NASA para llevar a cabo estas mejoras es un ARM A53, una variante que podemos encontrar en la Raspberry Pi 3. Lo realmente revolucionario de este proyecto es que ha sido desarrollado con base Linux, de hecho, la NASA publicó F´ como Open Source hace años y está al alcance de cualquiera que quiera utilizarlo para sus proyectos.


Los ingenieros del JPL han utilizado componentes cuya eficacia ya ha sido demostrada en otros dispositivos como en el caso del Snapdragon 801, que se ha utilizado anteriormente en smartphones como el Samsung Galaxy S5 y que se puede obtener fácilmente en varias tiendas de Internet. Con estos componentes y la ayuda de Linux el pequeño helicóptero autónomo es capaz de mantener un vuelo estable realizando 500 comprobaciones de sus sensores por segundo.

Figura 6: Ingenuity antes de ser desplegado por el Rover Perseverance.  

F´ o F Prime es un entorno por componentes que permite una rápida implementación y desarrollo de vuelos espaciales y otras aplicaciones de software integradas. No es la primera vez que se ha utilizado este software con aplicaciones espaciales, desde que se liberó se ha utilizado habitualmente en proyectos como el desarrollo de pequeños satélites como los CubeSat o SmallSat.

Figura 7: Actividades realizadas en el vuelo de prueba del Ingenuity.

Timothy Canham, ingeniero de software trabajando para el JLP de la NASA dijo textualmente en una entrevista:

 “Esta es la primera vez que vamos a volar con Linux en Marte. De hecho, estamos utilizando un sistema operativo de Linux. El marco de software que estamos usando es uno que desarrollamos en el JPL para CubeSats e instrumentos, y lo liberamos hace un par de años. 
 
Por lo tanto, es posible obtener el software con el que está volando el helicóptero en Marte y utilizarlo en tu propio proyecto. Es una especie de victoria para el Open Source porque estamos volando con un sistema operativo y un marco de software de vuelo de código abierto y piezas comerciales que puedes comprar si quieres realizar un proyecto similar algún día.”

Lo que ha convertido en un gran éxito para esta misión ha sido que cuenta con una arquitectura capaz de descomponer el software de vuelo en componentes discretos con interfaces definidas, una estructura en C++ que ofrece varias funciones básicas como el uso de hilos de mensajes, herramientas de modelado para especificar conexiones y componentes y que también permiten generar código automáticamente y varias herramientas para realizar comprobaciones y correcciones instantáneas durante el vuelo, lo que es un maravilla para los makers y hackers que usan los drones como herramienta de trabajo en sus proyectos.

Figura 8: Libro "Hacking con Drones: Love is in the air" en 0xWord
escrito por David Meléndez Cano a.k.a. TaiksonTexas

El primer vuelo del Ingenuity se ha convertido en un acontecimiento histórico tanto para la historia del Software Libre como para la historia de la exploración de Marte. Sin embargo, esta no es la primera vez que la NASA utiliza Linux y software con licencias Open Source. Desde hace años, incluso antes de que se hablase de software libre, la NASA ya compartía de forma gratuita gran parte del código que utilizaba en sus misiones a través del programa COSMIC
Actualmente hay más de 500 proyectos de software con licencia Open Source 3.0 desarrollados por la NASA. Esto nos demuestra el gran potencial del código abierto ya que a pesar de que GNU/Linux no sea la opción más escogida para nuestros escritorios es el sistema operativo que ha hecho posible realizar el primer vuelo de un drone para estudiar la superficie del planeta rojo.

Saludos,
 
Autor: Sergio Sancho, Security Researcher en Ideas Locas.

No hay comentarios:

Publicar un comentario