Vidéo : Ingenuity, voler sur Mars grâce aux logiciels libres

Spread the love
Vidéo : Ingenuity, voler sur Mars grâce aux logiciels libres

Un petit miracle s’est produit hier matin. Ingenuity, un minuscule hélicoptère de la NASA, est devenu le premier aéronef motorisé à voler sur une autre planète, Mars. Cet exploit technique a été réalisé grâce à Linux, à des logiciels libres et à un programme conçu par la NASA et basé sur le framework open source F’ (prononcé F prime) du Jet Propulsion Laboratory (JPL).

A 11 minutes-lumière de la Terre, l’opération ne fut pas simple à réaliser. Certes, la gravité de Mars ne représente qu’un tiers de celle de la Terre, mais son atmosphère n’a qu’un centième de la densité de l’air terrestre.

Ingenuity est purement une démonstration technologique. Le projet n’est pas conçu pour soutenir la mission Perseverance, qui recherche des signes de vie ancienne et collecte des échantillons de roche et de terre pour des missions ultérieures. Sa mission est de montrer qu’il est possible de voler sur Mars en utilisant du matériel commercial et des logiciels libres.

publicité

Des badges pour les développeurs !

Le PDG de GitHub, Nat Friedman, son équipe et l’équipe d’Ingenuity du JPL ont examiné de près le code de l’hélicoptère et ont constaté que « près de 12 000 développeurs sur GitHub ont contribué au logiciel d’Ingenuity via l’open source. Et pourtant, tout comme la première image d’un trou noir, la plupart de ces développeurs ne savent même pas qu’ils ont contribué à rendre possible le premier vol d’un hélicoptère martien ».

Ils le sauront maintenant. « Aujourd’hui, nous voulons rendre l’invisible visible. Nous avons donc travaillé avec le JPL pour placer un nouveau badge Mars 2020 Helicopter Mission sur le profil GitHub de chaque développeur ayant contribué aux versions spécifiques de tous les projets et bibliothèques open source utilisés par Ingenuity », écrit Nat Friedman.

La liste des développeurs a été créée par le JPL qui a fourni à GitHub une liste complète de chaque version de chaque projet open source utilisé par Ingenuity. GitHub pouvait alors identifier tous les contributeurs à l’origine de ces projets et de leurs dépendances.

« Il existe une hiérarchie de dépendances »

Certaines des personnes honorées, comme le créateur de Linux, Linus Torvalds, sont des développeurs célèbres. Beaucoup d’autres travaillent dans l’ombre, mais leur travail est désormais reconnu. Comme l’explique Martin Woodward, directeur principal des relations avec les développeurs de GitHub : « la plupart des personnes qui reçoivent un badge n’ont probablement aucune idée que leur logiciel est utilisé pour faire voler un hélicoptère sur une autre planète. Nous voulions nous assurer que chacun soit reconnu pour sa contribution à cette incroyable réalisation humaine ».

« Ce que nous constatons, c’est qu’il existe une hiérarchie de dépendances. Un seul projet peut avoir 10 dépendances ou moins, mais elles se multiplient à partir de là, chaque dépendance dépendant d’une autre. Avant que vous ne le sachiez, vous avez un nombre incroyablement élevé de personnes qui ont contribué à un projet », poursuit-il.

Bien que le résultat, dans ce cas, soit extraordinaire, presque tous les logiciels reposent aujourd’hui sur des composants à open source. Carol Willing, l’un des principaux contributeurs à Python, ajoute : « comme si vous déposiez un caillou dans un lac, votre petite contribution se répercute ensuite pour avoir un impact beaucoup plus important. C’est l’une des beautés de l’open source : quelqu’un d’autre peut prendre votre bon travail et le rendre encore plus puissant et significatif ».

Il n’y a pas que des développeurs qui sont honorés

Pour de nombreux contributeurs, il est formidable de voir leur travail abstrait transformé en quelque chose d’aussi tangible qu’un petit hélicoptère volant sur Mars. « Après avoir passé beaucoup de temps à corriger des bugs et à assurer la maintenance, il est rafraîchissant d’entendre parler de toutes les choses cool que Python permet de réaliser », affirme Benjamin Peterson, un autre mainteneur du noyau Python et le créateur de la bibliothèque de compatibilité Python Six.

GitHub n’a pas reconnu que les programmeurs avec cette démarche. L’entreprise a également crédité d’autres contributeurs de logiciels libres. Par exemple, Mariatta Wijaya, membre de l’équipe centrale de Python, se concentre principalement sur la gestion de la communauté, la documentation et la création d’outils de flux de travail qui aident l’équipe Python à fonctionner et à garder le code utilisable. « La création de demandes de téléchargement n’est pas suffisante », explique Mme Wijaya. « Nous devons encore revoir le code, documenter les changements et travailler avec la communauté pour décider quoi construire et comment. »

Les développeurs du JPL utilisent et contribuent depuis longtemps aux projets open source. Mais, avec F’, pour la première fois, le JPL a lancé son propre projet open source. En effet, selon Jeff Levison, superviseur du groupe des logiciels de vol à petite échelle du JPL, il y avait peu d’applications pour les logiciels de vol du JPL en dehors de la NASA. « Cela n’avait pas beaucoup de sens auparavant, car nos logiciels étaient étroitement associés à du matériel personnalisé », explique Jeff Levison. « Il n’y avait pas vraiment de besoin ou d’avantage à le mettre à la disposition du public. »

Ingenuity : un Qualcomm Snapdragon 801 cadencé à 2,2 GHz

Ce n’est toutefois pas le cas d’Ingenuity. Timothy Canham, ingénieur en logiciels de vol embarqués au JPL, explique que le programme de l’hélicoptère est alimenté par un Qualcomm Snapdragon 801 cadencé à 2,2 GHz.

Bien que cela puisse sembler douloureusement lent et vieux, c’est beaucoup plus rapide que les processeurs du rover Mars Perseverance. En effet, les processeurs et les puces de qualité NASA doivent répondre aux normes de radiation HPSC (High-Performance Spaceflight Computing) de la NASA. Ces processeurs personnalisés nécessitent des années de conception et de tests avant d’être certifiés pour les vols spatiaux. Par exemple, le tout dernier processeur polyvalent de la NASA est une variante ARM A53 que vous connaissez peut-être du Raspberry Pi 3. Ingeniosity, cependant, en tant que projet de démonstration, peut utiliser un processeur plus ordinaire, et donc plus moderne.

Le logiciel de contrôle de vol lui-même fonctionne à 500 Hz. C’est en hertz, et non en mégahertz, explique Timothy Canham à ZDNet. Le logiciel de vol « est utilisé pour contrôler le matériel de vol et lire les capteurs 500 fois par seconde afin de maintenir l’hélicoptère stable ». En effet, il ajoute : « nous avons littéralement commandé des pièces chez SparkFun [Electronics]. C’est du matériel commercial, mais nous allons le tester, et s’il fonctionne bien, nous l’utiliserons ». Et manifestement, comme nous l’avons vu hier, c’est le cas.

F’ : un framework bien particulier

Le JPL a développé la première version de F’ en 2013. L’idée était de créer un cadre logiciel réutilisable pour une variété de projets de vols spatiaux, qui pourrait être adapté à pratiquement n’importe quel matériel, but ou destination.

F’ a marqué un changement dans la façon de travailler du JPL, explique Timothy Canham, responsable des opérations de l’hélicoptère Mars au JPL. Historiquement, les logiciels du JPL étaient difficiles à réaffecter. Ils contenaient souvent des fonctionnalités spécifiques au contexte, intégrées profondément dans leur code. Pour être largement réutilisable, F’ devait être modulaire, et non sur-mesure.

Par exemple, le framework ne suppose pas que les ingénieurs utiliseront une marque particulière d’appareil photo embarqué – ou n’importe quel appareil photo. Si vous devez prendre des photos, par exemple, vous pouvez ajouter ou supprimer des composants et des fonctionnalités spécifiques selon vos besoins. Il en va de même pour tout capteur ou instrument matériel.

Les CubeSats utilisent aussi le framework F’

F’ n’est pas censé être un système de vaisseau spatial prêt à l’emploi, explique Timothy Canham. Il s’agit plutôt d’un kit de démarrage. Il y a un système de contrôle au sol pour envoyer des commandes à un dispositif, un séquenceur pour exécuter ces commandes et un composant pour renvoyer les réponses au contrôle au sol. Bien qu’il existe une bibliothèque standard de composants, vous devrez écrire une grande partie de votre propre logiciel.

Il est rapidement apparu que F’ n’était pas seulement réutilisable au sein du JPL, mais également en dehors. Les CubeSats, de petits satellites fabriqués avec du matériel commercial disponible sur étagère et généralement déployés en orbite terrestre basse (LEO), sont désormais largement utilisés. « Nous avions donné quelques conférences à ce sujet, et des professeurs de Carnegie Mellon et d’autres organisations voulaient l’utiliser pour leurs propres projets de CubeSat », explique-t-il.

« Nous avons finalement réalisé qu’il était plus facile pour nous d’ouvrir le code source de F’ que d’essayer d’imposer aux gens le long processus de licence du logiciel. » L’équipe a passé le code au peigne fin pour s’assurer qu’il n’y avait pas de secrets commerciaux ou de technologies contrôlées par des traités internationaux et l’a publié sous la licence Apache en juillet 2017.

Aujourd’hui, tous ces projets ont permis à Ingenuity de voler dans le mince ciel rosé de Mars. Mais, lorsque le premier vaisseau robotique d’Elon Musk, Heart of Gold, s’envolera vers Mars plus tard dans la décennie, il sera lui aussi guidé par Linux et des logiciels libres.

Source : ZDNet.com

Leave a Reply