FR 3038089 A1 20161230 FR 1555995 A 20150626 1 PROCÉDÉ ET DISPOSITIF D'ÉLABORATION D'UN PROGRAMME D'ACQUISITION DE DONNÉES COMPLEXES PAR UNE CONSTELLATION DE DISPOSITIFS D'ACQUISITION DE DONNÉES ÉLÉMENTAIRES 1. Domaine technique de l'invention L'invention concerne un procédé et un dispositif d'élaboration d'un programme d'acquisition de données complexes par une constellation de dispositifs d'acquisitions de données élémentaires. L'invention concerne en particulier un procédé et un dispositif permettant la planification d'une mission d'acquisition de données, en particulier la planification d'une mission d'observation terrestre par une constellation de satellites. L'invention concerne également un produit programme d'ordinateur pour la mise en oeuvre du procédé selon l'invention et un moyen de stockage correspondant. 2. Arrière-plan technologique Il existe de nombreux domaines techniques dans lesquels une constellation de dispositifs d'acquisition de données élémentaires est mise en oeuvre pour procéder à l'acquisition de données complexes dans un laps de temps prédéterminé et suivant des contraintes prédéterminées. Dans tout le texte, on désigne par donnée complexe, une donnée formée par une pluralité de données élémentaires et ne pouvant pas être directement acquise par un seul dispositif d'acquisition de donnée élémentaire ou par une seule acquisition de donnée élémentaire. En d'autres termes, une donnée élémentaire est une donnée pouvant être acquise en intégralité par un seul dispositif d'acquisition de donnée en une seule acquisition alors qu'une donnée complexe est une donnée formée d'une pluralité de données élémentaires et nécessitant donc une pluralité d'acquisitions par un ou plusieurs dispositifs d'acquisition de données. Par exemple, dans le cas d'une application d'observations de la terre par une constellation de satellites, une requête d'observation d'une portion de la terre 30 peut former une donnée complexe qui ne peut pas être acquise par une seule 3038089 2 acquisition d'images par un seul satellite, les dimensions de la zone géographique à observer étant, par exemple, plus grandes que les dimensions de la fauchée des différents satellites de la constellation. Dans le cadre d'une telle application, une donnée complexe peut également correspondre à une requête d'observations 5 d'une pluralité de zones disjointes de la terre, et ne pouvant être réalisée que par la combinaison d'une pluralité d'acquisitions de données par un ou plusieurs satellites distincts. Dans toute la suite du texte, l'invention est essentiellement décrite en lien avec une constellation de satellites destinée à une observation de la terre. Cela 10 étant, l'invention s'étend à tous types de dispositifs d'acquisitions de données élémentaires, tels que par exemple des robots volants, plus connus sous la désignation de drones, équipés de dispositifs d'acquisition d'images, en vue de réaliser des missions spécifiques d'acquisition de données complexes, ou selon un autre exemple, des ballons stratosphériques équipés d'instruments d'acquisition 15 de données météorologiques par exemple. D'une manière générale, l'invention s'applique à tous les types de constellation de dispositifs d'acquisitions de données élémentaires devant maximiser le nombre de données complexes pouvant être acquises dans un laps de temps prédéterminé et sous un ensemble de contraintes prédéterminées. Dans le cas d'une constellation d'observation de la 20 terre, il peut s'agir d'acquisition de signaux ultra-violets, visibles, infrarouges. Une constellation selon l'invention peut également être dédié à l'acquisition de signaux radiofréquences. Dans le cas d'une constellation de satellites, éventuellement hétérogène, la planification des requêtes d'observations reçues par le gestionnaire de la 25 constellation est une tâche difficile qui vise à optimiser notamment le nombre et/ou la qualité des observations faites par la constellation dans un laps de temps prédéterminé. La difficulté de la planification (autrement dit, l'élaboration du programme d'observation) vient notamment du fait que beaucoup de paramètres et contraintes souvent contradictoires sont à prendre en compte, tels que par exemple le nombre de satellites disponibles et leurs caractéristiques et contraintes techniques (capacité de manoeuvre, capacité mémoire, puissance embarquée, etc.), 3038089 3 le volume des requêtes reçues (qui sont les demandes reçues par les clients du gestionnaire de la constellation de satellites), les caractéristiques spécifiques de chacune des demandes des clients (type de prise de vue, priorité du client, qualité demandée, plage temporelle de validité, etc..) et les contraintes extérieures 5 (couverture nuageuse, disponibilité d'une station de base pour récupérer les données acquises, etc.). En outre, la détermination de la planification de la constellation doit se faire dans un temps limité. La planification doit également pouvoir être dynamique pour intégrer des demandes urgentes prioritaires. Il existe donc un besoin de disposer d'un système et d'un procédé 10 permettant de planifier les requêtes d'observations de la terre, et de manière générale, de planifier des acquisitions de données complexes, par une constellation de satellite d'observations, et par extension par une constellation de dispositifs d'acquisitions de données élémentaires. La planification des données complexes (aussi désignées par le terme requêtes dans toute la suite du texte) 15 consiste donc à sélectionner une liste de requêtes parmi l'ensemble des requêtes reçues afin de les allouer aux différents dispositifs d'acquisitions de données. Il existe notamment un besoin de pouvoir programmer quotidiennement sur une dizaine de satellites de l'ordre de 1000 requêtes d'observation de la terre choisies parmi plus de 10 000 requêtes reçues. 20 La détermination d'un plan de mission par une constellation de satellites revient à sélectionner des requêtes parmi un ensemble de requêtes et à attribuer chaque requête sélectionnée à un satellite de la constellation. L'une des méthodes couramment utilisée aujourd'hui pour déterminer un plan de mission d'une constellation de satellites est la méthode dite du « Glouton 25 chronologique », plus connue sous la dénomination anglaise de « Greedy Algorithm ». Cette méthode consiste à planifier chronologiquement les requêtes en fonction de leur date d'accessibilité et de mettre en oeuvre une heuristique locale en cas de conflit entre plusieurs requêtes. La qualité des résultats fournis par cette méthode dépend donc fortement 30 de l'heuristique locale utilisée pour gérer les conflits de programmation. Il est donc nécessaire d'adapter cette heuristique à chaque type de problème rencontré 3038089 4 En d'autres termes, la méthode ne peut pas être utilisée facilement pour planifier des missions variées. L'heuristique est très étroitement liée au type de missions rencontrées. En outre, cette méthode présente l'inconvénient de ne pas être dynamique. Si une requête, urgente ou non, arrive alors que la planification est 5 déjà en cours, il est nécessaire de reprendre l'intégralité de la programmation pour pouvoir programmer cette nouvelle requête. En pratique, toute requête qui arrive alors que la programmation de la constellation de satellites est déjà lancée, sera sauvegardée dans une mémoire et prise en compte uniquement lors de la prochaine programmation de la constellation. De plus, cette méthode ne permet 10 pas de gérer l'équilibre de la charge de chacun des satellites de la constellation. Les inventeurs ont donc cherché à proposer une nouvelle méthode de planification des requêtes d'observations terrestres par une constellation de satellites, et par extension, une nouvelle méthode de planification des requêtes d'acquisition de données complexes par une pluralité de dispositifs d'acquisitions 15 de données élémentaires. 3. Objectifs de l'invention L'invention vise à pallier au moins certains des inconvénients des méthodes couramment mises en oeuvre à l'heure actuelle pour planifier les missions d'une constellation de dispositifs d'acquisition de données, telle qu'une 20 constellation de satellites d'observation de la terre. En particulier, l'invention vise aussi à fournir, dans au moins un mode de réalisation de l'invention, un procédé et un dispositif d'élaboration d'un programme d'acquisition de données complexes par une constellation de dispositif d'acquisition de données élémentaires. 25 En d'autres termes, l'invention vise à fournir un procédé et un dispositif de planification des missions d'une constellation de dispositifs d'acquisition. L'invention vise aussi à fournir, dans au moins un mode de réalisation de l'invention, un procédé et un dispositif qui permettent une programmation dynamique de la mission, c'est-à-dire une programmation qui autorise la prise en 30 compte immédiate d'une nouvelle demande d'acquisition, y compris au cours de la programmation de la mission et/ou qui autorise la prise en compte immédiate 3038089 5 de toute évolution de la constellation (perte d'un dispositif d'acquisition ou d'une fonctionnalité d'un dispositif d'acquisition). L'invention vise aussi à fournir, dans au moins un mode de réalisation, un procédé et un dispositif de planification de missions qui permettent de gérer 5 l'équilibre de la charge de chacun des dispositifs d'acquisition de la constellation. L'invention vise aussi à fournir, dans au moins un mode de réalisation de l'invention, un procédé et un dispositif de panification de missions, qui permettent de maximiser le nombre d'acquisitions effectuées par la constellation de satellites, et par conséquent de minimiser le coût moyen d'une acquisition d'une donnée par 10 la constellation. L'invention vise aussi à fournir, dans au moins un mode de réalisation de l'invention, un procédé et un dispositif de planification de missions adaptés à des mission d'observations de la terre par une constellation de satellites. L'invention vise aussi à fournir un produit programme d'ordinateur 15 permettant la mise en oeuvre du procédé selon l'invention et un moyen de stockage correspondant. 4. Exposé de l'invention Pour ce faire, l'invention concerne un procédé d'élaboration d'un programme d'acquisition de données complexes par une pluralité de dispositifs 20 d'acquisition de données élémentaires, dite constellation de dispositifs d'acquisition, ledit procédé comprenant : une étape de réception d'une pluralité de requêtes d'acquisition de données complexes, dites requêtes clients, chaque requête client comprenant des contraintes d'acquisition desdites données 25 complexes, une étape de découpage de chaque requête client en une pluralité de requêtes, dites requêtes élémentaires, d'acquisition d'une donnée élémentaire pouvant être acquise en une seule acquisition par un seul dispositif d'acquisition de ladite constellation, 30 une étape de détermination, pour chaque donnée élémentaire, d'au moins une fenêtre temporelle d'acquisition - de préférence de 3038089 6 chaque fenêtre temporelle d'acquisition - de cette donnée élémentaire par au moins un dispositif d'acquisition de ladite constellation, une étape d'attribution à chaque dispositif d'acquisition de ladite 5 constellation, par un système multi-agents coopératif, d'une liste de données élémentaires à acquérir associées chacune à un créneau d' acquisition situé à l' intérieur d' une fenêtre temporelle d'acquisition de cette donnée élémentaire, lesdites données élémentaires ainsi attribuées formant une pluralité des données 10 complexes desdites requêtes clients, et définissant ledit programme d'acquisition. Un procédé selon l'invention permet donc de calculer un programme d'acquisition d'une pluralité de données complexes par la programmation des différentes données élémentaires formant les données complexes sur les différents 15 dispositifs d'acquisition de données élémentaires de la constellation. Cette programmation des différentes données élémentaires met en oeuvre un système multi-agents coopératif qui présente la capacité de prendre en compte un grand nombre d'entités distinctes et de faire émerger une solution globale par une résolution d'une pluralité de problèmes à l'échelle locale. Ainsi, selon l'invention, 20 le problème global de programmation sous contrainte des requêtes d'acquisition de données sur la constellation de dispositifs d'acquisition est décomposé en plusieurs problèmes particuliers, qui sont résolus à l'échelle locale. Un système multi-agents coopératif permet notamment un échange d'informations entre les différents agents et une prise de décision guidée par des critères prédéterminés. 25 En outre, un système multi-agents coopératif est un système d'intelligence artificielle auto-adaptatif. Aussi, un procédé selon l'invention mettant en oeuvre un tel système mufti-agents est dynamique et permet une prise en compte de toute nouvelle demande de programmation, y compris en cours de programmation. Avantageusement et selon l'invention, l'étape d'attribution à chaque 30 dispositif d'acquisition de ladite constellation d'une liste de données élémentaires à acquérir associées chacune à un créneau d'acquisition comprend les étapes 3038089 7 suivantes : une étape de calcul, pour chaque requête élémentaire, d'une criticité de programmation pour cette requête élémentaire, une étape de sélection, pour chaque requête élémentaire, d'une liste 5 de dispositifs d'acquisition compatibles avec au moins une fenêtre temporelle d'acquisition associée à cette requête élémentaire, dite liste autorisée, une étape de demande de programmation desdites requêtes élémentaires sur chaque dispositif d'acquisition de ladite liste 10 autorisée associée à chaque requête élémentaire, une étape de calcul, pour chaque dispositif d'acquisition, d'un coût de programmation de chaque requête élémentaire reçue par ce dispositif d'acquisition, une étape de sélection, pour chaque requête élémentaire, du 15 dispositif d'acquisition présentant le coût le plus faible, une étape de sélection, en cas de conflit de programmation, pour chaque dispositif d'acquisition, de la requête élémentaire présentant la criticité de programmation la plus forte, une étape de confirmation de la programmation, pour chaque 20 requête élémentaire sélectionnée, du dispositif d'acquisition sélectionné. Ces étapes sont mises en oeuvre par le système multi-agents et permettent de guider la programmation des requêtes élémentaires sur chacun des dispositifs d'acquisition de la constellation suivant deux critères spécifiques. 25 Le premier critère spécifique guidant la programmation des requêtes élémentaires est la criticité de chaque requête élémentaire, c'est-à-dire une information représentative de la distance qui sépare l'état courant de la requête élémentaire de l'état dans lequel son objectif local est atteint, c'est-à-dire sa programmation. 30 L'invention vise à favoriser la programmation des requêtes élémentaires présentant une criticité forte. Cela se traduit par l'étape de sélection, en cas de 3038089 8 conflit de programmation, pour chaque dispositif d'acquisition, de la requête élémentaire présentant la criticité de programmation la plus forte. Ainsi, les dispositifs d'acquisition vont spontanément choisir de programmer les requêtes les plus critiques en cas de conflit de programmation entre plusieurs requêtes 5 élémentaires. Selon une variante de l'invention, l'étape de calcul de la criticité attribue à chaque requête une criticité identique. Une telle variante permet de réaliser une programmation iso-critique. Avantageusement et selon l'invention, cette criticité de programmation 10 d'une requête élémentaire est fonction d'une information représentative de l'urgence de la planification de cette requête élémentaire, et/ou du nombre de fenêtres temporelles d'acquisition disponibles pour cette requête élémentaire, et/ou d'un pourcentage de réalisation de la requête client dont dépend cette requête élémentaire. 15 De préférence, la criticité de programmation est fonction de l'ensemble des trois paramètres mentionnés ci-dessus. Selon cette variante, la criticité de programmation d'une requête élémentaire dépend de trois paramètres. Le premier paramètre vise à traduire l'urgence de la planification de la requête élémentaire. Cette urgence est 20 typiquement fournie par un client avec la requête client. La valeur de ce paramètre peut par exemple être dépendante du prix payé par le client pour que l'opérateur de la constellation prenne sa demande en charge. Le deuxième paramètre est une indication du nombre de fenêtres temporelles d'acquisition restantes pour programmer la requête élémentaire. En effet, l'invention prévoit que la requête 25 élémentaire présentant le plus petite nombre de fenêtres temporelles d'acquisition disponibles est prioritaire sur la requête élémentaire présentant un plus grand nombre de fenêtres temporelles d'acquisition disponibles. Le troisième paramètre vise à traduire l'intérêt de programmer la requête élémentaire compte tenu de la programmation des autres requêtes élémentaires formant la requête client. 30 Le deuxième critère spécifique guidant la programmation des requêtes élémentaires est le coût de programmation sur un dispositif d'acquisition d'une 3038089 9 requête élémentaire. Ce coût est un indicateur de la difficulté de la programmation d'une requête élémentaire par un dispositif d'acquisition. L'invention permet donc de favoriser la programmation des requêtes élémentaires sur les dispositifs d'acquisition qui sont le moins impactés par cette 5 programmation. Cela se traduit par l'étape de sélection, pour chaque requête élémentaire, du dispositif d'acquisition présentant le coût le plus faible. Avantageusement et selon l'invention, le coût de programmation d'une requête élémentaire par un dispositif d'acquisition est une fonction de la charge de ce dispositif d'acquisition et/ou du nombre de demandes de programmation reçue 10 pour ce dispositif d'acquisition et/ou de la criticité de cette requête élémentaire. De préférence, le coût de programmation d'une requête élémentaire est fonction de l'ensemble des trois paramètres mentionnés ci-dessus. En variante, le coût de programmation peut dépendre d'autres paramètres. Un procédé selon l'invention permet donc de fournir un programme de 15 planification des acquisitions qui est guidé par la criticité des requêtes élémentaires et par le coût de chaque programmation. En cas de modification du nombre de dispositifs d'acquisition, ces critères sont automatiquement mis à jour. Aussi, un procédé selon l'invention peut être utilisé avec différents types de constellation, sans nécessiter le développement d'une heuristique spécifique. 20 Selon une variante de l'invention, l'étape de sélection, en cas de conflit de programmation, pour chaque dispositif d'acquisition, de ladite requête élémentaire présentant la criticité de programmation la plus forte comprend, en cas de présence de plusieurs requêtes à criticité équivalente, une sous-étape de tentative d'adaptation de la programmation desdites requêtes programmées au voisinage 25 des requêtes en conflit pour pouvoir programmer l'ensemble des requêtes en conflit. Cette variante permet de gérer les cas où plusieurs requêtes élémentaires à criticité équivalente (la notion d'équivalence étant déterminée par une métrique prédéterminée) cherchent à se programmer sur le même dispositif d'acquisition. 30 Dans ce cas et selon cette variante, le dispositif d'acquisition va tenter de déplacer chaque requête élémentaire préprogrammée au voisinage des requêtes en conflit 3038089 10 dans un objectif de pouvoir programmer l'ensemble des requêtes élémentaires en conflit. Pour cela, le dispositif d'acquisition va déterminer si le déplacement des requêtes élémentaires au voisinage des requêtes en conflit permet cette programmation tout en respectant les différentes contraintes de programmation de 5 chacune des requêtes élémentaires. Avantageusement et selon l'invention, lesdites contraintes d'acquisition associées aux requêtes clients comprennent des contraintes, spatiales, temporelles, et/ou techniques. Ces contraintes spatiales comprennent typiquement une délimitation 10 géographique de la donnée à acquérir. Par exemple, dans le cas d'une constellation de satellites d'observation de la terre, la contrainte spatiale délimite la zone dont on souhaite acquérir des images. Les contraintes temporelles comprennent typiquement une fenêtre temporelle d'acquisition des données, par exemple, une fenêtre de 24 heures pour fournir le résultat au client. Les 15 contraintes techniques comprennent par exemple des indications du type d'instrument à utiliser pour acquérir la donnée, ou des tolérances sur la qualité de la donnée pouvant être acquise. Par exemple, selon une variante avantageuse de l'invention, lesdites contraintes techniques comprennent un taux de couverture nuageuse toléré lors de 20 l'acquisition des données élémentaires associées à ladite requête complexe. En particulier, dans le cas d'une constellation de satellites d'observation de la terre, un client peut fournir avec sa requête d'observation une tolérance sur la couverture nuageuse, en acceptant par exemple une couverture nuageuse de 20% maximum. Si la couverture nuageuse dépasse cette valeur, la requête ne pourra 25 donc pas être programmée. Selon une variante avantageuse de l'invention, lesdits dispositifs d'acquisition de ladite constellation sont des dispositifs d'acquisition d'images montés sur des satellites d'observations de la terre, lesdites données complexes à acquérir sont des zones du globe terrestre, et lesdites données élémentaires sont 30 des images pouvant être directement acquises par un seul satellite de ladite constellation. 3038089 11 Selon cette variante, l'invention permet la planification d'une mission de d'observation de la terre, notamment d'observations optiques, par des satellites. L'invention concerne également un dispositif d'élaboration d'un programme d'acquisitions de données complexes par une pluralité de dispositifs 5 d'acquisition de données élémentaires, dite constellation de dispositifs d'acquisition, ledit dispositif comprenant : un module de réception d'une pluralité de requêtes d'acquisition de données complexes, dites requêtes clients, chaque requête client comprenant des contraintes d'acquisition desdites données 10 complexes, un module de découpage de chaque requête client en une pluralité de requêtes, dites requêtes élémentaires, d'acquisition d'une donnée élémentaire pouvant être acquise en une seule acquisition par un seul dispositif d'acquisition de ladite constellation, 15 un module de détermination, pour chaque donnée élémentaire, d'au moins une fenêtre temporelle d'acquisition de cette donnée élémentaire par au moins un dispositif d'acquisition de la constellation, un système multi-agents coopératif configuré pour pouvoir attribuer 20 à chaque dispositif d'acquisition de ladite constellation, une liste de données élémentaires à acquérir associées chacune à un créneau d'acquisition situé à l'intérieur d'une fenêtre temporelle d'acquisition de cette donnée élémentaire, lesdites données élémentaires ainsi attribuées formant une pluralité de données 25 complexes desdites requêtes clients, et définissant ledit programme d' acquisition. Avantageusement, un dispositif selon l'invention met en oeuvre un procédé selon l'invention et un procédé selon l'invention est avantageusement mis en oeuvre par un dispositif selon l'invention. 30 Dans tout le texte, on désigne par module, un élément logiciel, un sous- ensemble d'un programme logiciel, pouvant être compilé séparément, soit pour 3038089 12 une utilisation indépendante, soit pour être assemblé avec d'autres modules d'un programme, ou un élément matériel, ou une combinaison d'un élément matériel et d'un sous-programme logiciel. Un tel élément matériel peut comprendre un circuit intégré propre à une application (plus connue sous l'acronyme ASIC pour la 5 dénomination anglaise Application-Specific Integrated Circuit) ou un circuit logique programmable (plus connue sous l'acronyme FPGA pour la dénomination anglaise Field-Programmable Gate Array) ou un circuit de microprocesseurs spécialisés (plus connue sous l'acronyme DSP pour la dénomination anglaise Digital Signal Processor) ou tout matériel équivalent. D'une manière générale, un 10 module est donc un élément (logiciel et/ou matériel) qui permet d'assurer une fonction. Un système multi-agents coopératif est un ensemble d'agents qui coopère les uns avec les autres pour faire émerger une solution. Un agent est un module tel que défini ci-dessus, capable de décider et d'interagir avec d'autres agents en 15 fonction de paramètres spécifiques caractérisant une situation. Avantageusement et selon l'invention, ledit système multi-agents coopératif comprend une pluralité d'agents, dit agents d'acquisition, configurés pour poursuivre un objectif d'acquisition de données élémentaires, une pluralité d'agents, dit agents de requêtes élémentaires, configurés pour poursuivre un 20 objectif de sa programmation et une pluralité d'agents, dit agents de requêtes clients, configurés pour poursuivre un objectif de la programmation de l'ensemble des requêtes élémentaires qu'elle contiennent, chaque agent comprenant des moyens de communications et étant capables d'interagir avec au moins certains des autres agents du système 25 L'invention concerne également un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé de détermination d'un programme d'acquisitions de données complexes 30 par une pluralité de dispositifs d'acquisitions de données élémentaires selon l'invention, lorsque le programme est exécuté sur un ordinateur. 3038089 13 L'invention concerne également un moyen de stockage lisible par ordinateur, totalement ou partiellement amovible, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé de détermination d'un programme d'acquisitions de 5 données complexes par une pluralité de dispositifs d'acquisitions de données élémentaires, selon l'invention. L'invention concerne également un procédé et un dispositif de détermination d'un programme d'acquisition de données complexes par une constellation de dispositifs d'acquisition, produit programme d'ordinateur et un 10 moyen de stockage correspondants, caractérisé en combinaison par tout ou partie des caractéristiques mentionnées ci-dessus ou ci-après. 5. Liste des figures D'autres buts, caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante donnée à titre uniquement non limitatif et qui se 15 réfère aux figures annexées dans lesquelles : la figure 1 est une vue schématique d'un procédé d'élaboration d'un programme d'acquisition d'images par une constellation de satellites, les figures 2a et 2b sont des vues du principe de découpage d'une 20 image en une pluralité de sous-images, dites mailles, mis en oeuvre au cours du procédé d'élaboration d'acquisition d'images selon un mode de réalisation de l'invention, la figure 3 est une vue schématique des agents du système multiagent coopératif mis en oeuvre par le procédé d'élaboration 25 d'acquisition d'images selon un mode de réalisation de l'invention, et intégré dans un dispositif d'élaboration d'un programme d'acquisition d'images selon un mode de réalisation de l'invention, les figures 4a, 4b, 4c, et 4d sont des illustrations d'un exemple d'interactions entre des agents mailles et des agents satellites mis en 30 oeuvre par un procédé d'élaboration d'un programme d'acquisition d'images selon un mode de réalisation de l'invention, 3038089 14 les figures 5a, 5b, 5c, et 5d sont des illustrations d'un exemple d'interactions entre des agents mailles et des agents satellites mis en oeuvre par un procédé d'élaboration d'un programme d'acquisition d'images selon un mode de réalisation de l'invention. 5 6. Description détaillée d'un mode de réalisation de l'invention La description détaillée qui suit s'intéresse à une constellation de satellites optiques dont on cherche à établir un programme d'observations. En d'autres termes, selon le mode de réalisation décrit ici en détail, la constellation des dispositifs d'acquisition de données est formée par une 10 constellation de satellites d'observations de la terre. Les données complexes sont formées par un ensemble d'images et les données élémentaires sont formées par des images élémentaires, désignées ci-après par les termes de mailles. Une donnée complexe selon le mode de réalisation des figures est donc un ensemble d'images élémentaires, autrement dit, un ensemble de mailles. 15 Tel que représenté sur la figure 1, le procédé de détermination d'un programme d'observation de la terre comprend une étape de réception 10 d'une pluralité de requêtes d'acquisition d'images, chaque requête comprenant des contraintes d'acquisition de ces images. Ces contraintes comprennent par exemple la priorité de la requête, le type de prise de vue souhaité, la validité de la requête, 20 etc. Le procédé comprend en outre une étape de découpage 20 de chaque requête en une pluralité de mailles, chaque maille pouvant être acquise en une seule acquisition par une seule prise de vue. En d' autres termes, une requête client d'observation de la terre est découpée en une pluralité de mailles élémentaires, 25 chaque maille définissant une zone géographique de la terre composant la requête client et qu'un satellite de la constellation peut acquérir en une seule prise de vue. L'étape de découpage d'une requête client en une pluralité de mailles élémentaires ne sera pas décrite ici en détail. Il existe de nombreux algorithmes dans la littérature permettant ce découpage. 30 Suivant le type de requête reçue, il est possible que certaines requêtes clients n'aient pas besoin d'être découpées en une pluralité de mailles distinctes, 3038089 15 le champ de vue de la zone géographique de la requête étant d'ores et déjà compatible avec les champs de vue des satellites. Dans ce cas là, la maille et la requête client sont confondues. Les figures 2a et 2b illustrent schématiquement le principe d'un découpage 5 d'une requête client. La figure 2a représente une zone 7 géographique définie par la requête client dont une acquisition est sollicitée. Cette zone 7 géographique est plus grande que le champ de vue de chacun des satellites de la constellation. Aussi, l'étape de découpage 20 découpe la zone 7 géographique de la figure 2a en trois zones 7a, 7b, 7c représentées sur la figure 2b. Chaque zone 7a, 7b, 7c de la 10 figure 2b peut être acquise par un seul satellite au cours d'une seule prise de vue. Cette opération est répétée pour chaque requête client reçue à l'étape 10 et que l'on cherche à programmer. Le procédé comprend en outre une étape 30 de détermination, pour chaque maille, de l'ensemble de ses fenêtres temporelles de visibilité, c'est-à-dire de 15 l'ensemble des périodes durant laquelle la maille peut être acquise par au moins un satellite. Cette étape n'est pas décrite ici en détail et peut être mise en oeuvre par l'utilisation conjointe d'un algorithme de calcul des trajectoires de satellites autour de la terre, et d'un algorithme de calcul des éphémérides solaires, par 20 exemple dans le cas de l'acquisition d'images dans le domaine du visible. Un procédé selon l'invention comprend également une étape 40 d'attribution à chaque satellite de la constellation, par un système multi-agents coopératif, d'une liste de mailles à acquérir associées chacune à un créneau d'acquisition situé à l'intérieur d'une fenêtre temporelle de visibilité de cette 25 maille, les mailles ainsi attribuées permettant de former ultérieurement par combinaison des mailles au moins certaines des requêtes clients reçues qui ont donc bien été programmées. De préférence, l'étape d'attribution 40 comprend une étape de calcul 41, pour chaque maille, d'une criticité de programmation pour cette maille. Elle 30 comprend également une étape de sélection 42, pour chaque maille, d'une liste de satellites, dite liste autorisée pour cette maille, disposant d'au moins une fenêtre 3038089 16 de visibilité associée à cette maille. Elle comprend également une étape de demande 43 de programmation desdites mailles sur chaque satellite de ladite liste autorisée associée à chaque maille. Elle comprend également une étape de calcul 44, pour chaque satellite, d'un coût de programmation de chaque maille sur ce 5 satellite. Elle comprend également, pour chaque maille, une étape de sélection 45 du satellite présentant le coût le plus faible. Elle comprend également une étape de sélection 46, en cas de conflit de programmation sur un satellite, et pour chaque satellite, de la maille présentant la criticité la plus forte. Elle comprend enfin une étape de confirmation 47 de la programmation de chaque maille sélectionnée sur 10 chaque satellite sélectionné. Bien que ces différentes étapes soient présentées ici de manière séquentielle et ordonnée, en pratique, ces étapes sont mises en oeuvre de manière imbriquées, potentiellement itératives, par le recours à un système multi-agents coopératif. 15 En particulier, l'invention met en oeuvre un système multi-agents coopératif pour attribuer à chaque satellite d'observations de la constellation une liste de mailles à acquérir associées chacune à un créneau d'acquisition situé à l'intérieur d'une des fenêtres temporelles de visibilité de cette maille. Dans la suite, nous allons détailler la mise en oeuvre et le fonctionnement 20 de ce système multi-agents coopératif. Un système multi-agents est un système d'intelligence artificielle distribuée décrit par exemple dans le document de M.P Gleizes, intitulé « Self-adaptative Complex systems », publié en 2012 dans le volume 7541, pages 114128 du compte rendu de la conférence « European Workshop on Multi-agent 25 systems (EUMAS), Maastricht, the Netherlands ». Selon un mode préférentiel de réalisation de l'invention, le système multiagents coopératif s'appuie sur le modèle d'agent générique connu sous le terme « AMAS4Opt » et adapté pour fournir des patrons de conception pour résoudre des problèmes d'optimisation. Ce modèle est décrit notamment dans la thèse de 30 doctorat de E.Kaddoum, intitulé « Optimization under constraints of distributes complex problems using cooperative Self-organisation ». 3038089 17 La figure 3 illustre schématiquement les interactions entre les différents agents mis en oeuvre dans un système multi-agents coopératif selon l'invention. Un système multi-agents selon l'invention est formé par un ensemble de modules, appelés ici agents. On rappelle qu'un module est un élément logiciel, un sous- 5 ensemble d'un programme logiciel, pouvant être compilé séparément, soit pour une utilisation indépendante, soit pour être assemblé avec d'autres modules d'un programme, ou un élément matériel, ou une combinaison d'un élément matériel et d'un sous-programme logiciel. Les agents sont soumis à un environnement commun et interagissent localement les uns avec les autres suivant des règles 10 prédéterminées. Les règles et interactions entre les agents permettent de réaliser et de mettre en oeuvre les différentes étapes décrites en lien avec l'étape d'attribution 40. En particulier, selon le mode de réalisation des figures, le système multiagents comprend une pluralité d'agents, dits agents satellites 50 (formant dans ce 15 mode de réalisation les agents d'acquisition de données), une pluralité d'agents, dits agents mailles 51 (formant dans ce mode de réalisation les agents de requêtes élémentaires) et une pluralité d'agents, dits agents requêtes 52. Le principe d'un système multi-agents coopératif est que chaque agent interagit avec une pluralité d'entités distinctes pour parvenir à faire émerger une 20 solution globale par une pluralité de solutions apportées à des problèmes locaux. Selon le mode de réalisation de l'invention, neuf entités ont été identifiées : les trois familles d'agents coopératifs : les agents requêtes 52, les agents satellites 50 et les agents mailles 51, 25 trois entités actives : un module de couverture nuageuse 66, un module de calcul d'éphéméride solaire 65 et des stations de téléchargement 62 des images acquises (la différence entre ces entités et les agents coopératifs vient du fait qu'elles n'ont pas de but à satisfaire), 30 trois entités passives (ressources du système) : un sous-système de mémorisation de données des satellites, dit module mémoire 63, un 3038089 18 sous-système de gestion de l'énergie des satellites, dit module énergie 64, et un sous-système de calcul de calcul de trajectoire et d'attitude orbitale, dit module de calcul 61 de trajectoire. Le mode de réalisation des différents modules n'est pas décrit ici en détail 5 et ne pose pas de problèmes particuliers à l'homme du métier. Dans la suite, on va décrire les interactions entre ces différentes entités. L'utilisation du modèle AMAS4Opt permet de définir le comportement et les interactions entre les agents. Les agents satellites ont un rôle de « service », c'est-à-dire qu'ils disposent de moyens pour résoudre des problèmes. Les agents 10 mailles et requêtes ont un rôle « contraint », c'est-à-dire qu'ils soulèvent des problèmes qui doivent être résolus. Un agent satellite présente les caractéristiques suivantes : Objectif : acquérir des prises de vues, - Interactions avec les entités suivantes : 15 o les agents mailles 51, o un module de gestion de trajectoire 61, o un module de calcul de la couverture nuageuse 66, o le module énergie 64, o le module mémoire 63, 20 o le module de calcul de l'éphéméride solaire 65, o les stations de téléchargement 62, Négociations avec : o les agents mailles. Un agent maille présente les caractéristiques suivantes : 25 Objectif : être programmé, - Interactions avec les entités suivantes : o les agents satellites 50, o les agents requêtes 52, o le module de calcul de la couverture nuageuse 66, 30 o le module de calcul d'éphéméride solaire 65, Négociations avec : 3038089 19 o les agents satellites 50, o les agents requêtes 52. Un agent requête présente les caractéristiques suivantes : - Objectif : programmation de toutes ses mailles, 5 - Interactions avec les entités suivantes : o les agents mailles 51, - Négociations avec : o les agents mailles 51. Le système multi-agents va permettre la programmation des requêtes 10 d'observation par la coopération de ses agents ainsi définis. Cette coopération est assurée par l'échange de messages entre les agents et est guidée par deux indicateurs : la criticité des requêtes élémentaires (les mailles dans le cas d'une application d'observation de la terre), et le coût de programmation des requêtes élémentaires par les dispositifs d'acquisition (les satellites dans le cas d'une 15 application d'observation de la terre). Les agents mailles envoient leurs demandes de programmation à tous les agents satellites ayant un accès de visibilité sur eux, et par la suite ils privilégient l'agent satellite au coût le plus faible. Les agents satellites traitent tous les agents maille ayant fait une demande de programmation en privilégiant ceux qui 20 présentent la criticité la plus élevée. Les agents requêtes influencent le degré de satisfaction de leurs mailles en fonction de l'avancement de la planification de la requête dans son ensemble. L'agent satellite est configuré pour émettre principalement deux messages : un message permettant de fournir une estimation du coût de la 25 planification d'une maille, et un message permettant de confirmer ou non la programmation de la maille. L'agent maille est configuré pour émettre principalement deux messages : une demande de programmation et une demande de confirmation de programmation. 30 L'agent requête est configuré pour émettre principalement un message : une transmission de nouvelles informations aux mailles qui la composent. 3038089 20 Ces différentes informations sont échangées au cours des étapes 41,42,43,44,45,46,47 décrites en lien avec la figure 1. Les figures 4a, 4b, 4c, 4d illustrent un cycle de négociation et d'échanges d'informations entre deux agents mailles AM1, AM2 et deux agents satellites 5 AS1 et AS2 susceptibles de programmer les mailles AM1 et AM2. La figure 4a est le début du cycle correspondant à l'étape 43 de demande de programmation décrite en lien avec la figure 1. La maille AM1 ne dispose que d'une fenêtre de visibilité, désignée ci-après par le terme accès, et référencé al. 1. La Maille AM2 dispose de deux accès, référencés a2.1 et a2.2. Chaque maille 10 AM1 et AM2 émet pour chacun de ses accès des demandes de programmation aux agents satellites AS1, AS2. La figure 4b illustre l'étape suivante du cycle correspondant à l'étape de calcul du coût de la programmation 44. Les agents satellites AS1 et AS2 calculent les coûts cl, c2, c3 de programmation de chacune des mailles AM1, AM2. Ces 15 coûts sont transmis aux agents mailles AM1 et AM2. La figure 4c illustre l'étape suivante du cycle correspondant à l'étape 45 de sélection du satellite le moins coûteux. Les agents AM1 et AM2 sélectionnent chacun les agents satellites les moins coûteux et demandent une confirmation. Enfin, la figure 4d illustre la validation de la programmation par les agents 20 satellites AS1 et AS2. Dans le cas où les satellites rencontrent un conflit de programmation, le cycle comprend en plus une étape de sélection de la maille présentant la plus forte criticité. Selon l'invention, ces différents cycles sont répétés jusqu'à ce que le 25 système soit considéré comme peu évolutif. Pour ce faire, il est possible d'introduire un module observateur qui vient régulièrement déterminer le caractère stable ou évolutif de la programmation. Selon une autre variante, les cycles sont répétés pendant un laps de temps prédéterminé par expérience. Les figures 5A, 5b, 5c, 5d illustrent un mode de réalisation plus dynamique 30 au cours duquel un nouvel agent maille AM2 est introduit dans le système, suite par exemple à la réception d'une nouvelle requête urgente d'un client. Sur les 3038089 21 figures, l'agent maille AM1 est déjà programmé sur le satellite AS1. La figure 5a illustre le premier cycle au cours duquel le nouvel agent AM2 fait une demande de programmation à l'agent satellite AS1, alors que cet agent présente déjà, dans ce créneau horaire, la programmation de l'agent maille AM1. 5 La figure 5b illustre le cycle suivant au cours duquel l'agent satellite AS1 compare la criticité cri de l'agent maille AM1 et la criticité cr2 de l'agent maille AM2. Il en ressort que l'agent maille AM2 est plus critique que l'agent maille AM1. L'agent satellite AS1 calcule alors le coût cl de programmation de l'agent maille AM2 à l'accès al préalablement attribué à l'agent maille AM1 et le 10 transmet à l'agent maille AS2. La figure 5c illustre le cycle suivant au cours duquel l'agent maille AM2 demande une confirmation de programmation à l'agent satellite AS1. La figure 5d illustre le cycle suivant au cours duquel l'agent satellite AS1 programme AM2 et annule la programmation de l'agent maille AM1 à l'accès al . 15 L'agent maille AM1 est donc réintégré dans la liste des mailles à programmer. Un procédé selon ce mode de réalisation est donc dynamique et peut prendre en compte de manière évolutive toutes nouvelles requêtes soumises au système. D'une manière générale, un procédé selon l'invention est dynamique, non 20 seulement par la possibilité de prendre en compte toute nouvelle requête soumise, mais de manière plus générale par la prise en compte de toute modification de toute entité composant le système multi-agents coopératif selon l'invention. En particulier, si un satellite initialement présent dans la constellation devient inopérant et ne peut plus, à ce titre, assurer l'acquisition d'images initialement 25 programmées, les requêtes préalablement programmées sur ce satellite sont à nouveau soumises au système et le programme global va évoluer pour chaque satellite restant en fonction des différents critères de coût et de criticité précédemment décrits des différentes requêtes à reprogrammer et celles déjà programmées sur les différents satellites. 30 De même, toute évolution de toute entité (module énergie, module mémoire, etc.) peut être prise en compte par le système multi-agents, rendant ainsi 3038089 22 dynamique un procédé et un dispositif selon l'invention. Un procédé selon l'invention peut être mis en oeuvre sous la forme d'une séquence d'instructions d'un programme informatique. Le procédé peut également être mis en oeuvre sous forme matérielle ou sous une forme mixte 5 matérielle et logicielle. Dans le cas où l'invention est implantée partiellement ou totalement sous la forme logicielle, la séquence d'instructions correspondante pourra être stockée dans un moyen de stockage amovible, tel qu'une disquette, un CD-ROM, un DVD-ROM, une clé USB, etc., ou un moyen de stockage non amovible, ces différents moyens étant lisibles partiellement ou totalement par un 10 ordinateur ou par un microprocesseur. L'invention ne se limite pas aux seuls modes de réalisation décrits. En particulier, l'invention a été essentiellement décrite en lien avec une constellation de satellites d'observations de la terre. Cela étant, le procédé de détermination d'un programme d'acquisitions de données peut s'appliquer à tous types de 15 dispositifs d'acquisitions et à tous types de données. Par exemple, l'invention peut s'appliquer à une constellation de drones, ou à une constellation de ballons sondes. REVENDICATIONS1. Procédé d'élaboration d'un programme d'acquisition de données complexes par une pluralité de dispositifs d'acquisition de données élémentaires, dite constellation de dispositifs d'acquisition, ledit procédé comprenant : - une étape de réception (10) d'une pluralité de requêtes d'acquisition de données complexes (7), dites requêtes clients, chaque requête client comprenant des contraintes d'acquisition desdites données complexes (7), - une étape de découpage (20) de chaque requête client en une pluralité de requêtes, dites requêtes élémentaires, d'acquisition d'une donnée élémentaire (7a, 7b, 7c) pouvant être acquise en une seule acquisition par un seul dispositif d'acquisition de ladite constellation, - une étape de détermination (30), pour chaque donnée élémentaire, d'au moins une fenêtre temporelle d'acquisition de cette donnée élémentaire par au moins un dispositif d'acquisition de la constellation, - une étape d'attribution (40) à chaque dispositif d'acquisition de ladite constellation, par un système multi-agents coopératif (50, 51, 52), d'une liste de données élémentaires à acquérir associées chacune à un créneau d'acquisition situé à l'intérieur d'une fenêtre temporelle d'acquisition de cette donnée élémentaire, lesdites données élémentaires ainsi attribuées formant une pluralité des données complexes desdites requêtes clients, et définissant ledit programme d'acquisition. 2. Procédé selon la revendication 1, caractérisé en ce que ladite étape d'attribution comprend: une étape de calcul (41), pour chaque requête élémentaire, d'une criticité de programmation pour cette requête élémentaire, une étape de sélection (42), pour chaque requête élémentaire, d'une 3038089 24 liste de dispositifs d'acquisition compatible avec au moins une fenêtre temporelle d'acquisition associée à cette requête élémentaire, dite liste autorisée, - une étape de demande de programmation (43) desdites requêtes 5 élémentaires sur chaque dispositif d'acquisition de ladite liste autorisée associée à chaque requête élémentaire, - une étape de calcul (44), pour chaque dispositif d'acquisition, d'un coût de programmation de chaque requête élémentaire reçue par ce dispositif d'acquisition, 10 - une étape de sélection (45), pour chaque requête élémentaire, du dispositif d'acquisition présentant le coût le plus faible, - une étape de sélection (46), en cas de conflit de programmation, pour chaque dispositif d'acquisition, de la requête élémentaire présentant la criticité de programmation la plus forte, 15 - une étape de confirmation (47) de la programmation, pour chaque requête élémentaire sélectionnée, du dispositif d'acquisition sélectionné. 3. Procédé selon la revendication 2, caractérisé en ce que ladite étape (46) de sélection, en cas de conflit de programmation, pour chaque dispositif 20 d'acquisition, de ladite requête élémentaire présentant la criticité de programmation la plus forte comprend, en cas de présence de plusieurs requêtes à criticité équivalente, une sous-étape de tentative d'adaptation de la programmation desdites requêtes programmées au voisinage des requêtes en conflit pour pouvoir programmer l'ensemble des requêtes en conflit. 25 4. Procédé selon l'une des revendications 2 ou 3, caractérisé en ce que ledit coût (cl, c2, c3) de programmation d'une requête élémentaire par un dispositif d'acquisition est une fonction de la charge de ce dispositif d'acquisition et/ou du nombre de demandes de programmation reçue pour ce dispositif d'acquisition, et/ou de la criticité de cette requête élémentaire. 30 5. Procédé selon l'une des revendications 2 à 4, caractérisé en ce que ladite criticité de programmation d'une requête élémentaire est une fonction d'une 3038089 25 information représentative de l'urgence de la planification de cette requête élémentaire, et/ou du nombre de fenêtres temporelles d'acquisition disponibles pour cette requête élémentaire, et/ou d'un pourcentage de réalisation de la requête complexe dont dépend cette requête élémentaire. 5 6. Procédé selon l'une des revendications 1 à 5, caractérisé en ce que lesdites contraintes d'acquisition associées aux requêtes d'acquisition comprennent des contraintes, spatiales, temporelles, et/ou techniques. 7. Procédé selon la revendication 6, caractérisé en ce que lesdites contraintes techniques comprennent un taux de couverture nuageuse toléré lors de 10 l'acquisition des données élémentaires associées à ladite requête complexe. 8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce que lesdits dispositifs d'acquisition de ladite constellation sont des dispositifs d'acquisition optiques montés sur des satellites d'observations de la terre et en ce que lesdites données complexes à acquérir sont des zones du globe terrestre à acquérir et en ce 15 que lesdites données élémentaires sont des images pouvant être directement acquises par un seul satellite de ladite constellation. 9. Dispositif d'élaboration d'un programme d'acquisitions de données complexes par une pluralité de dispositifs d'acquisition de données élémentaires, dite constellation de dispositifs d'acquisition, ledit dispositif comprenant : 20 - un module de réception d'une pluralité de requêtes d'acquisition de données complexes, dites requêtes clients, chaque requête client comprenant des contraintes d' acquisition desdites données complexes, - un module de découpage de chaque requête client en une pluralité 25 de requête, dites requêtes élémentaires, d'acquisition d'une donnée élémentaire pouvant être acquise en une seule acquisition par un seul dispositif d'acquisition de ladite constellation, - un module de détermination, pour chaque donnée élémentaire, d'au moins une fenêtre temporelle d'acquisition de cette donnée 30 élémentaire par au moins un dispositif d'acquisition de la constellation, 3038089 26 un système multi-agents coopératif (50, 51, 52) configuré pour pouvoir attribuer à chaque dispositif d'acquisition de ladite constellation, une liste de données élémentaires à acquérir associées chacune à un créneau d'acquisition situé à l'intérieur 5 d'une fenêtre temporelle d'acquisition de cette donnée élémentaire, lesdites données élémentaires ainsi attribuées formant une pluralité de données complexes desdites requêtes clients, et définissant ledit programme d'acquisition. 10. Dispositif selon la revendication 9, caractérisé en ce que ledit système 10 multi-agents coopératif (50, 51, 52) comprend une pluralité d'agents, dits agents d'acquisition (50), configurés pour poursuivre un objectif d'acquisition de donnée élémentaire, une pluralité d'agents, dits agents de requête élémentaire (51), configurés pour poursuivre un objectif de sa programmation et une pluralité d'agents, dits agents de requête client (52), configurés pour poursuivre un objectif 15 de la programmation de l'ensemble des requêtes élémentaires qu'elle contient, chaque agent comprenant des moyens de communications et étant capables d'interagir avec au moins certains des autres agents du système. 11. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou 20 exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé d'élaboration d'un programme d'acquisitions de données complexes par une pluralité de dispositifs d'acquisition de données élémentaires, selon l'une des revendications 1 à 8, lorsque le programme est exécuté sur un ordinateur. 25 12. Moyen de stockage lisible par ordinateur, totalement ou partiellement amovible, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé d'élaboration d'un programme d'acquisitions de données complexes par une pluralité de dispositifs d'acquisitions de données élémentaires, selon l'une des revendications 1 à 8. 30