Representantes de la NASA dieron a conocer detalles del Ingenuity
Hace pocos dias representantes de la agencia espacial de la NASA, en una entrevista con Spectrum IEEE, revelaron detalles sobre el helicóptero de reconocimiento autónomo Ingenuity, que aterrizó con éxito en Marte como parte de la misión Mars 2020.
Una característica especial del proyecto fue el uso de una placa de control basada en SoC Snapdragon 801 de Qualcomm, que se utiliza en la producción de teléfonos inteligentes. El software Ingenuity se basa en el kernel de Linux y el software de vuelo de código abierto.
Cabe señalar que este es el primer uso de Linux en naves espaciales enviadas a Marte. Además, el uso de software de código abierto y componentes de hardware disponibles comercialmente permite a los entusiastas interesados ensamblar drones similares por su cuenta.
Esta decisión se debe al hecho de que controlar un dron volador requiere mucha más potencia de cálculo que controlar un rover, que está equipado con chips especialmente fabricados con protección adicional contra la radiación. Por ejemplo, mantener el vuelo requiere la operación del lazo de control a una frecuencia de 500 ciclos por segundo, así como el análisis de imágenes a una frecuencia de 30 cuadros por segundo.
El Snapdragon 801 SoC (cuatro núcleos, 2,26 GHz, 2 GB de RAM, 32 GB de Flash) se utiliza para proporcionar un entorno de sistema básico basado en Linux, que es responsable de operaciones de alto nivel como la navegación visual basada en el análisis de imágenes de la cámara, datos gestión, procesamiento de comandos, generación de telemetría y mantenimiento de canales de comunicación inalámbrica.
El procesador se conecta mediante la interfaz UART a dos microcontroladores (MCU Texas Instruments TMS570LC43x, ARM Cortex-R5F, 300 MHz, 512 KB de RAM, 4 MB de Flash, UART, SPI, GPIO) que realizan funciones de control de vuelo.
Los dos microcontroladores se utilizan para redundancia en caso de falla y reciben información idéntica de los sensores. Solo un microcontrolador está activo, y el segundo se usa como repuesto y en caso de falla puede tomar el control. FPGA MicroSemi ProASIC3L es responsable de transferir datos de sensores a microcontroladores y de interactuar con los actuadores que controlan las cuchillas, que también cambia a un microcontrolador de repuesto en caso de falla.
Del equipo, el dron utiliza un altímetro láser de SparkFun Electronics, una empresa de hardware de código abierto y uno de los creadores de la definición de hardware de código abierto (OSHW). Entre otros componentes típicos, se destacan el giroestabilizador (IMU) y las cámaras de video utilizadas en los teléfonos inteligentes.
Se utiliza una cámara VGA para rastrear la ubicación, la dirección y la velocidad a través de comparaciones cuadro por cuadro. La segunda cámara a color de 13 megapíxeles se utiliza para crear imágenes del área.
Llevar el Ingenuity a Marte en una sola pieza y hacer que despegue y aterrice incluso una vez es una victoria definitiva para la NASA, nos dice Tim Canham del JPL.
Canham ayudó a desarrollar la arquitectura de software que ejecuta Ingenuity. Como líder de operaciones de Ingenuity, ahora se centra en la planificación de vuelos y la coordinación con el equipo del rover Perseverance. Hablamos con Canham para comprender mejor cómo Ingenuity dependerá de la autonomía para sus próximos vuelos a Marte.
Los componentes del software de control de vuelo fueron desarrollados en el JPL (Laboratorio de Propulsión a Chorro) de la NASA para satélites terrestres artificiales pequeños y ultrapequeños (cubsats) y se vienen desarrollando desde hace varios años como parte de la plataforma abierta F Prime (F´), distribuida bajo la licencia de Apache 2.0.
F Prime proporciona las herramientas para el rápido desarrollo de sistemas de control de vuelo y aplicaciones integradas relacionadas. El software de vuelo se divide en componentes individuales con interfaces de programación bien definidas.
Además de los componentes especializados, se ofrece un marco de trabajo C++ con la implementación de características tales como cola de mensajes y subprocesos múltiples, así como herramientas de modelado que le permiten vincular componentes y generar código automáticamente.
Finalmente si estás interesado en conocer más al respecto, puedes consultar el siguiente enlace.