Ingenuity volará en Marte con software de código abierto y un chip de smartphone
Ingenuity es el componente más novedoso de la misión MARS 2020. Y no solo por ser el primer ingenio humano que volará sobre la superficie de Marte, si no por su software de código abierto (primera vez que se usa en Marte) y por un motor de hardware usado masivamente en móviles inteligentes.
El amerizaje exitoso de Perseverance en el planeta rojo es la gran noticia en ciencia espacial de lo que llevamos de año. La misión es clave para la llegada del ser humano a Marte y el potencial proceso de colonización posterior. Perseverance es la estrella de la misión como el rover más avanzado creado nunca por el ser humano y como laboratorio de ciencias móvil en búsqueda de vida microbiana.
Además de siete instrumentos principales, el rover lleva en su panza otro componente singular, Ingenuity. Aunque no está diseñado para apoyar la misión científica principal y es puramente una demostración tecnológica, puede ser muy importante para misiones posteriores. Se trata de un drone de dos kilogramos de peso y 1,2 metros de tamaño, que si todo va como está previsto desplegará sus paneles solares para cargar sus baterías, se separará del Perseverance y volará sobre Marte.
Lleva dos cámaras que tomarán imágenes en los cielos del planeta rojo, aunque su objetivo no es científico. Su importancia radica en que será la primera vez que se despliegue un vehículo aéreo de este tipo en un planeta fuera de la Tierra. Marte tiene una atmósfera de solo una centésima parte de la densidad del aire de la Tierra y solo un tercio de la gravedad de la Tierra, pero dicen los científicos que no será una tarea sencilla. Si puede demostrar que el vuelo en Marte es posible abrirá el camino a otros tipos de exploración con otros drones de mayores dimensiones y posibilidades.
Ingenuity: Linux y un SoC Snapdragon
Una entrevista del ingeniero de software de la NASA Tim Canham con IEEE Spectrum nos ha puesto sobre la pista de los detalles del software y hardware de este drone. Y es significativo porque es la primera vez que la agencia usa software de código abierto en las misiones robóticas marcianas y también la primera vez que Linux llega a Marte.
Los anteriores Rover y el actual Perseverance usan el sistema operativo privativo VxWorks de la empresa Wind River Systems. La cuestión es que Ingenuity usa un hardware basado en el SoC Snapdragon 801 de Qualcomm y no tenían versión de VxWorks para este chip. En su lugar, volará usando una combinación de Linux y un programa basado en el marco de código abierto F´ creado en el Laboratorio de Propulsión a Chorro (JPL).
Este software está impulsado por componentes de código abierto que permite un rápido desarrollo e implementación de vuelos espaciales y otras aplicaciones de software integradas. F´ se ha implementado con éxito en varias aplicaciones espaciales muchas veces antes. Está diseñado, pero no limitado, a sistemas de vuelos espaciales a pequeña escala, como CubeSats, SmallSats y, ahora, un helicóptero autónomo en Marte.
En cuanto al hardware del Ingenuity qué decirte. Es un chipset de Qualcomm que hemos usado en la Tierra centenares de millones de usuarios en nuestros móviles. La apuesta de NASA es usar hardware comercial estándar (COTS) «que estuviera ampliamente disponible». Está personalizado para el drone y, por ejemplo, su frecuencia de trabajo es de 500 Hz, infinitamente inferior a cómo trabaja en un smartphone.
El uso de hardware más antiguo es habitual en NASA. Estos procesadores personalizados requieren años de trabajo de diseño y pruebas antes de ser certificados para vuelos espaciales. Para hacerse una idea, el procesador de propósito general más nuevo de la NASA es una variante del ARM A53 que seguramente recuerdes de la Raspberry Pi 3.
Háztelo tú mismo…. «Es una especie de victoria para el Open Source, porque estamos volando un sistema operativo de código abierto y un marco de software de vuelo de código abierto y piezas comerciales que puedes comprar en una tienda si quieres hacerlo tú mismo algún día», explica el ingeniero de la NASA.
Por supuesto, NASA usa Linux y software de código abierto masivamente en la investigación espacial. La agencia ha liberado más de 500 proyectos bajo su licencia Open Source y casi antes de que se articularan conceptos como el software libre ya había compartido gran parte de su código libremente bajo el programa COSMIC.
De hecho, NASA inició el monopolio de Linux en supercomputadoras con la primera Beowulf desplegada en el centro de vuelo espacial Goddard. Usaba 16 procesadores Intel 486DX y Ethernet de 10 Mbps y si bien su velocidad era muy limitada frente a las actuales, costó solo unos pocos miles de dólares y demostró que se podían construir supercomputadoras con un presupuesto reducido y Linux. Ahora, Ingenuity pretende demostrar que pueden lograrse grandes resultados mediante hardware comercial económico combinado con Linux y software de código abierto.