Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AUTONOMOUS PILOTLESS VEHICLE NAVIGATION AND BEHAVIOUR WITHOUT CONNECTION TO THE CONTROL STATION
Document Type and Number:
WIPO Patent Application WO/2019/112407
Kind Code:
A1
Abstract:
Autonomous decision-making systems which are used in pilotless aircraft are designed to manage unexpected occurrences, such as a loss of connection. In such a case, according to the implementation of the system, the system performs a return to base while attempting to minimise the risks; otherwise it seeks to continue to carry out the mission using a mechanism of evaluation and correction cycles until the connection is re-established. These implementations, by virtue of their design, allow the system to operate with performance levels which are defined by default but not capable of taking any initiative, changing the flight mission, managing situations involving uncertainty, nor being completely independent of a control station. The proposed system and method are designed such that operation with decision-making autonomy is the main means of operating the pilotless aircraft during the entire mission, including take-off and landing. Remote control from a ground-based station is secondary. This decision-making autonomy is carried out by three modules, namely Behaviour, Vision and Mission, the implementation and operation of which are described in this document.

Inventors:
MOUMEN YOUNES (MA)
Application Number:
PCT/MA2018/050013
Publication Date:
June 13, 2019
Filing Date:
December 04, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ATLAN SPACE (MA)
International Classes:
G05D1/00
Domestic Patent References:
WO2016033796A12016-03-10
Foreign References:
US20160187882A12016-06-30
US20150051783A12015-02-19
US20060106506A12006-05-18
US20110184604A12011-07-28
EP3101502A22016-12-07
Attorney, Agent or Firm:
IDRISSI, Badr (MA)
Download PDF:
Claims:
Revendications

1 . Un système de navigation et de comportement autonomes de véhicule aérien sans pilote caractérisé par un Module de Comportement (103), un Module de Mission (104) et un Module de Vision (105) exécutés par un ordinateur principal (100) embarqué dans l’avion sans pilote. Celui-ci est connecté aux différents Systèmes de l’appareil (101) qui incluent tous les systèmes embarqués de commande et de capture des données : l’autopilote, les moteurs, les relais, les caméras, les capteurs, les dispositifs de télécommunication par satellite, GSM, ou radio en général.

2. Un système selon la revendication 1 caractérisé en ce que le Module de Comportement (103) est implémenté dans la mémoire de l’ordinateur comme un Graphe orienté où chaque nœud est un Arbre de comportement et chaque arc entre deux Arbres A vers B est un appel d’une Action de l’Arbre A pour passer à l’exécution de la racine de l’Arbre B. Un seul Arbre est le point de départ d’exécution du Module de Comportement (103). Le nombre d’Arbres est au moins un ; le nombre d’arcs est au moins zéro. Le modèle d’arbre de comportement utilisé est basé sur une arborescence de nœuds représentant des Conditions, des Actions et des Instructions standards qui structurent l’exécution de l’arbre. Les Conditions représentent des informations récupérées auprès du Module de Mission (104) , du Module de Vision (105), ou du Module de Comportement (103) qui représentent des données internes, des données relayées depuis les Systèmes de l’appareil (101) ou une combinaison des deux. Les Actions représentent des commandes envoyées au Module de Mission (104), au Module de Vision (105) ou au Module de Comportement (103) qui ont un impact interne sur ces modules, un impact sur les Systèmes de l’appareil (101) ou une combinaison des deux.

3. Un système selon les revendications 1 et 2 caractérisé en ce qu’une partie du Graphe des Arbres de comportement est fixe (106), définie par un humain selon le comportement désiré de l’appareil. Des Actions spéciales font toutefois appel à l’exécution d’algorithmes spécifiques d’apprentissage par renforcement (107). Des Conditions spécifiques font appel à des inférences sur des réseaux neurones (108). Un contexte global permet le partage de données entre l’ensemble de ces éléments : le Graphe des Arbres de comportement (106), les algorithmes d’apprentissage par renforcement (107), et les réseaux de neurones (108).

4. Un système selon la revendication 1 caractérisé en ce que le Module de Mission (104) est l’interface entre le Module de Comportement (103) et les Systèmes de l’appareil (101). Il (104) est composé des modules de : Modèle de terrain (109), Processeur de mission (1 10), Détecteur des obstacles (1 1 1 ), Planificateur de vol (1 12), Scanneur de surfaces (1 13), Décollage & atterrissage (1 14), Suiveur d’objets (115), Manœuvres spéciales (116), Estimateur d’énergie & de temps (117), Ajustements avancés (1 18), et Centre des communications (1 19). L’ensemble de ces modules partagent le même espace de données dans l’ordinateur.

5. Un système selon la revendication 1 caractérisé en ce que le Module de Vision (105) est composé d’un ensemble de sous-modules qui sont : Préprocesseur d’images (118), Détection de régions (119), et Classification (120).

6. Un procédé de navigation et de comportement autonomes de véhicule aérien sans pilote caractérisé par l’exécution qui commence par un Arbre de démarrage du Graphe du Module de comportement (103). La progression d’exécution du modèle se base sur des passes. Dans chaque passe l’ordinateur (100) exécute le nœud racine et appelle l’exécution récursive de ses enfants. Ces derniers pouvant être des Conditions, des Actions ou des Instructions standards qui structurent l’exécution de l’Arbre. Les Conditions représentent des informations récupérées auprès du Module de Mission (104) , du Module de Vision (105), ou du Module de Comportement (103) qui représentent des données internes, des données relayées depuis les Systèmes de l’appareil (101) ou une combinaison des deux. Les Actions représentent des commandes envoyées au Module de Mission (104), au Module de Vision (105) ou au Module de Comportement (103) qui ont un impact interne sur ces modules, un impact sur les Systèmes de l’appareil (101) ou une combinaison des deux.

7. Un procédé selon la revendication 6 caractérisé en ce qu’une partie du Graphe des Arbres de comportement est fixe (106), définie par un humain selon le comportement désiré de l’appareil. Des Actions spéciales font toutefois appel à l’exécution d’algorithmes spécifiques d’apprentissage par renforcement (107). Des Conditions spécifiques font appel à des inférences sur des réseaux neurones (108).

8. Un procédé selon la revendication 6 caractérisé en ce que le Module de Mission (104) envoi des commandes discrètes aux Systèmes de l’appareil (101) en réponse aux Actions du Module de Comportement (103) et récupère et consolide les informations récupérées de ces systèmes (101 ) pour les alimenter aux Conditions.

En particulier, le Modèle de terrain (109) garde en mémoire et met à jour au besoin un modèle de représentation tridimensionnelle du terrain ;

Le Processeur de mission (1 10) garde en mémoire et met à jour au besoin des informations relatives aux tâches et objectifs de la mission attribuée à l’appareil, ainsi que le statut actuel de progression dans l’exécution des tâches ;

Le Détecteur des obstacles (111) traite les données des capteurs de l’appareils et extrait les informations utiles sur les objets qui entourent l’appareil dans son environnement en dehors de l’élévation qui est déjà préexistante dans le Module de Terrain (109) ;

Le Planificateur de vol (1 12) reçoit en entrée principalement les données du Modèle de Terrain (109) et du Détecteur des obstacles (1 1 1 ) et génère des plans de vol optimisés reliant tout point A à tout point B à l’intérieur de la géo-clôture ;

Le Scanneur de surfaces (1 13) reçoit en entrée principalement les données du Modèle de Terrain (109) et du Détecteur des obstacles (1 1 1 ) et génère des plans de vol optimisés destinés à couvrir le plus efficacement possible des zones géographiques définies selon des modèles adaptés ;

Le Décollage & atterrissage (114) détermine les manoeuvres nécessaires pour réussir en toute sécurité les phases sensibles de décollage et d’atterrissage, les traduit en commandes, et les envoie à l’autopilote à la demande des Actions du Module de Comportement (103) ;

Le Suiveur d’objets (115) détermine les manoeuvres nécessaires pour suivre un objet selon des paramètres définis, les traduit en commandes, et les envoie à l’autopilote à la demande des Actions du Module de Comportement (103).

Manoeuvres spéciales (116) dispose des commandes paramétrables nécessaires pour effectuer des manœuvres spéciales. Ces manœuvres incluent mais ne se limitent pas à planer en silence, fuir en zigzags, ou le larguer une charge. Ces commandes sont envoyées à l’autopilote à la demande d’une Action du Module de Comportement (103) ;

L’Estimateur d’énergie & de temps (117) reçoit principalement en entrée les données des Modules Planificateur de vol (1 12), Scanneur de surfaces (1 13) et Décollage & atterrissage (1 14) ainsi que l'historique des capteurs embarqués pour calculer en sortie l’énergie ou le temps nécessaire à exécuter une tâche par le Processeur de mission (110) avec une estimation de l’erreur ;

Ajustements avancés (1 18) exécute en arrière-plan en continue un algorithme de trial & error qui injecte régulièrement des modifications des paramètres de l’autopilote et analyse l’impact sur l’endurance de l’appareil ;

Le Centre de communication (1 19) enregistre et traite les messages entrants et sortants. Le traitement consiste en le cryptage et envoi des messages sortants, ou le décryptage et transfert des messages entrants.

9. Un procédé selon la revendication 6 caractérisé en ce que le Préprocesseur d’images (118) récupère la dernière image du capteur, lui applique certains filtres et la découpe selon l’altitude de l’appareil, son attitude, et les spécifications du capteur. Chaque image découpée est injectée en entrée au Module de Détection de régions (1 19). Ce dernier exécute une inférence par réseau de neurones sur l’image en entrée et retourne les objets détectés avec leurs positions sur l’image sous forme d’un rectangle qui sont traduites en positions sur le monde réel. Chaque rectangle découpé de l’image est ensuite injecté en entrée au Module de Classification (120). Ce dernier exécute un ensemble de sous- programmes qui génèrent des informations sur l’objet avec des taux d’erreur calculés. Ces sous- programmes incluent mais ne se limitent pas à une inférence de classification, par réseau de neurones, à la détection de Descripteurs et la comparaison avec une base de données existante de Descripteurs, à l’exécution de filtres spéciaux et à la récupération d’informations extraites de l’image filtrée.

10. Un procédé selon les revendications 6, 7, 8 et 9 caractérisé par un fonctionnement typique de ce système, issu d’une implémentation spécifique du Graphe dans le Module de Comportement (103) avec un premier Arbre de comportement (200) qui comprend une exécution séquentielle de : l’Action d’armer l’autopilote (230) ; suivi de la vérification de la Condition de météo acceptable pour le vol (250); suivi de la vérification de la Condition de disponibilité de suffisamment d’énergie (251) pour exécuter l’ensemble des tâches alimentées dans le Processeur de Mission (1 10) ; suivi, selon le résultat de la condition, de l’interruption de la mission ou l’exécution en parallèle (203) des procédés qui représentent des arbres de comportement de : la navigation ; la communication ; et la détection où :

L’arbre de navigation comprend une exécution séquentielle (201) de : l’Action de décollage (231) ; suivie d’une exécution en boucle (214) de la séquence (201) : de vérification de la Condition qu’il ne reste aucune tâche (252) ; suivi de la vérification de la Condition que l’énergie est suffisante (251), au niveau de l’Estimateur d’énergie & de temps (117), pour exécuter la tâche suivante ; suivi, selon le résultat de la Condition (251), de l’interruption de la mission ou de l’Action d’exécuter la tâche suivante (232). La boucle (214) se termine à la vérification de la Condition qu’il ne reste aucune tâche (252) ; A la suite à cela, l’Action d’atterrissage (233) est exécutée.

L’arbre de de communication comprend une boucle (214) qui exécute en séquence (201 ) : la vérification de la Condition de réception de nouvelles commandes (253) ; suivi de l’exécution de l’Action relative à la commande (234) ; suivi de l’exécution de l’Action de reprise de la mission (235) en reprenant la dernière tâche.

L’arbre de détection comprend une boucle (214) qui exécute en séquence (201 ) : le lancement de l’Action de détection (236) ; suivi de la vérification de la Condition du seuil de certitude de la détection de l’objet (254) requis par la mission ; suivi de, dans le cas où le résultat de la Condition (254) est positif, de l’exécution de l’Action d’envoi d’une alerte (237).

REVENDICATIONS MODIFIÉES

reçues par le Bureau international le 21 mai 2019 (21 .05.2019)

Revendications

[Revendication 1] Un système de navigation et de comportement autonomes de véhicule aérien sans pilote caractérisé par un ordinateur principal (100), embarqué dans l’avion sans pilote, contenant des modules informatiques qui opèrent sans liaison avec la station de contrôle. Les modules étant: Un module (103) est implémenté dans la mémoire de l’ordinateur sous forme de graphe orienté où chaque nœud est un arbre de comportement (200);

Un module (104) servant d’interface avec les systèmes embarqués de commande et de capture des données: G autopilote, les moteurs, les relais, les caméras, les capteurs, les dispositifs de télécommunication par satellite, GSM, ou radio en général;

Un module (105) de traitement des images.

[Revendication 2] Un système selon la revendication 1 caractérisé en ce que le modèle d’arbre de comportement utilisé dans le module (103) est implémenté sous forme d’une arborescence de nœuds représentant des conditions, des actions et des instructions standards qui structurent l’exécution de l’arbre. Les conditions sont des informations récupérées qui représentent des données internes, des données relayées depuis les systèmes de l’appareil (101) ou une combinaison des deux. Les actions représentent des commandes envoyées qui ont un impact interne sur l’un des modules, un impact sur les systèmes de l’appareil (101) ou une com binaison des deux.

[Revendication 3] Un système selon les revendications 1 et 2 caractérisé en ce qu’une partie du graphe des arbres de comportement est fixe (106), définie par un humain selon le comportement désiré de l’appareil. Une autre partie est dynamique par le biais d’actions spéciales qui font appel à des al gorithmes spécifiques.

[Revendication 4] Un système selon la revendication 1 caractérisé en ce que le module

(104) est composé d’un ensemble de sous-modules qui partagent le même espace de données dans l’ordinateur (100).

[Revendication 5] Un système selon la revendication 1 caractérisé en ce que le module

(105) de traitement d’images est composé de 3 sous-modules de: pré traitement des images (118), détection de régions dans les images (119), et de classification des images (120).

[Revendication 6] Un procédé de navigation et de comportement autonomes de véhicule aérien sans pilote caractérisé par l’exécution qui commence par un arbre de démarrage du graphe du module (103). La progression d’exécution du modèle se base sur des passes. Dans chaque passe, l’ordinateur (100) exécute le nœud racine et appelle l’exécution récursive de ses enfants. Ces derniers pouvant être des conditions, des actions ou des instructions standards qui structurent l’exécution de l’arbre.

[Revendication 7] Un procédé selon la revendication 6 caractérisé en ce que le module

(104) envoi des commandes discrètes aux systèmes de l’appareil (101) en réponse aux actions du module (103) et récupère et consolide les in formations récupérées de ces systèmes (101) pour les alimenter aux conditions.

En particulier, un sous-module (109) garde en mémoire et met à jour au besoin un modèle de représentation tridimensionnelle du terrain ;

un sous-module (110) garde en mémoire et met à jour au besoin des in formations relatives aux tâches et objectifs de la mission attribuée à l’appareil, ainsi que le statut actuel de progression dans l’exécution des tâches ;

un sous-module (111) traite les données des capteurs de l’appareil et extrait les informations utiles sur les objets qui entourent l’appareil dans son environnement en dehors de l’élévation de terrain ;

un sous-module (112) reçoit en entrée principalement les données du sous-module (109) et du sous-module (111) et génère des plans de vol optimisés reliant tout point A à tout point B à l’intérieur de la géo clôture ;

Un sous-module (113) reçoit en entrée principalement les données du sous-module (109) et du sous-module (111) et génère des plans de vol optimisés destinés à couvrir le plus efficacement possible des zones géo graphiques définies selon des modèles adaptés ;

Un sous-module (114) détermine les manœuvres nécessaires pour réussir en toute sécurité les phases sensibles de décollage et

d’atterrissage, les traduit en commandes, et les envoie à G autopilote à la demande des actions du module (103) ;

un sous-module (115) détermine les manœuvres nécessaires pour suivre un objet selon des paramètres définis, les traduit en commandes, et les envoie à l’autopilote à la demande des actions du module (103).

Un sous-module (116) dispose des commandes paramétrables né cessaires pour effectuer des manœuvres spéciales. Ces commandes sont envoyées à l’autopilote à la demande d’une action du module (103) ;

Un sous-module (117) reçoit principalement en entrée les données des sous-module (112), sous-module (113) et sous-module (114) ainsi que l’historique des capteurs embarqués pour calculer en sortie l’énergie ou le temps nécessaire à exécuter une tâche par le sous-module (110) avec une estimation de l’erreur ;

Un sous-module (118) exécute en arrière-plan en continue un al gorithme qui injecte régulièrement des modifications des paramètres de l’autopilote et analyse l’impact sur l’endurance de l’appareil ;

Un sous-module (119) enregistre et traite les messages entrants et sortants. Le traitement consiste en le cryptage et envoi des messages sortants, ou le décryptage et transfert des messages entrants.

[Revendication 8] Un procédé selon la revendication 6 caractérisé en ce que le sous- module (118) récupère la dernière image du capteur, lui applique certains filtres et la découpe selon l’altitude de l’appareil, son attitude, et les spécifications du capteur. Chaque image découpée est injectée en entrée au sous-module (119). Ce dernier exécute une inférence par réseau de neurones sur l’image en entrée et retourne les objets détectés avec leurs positions sur l’image sous forme d’un rectangle qui sont traduites en positions sur le monde réel. Chaque rectangle découpé de l’image est ensuite injecté en entrée au sous-module (120). Ce dernier exécute un ensemble de sous-programmes qui génèrent des informations sur l’objet avec des taux d’erreur calculés. Ces sous-programmes incluent mais ne se limitent pas à une inférence de classification, par réseau de neurones, à la détection de Descripteurs et la comparaison avec une base de données existante de Descripteurs, à l’exécution de filtres spéciaux et à la récupération d’informations extraites de l’image filtrée.

Description:
Navigation et comportement autonomes de véhicule sans pilote sans liaison avec la station de contrôle

Description

[1 ] La présente invention est relative au domaine général des véhicules aériens sans pilotes. Elle appartient au domaine particulier des opérations de vol autonome d’appareils aériens sans pilotes, spécialement, en situation de non connexion ou de connexion réduite à une station de contrôle, avec une navigation et comportement autonomes embarqués dans l’appareil.

[2] Les capacités des avions sans pilotes à couvrir de larges zones géographiques sont largement handicapées par la nécessité d’une station de contrôle, communément au sol, en liaison avec l’avion afin d’envoyer les commandes de vol et de mission et de recevoir les données capturées et la télémétrie. La station de contrôle est gérée par des humains qui effectuent les planifications de navigation et veillent à exécuter les objectifs de la mission de vol tout en gérant les situations inattendues. Cette liaison, entre la station de contrôle et l’avion limite son rayon d’action à la capacité et performances de transmission de l’information de cette liaison. Dans le cas d’interruption de la liaison, l’avion se retrouve tout seul sans capacité d’autonomie suffisante pour continuer la mission. Il entreprend donc généralement une action par défaut, telle que le retour au point de décollage, qui est souvent dangereuse en vue des conditions imprévisibles sur le terrain. L’avion peut, à titre d’exemple, entreprendre un trajet direct qui passe par une zone interdite de vol, rencontrer des conditions météo imprévisibles ou retourner à un point qui n’est plus accessible pour récupération.

[3] Enlever la limitation de la liaison de communication revient à embarquer dans l’avion sans pilote une autonomie décisionnelle suffisante pour naviguer et se comporter d’une façon qui puisse satisfaire les objectifs de la mission et réagir correctement face à des situations imprévues. Nous allons aborder des propositions de solutions existantes, puis décrire notre invention.

[4] NORTHROP GRUMMAN CORPORATION répond au problème particulier de gestion de la perte de connectivité, ou de la rencontre de situations imprévisibles, par leur brevet d’invention US2006106506. Leur invention inclue une évaluation des performances du véhicule afin de déclarer les imprévus. Dans le cas de leur occurrence, un plan de vol pour retourner à la base est prévu. Ce plan de vol prend en considération des conditions d’environnement telles que les zones interdites de vol, les données de terrain, les prévisions météos, et les stations de contrôle alternatives pour rétablir les communications. Il s’agit concrètement d’une autonomie décisionnelle limitée capable de détecter un imprévu, et d’interrompre la mission de la façon la plus sécurisée possible.

[5] LOCKHEED CORP a également publié un brevet d’invention US2011184604 qui décrit en partie une autonomie plus avancée capable de continuer la mission en cas d’imprévu lors d’opérations incluant plusieurs appareils. L’approche ici est différente, adaptée pour gérer les situations imprévues et réagir rapidement lors de l’utilisation de véhicules avec différents niveaux d’autonomie. Toutefois, le brevet n’étant pas centré sur l’autonomie décisionnelle d’un seul appareil, le fonctionnement détaillé de l’autonomie n’est pas élaboré.

[6] THE BOEING COMPANY détaille le fonctionnement d’un système et méthode d’autonomie décisionnelle dans son brevet d’invention EP3101502. Selon cette invention, lorsqu’un appareil sort du rayon de transmission de la station au sol, il peut continuer à exécuter la mission jusqu’à rétablissement de la communication grâce à un mécanisme qu’on peut qualifier de correctif. Ce mécanisme effectue des cycles de vérification des performances des différents composants nécessaires au fonctionnement de l’autonomie décisionnelle. Dès que le résultat d’une évaluation est en dessous des objectifs de performances requis, un ensemble d’actions correctives sont exécutées, puis un nouveau cycle de réévaluation est entrepris. Ce système est conçu dans une logique où l’appareil est normalement commandé à distance, et ce n’est qu’en cas de perte de connexion que ce système correctif entre en jeu pour maintenir un fonctionnement minimal du système selon les objectifs définis, le temps que la connexion soit rétablie. Toutefois, le système semble intégrer l’ensemble des composantes et méthodes nécessaires à la réussite d’un fonctionnement selon les objectifs désirés. Seule la méthode corrective de génération de plans de vols alternatifs pour satisfaire aux objectifs de mission qui semble problématique par le fait qu’elle est composée en deux étapes : la première génère le plan de vol alternatif alors que la deuxième vérifie sa fiabilité. Ceci à notre sens offre des planifications de vol peu optimisées et nécessite un coût important en termes de puissance de calcul, spécialement dans les environnements où les risques sont nombreux : zones d’interdiction de vol, angles de dénivelé de terrain, etc.

[7] Les inventions dans l’état de la technique considèrent la commande depuis la station de contrôle comme étant le moyen principal d’opérer l’avion sans pilote, et le fonctionnement en dehors de la connectivité avec la station de contrôle est perçu comme un imprévu auxquels des systèmes à différents niveaux d’autonomie décisionnelle répondent. Selon les cas, cette autonomie décisionnelle permet un retour plus sécurisé à une zone de rétablissement de la connectivité, ou peut aller jusqu’à compléter la mission avec des objectifs de performances qui sont régulièrement évaluées et corrigées.

[8] Notre approche est différente par le fait que nous considérons une conception où le fonctionnement en autonomie décisionnelle est le moyen principal d’opérer l’avion sans pilote pendant toute la mission, incluant le décollage et l’atterrissage (ou amerrissage). La commande à distance depuis une station au sol est secondaire. Partant de cette approche, un système correctif basé sur des évaluations cycliques des performances ou un mécanisme de règles : actions exécutées une fois des conditions sont remplies, devient insatisfaisant.

[9] Dans notre approche, nous avons identifié les fonctions principales suivantes nécessaires à l’autonomie décisionnelle recherchée : Une autonomie de comportement capable de remplacer la prise de décision du pilote afin d’exécuter les objectifs de la mission et faire face à des incertitudes ou à des situations exceptionnelles ; Une navigation automatique pour parcourir des trajets ou scanner des zones sans incidents et avec une optimisation de l’énergie ou du temps nécessaire pour chaque parcours ; Et une reconnaissance automatique des objets en utilisant les capteurs et en interprétant les données. La reconnaissance automatique est accompagnée par un indice de certitude qui est remonté à l’autonomie de comportement. Cette reconnaissance automatique permet au système d’envoyer uniquement l’information utile détectée au lieu d’un flux vidéo en utilisant une connexion satellitaire à très faible débit.

[10] Les composantes logicielles qui assurent ces trois fonctions principales identifiées sont : le Module de Comportement (103), le Module de Mission (104) et le Module de Vision (105). Le Module de Comportement (103) est le module principal qui est démarré au début de la mission. Il fait appel au Module de Mission (104) et au Module de Vision (105) pour récupérer des informations et exécuter des commandes.

[1 1 ] Nous définissons un Module comme étant un programme logiciel pouvant être chargé dans la mémoire d’un ordinateur et exécuté par ses processeurs, avec un espace de données statiques et dynamiques partagées et accessibles par l’ensemble des instructions du programme. Un Module peut être composé de sous-modules partageant les mêmes caractéristiques et pouvant accéder à l’espace des données du module parent.

[12] L’ensemble des Modules sont exécutés par un ordinateur principal (100) embarqué dans l’avion sans pilote. Celui-ci est connecté aux différents Systèmes de l’appareil (101 ).

[13] Nous appelons Systèmes de l’appareil (101 ) tous les dispositifs de commande et tous les dispositifs de capture des données présents dans l’appareil. Ces Systèmes incluent et ne se limitent pas à l’autopilote, les moteurs, les relais, les caméras, les capteurs, les dispositifs de télécommunication par satellite, par GSM ou par radio en général. [14] Un deuxième ordinateur secondaire (102) embarqué dans l’avion sans pilote peut être utilisé dans le cas de défaillance du premier ordinateur (100). L’ordinateur secondaire (102) est relié à l’ordinateur principal (100) par un moyen d’échange bidirectionnel d’informations tel qu’une connexion basée sur le standard Internet Protocole. L’ordinateur secondaire (102) vérifie régulièrement le bon fonctionnement du premier ordinateur (100) et prend le relai en cas de défaillance détectée. Seules des composantes essentielles à un retour sécurisé vers la zone d’atterrissage la plus proche sont embarquées dans l’ordinateur secondaire (102).

[15] Le Module de Comportement (103) est implémenté dans la mémoire de l’ordinateur comme un

Graphe orienté où chaque nœud est un Arbre de comportement (200) et chaque arc entre deux arbres A vers B est un appel d’une Action de l’Arbre A pour passer à l’exécution de la racine de l’Arbre B. Un seul Arbre est le point de départ d’exécution du Module de Comportement (103). Le nombre de d’arbres dans le Graphe est au moins un ; le nombre d’arcs est au moins zéro.

[16] Le modèle d’arbre de comportement utilisé est basé sur une arborescence de nœuds représentant des Conditions, des Actions et des Instructions standards qui structurent l’exécution de l’arbre. Chaque nœud peut prendre des paramètres en entrée et retourne une valeur booléenne vraie/fausse représentant les états de réussite/échec respectivement. La progression d’exécution du modèle se base sur des passes. Dans chaque passe l’ordinateur exécute le nœud racine et appelle l’exécution récursive de ses enfants.

[17] Une partie du Graphe des Arbres de comportement est fixe (106), définie par un humain selon le comportement désiré de l’appareil. Des Actions spéciales font toutefois appel à l’exécution algorithmes spécifiques d’apprentissage par renforcement (107). Des Conditions spécifiques font appel à des inférences sur des réseaux neurones (108). Un contexte global permet le partage de données entre l’ensemble de ces éléments : le Graphe des Arbres de comportement (106), les algorithmes d’apprentissage par renforcement (107), et les réseaux de neurones (108).

[18] Les Conditions représentent des informations récupérées auprès du Module de Mission (104), du Module de Vision (105), ou du Module de Comportement (103) qui représentent des données internes, des données relayées depuis les Systèmes de l’appareil (101 ) ou une combinaison des deux. Les Conditions ne peuvent être que vraies ou fausses.

[19] Les Actions représentent des commandes envoyées au Module de Mission (104), au Module de Vision (105), ou au Module de Comportement (103) qui ont un impact interne sur ces modules, un impact sur les Systèmes de l’appareil (101 ) ou une combinaison des deux. Les Actions sont considérées vraies si elles réussissent et fausses si elles échouent.

[20] Les Instructions standards sont composées d’instructions d’ordonnancement supportant plusieurs enfants, d’instructions de modification supportant un seul et unique enfant, et d’instructions feuilles ne supportant par d’enfants.

[21 ] Sans que cette liste ne soit restrictive, les instructions d’ordonnancement supportant plusieurs enfants sont : exécution séquentielle des nœuds enfants et fin avec échec dès qu’un enfant échoue (201 ) ; exécution séquentielle des nœuds enfants et fin avec échec seulement si tous les enfants échouent (202) ; exécution parallèle des nœuds enfants (203) ; exécution aléatoire des nœuds enfants et fin avec échec dès qu’un enfant échoue (204) ; exécution aléatoire des nœuds enfants et fin avec échec seulement si tous les enfants échouent (205).

[22] Sans que cette liste ne soit restrictive, les instructions de modification supportant un seul et unique enfant sont : Interrupteur d’exécution du nœud enfant (210) à la demande d’une Instruction d’interruption (221 ) ; Inverseur du résultat d’exécution du nœud enfant (21 1 ) ; Limiteur du nombre d’exécutions de l’enfant (212) ; Répéteur de l’exécution du nœud enfant indéfiniment (213) ; Répéteur de l’exécution du nœud enfant jusqu’à son échec (214) ; Instruction qui force le succès du nœud enfant (215). [23] Sans que cette liste ne soit restrictive, les instructions feuilles ne supportant par d’enfants sont : Attendre pendant une durée définie (220) ; Exécuter une interruption (221 ) ; Retourner vrai (222) ; Retourner Faux (223) ; Changer des données dans le contexte global (224) ; Exécuter un arbre (créant ainsi un arc dans le graphe) (225) ; Exécuter une Action (226) ; Vérifier une Condition (227) ; Exécuter un algorithme spécifique d’apprentissage par renforcement (107) ; Vérifier une inférence sur un réseau de neurones (108).

[24] Le Module de Mission (104) est composé des modules de : Modèle de terrain (109), Processeur de mission (1 10), Détecteur des obstacles (1 1 1 ), Planificateur de vol (1 12), Scanneur de surfaces (1 13), Décollage & atterrissage (1 14), Suiveur d’objets (115), Manoeuvres spéciales (116), Estimateur d’énergie & de temps (117), Ajustements avancés (1 18), et Centre des communications (1 19). L’ensemble de ces modules partagent le même espace de données dans l’ordinateur.

[25] Le Module de Mission (104) est l’interface entre le Module de Comportement (103) et les Systèmes de l’appareil (101 ). Il envoi des commandes discrètes aux Systèmes de l’appareil (101 ) en réponse aux Actions du Module de Comportement (103) et récupère et consolide les informations récupérées de ces systèmes (101 ) pour les alimenter aux Conditions.

[26] Le Modèle de terrain (109) est un sous-module du Module de Mission (104). Il garde en mémoire et met à jour au besoin un modèle de représentation tridimensionnelle du terrain incluant mais non limité aux données d’élévation, des maillages, le volume de géo-clôture d’où l’appareil ne doit en aucun cas sortir, les zones d’interdiction de vol, et les prévisions météorologiques.

[27] Le Processeur de mission (1 10) est un sous-module du Module de Mission (104). Il garde en mémoire et met à jour au besoin des informations relatives aux tâches et objectifs de la mission attribuée à l’appareil, ainsi que le statut actuel de progression dans l’exécution des tâches.

[28] Le Détecteur des obstacles (1 1 1 ) est un sous-module du Module de Mission (104). Il traite les données des capteurs de l’appareils et extrait les informations utiles sur les objets qui entourent l’appareil dans son environnement en dehors de l’élévation qui est déjà préexistante dans le Module de Terrain (109).

[29] Le Planificateur de vol (1 12) est un sous-module du Module de Mission (104). Il reçoit en entrée principalement les données du Modèle de Terrain (109) et le Détecteur des obstacles (1 1 1 ) et génère des plans de vol optimisés reliant tout point A à tout point B à l’intérieur de la géo-clôture. Ces plans de vol sont utilisés dans des calculs plus complexes ou transmis à l’autopilote pour être exécutées par l’appareil, dépendamment de l’Action initiée par le Module de Comportement (103).

[30] Le Scanneur de surfaces (1 13) est un sous-module du Module de Mission (104). Il reçoit en entrée principalement les données du Modèle de Terrain (109) et le Détecteur des obstacles (1 1 1 ) et génère des plans de vol optimisés destinés à couvrir le plus efficacement possible de zones géographiques définies selon des modèles adaptés.

[31 ] Le Décollage & atterrissage (1 14) est un sous-module du Module de Mission (104). Il détermine les manoeuvres nécessaires pour réussir en toute sécurité les phases sensibles de décollage et d’atterrissage, les traduit en commandes, et les envoie à l’autopilote à la demande des Actions du Module de Comportement (103).

[32] Le Suiveur d’objets (1 15) est un sous-module du Module de Mission (104). Il détermine les manoeuvres nécessaires pour suivre un objet selon des paramètres définis, les traduit en commandes, et les envoie à l’autopilote à la demande des Actions du Module de Comportement (103).

[33] Manoeuvres spéciales (1 16) est un sous-module du Module de Mission (104). Il dispose des commandes paramétrables nécessaires pour effectuer des manœuvres spéciales. Ces manœuvres incluent mais ne se limitent pas à planer en silence, fuir en zigzags, ou le larguer une charge. Ces commandes sont envoyées à l’autopilote à la demande d’une Action du Module de Comportement (103).

[34] L’Estimateur d’énergie & de temps (1 17) est un sous-module du Module de Mission (104). Il reçoit principalement en entrée les données des modules de Planificateur de vol (1 12), Scanneur de surfaces (1 13) et Décollage & atterrissage (1 14) ainsi que l’historique des capteurs embarqués pour calculer en sortie l’énergie ou le temps nécessaire à exécuter une tâche par le Processeur de mission (1 10) avec une estimation de l’erreur.

[35] Ajustements avancés (1 18) est un sous-module du Module de Mission (104). Il exécute en arrière- plan en continue un algorithme de trial & error qui injecte régulièrement des modifications des paramètres de l’autopilote et analyse l’impact sur l’endurance de l’appareil afin de la maximiser.

[36] Le Centre de communication (1 19) est un sous-module du Module de Mission (104). Il enregistre et traite les messages entrants et sortants. Le traitement consiste en le cryptage et l’envoi des messages sortants, ou le décryptage et le transfert des messages entrants.

[37] Certains sous-modules du Module de Mission (104) restent passifs en attendant qu’un sous- programme soit déclenché par le Module de comportement (103). D’autres s’exécutent automatiquement au démarrage et restent en arrière-plan. C’est le cas des Modules Détecteur des Obstacles (1 1 1 ) et Ajustements avancées (1 18).

[38] Le Module de Vision (105) est composé d’un ensemble de sous-modules qui sont généralement exécutés séquentiellement et qui sont : Préprocesseur d’images (118), Détection de régions (119), et Classification (120).

[39] Le Préprocesseur d’images (1 18) est un sous-module du Module de Vision (105). Il récupère la dernière image du capteur, lui applique certains filtres et la découpe selon l’altitude de l’appareil, son attitude, et les spécifications du capteur. Chaque image découpée est injectée en entrée au Module de Détection de régions (1 19).

[40] La Détection de régions (1 19) est un sous-module du Module de Vision (105). Il exécute une inférence par réseaux de neurones sur l’image en entrée et retourne les objets détectés avec leurs positions sur l’image sous forme d’un rectangle qui sont traduites en positions sur le monde réel. Chaque rectangle est ensuite découpé de l’image est injecté en entrée au Module de Classification (120).

[41 ] La Classification (120) est un sous-module du Module de Vision (105). Il exécute un ensemble de sous-programmes qui génèrent des informations sur l’objet avec des taux d’erreur calculés. Ces sous- programmes incluent mais ne se limitent pas à une inférence de classification par réseau de neurones, à la détection de Descripteurs et la comparaison avec une base de données existante de Descripteurs, à l’exécution de filtres spéciaux, et à la récupération d’information extraites de l’image filtrée.

[42] Un procédé de fonctionnement typique de ce système, issu d’une implémentation spécifique du Graphe dans le Module de Comportement avec un premier Arbre de comportement (200) qui comprend une exécution séquentielle de : l’Action d’armer l’autopilote (230) ; suivi de la vérification de la Condition de météo acceptable pour le vol (250); suivi de la vérification de la Condition de disponibilité de suffisamment d’énergie (251 ), au niveau de l’Estimateur d’énergie & de temps (1 17), pour exécuter l’ensemble des tâches alimentées dans le Processeur de Mission (1 10) ; suivi, selon le résultat de la condition, de l’interruption de la mission ou l’exécution en parallèle (203) des procédés qui représentent des arbres de comportement de : la navigation ; la communication ; et la détection.

[43] L’arbre de navigation comprend une exécution séquentielle (201 ) de : l’Action de décollage (231 ) au niveau du Module de Décollage & atterrissage (1 14) ; suivie d’une exécution en boucle (214) de la séquence (201 ) : de vérification de la Condition qu’il ne reste aucune tâche (252) ; suivi de la vérification de la Condition que l’énergie est suffisante (251 ), au niveau de l’Estimateur d’énergie & de temps (1 17), pour exécuter la tâche suivante ; suivi, selon le résultat de la Condition (251 ), de l’interruption de la mission ou de l’Action d’exécuter la tâche suivante (232). La boucle (214) se termine à la vérification de la Condition qu’il ne reste aucune tâche (252) au niveau du Planificateur de Mission (1 10) ; A la suite à cela, l’Action d’atterrissage (233) est exécutée au niveau du Module de Décollage & atterrissage (1 14).

[44] L’arbre de de communication comprend une boucle (214) qui exécute en séquence (201 ) : Vérification de la Condition de réception de nouvelles commandes (253) au niveau du Centre de communication (1 19) ; suivi de l’exécution de l’Action relative à la commande (234) ; suivi de l’exécution de l’Action de reprise de la mission (235) en reprenant la dernière tâche indiquée par le Processeur de Mission (1 10).

[45] L’arbre de détection comprend une boucle (214) qui exécute en séquence (201 ) : Lancement de l’Action de détection (236) ; suivi de la vérification de la Condition du seuil de certitude de la détection de l’objet (254) requis par la mission ; suivi de, dans le cas où le résultat de la Condition (254) est positif, de l’exécution de l’Action d’envoi d’une alerte (237) au niveau du Centre de communication (1 19).

[46] Il est à noter que pour des besoins de simplifier la compréhension, seules les Actions et Conditions importantes ont été indiquées. Les Actions et Conditions ainsi que les Instructions standards non nécessaires à la compréhension de ce fonctionnement typique sont ignorées.

[47] L’Action d’exécuter la tâche suivante représente généralement une commande au Planificateur de vol (1 12) ou au Scanneur de surfaces (1 13) afin de calculer un plan de vol et l’exécuter au niveau de l’autopilote.

[48] L’Action d’atterrissage (233) englobe la recherche de la zone d’atterrissage la plus proche avec possibilité de la contraindre à présenter de bonnes conditions (qualité de la piste et sens du vent entre autres) selon le paramètres en entrée de l’Action.

[49] Le procédé de fonctionnement peut évidemment changer selon la configuration du Graphe de comportement. D’autres implémentations peuvent inclure et faire appel à titre d’exemple à : un arbre de détection et de correction des anomalies, un arbre d’investigation avancée d’un objet détecté, ou un arbre de navigation vers le point de connexion haut débit le plus proche pour envoyer des données volumineuses en cas de situation critique.

La figure 1 montre une représentation logique des composantes du système objet de cette invention.

La figure 2 montre un fonctionnement typique de ce système, issu d’une implémentation spécifique du Graphe dans le Module de Comportement (103).