Navigation autonome d’un satellite à partir des étoiles

Une étude simulée : reconnaître les étoiles pour savoir où pointe la caméra.

  • Spatial, réseaux de neurones

Date : 2020–2021

ESUS, « Engine in Space testing aUtonomous Software », est le premier satellite du Centre spatial de CentraleSupélec, un CubeSat de 10 × 10 × 34 cm d’environ 3 kg, conçu et construit par des étudiants dans le programme Nanolab Academy du CNES. Sa mission : montrer qu’une carte graphique du commerce, jamais durcie pour l’espace, peut calculer en orbite ; mesurer ce qu’elle y endure ; mettre son logiciel à jour depuis le sol ; et faire tourner un réseau de neurones sur les images d’une caméra embarquée. Une quarantaine d’étudiants y travaillent par groupes : structure, thermique, trajectoire, contrôle d’attitude, communications, énergie, et les charges utiles. En 2021, le satellite visait une orbite à 600 km et un lancement fin 2024, après une phase B en 2021–2022.

Dans le groupe Navigation autonome, créé cette année-là, j’étais chargé de l’algorithme : savoir où pointe la caméra du satellite d’après les étoiles qu’elle photographie, la charge de travail confiée à la carte graphique. Ses résultats sont obtenus en simulation.

La mission a évolué depuis : le CNES présente aujourd’hui ESUS avec deux charges utiles, une caméra et une intelligence artificielle embarquée qui reconnaît les nuages, et un interféromètre du laboratoire XLIM qui mesure le diamètre du Soleil ; selon le Centre spatial, le projet est en conception détaillée, pour un lancement prévu en 2027 (relevé le 13 octobre 2026).

Le résultat

Dessin en perspective d’un CubeSat 3U debout, une caméra sur sa face supérieure, et du champ de la caméra jusqu’à la photo qu’elle prend : le ciel autour de l’étoile Dubhe. Selon l’étape : la carte Nvidia Jetson Nano dans la structure ; la Terre, 500 km plus bas ; la photo à plat, avec 20 cercles concentriques autour de l’étoile du centre et le nombre d’étoiles par anneau ; un réseau de neurones qui reçoit ces nombres et désigne Dubhe, avec la flèche de la direction de visée ; le catalogue Hipparcos sur une sphère et huit ciels simulés, avec une étoile en trop et une étoile manquée ; la photo rayée du bruit du capteur, et la carte dans la structure, à essayer au sol.
Carte du ciel entier, en ellipse, quadrillée en heures et en degrés : 2 848 points noirs, les étoiles jusqu’à la magnitude 5,5. En haut, un quadrilatère orange marque le champ de la caméra, 44° × 34°, autour de l’étoile Dubhe ; les 73 étoiles qu’il contient sont en orange.
Les 2 848 étoiles que le réseau doit reconnaître ; en orange, le champ de la caméra autour de Dubhe, et ses 73 étoiles. Données et méthode du groupe
Une photo simulée de 640 × 480 pixels, en négatif : des étoiles noires de tailles diverses sur un fond gris clair et granuleux, chacune entourée d’un cercle orange.
La photo simulée autour de Dubhe, en négatif. Le seuil y trouve 68 taches pour 73 étoiles : cinq paires d’étoiles proches se confondent. Simulation
À gauche, le champ de la photo : des étoiles noires et, autour de Dubhe au centre, vingt cercles orange. À droite, en barres, le nombre d’étoiles de chaque anneau, du 1er au 20e : aucune dans les huit premiers, puis 1, 0, 1, 1, 2, 1, 3, 3, 0, 2, 4 et 2.
L’empreinte de Dubhe : vingt nombres, les étoiles comptées entre deux cercles, du centre vers le bord. Données et méthode du groupe
Graphique de la part des photos où l’étoile du centre est reconnue, selon le nombre moyen d’étoiles fausses et manquées par photo, de 0 à 5 : une courbe orange qui descend doucement de 99 à 90 %, à 98 % au bruit prévu par la note.
Sur 4 000 photos simulées par point, le réseau reconnaît l’étoile du centre dans 98 % des cas au bruit prévu par la note, et encore 90 % avec cinq étoiles fausses et cinq manquées par photo. Simulation

Ce qui a été fait

  1. 01

    La détection des étoiles

    La photo passée en gris, un seuil qui sépare les étoiles du bruit, puis chaque groupe de pixels allumés devient une étoile, avec sa position.

    Python · Pillow · NumPy

  2. 02

    L’empreinte

    Vingt cercles de rayon croissant autour de chacune des trois étoiles les plus proches du centre ; le nombre d’étoiles entre deux cercles forme l’entrée du réseau.

    Python · NumPy

  3. 03

    La base d’entraînement

    Des ciels simulés depuis le catalogue Hipparcos, huit par étoile, avec quatre seuils de luminosité et des étoiles en trop ou manquées.

    skyfield · Hipparcos

  4. 04

    Le réseau

    Une convolution 1D, puis une couche dense, et une sortie par étoile reconnaissable, 2 848 ; de l’étoile reconnue à la direction de visée et à la rotation de la caméra.

  5. 05

    Les consignes aux autres équipes

    Pour le contrôle d’attitude : une visée stable à 0,5° par seconde près pendant des poses de 5 s au plus, et pointée à moins de 1° ; pour les communications, le volume des mises à jour du réseau.

  6. 06

    Le rejeu de 2026

    Le réseau de la note réécrit et entraîné sur des ciels tirés à nouveau à chaque passe, puis essayé sur des photos simulées qui visent le ciel au hasard, avec des étoiles fausses et manquées : la part des étoiles du centre reconnues.

    Python · NumPy

Dessin en perspective d’un CubeSat 3U debout, une caméra sur sa face supérieure, et du champ de la caméra jusqu’à la photo qu’elle prend : le ciel autour de l’étoile Dubhe. Selon l’étape : la carte Nvidia Jetson Nano dans la structure ; la Terre, 500 km plus bas ; la photo à plat, avec 20 cercles concentriques autour de l’étoile du centre et le nombre d’étoiles par anneau ; un réseau de neurones qui reçoit ces nombres et désigne Dubhe, avec la flèche de la direction de visée ; le catalogue Hipparcos sur une sphère et huit ciels simulés, avec une étoile en trop et une étoile manquée ; la photo rayée du bruit du capteur, et la carte dans la structure, à essayer au sol.

Fonctionnement détaillé

  1. Faites défiler : le dessin suit.

  2. 01 / 06

    Une carte graphique peut-elle calculer dans l’espace ?

    Le CubeSat ESUS doit montrer qu’une carte graphique du commerce, une Nvidia Jetson Nano bridée à 5 W, peut calculer en orbite. Quel calcul utile lui confier, avec une petite caméra de 640 × 480 pixels au champ de 44° × 34° ? Le groupe devait choisir la caméra, l’algorithme, et dire au contrôle d’attitude quelle visée tenir.

  3. 02 / 06

    Viser le ciel plutôt que la Terre

    La méthode de l’année précédente reconnaissait des continents. À 500 km, la caméra ne voit qu’environ 400 × 300 km de Terre, courbée, souvent de nuit ou sous les nuages. Les étoiles, elles, sont toujours là, et le catalogue donne leur position : la caméra visera le ciel, et la photo dira où elle pointe.

  4. 03 / 06

    De la photo à l’empreinte du ciel

    La photo passe en gris, un seuil garde les pixels allumés, et les pixels voisins se regroupent en étoiles, une cinquantaine par image. Autour de chacune des trois étoiles les plus proches du centre, vingt cercles de plus en plus espacés, le dernier large comme 70 % de la demi-hauteur : le nombre d’étoiles entre deux cercles forme l’empreinte de ce coin de ciel.

  5. 04 / 06

    Un réseau de neurones reconnaît l’étoile

    Un réseau de neurones lit les vingt nombres, une convolution puis une couche dense, et répond par une sortie par étoile : 2 848 étoiles, jusqu’à la magnitude 5,5. Les trois étoiles reconnues, dont le catalogue donne la position, livrent la direction où pointe la caméra et sa rotation. Le satellite doit tenir sa visée stable, à 0,5° par seconde près, pendant une pose de cinq secondes au plus.

  6. 05 / 06

    Entraîné sur des ciels simulés

    Sans photos prises en orbite, le réseau apprend sur des ciels tirés du catalogue Hipparcos, huit par étoile, avec des étoiles en trop, des étoiles manquées et un seuil de magnitude qui varie. Rejoué en 2026, avec des ciels tirés à nouveau à chaque passe, il reconnaît l’étoile du centre dans 98 % des photos simulées au bruit prévu par la note, et encore dans 90 % avec cinq étoiles en trop et cinq manquées. Tout est simulé : aucune photo réelle.

  7. 06 / 06

    Ce qui reste à faire avant le vol

    Le seuil est réglé à la main, le bruit du vrai capteur reste à modéliser, et rien n’a été essayé au sol avec la carte et la caméra. La note propose aussi, pour trouver la position du satellite sur son orbite, de tourner jusqu’à mettre le bord de la Terre au bord de l’image avant de photographier les étoiles.

Fiche technique

Date
2020–2021
Contexte
Un travail d’équipe pour ESUS, le CubeSat 3U du Centre spatial de CentraleSupélec, conçu par des étudiants dans le programme Nanolab Academy du CNES.
Rôle
Chargé de l’algorithme, dans le groupe Navigation autonome
Technique
Python (NumPy, Matplotlib, Pillow) · skyfield · catalogue Hipparcos · réseau de neurones convolutif
Supports
Nvidia Jetson Nano
Échelle
2 848 étoiles à reconnaître · 20 cercles par empreinte · 98 % des étoiles du centre reconnues, en simulation
Statut
étude