Rapport de Projet de Fin d'études Méthodes ensemblistes pour la validation de trajectoires

Dimension: px
Commencer à balayer dès la page:

Download "Rapport de Projet de Fin d'études Méthodes ensemblistes pour la validation de trajectoires"

Transcription

1 ENSTA Bretagne ENSI 2014 option SPID Robotique Rapport de Projet de Fin d'études Méthodes ensemblistes pour la validation de trajectoires Vincent LE DOZE MBDA France Le Plessis-Robinson, FRANCE Dates : 24/03/ /08/2014 Encadrant École: M. Luc JAULIN (ENSTA Bretagne) Ce document est la propriété de MBDA France. Il ne peut être communiqué à des tiers et/ou reproduit sans l'autorisation préalable écrite This document and the information contained herein is proprietary information of MBDA France and shall not be disclosed or reproduced

2 2 Résumé L arithmétique par intervalles propose une approche mathématique différente par rapport aux méthodes classiques utilisées pour analyser la stabilité de systèmes complexes. Ces méthodes ont déjà été appliquées avec succès au domaine de la robotique mobile; il s agit maintenant de montrer leur potentiel dans le cadre d autres domaines comme celui des missiles et des drones. Il s agit notamment de comparer cette approche par rapport à d autres méthodes actuellement utilisées comme les méthodes probabilistes à base de simulations Monte-Carlo. La problématique principale de ce stage est de démontrer que les méthodes par intervalles peuvent être plus efficaces (preuves des résultats et rapidité d exécution des algorithmes) que les autres méthodes utilisées jusqu à présent pour la validation de systèmes dynamiques, munis de leurs lois de commande (systèmes dynamiques autonomes); l évolution de tels systèmes étant décrite par modèles d état. On considérera plus particulièrement le cas d un engin aérien devant suivre une trajectoire de référence. Valider la loi de commande et la trajectoire d un tel système autonome, revient à démontrer que lorsqu on lui assigne une trajectoire à suivre (définie par des points de passage, par exemple) ce système suivra sa mission quel que soit les perturbations (vent par exemple), et cela sans jamais dépasser un écart limite entre la position ou il devrait se trouver et celle où il se trouve réellement. Un tel logiciel doit permettre d aider à la mise au point et à la validation d une loi de contrôle commande. De plus, un autre but est de prouver que, s il existe un obstacle (fixe ; éventuellement mobile) entre l objectif à atteindre et la position initiale de l engin, et que l on en tient compte en planifiant une trajectoire adéquate, alors il n y aura aucune collision entre l obstacle et l engin (peu importe les perturbations qu il rencontrera). Abstract The interval arithmetic provides a different approach over conventional methods to analyze the stability of complex autonomous systems. These methods have already been successfully applied in problematic relatives to the field of mobile robotics, and it is now time to show their potential in other areas such as path planning for autonomous aerial systems. Hence, it includes comparing this approach to other methods currently used as probabilistic methods based on Monte Carlo simulations. So, this project aims to show that interval methods can be more effective (evidence of results and speed of algorithms execution) than other methods used to validate autonomous dynamic systems with their laws control (systems described by state equations). In this project, we are specifically going to consider the case of an autonomous system following a reference trajectory. Then, to validate the control law and trajectory of such a system, we need to demonstrate that this system will follow its mission path regardless of the disturbances (wind, for example), without ever exceeding a limit distance between its position and the trajectory line. Therefore, these methods could be used in parallel of probabilistic method to give additional information on the system behavior when following a reference trajectory.

3 3 Remerciements Je tiens à remercier et à témoigner toute ma reconnaissance à mon maître de stage, pour m avoir guidé et encadré tout au long de ce stage de fin d études. Sa présence et ses conseils m ont été particulièrement utiles et indispensables pour mener à bien ce projet. Je remercie également Monsieur Luc JAULIN, ainsi que Monsieur Jordan NININ, enseignants à l ENSTA Bretagne, pour avoir assuré la partie théorique de ce projet, ainsi qu un suivi attentif des avancées au cours de ce stage. Je remercie également l équipe pédagogique de L ENSTA Bretagne et les intervenants professionnels responsables de la formation SPID pour avoir assuré l enseignement de celle-ci. Je souhaite aussi remercier l équipe du service Guidage, Pilotage et Navigation de MBDA France, pour leur accueil sympathique et leur coopération professionnelle tout au long de ces trois mois. Enfin, je voudrais remercier Messieurs Rémi B., Rémi L., Paul A. et Ronan F. pour leur sympathie et leur bonne humeur tout au long de ce stage.

4 4 Contenu Résumé... 2 Abstract... 2 Remerciements... 3 Notations et conventions... 6 Introduction Présentation de MBDA Département Pilotage, Guidage, Navigation et Traitement d images Déroulement du Stage... 8 Introduction à l Arithmétique par Intervalles Algorithme SIVIA Les Contracteurs Utilisations dans le cadre de la Robotique mobile Projet Bubbibex Principe du programme Mise en place du programme a) Programmation avec Ibex b) Diagramme de Classe c) Interface graphique Cas de test et d utilisation a) Robot terrestre holonome b) Robot terrestre non-holonome c) Robot aérien non-holonome Problèmes rencontrés et modifications apportées a) Évolution temporelle de la bulle b) Intégration des Solutions c) Accélération de la résolution d) Résultats obtenus Planification de mission a) Adaptation du programme Bubbibex b) Résultats obtenus c) Voies d améliorations Projet Ellibex... 46

5 5 1- Principe du programme a) Incertitudes de pilotage b) Q-Intersections Mise en place a) Diagramme de Classe b) Interface graphique Test du programme Projet Reachable Sets Principe du programme a) Utilisation des méthodes par Intervalles b) Limitation du temps de calcul Mise en place a) Fonctionnalités du programme b) Interface graphique Test du programme Conclusion Table des Figures Bibliographie... 68

6 6 Notations et conventions : Temps en secondes. : Pas de discrétisation du temps pour l intégration d une trajectoire. : Coordonnées (m) de la position d un robot dans le plan ou dans l espace. : Angle (rad) de cap d un robot dans le plan, ou de gisement dans l espace. : Angle (rad) de site d un robot dans l espace. : Vecteur d état décrivant un système donné. : Dimension du vecteur d état. : composante du vecteur d état avec. : Fonction d évolution d un système. : Entrée d un système dynamique. : Fonction cible représentant l état dans lequel un système doit se trouver : Nombre de composantes de la fonction correspond au nombre de contraintes spatiotemporelles à respecter pour le système. : Intervalle contenant l ensemble des solutions pour la variable. I Ensemble des intervalles sur. : Vecteur d intervalles ou «boîte» contenant l ensemble des solutions pour le vecteur d état [ ] : Estimée du vecteur d intervalles : Sous-ensemble du vecteur d intervalles tel que. : Sur-ensemble du vecteur d intervalles tel que. : Ensemble complémentaire du vecteur d intervalles tel que I : Largeur de l intervalle, égal à. : Valeur médiane de l intervalle, égal à. : Fonction de contraction ou contracteur sur l intervalle.

7 7 Introduction Ce stage de fin de cursus ingénieur avait pour intitulé «Étude des méthodes ensemblistes pour la validation de trajectoires», et s est déroulé sur le site de MBDA France du Plessis- Robinson(92), dans le service Futurs Systèmes du département Pilotage, Guidage, Navigation et Traitement d Image. Il a permis de mettre en pratique des connaissances et des compétences acquises tout au long de mon cursus ingénieur, et surtout d obtenir une vraie expérience professionnelle dans le domaine de l ingénierie. Au cours de ce stage de 5 mois, j ai principalement été amené à travailler sur trois problématiques différentes, qui seront détaillées au cours de ce rapport, résolues à partir des méthodes ensemblistes et particulièrement de l analyse par intervalles. La résolution de ces problématiques rentrait en partie dans le cadre d un partenariat entre l ENSTA Bretagne et MBDA France, ce qui m a amené à travailler en collaboration avec M. Jaulin et M. Ninin de l ENSTA Bretagne. 1- Présentation de MBDA Avec un chiffre d'affaires annuel de 3 milliards d'euros et un carnet de commandes de plus de 10,5 milliards d'euros, MBDA est un des leaders mondiaux des missiles et systèmes de missiles. Seul Groupe capable de répondre à toute la gamme des besoins opérationnels présents et futurs des trois armées (terre, marine et air), MBDA propose une gamme de 45 programmes de systèmes de missiles et de contre-mesures en service opérationnel et plus de 15 autres en développement. La société MBDA regroupe plus de collaborateurs principalement en Europe et est codétenue par BAE SYSTEMS (37,5%), AIRBUS Group (37,5%) et FINMECCANICA (25%)*. * Présentation de l entreprise provenant d un communiqué de presse Figure 1 : MBDA est issue principalement de la fusion entre Matra Défense (France), BAe Dynamics (UK) et Alenia Marconi Systems (Italie)

8 8 2- Département Pilotage, Guidage, Navigation et Traitement d images Les activités Pilotage, Guidage, Navigation et Traitement d images consistent à élaborer les algorithmes qui seront implémentés dans les calculateurs de mission des missiles et systèmes de missiles. Grâce à des techniques appropriées issues de l automatique, du traitement du signal ou du traitement d images, les équipes définissent, simulent et valident les traitements qui permettront d élaborer les trajectoires, les manœuvres, la précision de localisation et un guidage terminal adapté à la cible visée. Ces équipes caractérisent, dans les phases amont du projet, les besoins en performances des équipements (capteurs, imageurs, autodirecteurs, calculateur de bord, actionneurs). Elles valident ensuite les algorithmes embarqués dans les calculateurs, à partir d une modélisation fine du comportement des équipements et de leur environnements physiques dans un modèle de référence ; la réalisation de ce modèle de référence faisant appel à des techniques comme la mécanique du vol, l aérodynamique, la propulsion ou encore la détonique. 3- Déroulement du Stage Le stage s est organisé autour de 3 grands projets (détaillés plus tard): le projet Bubbibex, le projet Ellibex et le projet Reachable Sets. Comme le montre le diagramme de Gantt suivant, ces trois projets ont été réalisés en simultané, car les programmes utilisent tous les trois un algorithme SIVIA, et ont été conçus de manière presque identique. Ainsi toutes les améliorations et les corrections apportées à un programme, ont été répercutées directement sur les autres. Figure 2 : Diagramme de Gantt

9 9 Introduction à l Arithmétique par Intervalles Les méthodes ensemblistes caractérisent une approche mathématique fondamentalement différente des approches classiques dans la résolution de systèmes d équations. L arithmétique par intervalles est un cas particulier des méthodes ensemblistes, où une variable n est plus représentée comme une valeur, mais comme un intervalle, c est-à-dire un ensemble de valeurs possibles comprises entre un minimum et un maximum. Pour illustrer l intérêt de ce concept, l arithmétique par intervalles permet de situer que la taille vraie d un individu est entre 1.70m et 1.90m, plutôt que de donner une taille approximée avec l arithmétique usuelle. Aussi, comme dans l arithmétique classique, l arithmétique par intervalles définit des opérateurs de base qui permettent de faire des opérations sur des intervalles min ma - min ma si. La division par un intervalle contenant 0 n est pas définie en arithmétique des intervalles. L ensemble des intervalles sur qui se note I, est un anneau commutatif. On peut également introduire les fonctions usuelles de l arithmétique sur les réels comme ceci : l Ceci rend les techniques de calculs par intervalles facilement utilisables sur des cas concrets de résolution d équations où l on peut approcher la (ou les) solution(s) jusqu à une certaine précision en travaillant sur les deux bornes d un intervalle qui contient cette (ou ces) solution(s). D autre part, l arithmétique par intervalles peut aussi s appliquer sur des dimensions supérieures à 1. On parle alors de boîtes ou de vecteurs d intervalles : ( ) avec. L ensemble des vecteurs d intervalles sur de dimension se note I. 1- Algorithme SIVIA Comme expliqué précédemment, les méthodes par intervalles proposent d autres alternatives pour la résolution de problèmes formulés sous forme d équations ou d inéquations. Par exemple, si l on souhaite trouver l ensemble des couples solution tels que, (. ) (. )

10 10 Il suffit alors de trouver les sous-ensembles (ou sous-pavages) de I suivants : I (. ) (. ) Pour des intervalles de départ et définis à l avance (par exemple ) la résolution d un tel problème peut se faire immédiatement avec des méthodes détaillées un peu plus tard (cf. Les Contracteurs). Cependant pour des problèmes plus complexes, il devient vite nécessaire d utiliser un algorithme de calcul traduisant les méthodes par intervalles pour résoudre le problème donné. L Algorithme SIVIA (Set Inversion Via Interval Analysis) permet de résoudre des équations ou inéquations à partir de méthodes de classification et de bissection. Cet algorithme permet d obtenir l encadrement d un sous-ensemble de I sous la forme grâce à une fonction de test sur une boîte I qui renvoie : - Vrai: si - Faux : si - Peut-être : si l on ne peut pas conclure. Par exemple on ne peut pas répondre à la question : l intervalle est-il inclus dans l intervalle? Lorsque l on ne peut pas conclure sur une boîte I on vient alors bissecter cette boîte en deux boîtes différentes et telles que. Ces boîtes seront ensuite testées à leur tour. À partir du moment où les boîtes testées ont atteint une précision suffisante (. ), on arrête de les bissecter et on considère ces boîtes comme nonconclues. Ainsi l algorithme SIVIA, renvoie alors 3 sous-pavages de l espace initial I qui sont. Figure 3 : Algorithme SIVIA et résultats obtenus lors de la résolution de l équation du disque de centre (. l équation (. ) (. ).. ) et de rayon 1 décrit par Le problème principal de ce type d algorithme est son explosion combinatoire. Celle-ci le rend très gourmand en mémoire (stockage des boîtes ) et en puissance de calcul dès que l on veut une précision faible concernant les boîtes à bissecter (pour 10 appels récurrents, jusqu à boîtes différentes peuvent être générées).

11 11 2- Les Contracteurs Pour limiter les problèmes soulevés par l algorithme SIVIA, des opérateurs de contraction, ou contracteurs, sont mis en place pour bissecter le moins possible les boîtes présentes en entrée. Un contracteur, est un opérateur I I qui vérifie les 3 propriétés suivantes : ntra tan e I nsistan e ( ) aible ntinuit ( ) Avec la boule de centre et de rayon. Une boîte est dite insensible au contracteur si. Aussi la propriété de Contractance nous assure que par l action d un contacteur, un pavé ne peut que se contracter. La propriété de Consistance nous dit que tout pavé gardera, après contraction, tous ses points insensibles à ce même contracteur. Enfin, la propriété de faible Continuité nous assure que l ensemble des sensibles à est un ensemble ouvert, et donc que l ensemble des insensibles est fermé. Dans la pratique, un contracteur est une fonction crée à partir d une ou plusieurs contrainte(s), qui permet de réduire une boîte en entrée pour récupérer une sous-boîte qui satisfait ces contraintes. Figure 4 : Contraction de boites sur la fonction sinus Sur la figure précédente, la contrainte à respecter est sin. On remarque que l effet du contracteur est de réduire la taille des boîte sur lesquelles il est appliqué, jusqu à l ensemble vide si besoin. Il existe plusieurs algorithmes de contraction possibles. Le plus classique est l algorithme de «Forward-Backward», que l on peut illustrer avec des calculs à la main. Prenons, par exemple, le calcul suivant : Le but ici est de réduire les intervalles et par rapport à la contrainte. On va alors commencer par la partie «Forward» du calcul :

12 12 On peut ensuite, à partir du nouvel intervalle obtenu pour, réaliser la partie «Backward» du calcul : ( ) Figure 5 : Boîte initiale, puis contraction «Forward», et contraction «Backward» On a alors réduit les deux intervalles à et. Ce processus de «Forward- Backward» peut ensuite être répété un certain nombre de fois, jusqu à ce que les deux intervalles ne puissent plus être contractés. On dit alors qu on a atteint un point fixe. Cette méthode est facilement applicable à des calculs plus complexes, après avoir décomposé ceux-ci en un ensemble d opérations élémentaires réparties sur un arbre syntaxique. Ces méthodes de contraction, une fois qu elles sont implémentées dans l algorithme de SIVIA, améliorent considérablement le temps de calcul et la consommation en mémoire lors de la résolution d un problème par l analyse par intervalles. Figure 6 : Exemple d algorithme SIVIA amélioré. Ici, on a rajouté une étape de contraction sur [w] par rapport à une contrainte [z]

13 13 3- Utilisations dans le cadre de la Robotique mobile Les méthodes par intervalles ont déjà démontrées leurs efficacités dans le domaine de la robotique avec des applications telles que : - La reconnaissance et l extraction de formes géométriques dans une image, - L estimation de vecteurs d état pour un système non-linéaire, - La cartographie de l environnement dans lequel un robot évolue, ainsi que sa localisation (SLAM :Simultaneous Localization And Mapping). Il existe aussi d autres approches pour résoudre ces problèmes, cependant, en comparaison, les méthodes par intervalles ont des avantages non-négligeables. Ces méthodes sont tout d abord très robustes vis-à-vis des non-linéarités d un problème donné. En effet, l arithmétique classique nécessite souvent de linéariser un problème avant de pouvoir le traiter, ce qui n est pas le cas avec les intervalles. D autre part, les méthodes par intervalles peuvent prendre facilement en compte les incertitudes qui interviennent sur les variables d un problème, ce qui les rendent particulièrement utiles pour la résolution de problèmes sur des systèmes réels, souvent soumis à des perturbations (bruits des capteurs, incertitudes de pilotage ). Enfin, ces méthodes sont aussi utilisables en embarqué, avec des contraintes de temps réel, donnant ainsi de la robustesse aux algorithmes de guidage, de pilotage ou de navigation d un engin autonome.

14 14 Projet Bubbibex Le projet «Bubbibex» a débuté dans le cadre d une collaboration entre MBDA France et l ENSTA Bretagne sur l utilisation des méthodes ensemblistes. Il traite de la création d un programme en langage C++ de validation de la trajectoire d un robot décrit par ses équations d état. Considérer que la trajectoire d un robot est valide, revient à prouver qu à tout instant le robot ne s écarte pas trop de la trajectoire qui lui a été assignée, peu importe les perturbations qu il rencontrera. Cette problématique est très intéressante pour réaliser la planification de la trajectoire (préparation de missions) d un engin mobile, car elle permet d assurer la non-collision d un système autonome avec n importe quel obstacle présent dans son environnement, ou avec un autre système évoluant dans la même zone. Actuellement, cette validation de trajectoires s effectue à partir de méthodes probabilistes, comme par exemple avec la simulation d un certain nombre de scenarios possibles par tirage Monte- Carlo. L inconvénient de ces méthodes est qu elles ne peuvent pas traiter l intégralité des scénarios possibles pour un système autonome; il se peut alors qu un cas particulier, ne validant pas les critères de performance du système, ne soit pas évalué lors du tirage Monte-Carlo. Aussi, l intérêt des méthodes ensemblistes, en comparaison des méthodes classiques, est la garantie de la validation de l ensemble des scenarios possibles. 1- Principe du programme Si on considère un système défini par : - son vecteur d état ( : dimension du vecteur d état), - de sa fonction d évolution. Alors pour valider la trajectoire d un tel système, il faut tout d abord définir des critères de validation. Ces critères de validation peuvent s exprimer comme ceci : - Critère de Stabilité : Prouver que, peu importe les perturbations rencontrées, si ce système se trouve dans sa zone cible, alors il y restera sans en sortir, - Critère de Capture : Prouver que, si ce système se trouve hors de sa zone cible, alors il s y dirige. Dans les systèmes mécaniques ces critères sont souvent validés à partir d une fonction de Lyapounov. Un système est stable si tel que, on a. Cette condition traduit, en termes de physique, la stabilité de l énergie totale du système autour d un point d équilibre.

15 15 Figure 7 : Stabilité d un système dynamique autour d un point d équilibre Ici, le même principe sera utilisé avec une zone spatio-temporelle cible ayant la propriété de capturer le système. Cette zone sera appelée «bulle» ou encore tube de capture (projection sur le temps), et sera définie par la condition : Par la suite, pour nos applications, on se restreint au critère de stabilité uniquement. On introduit alors les concepts de trajectoire «Safe» et par extension de système «Safe». Si toutes les trajectoires d un système sont «Safe», c est-à-dire que pour des états initiaux elles valident toutes le critère de stabilité, alors ce système est considéré comme «Safe». Cependant, prouver que toutes les trajectoires d un système sont «Safe» n est pas facile. Ainsi, pour démontrer qu un engin autonome décrit par ses équations d état est «Safe», on montre qu il n existe aucune trajectoire «non-safe», c est-à-dire qu il n existe aucun état initial tel que pour, sort du tube de capture. En pratique, il suffit alors de prouver que pour tout, le système d équations suivant n admet aucune solution: { {. Dans notre cas, le critère de stabilité de Lyapounov tient compte de l évolution temporelle de la zone de capture (la «bulle») à travers le terme de dérivée temporelle de. Résoudre ce système d équations avec l arithmétique classique peut s avérer compliqué, notamment si il s agit de valider la trajectoire d un robot non-holonome, défini par des équations d état non-linéaires. L arithmétique par intervalles apparait alors comme une solution viable pour la

16 16 résolution de ces équations quel que soit le système présent en entré, car l application d un algorithme de type SIVIA va nous permettre d éliminer avec certitude tous les vecteurs d états initiaux correspondant à des trajectoires «Safe» pour garder seulement ceux qui conduisent à une trajectoire «Non-Safe». 2- Mise en place du programme a) Programmation avec Ibex L utilisation des méthodes par intervalles dans un programme en langage C++, nécessite des bibliothèques de fonctions bien spécifiques. La bibliothèque de fonctions Ibex, développée par M. Gilles CHABERT, enseignant aux Mines de Nantes, en collaboration avec M. Luc JAULIN et M. Jordan NININ enseignants à l ENSTA Bretagne, a été spécialement créée pour la résolution d équations ou d inéquations avec les méthodes par intervalles. Elle propose à la fois : - Un calculateur sur les Intervalles, - Une librairie de contracteurs, - Un Solveur/Optimiseur de systèmes de contraintes. La programmation et l utilisation des intervalles se font alors de manière très simplifiée au travers de cette librairie. Figure 8 : Déclaration d une fonction sur un Intervalle Figure 9 : Évaluation de l image d un Intervalle par cette fonction, et calcul de sa dérivée Figure 10 : Création d un contracteur Forward-Backward sur 3 Intervalles [x], [y], et [z]

17 17 Figure 11 : Utilisation du contracteur Figure 12 : Composition et Intersection de contracteurs b) Diagramme de Classe Les fonctionnalités du programme se devaient d être les suivantes : - Être utilisable pour différents systèmes définis par leur vecteur d état et leurs équations d état. o Description de la fonction d évolution dans un fichier f.txt que l on peut charger à partir du programme. o Description de la fonction cible dans un fichier g.txt que l on peut aussi charger à partir du programme. o Possibilité d utiliser entre 2 et 11 composantes pour définir le vecteur d état. - Être utilisable pour différents scénarios. o Possibilité de générer l équation d une trajectoire à suivre à partir des coordonnées de points de passage. Ces points de passage sont soit chargés à partir d un fichier de points de passage (générés par un programme tiers) ou rentrés manuellement dans l interface. - Avoir des paramètres de résolution du problème réglable. o Les intervalles initiaux pour chaque composante de sont ajustables : réglage des bornes et pour tout. o L intervalle de temps sur lequel la résolution doit être réalisée est réglable. o La largeur minimale des intervalles à bissecter lors du SIVIA est ajustable. - Afficher graphiquement les résultats obtenus. o Affichage dans une fenêtre graphique de la trajectoire à suivre ainsi que des résultats obtenus sur deux composantes de sous forme de pavage. o Affichage des résultats suivant l évolution temporelle du système entre et.

18 18 Le diagramme de classe du programme est alors de la forme suivante : Scenario String f, g List<double*> waypoints Void Load_f() Void Save_f() String CalcTarget() Repere Scene scene Void xtopix(double x, double y) Void DrawRobot(double x, double y, double angle, double taille) MainWindow Sivia sivia Repere R Scenario scenario IntervalVector x Void Init() Void OnPushRunClicked() Sivia Function f, g CtcFwdBwd ctc IntervalVector x Double[] eps_x List<IntervalVector> Sp, Sout Void InitSivia() Void RunSivia() Figure 13 : Diagramme de Classe de Bubbibex La classe Sivia contient l algorithme SIVIA, et est pilotée par la classe MainWindow. La classe Sivia communique avec la classe MainWindow pour accéder aux données du problème, comme par exemple la fonction d évolution du système, et elle lui renvoie ensuite les résultats obtenus après l utilisation de ses algorithmes. La classe MainWindow est le cœur du programme. Elle permet à l utilisateur d interagir avec le programme, via une interface graphique. L utilisateur peut alors spécifier la modélisation du système étudié, la trajectoire de référence à valider, les paramètres de résolution de l algorithme SIVIA pour enfin visualiser les résultats obtenus dans une fenêtre graphique dessinée grâce à la classe Repere. La classe Repere propose plusieurs méthodes utiles à la représentation des résultats obtenus, et surtout à leur compréhension. Enfin la classe Scénario charge (si elles existent) ou bien génère automatiquement les fonctions du système, et les équations de la trajectoire à suivre à partir des paramètres spécifiés par l utilisateur. Ces équations et fonctions sont ensuite sauvegardées sous forme de scripts (.txt) facilement accessibles pour la classe Sivia pour la résolution du problème et par la classe MainWindow pour l affichage du système modélisé et de la trajectoire à valider. Cette classe est pilotée par la classe MainWindow.

19 c) Interface graphique Intervalle de temps t Min t Max Fonctions f(x t), g(x t) et dg(x t) dt forme de scripts éditables sous Intervalles de départ pour chacune des composantes du vecteur d état Précision demandée pour la bissection des intervalles sur chaque composante du vecteur d état. Sauvegarde des paramètres et des fonctions choisies. Figure 14 : Réglage des paramètres pour la résolution d un problème donné (Bubbibex version finale) Ce document est la propriété de MBDA France. Il ne peut être communiqué à des tiers et/ou reproduit sans l'autorisation préalable écrite This document and the information contained herein is proprietary information of MBDA France and shall not be disclosed or reproduced

20 Temps de parcours total Nombre de points de passage utilisés MBDA France 20 Équations de la trajectoire à suivre (x d y d z d ), de sa dérivée temporelle (x dd y dd z dd )et de sa dérivée temporelle seconde (x ddd y ddd z ddd ). Ces équations sont générées à partir de méthodes de régression linéaire (cf. Projet Bubbibex 5.a. ) Validation des points de passage et génération des équations associées Coordonnées temporelles des points de passage (x y z t) Tracé de la trajectoire projetée dans le plan (x y), (y z), ou encore (x z) Figure 15 : Réglage des paramètres de la trajectoire à suivre Ici elle est générée à partir de points de passage rentrés manuellement (Bubbibex version finale)

21 21 Équations de la trajectoire à suivre (cf. Figure précédente). Nombre de points de passage sélectionnés dans le fichier (les n premiers), et temps de parcours associé. Chargement du fichier de points de passage. (cf. Annexes pour la forme du fichier chargé) Figure 16 : Réglage des paramètres de la trajectoire à suivre Ici elle est générée automatiquement à partir d un fichier de points de passage (cf. Annexes, Bubbibex version finale)

22 22 Récapitulatif des résultats de la résolution du problème par l algorithme SIVIA Temps de calcul Intervalles de départ (Vecteur d état + temps) Nombre de solutions trouvées. (solutions «Relatively safe», voir 4.a. Integration des solutions) Marges du tube enveloppe (cf. 4.a Intégration des solutions) Lancement de la résolution du problème avec l algorithme SIVIA Figure 17 : Affichage des résultats après la résolution du problème (Bubbibex version finale)

23 23 Options d affichage : - Tracé des solutions «Safe» - Tracé des solutions «Relatively safe» (cf. 4.a) - Tracé de la trajectoire à suivre - Tracé des dynamiques pour chacune des solutions (cf. Figure suivante) Tracé d une trajectoire solution à partir d un état initial X(0) G(0) pris au hasard. Barre d avancement sur le temps. Permet de voir l évolution temporelle des solutions sur t Min t Max Figure 18 : Affichage graphique des résultats après la résolution du problème (Bubbibex version finale)

24 24 3- Cas de test et d utilisation Tout au long du projet, le programme a été utilisé dans des cas de validation de trajectoire pour 3 Robots différents. Le premier robot, est un modèle très simplifié de robot terrestre holonome. Ce modèle dont le comportement est complètement connu, a principalement permis de régler les bugs de programmation. Le second robot terrestre et non-holonome, a servis en tant que modèle de référence pour comparer les performances de calculs de chacune des améliorations proposées. Enfin, le second robot, est un modèle de robot aérien non-holonome simplifié qui a permis de valider les performances du programme pour la validation de la trajectoire d un robot plus complexe. a) Robot terrestre holonome Comme précisé précédemment, le robot holonome est défini dans le but de pouvoir détecter les bugs de programmations du programme. Son état est caractérisé par les coordonnées de sa position dans le plan et par l angle de son cap. Ainsi son équation d évolution est de la forme, Celle-ci le force à suivre la droite d équation, avec des commandes non-bornées. Ce système est idéal pour tester la cohérence des résultats fournis par Bubbibex car le comportement de ce robot est déterministe. Aussi en théorie ce robot ne peut pas s écarter de la trajectoire fixée, et ne doit donc présenter aucune solution «non-safe». La fonction cible choisie correspond à une «Bulle» définie par les critères suivants : - Le robot doit être dans un cercle centré sur de rayon. - Le cap du robot doit se trouver dans un cône d axe dirigé vers la position désirée à l instant suivant, et de base de largeur. { ( s ) sin Figure 19: La "Bulle" à respecter est décrite par un cercle et un cône

25 25 b) Robot terrestre non-holonome Le robot non-holonome a été défini dans le but de comparer les performances des différentes améliorations proposées pour le programme. C est un robot de référence, dont le modèle d état simule un comportement plus proche de celui de robot terrestre réel. Ses variables d état sont les coordonnées de sa position dans le plan (en mètres), et l angle de son cap (en radians). Aussi son équation d évolution s écrit, (. s. sin) Si on considère un point de coordonnées à atteindre au temps, alors on peut définir les consignes du robot comme ceci : x X ( y) θ V x y Soit Et sin n ( x d x y d y ) Δθ U n X d X d (x d y d ) X d (x d y d ) Figure 20 : Évolution du robot terrestre non-holonome dans le plan lors du suivi d une trajectoire De même que pour le robot terrestre holonome, la fonction cible pour ce système correspond à une «Bulle» définie par un cercle de rayon centré sur la position à suivre et par un cône dirigé suivant et de base. L équation de la fonction cible choisie peut alors s écrire de la manière suivante, { ( s ) (sin ) ave la dire ti n vis e Figure 21 : La «bulle» à respecter par le robot terrestre non-holonome est décrite par un cercle et un cône

26 26 c) Robot aérien non-holonome Enfin, afin de tester les performances en termes de temps de calculs et d occupation de mémoire du programme, un modèle simplifié d engin aérien autonome a été créé. Celui-ci est défini par les variables d états suivantes : - : coordonnées de la position du robot dans l espace (en mètres). - : angle de gisement du robot dans l espace (en radians). - : angle de site du robot dans l espace (en radians). k j u u x z 0 φ θ u y i Figure 22 : Représentation du robot aérien non-holonome dans l espace Comme nous pouvons le remarquer, l angle de roulis et le vecteur vitesse (en coordonnées sphériques) ne sont pas pris en compte comme variables d état du système. Ce choix a été fait dans le but de limiter le nombre de variables pour la résolution de l algorithme SIVIA, il fera l objet d une discussion dans les parties suivantes. Aussi, l équation d évolution du système s écrit,.. s. sin.. { De même que pour le robot terrestre non-holonome, nous allons considérer un point à atteindre à l instant. Dans ce cas les différentes consignes, et seront définies de la manière suivante :

27 MBDA France sin - sin. avec. avec. avec et et (. ). k x V ( y ) z U n X d x d X d ( y d ) z d j x z n ( x d y d z d x y) z X d (x d y d z d ) 0 φ θ y i Figure 23 : Suivi d une trajectoire pour le robot aérien non-holonome De manière similaire aux deux précédents robots, la fonction cible pour ce système correspond ici à une «Bulle» définie par une sphère de rayon centrée sur la position désirée et par un cône dirigé par et de base le cercle de rayon. L équation de la fonction cible choisie peut alors s écrire de la manière suivante, ( s ) (sin ) ( s ) (sin ) { ave la dire ti n vis e

28 28 Cette fonction cible peut être illustrée par la figure suivante, x X ( y) z Cône de base le cercle de rayon r U n X d r Figure 24 : «Bulle» pour le robot aérien non-holonome. Sa position doit se trouver dans la sphère (rouge) et sa vitesse d avance doit se trouver dans le cône (noir) 4- Problèmes rencontrés et modifications apportées Les trois systèmes présentés précédemment ont permis en premier lieu, de détecter certains bugs relatifs à la programmation de l algorithme et à la méthode initiale de résolution employée, puis en second lieu de relever les améliorations qui pouvaient être apportées à l algorithme du SIVIA et à la structure générale du programme. De manière générale, les principaux bug et améliorations possibles étaient les suivantes : - Les solutions trouvées semblent parfois incohérentes avec la théorie. Par exemple, sur la figure ci-dessus des solutions sont trouvées pour le robot terrestre holonome, dont le comportement déterministe ne devrait pas en permettre l existence. D autre part, les dynamiques moyennes des solutions (flèches noires) montrent bien que ces solutions donneront des trajectoires non-divergentes (trajectoire à suivre ). Figure 25 : Solutions trouvées pour le robot terrestre holonome

29 29 - Les solutions trouvées sont souvent des configurations pour lesquelles le robot rentrera dans la «bulle» lors du pas de temps suivant. Par exemple on observe sur la figure suivante que si l on trace l évolution (triangles rouges) d une des solutions trouvées (triangle bleu) pour le robot terrestre non-holonome, on remarque alors que celle-ci ne diverge pas de la trajectoire assignée (tracée en rouge). Figure 26 : Exemple d évolution rentrante pour le robot terrestre non-holonome - La précision demandée pour la bissection des intervalles a un impact non-négligeable sur le nombre de solutions trouvées. Si celle-ci est faible, c est çà dire que la largeur minimale des intervalles à bissecter est faible, alors le nombre de solutions trouvées diminue. Mais, en contrepartie, le temps de calcul et la quantité de RAM occupée augmentent aussi considérablement. Aussi, comme nous pouvons le voir sur la figure suivante, pour un même problème résolu avec des précisions de bissection différentes (epsilon =... ), le nombre de solutions diminue jusqu à une certaine limite («Unsafe boxes»), mais le nombre de boîtes calculées et le temps de calcul explosent. Figure 27 : Trois résolutions du robot terrestre sur la même trajectoire avec des précisions différentes (en Bleu). Aussi pour résoudre ces problèmes, plusieurs améliorations et corrections ont été proposées au cours du stage, et notamment grâce au projet Ellibex développé en parallèle (cf. Partie Projet Ellibex). Les principales améliorations et corrections apportées au programme Bubbibex et à l algorithme du SIVIA sont les suivantes : - Correction du problème de dérivation automatique de la fonction du programme. - Ajout d un processus d intégration au sein de l algorithme SIVIA afin d éliminer toutes les solutions amenant à une trajectoire rentrante dans la «bulle».

30 30 - Amélioration de la vitesse de calcul et de la consommation de mémoire du programme. o Utilisation de «Threads» pour la parallélisation des calculs. o Utilisation de stratégies de bissection différentes. - Prise en compte des incertitudes des modèles à partir d une inclusion différentielle. a) Évolution temporelle de la bulle La figure 23 représente les résultats obtenus pour le robot holonome sur une ligne droite. Ces résultats sont premièrement incohérents vis-à-vis du comportement déterministe de ce modèle de robot holonome (cf. partie 3.a), et deuxièmement incohérent vis-à-vis de la dynamique des solutions (flèches noires), ce qui montre bien que celles-ci ne divergent pas de la trajectoire. Il semble alors que ce problème d incohérence des résultats est dû à l équation (1) utilisée pour trouver les solutions amenant à des trajectoires «Non-safe» pour le système : { {. À la suite de cette remarque, je me suis particulièrement intéressé à la condition traduisant la sortie du tube de capture d un système dont l évolution est décrite par l équation. En termes de géométrie, cette condition peut être comparée à un produit scalaire entre la normale à la bulle et la fonction d évolution. En conséquence cette condition permet de trouver tous les états du système qui n évoluent pas dans le même sens que la bulle et qui, par conséquent, en sortent. Aussi, jusqu à présent les dérivées partielles et étaient obtenues automatiquement avec une fonction de la librairie Ibex. Ce qui nous donnait, pour le robot terrestre holonome, le résultat suivant, { ( s ) sin { { Ce résultat, est incohérent, car il traduit que cette «bulle» décrite par la fonction n évolue pas dans le temps. En réalité le vecteur d état du système dépend du temps, et, donc il faut en tenir compte lors de la dérivée temporelle de.

31 31 Rectifier ceci est revenu à créer un nouveau script de fonction ( ) dérivant «à la main» la fonction, et à remplacer ainsi l équation (1) de l algorithme par: en {. ( ) Ainsi avec ce nouveau script de dérivée temporelle, comme on peut le remarquer sur la figure suivante, l algorithme ne trouve plus aucune solution pour le modèle de robot holonome, ce qui est cohérent avec la théorie, Figure 28 : Aucune solution trouvée pour le robot holonome sur une trajectoire en ligne droite (y=0) b) Intégration des Solutions Comme on a pu l observer sur les exemples précédents (Figure 24), lorsque l on intègre certaines solutions trouvées à partir de la fonction d évolution, elles sortent souvent de la «Bulle» pour y entrer de nouveau aux instants suivants. Figure 29 : Les solutions intégrées rentrent à nouveau dans le tube de capture, en s écartant d une certaine distance de celui ci. Aussi, un moyen d écarter des solutions trouvées par le programme est de les intégrer afin de vérifier que celles-ci sont bien rentrantes ou non-rentrantes à un horizon de temps donné. Ces solutions réentrantes, qualifiées alors de «Relatively Safe», s écartent d une certaine distance du tube de capture. Cette distance ou marge de manœuvre, va permettre de définir ce que l on appelle un tube «enveloppe» (représenté sur la figure suivante), qui prendra en compte l impossibilité du système à parfaitement suivre une trajectoire présentant par exemple des virages

32 32 trop serrés (ou simplement le fait que l on ne va pas assez loin dans le processus de bissection lors de la résolution avec l algorithme SIVIA). Tube enveloppe Figure 30: Tube enveloppe Ainsi, pour définir le tube «enveloppe», il faut montrer que les solutions trouvées à l instant, une fois intégrées sur pas de temps, retournent dans la bulle définie à l instant.. Or le problème majeur du processus d intégration sur les intervalles ou vecteurs d intervalles, est la surapproximation de la solution trouvée. Si on utilise la méthode d Euler pour évaluer à l instant suivant le vecteur d état du système, on a : X t X t dt [X ] t dt g(x t) g(x t dt) Figure 31 : Sur-Approximation lors de l intégration ave [ ] une estim e de telle ue [ ] Ainsi, après intégration, pourrait être inclus dans la bulle, mais souvent son estimée [ ] ne permet pas de le vérifier car une partie se trouve à l extérieur de cette «bulle». En effet, la largeur d une ou de plusieurs composante(s) de l estimée peut être supérieure à la largeur définie par «Bulle», à cause des approximations dû au schéma d intégration d Euler, accentuées ici par l utilisation de l arithmétique des intervalles. Pour contourner ce problème, une méthode d intégration «Forward-Backward» a été mise en place. On cherche à montrer que, avec l ensemble formé par la condition. Si l on inverse le problème, il s agit alors de montrer que le système suivant n admet aucune solution :

33 33 { La résolution de l équation (2) peut alors se faire avec une technique combinant une intégration «Forward-Backward» et un contracteur éliminant la partie des boîtes intégrées situé à l intérieur de la «Bulle». Aussi sur chacune des boîtes de type solution le processus suivant est réalisé, [X ] t ext Intégration «Backward» Contraction X t ext X t Intégration «Forward» ext [X ] t dt [X ] t dt g(x t) g(x t dt) Figure 32 : Forward-Backward sur l intégration et contraction. Cette méthode est utilisée au cœur de l algorithme SIVIA, et permet d éliminer beaucoup de solutions rapidement. Ainsi, cette méthode permet d écarter toutes les solutions pour le robot terrestre holonome, et le robot terrestre non-holonome en ligne droite, avec des temps de calcul relativement courts. Cependant, si l on considère des trajectoires un peu plus complexes, alors le temps de calcul explose rapidement, ce qui rend le programme toujours inexploitable. D autre part, cette méthode va aussi nous permettre de caractériser le tube «enveloppe» sur-approximé du problème, en calculant pour chacune des solutions intégrées les valeurs maximales des composantes de la fonction. Ces valeurs seront appelées marges maximales de la «Bulle» Figure 33 : En gris, les boîtes éliminées par intégration et en Jaune, les solutions restantes

34 34 Comme on peut le constater sur la figure précédente, pour le robot terrestre non-holonome, cette méthode a permis d éliminer beaucoup de solutions (en gris). Cependant il subsiste encore des solutions non éliminées (en jaune), et d autre part, les marges maximales du tube «enveloppe» sont plutôt importantes, ce qui laisse supposer que la trajectoire demandée est trop difficile à suivre pour le contrôleur proposé dans le modèle de ce robot. Enfin, étant donné que cette méthode permet d éliminer au cœur de l algorithme SIVIA les boîtes dont la trajectoire intégrée est prouvée rentrante dans le tube de capture, le temps de calcul et l occupation de la RAM du programme se trouvent considérablement améliorés. Aussi, comme on peut le constater sur la figure suivante, pour le robot terrestre non-holonome la méthode d intégration permet d être environ 2 fois plus rapide («Ellapsed time»), et d avoir à calculer environ 2 fois moins de boîtes («Number of boxes)» pour valider la même trajectoire. Figure 34 : Comparaison temps de calcul et nombre de boîtes calculées sans la méthode d intégration (à gauche) et avec la méthode d intégration (à droite) c) Accélération de la résolution Malgré les améliorations et les corrections apportées précédemment, la contrainte principale dans l utilisation de ce programme est le temps de calcul. Pour un problème donné, si l on diminue par deux la précision de bissection demandée, on peut souvent multiplier par 100 le temps de réponse du programme. Ceci est principalement dû à la complexité, dite exponentielle, de l algorithme Sivia : chaque boîte traitée est bissectée en deux boîtes différentes qui seront aussi à traiter postérieurement. Pour contourner ce problème, deux solutions majeures ont été mises en place. La première consiste à paralléliser les calculs en utilisant des «threads». Elle se révèlera particulièrement efficace au regard de la structure facilement parallèlisable de l algorithme Sivia. Enfin, la deuxième méthode utilisée consiste à changer de type de bissecteur afin de couper les boîtes suivant la composante la plus intéressante pour le contracteur utilisé.

35 35 i- Parallélisation des calculs Les «threads» sont des processus légers fonctionnant en parallèle au sein d un même processus. L utilisation des «threads» permet notamment de paralléliser le traitement de calculs intensifs, ce qui rend l exécution de ces calculs bien plus rapides sur des machines avec un processeur multi-cœurs. La structure de l algorithme SIVIA permet d utiliser aisément ces techniques dans le but d accélérer la résolution des calculs sur les boîtes. Concrètement, lorsque l algorithme a traité une boîte, soit par il la stocke dans une des listes ou, soit il la bissecte en deux boîtes différentes. Dans le deuxième cas, les deux boîtes obtenues sont alors rajoutées à la liste des boîtes à traiter successivement par le SIVIA. Cependant l ordre dans lequel seront traitées ces deux boîtes n a aucune importance ; leur intersection étant nulle, les résultats donnés par le contracteur puis par le bissecteur du SIVIA pour chacune de ces deux boîtes ne sont pas corrélés. Il est alors concevable de résoudre un problème en bissectant la boîte initiale en plusieurs boîtes différentes qui seront traitées par autant d algorithmes SIVIA exécutés sur des «threads» en concurrence. Les résultats donnés par chaque SIVIA devront ensuite être mis en commun pour accéder à toutes les solutions du problème. X X Sivia Sivia Sivia X X 4 Sivia Boite initiale bissectée en 4. Chaque sous-boite est allouée à un «thread» différent. Les résultats donnés par les «threads» sont mis en commun, puis affichés Figure 35 : Principe d utilisation des threads pour paralléliser les calculs La figure précédente présente le principe suivant lequel sont utilisés les «threads» au sein du programme Bubbibex. En théorie, cette méthode permet de diviser par 4 le temps de calcul pour un problème donné. Cependant, en pratique, certains «threads» arrivent à conclure beaucoup plus rapidement que d autres. Ceci a pour conséquence de ralentir le programme sur les phases de fin de calculs car un «thread» seul est doté d une puissance de calcul plus limitée que celle dont peut bénéficier un processus. Pour limiter ce problème, une méthode de redistribution des boîtes à traiter a été mise en place. Ainsi, lorsque 3 «threads» sur 4 ont terminé leur travail, le programme arrête le dernier «thread», récupère la liste des boîtes encore à traiter par ce dernier, les répartit entre eux et les relance tous en même temps. Cette logique d utilisation des «threads» n est cependant pas optimale, car la vitesse d exécution de chaque «thread» dépend du problème traité et il peut y avoir

36 36 dans certains cas plus d un «thread» limitant. En conséquent, dans le cas d une possible implémentation sur des structures multi-cœurs, cette logique pourrait être fortement améliorée, augmentant en conséquence considérablement les performances de l algorithme SIVIA pour la résolution de n importe quel problème. Figure 36 : Temps de réponse pour le Robot holonome sans «thread» (à gauche) puis avec 4 «threads» (à droite) Comme nous pouvons le remarquer sur la figure précédente, le temps de calcul a été globalement divisé par 4 (Ici l ajout de la méthode d intégration entre les deux versions de Bubbibex fausse un peu la comparaison). Ainsi, l utilisation des «threads» a énormément apporté en termes de performances pour l algorithme SIVIA et a ouvert la voie à l utilisation des méthodes par intervalles pour des applications en temps réel à partir d architectures massivement parallèles, comme par exemple les cartes multiprocesseurs utilisables avec la librairie OpenCL. Cependant ceci posera surement un problème de compatibilité et de portabilité avec la librairie Ibex. ii- Changement de Bissecteur La deuxième approche utilisée pour diminuer le temps de calcul a été l utilisation d autres méthodes de bissections au cœur de l algorithme SIVIA. Cette approche m a été proposée par M. Jordan NININ, enseignant à l ENSTA Bretagne, à la suite d une remarque de ma part concernant le nombre important de boîtes traitées pour le cas simple du robot holonome. On ne peut bissecter une boîte que suivant une seule dimension, et il existe plusieurs manières de bissecter cette boîte au cours d un Sivia, dont celles décrites ci-dessous : - La bissection «tour-à-tour», ou «round-robin», qui consiste à couper les boîtes successivement sur les dimensions. - La bissection basée sur un critère de largeur des intervalles d une boîte. - La bissection basée sur un critère de fonction objectif à minimiser. L utilisation d une règle de bissection plutôt qu une autre va influencer considérablement l action du contracteur utilisé dans l algorithme Siva, et ne donnera en général pas exactement les mêmes résultats car l ensemble solution sera décrit par des boîtes différentes (forme, précision, ).

37 37 La stratégie de bissection utilisée précédemment était basée sur un critère de minimisation de la largeur maximale des intervalles décrivant la boîte. Prenons une boîte, avec respectivement les précisions demandées sur chacun des intervalles qui la composent. Alors cette stratégie, appelée «Maximum Width», peut s exprimer de la manière suivante : ave lar eur de l intervalle Il suffit alors de bissecter cette boîte suivant l intervalle pour lequel la valeur est la plus grande Cette méthode est très simple à mettre en place, et présente un critère de bissection rapide à calculer, cependant elle est loin d être la plus efficace. Méthode 1 : «Maximum Width» Méthode 3 : nécessite 74% de bissections en moins en comparaison avec la méthode 1 (meilleure méthode) Figure 37 : Tableau récapitulatif des résultats obtenus par M. CSENDES et M. RATZ : nombre total de bissections réalisées par 4 méthodes de bissection pour la résolution de 25 problèmes différents. La figure précédente, montre une partie des résultats obtenus par M. CSENDES et M. RAZT [3] lors de la comparaison de 4 méthodes de bissection sur 24 fonctions de test d optimisation (Fonction d optimisation de Shekel, Hartmann, Goldstein-Price, Branin, ). Compte tenu des résultats obtenus, j ai décidé de choisir la troisième méthode dite «Maximum Smear» (résultats colonne 3 sur la figure précédente). Cette méthode de bissection repose sur une fonction de «mérite» qui permet de choisir la composante à bissecter sur une boîte. Concrètement, cette fonction est issue du contracteur utilisé, et permet d optimiser son action sur les deux boîtes obtenues après bissection. La règle «Maximum Smear» s exprime alors comme ceci : ( ( ) Avec la composante du gradient de la fonction de «mérite», et la valeur médiane de l intervalle. Figure 38 : Comparaison entre le nombre de boîtes traitées avec la méthode «Maximum Width» (à gauche) et la méthode «Maximum Smear» (à droite) (Robot terrestre non-holonome).

38 38 Comme on peut le constater sur la figure précédente, le nombre de boîtes traitées a été divisé par deux avec la nouvelle méthode de bissection, ce qui a réduit de manière significative le temps de réponse du programme. Cependant, la méthode «Maximum Smear» est souvent difficile à mettre en place. D une part, parce qu il faut trouver une fonction de «mérite» adaptée à la situation, et d autre part, car celle-ci peut aussi augmenter le temps de calcul si elle est trop compliquée à calculer à chaque tour du Sivia. d) Résultats obtenus Afin de montrer l efficacité du programme Bubbibex pour la validation d une trajectoire, nous allons comparer la validation de deux trajectoires différentes assignées au robot terrestre holonome. Figure 39 : Les deux trajectoires à valider avec Bubbibex pour le robot terrestre non-holonome Comme nous pouvons le constater sur la figure précédente, les deux trajectoires présentent une suite de deux virages. Cependant sur la deuxième trajectoire, les rayons de courbure des deux virages sont beaucoup plus faibles que pour la première, ce qui doit la rendre plus difficile à suivre pour le robot. Les résultats obtenus lors de la validation de la première trajectoire sont présentés dans les figures suivantes,

39 39 Figure 40 : Résultats obtenus pour la première trajectoire à valider Comme nous pouvons le constater sur la figure précédente, aucune solution «non-safe» (Unsafe boxes) a été trouvé pour cette trajectoire, cependant beaucoup de solutions ayant nécessité une intégration ont été trouvées (Relatively Safe boxes). Ces solutions «Relatively Safe» sont affichées en gris sur la trajectoire, et nous pouvons alors remarquer qu elles sont seulement présentes dans les virages de la trajectoire de référence. Elles peuvent alors être interprétées comme un signe montrant que le contrôleur mis en place dans le modèle de robot ne lui permet de suivre proprement la trajectoire qui lui est assignée. En conséquence, cette faiblesse du contrôleur devrait poser des problèmes lors de la validation de la seconde trajectoire. Figure 41 : Résultats obtenus pour la seconde trajectoire à valider

40 40 Comme le montre la figure précédente, la deuxième trajectoire n est pas validée par le programme, car des solutions «non-safe» ont été trouvée (pour des mêmes paramètres de résolution). Le tracé de ces solutions va alors nous permettre de mieux comprendre pourquoi cette trajectoire n est pas «Safe», Figure 42 : Affichage des solutions trouvées pour le premier, puis le second virage de la Trajectoire 2 On peut alors voir sur les deux figures précédentes, que les solutions trouvées correspondent à des configurations dans lesquelles le robot est incapable de suivre la suite de virages proposée de la trajectoire de référence. Comme nous l avions remarqué sur la trajectoire précédente, ceci est surement dû au contrôleur utilisé pour le robot, incapable de suivre une succession de virage. D autre part, nous pouvons aussi remarquer que les marges calculées pour les deux trajectoires sont assez importantes ; elles donnent des tubes enveloppes de rayons maximum respectivement égaux à environ 28m et 31m. Il faut toutefois, prendre ces résultats comme étant des sur-approximations des marges de manœuvre réellement nécessaires au robot pour revenir dans sa «bulle». Nous pouvons cependant nous rapprocher des marges réelles maximales de manœuvre du robot en demandant des précisions de bissection des intervalles par le SIVIA plus faibles. En contrepartie ceci augmente considérablement le temps de résolution de l algorithme, comme le montre les résultats suivant, obtenus lors la validation de la première trajectoire avec des précisions de bissections divisées par 10 sur les intervalles des variables d état du robot terrestre non-holonome.

41 41 Figure 43 : Résultats obtenus pour la validation de la trajectoire 1 avec des précisions de bissection des intervalles divisées par 10 Ainsi, sur la figure précédente, nous pouvons observer que les marges obtenues lors du nouveau calcul de validation de la première trajectoire, sont plus faibles que celles obtenues précédemment (rayon maximal du tube de capture environ égal à 24m). Ces simulations valident donc l utilisation de Bubbibex pour des problématiques de validation de trajectoires planifiées. D autre part, Bubbibex peut aussi apporter un critère de performance du contrôleur pour le suivi de trajectoire d un engin autonome, car il peut aider à détecter les difficultés du contrôleur à suivre les passages complexes d une trajectoire (comme par exemple, dans les virages des deux trajectoires précédentes). 5- Planification de mission Les résultats obtenus avec le programme Bubbibex sont encourageants, notamment vis-à-vis d une possible implémentation des algorithmes utilisés dans un logiciel de planification de mission existant. Cependant, il faut tout d abord montrer que ce programme et ces algorithmes peuvent être intéressants dans ce contexte. Aussi, une version allégée du programme Bubbibex a été créée dans le but de pouvoir être appelé par un logiciel de planification de mission, pour valider un tube de capture autour de la trajectoire de vol fournie par celui-ci. a) Adaptation du programme Bubbibex Ce logiciel de planification de mission, permet de générer une trajectoire de vol pour un engin aérien autonome. Cette trajectoire est optimisée en prenant en compte le relief du terrain et des contraintes de zones aériennes à ne pas survoler, pour être la plus proche possible du sol. Cependant, ce logiciel utilise seulement des méthodes probabilistes pour réaliser cette optimisation de trajectoire. Aussi, les méthodes ensemblistes utilisées dans le programme Bubbibex pourraient apporter des informations complémentaires aux résultats du programme, en validant avec certitude la trajectoire proposée comme étant «Safe».

42 42 Figure 44 : Carte numérique de terrain et trajectoire planifiée sur le logiciel MBDA En premier lieu, je me suis intéressé à la validation de la trajectoire pour le modèle simplifié de robot aérien non-holonome défini dans la partie 3.c. Ce modèle est très simplifié car il considère l engin aérien comme un point matériel défini par les variables d états et les équations d états suivantes : - : position du robot dans le repère terrestre ( ) (Est-Nord-Haut). - : Angle de cap du robot. - : Angle d assiette du robot... s. sin.. (.. ) L intérêt premier de ce modèle était de pouvoir tester le programme Bubbibex sur la validation d une trajectoire dans l espace, sans trop surcharger la résolution de variables pour avoir des temps de réponse corrects. Cependant, nous nous sommes rendus compte plus tard que les méthodes précédemment mises en place permettent d obtenir des temps de réponse corrects, et d envisager l utilisation de Bubbibex sur des modèles d états plus complexe. Dans un premier temps, le programme Bubbibex a été amélioré afin de pouvoir prendre en compte une trajectoire définie par des coordonnées temporelles ( ) des points de passage. Aussi une méthode de régression polynomiale pour estimer l équation paramétrique de la trajectoire à partir de ces coordonnées a été implémentée. Cette méthode était nécessaire pour utiliser les méthodes par intervalles sur cette trajectoire. {

43 43 Figure 45 : Exemple d équations décrivant la trajectoire à suivre par un système Comme on peut le constater sur la figure précédente, les équations générées sont sous la forme de polynômes. En réalité, l ensemble des points ( ) sont utilisés pour calculer avec les méthodes de régression polynomiale, les coefficients des polynômes et dont le degré (ici 3) a été fixé à l avance. À partir de ces coefficients il est ensuite aisé de calculer la dérivée temporelle de la trajectoire ( ) et sa dérivée seconde ( ) qui sont aussi des fonctions polynomiales. b) Résultats obtenus En considérant la trajectoire suivante issue du programme de planification de mission, et parcourue par l engin aérien durant 1seconde, nous avons : Figure 46 : Régression linéaire réalisée pour construire la trajectoire à partir des points de passage récupérés.

44 44 Figure 47 : Validation d un morceau de trajectoire (1s) par la version simplifiée du programme Bubbibex (Console) Figure 48 : Validation d un morceau de trajectoire (10s) par la version simplifiée de Bubbibex (Console) Nous pouvons alors remarquer que, malgré le nombre de variables d état à traiter par l algorithme Sivia (5 variables d état et le temps), et la longueur de la trajectoire à valider (1 seconde, et 10 secondes) le temps de réponse du programme est relativement correct, ce qui laisse envisager une bonne intégration du programme dans le logiciel. D autre part, on peut aussi remarquer que les marges définissant le tube enveloppe augmentent lorsque le morceau de trajectoire à parcourir est plus long, ce qui nous pousse à comparer les valeurs de ces marges avec les dépassements de trajectoire que l on pourrait observer avec des simulations de Monte-Carlo (tirage d état initial aléatoire et intégration de la trajectoire). Figure 49 : Chevelu de trajectoires issu d un tirage de positions initiales aléatoires situées dans la «bulle»

45 45 La figure précédente illustre 20 trajectoires possibles d un même système essayant de suivre la trajectoire assignée (en rouge) et dont les positions initiales ont été tirée aléatoirement telles que. On remarque que conformément aux résultats fournis par Bubbibex, il n existe aucune trajectoire «non-safe», et qu il existe aussi certaines trajectoires s éloignant de la trajectoire de référence, mais qui reviennent au cours du temps. L écart maximal enregistré entre les trajectoires et la trajectoire de référence est de 4.12mètre, ce qui est inférieur à la marge maximale fournie par Bubbibex sur cette même trajectoire de référence (écart maximal de environ mètres). Ceci valide donc les résultats fournis par Bubbibex. c) Voies d améliorations De nombreuses améliorations sont encore possibles pour que les résultats fournis par Bubbibex soient totalement exploitables dans des problématiques de planification de missions. Tout d abord, le modèle d état décrivant l engin aérien peut être affiné en introduisant par exemple de nouvelles variables d état telles que les angles d incidence et de dérapage de l engin, ou encore en introduisant une loi de guidage en navigation proportionnelle. D autre part, la régression linéaire utilisée pour décrire les équations paramétriques de la trajectoire de références peut amener à lisser la trajectoire et à trop l approximer. Ceci peut aussi amener à une résolution faussée du problème, car les zones où la trajectoire peut être trop difficile à suivre, ne seront pas forcement bien représentées par ces équations. Enfin, la logique de parallélisation des calculs pourrait être approfondie, notamment avec des architectures «multithreads», dans le but d avoir un outil qui n handicape pas le temps de calcul du logiciel de planification de missions.

46 46 Projet Ellibex Le projet Ellibex a été mis en place pour répondre à la problématique suivante : Comment valider la trajectoire de robots qui effectuent des patrouilles autour de zones stratégiques, et assurer la non-collision de ces robots entre eux, ou avec un élément de l environnement. Cette problématique intervient dans le cadre d un projet traitant de scenarios d aide à la prise de décision pour la défense de points d intérêts par des bateaux patrouilleurs autonomes. Figure 50 : Exemple de scénario ; défense des iles de Hawaï par trois bateaux patrouilleurs 1- Principe du programme Ce programme a été créé dans une optique de planification de patrouilles autours de points stratégiques. Il permet dans un premier temps de valider les trajectoires de patrouilles de 3 robots, comme étant «Safe», puis dans un deuxième temps de valider la non-collision entre les robots, en prenant compte des incertitudes de navigation pour chaque robot (marges de manœuvres). Les équations utilisées pour décrire l évolution des robots sont celles décrites précédemment pour le robot terrestre non-holonome (cf. partie Projet Bubbibex, 3.b.). Aussi chacun de ces robots se voit attribuer un chemin de ronde, qui sera validé de la même manière que dans le programme Bubbibex. À la suite de quoi, le programme calcule toutes les intersections possibles entre les bulles validées avec leurs marges. Pour cela, j ai utilisé la méthode par intervalles des Q-intersections (cf. 1.b). a) Incertitudes de pilotage Les trajectoires à suivre sont plutôt simples, et dans le cas d un robot idéal, ne pose aucune difficulté pour être suivies. Cependant le but final de ce programme est de pouvoir appliquer les résultats obtenus sur des robots réels (Wifibots). Pour prendre en compte les imperfections de ces robots, qui peuvent intervenir sur le guidage, la navigation (estimations de la position, biais de capteurs ) ou encore le pilotage (roues qui patinent, ), on utilise une inclusion différentielle pour décrire la dynamique du robot.

47 47 Si on considère un système avec l équation d évolution, utiliser l inclusion différentielle sur ce système revient à changer cette équation par. Ceci permet de considérer, à la place d une seule évolution, un ensemble d évolutions réalisables par le robot à l état. Ceci change alors en partie la méthode de validation de la bulle. On cherche maintenant tous les états possibles du robot se trouvant à la frontière de la bulle, et dont au moins une des évolutions possibles le ferait sortir de la bulle. (X t) F(X t) (X d t) Figure 51 : État «non-safe» du robot, car au moins une de ses évolutions possibles sort de la bulle Pour prendre en compte l inclusion différentielle dans la résolution d un problème de validation de trajectoire, il suffit de résoudre le système d équation suivant : {. [ ] En pratique la fonction est créée à partir de la fonction d évolution du système, à laquelle on vient ajouter un vecteur d incertitudes qui dépend des caractéristiques du système réel. b) Q-Intersections De manière théorique, la q-intersection entre sous-ensembles de l ensemble de vecteurs d intervalles I, est l ensemble des appartenant à au moins un nombre de boîtes. La q-intersection est alors décrite par ;

48 48 Figure 52 : Q-intersections de 6 sous-ensembles de I, pour (en Rouge), (en Vert), (en Bleu) et (en Jaune) Calculer les Q-intersections des sous ensembles de I, revient alors à poser un problème d inversions d intervalles, résolu avec une méthode de Sivia avec contracteurs, en définissant la fonction suivante, Cette méthode des Q-Intersections est couramment utilisée en robotique mobile pour des problématiques de localisation de robots à partir de points de référence (Amers). Par exemple, elle permet d obtenir la ou les zone(s) dans le(s)quelle(s) peut se trouver un robot à partir de mesures de distances entre ces amers et le robot, avec leurs incertitudes et la présence potentielle de mesures aberrantes. d D Amer Amer D Amer d D d Figure 53 : Zones (en rouge) dans lesquelles peut se trouver un robot dont les distances entre lui et chaque amers sont comprises entre et. Dans le cas présenté, les zones sont calculées en prenant au moins un des amers comme aberrant. D autre part, la méthode des Q-intersections est déjà implémentée dans la bibliothèque Ibex avec une très bonne vitesse d exécution. Ainsi, dans notre cas il a juste suffit de considérer les centres des bulles de chacun des robots à l instant t comme des «Amers», avec des distances nulles et égales au dépassement maximal (marges) de chaque bulles.

49 49 2- Mise en place a) Diagramme de Classe Les fonctionnalités du programme se devaient d être les suivantes : - Être utilisable pour un seul type de robot fixé (robot 2D non-holonome). o Description de la fonction d évolution de chaque robot dans un fichier fi.txt généré automatiquement par le programme, en tenant compte de la trajectoire de patrouille qu il doit suivre. o Description de la fonction cible de chaque robot dans un fichier gi.txt généré aussi automatiquement par le programme, en tenant compte des paramètres de sa bulle. (cf. figure 14) - Être utilisable pour différents scénarios. o Les équations paramétriques de chacune des trajectoires de patrouille (Ellipses), sont générées automatiquement à partir des paramètres rentrés manuellement dans l interface graphique (Coordonnées du centre, demi grand-axe, demi petit-axe, orientation, ). o Possibilité de choisir le point de départ des robots (à t=0), sur leur trajectoire de patrouille. - Avoir des paramètres de résolution du problème réglable o Les Intervalles initiaux pour chaque composantes de sont ajustables : réglage de et pour tout. o L intervalle de temps sur lequel la résolution doit être réalisée est réglable. o La largeur minimale des Intervalles à bissecter lors du SIVIA est réglable. - Afficher graphiquement les résultats obtenus. o Affichage dans une première fenêtre graphique des trajectoires de patrouille avec la carte des objectifs à défendre. Permet de régler la forme et la position des rondes que chaque robot doit réaliser. o Affichage dans une deuxième fenêtre graphique des résultats obtenus (Bulle et collisions) avec les trajectoires de patrouille et la carte de l environnement. o Affichage des résultats suivant l évolution temporelle du système entre et. Aussi le diagramme de classe du programme est relativement identique à celui du programme Bubbibex:

50 50 Scenario String f, g List<double*> waypoints Void Load_f() Void Save_f() String CalcTarget() Repere Scene scene Void xtopix(double x, double y) Void DrawRobot(double x, double y, double angle, double taille) MainWindow Sivia sivia SiviaCollision collision Repere R, Rscenario Scenario scenario1, scenarion 2, scenario3 IntervalVector x Void Init() Void OnPushRunClicked() Sivia Function f, g CtcFwdBwd ctc IntervalVector x Double[] eps_x List<IntervalVector> Sp, Sout Void InitSivia() Void RunSivia() SiviaCollision Function f1, f2, f3 Qintersection ctcq IntervalVector x Double[] epsx List<IntervalVector> Sp, Sout Void InitSivia() Void RunSivia() Figure 54 : Diagramme de classes d Ellibex La classe MainWindow est le cœur du programme. Elle permet à l utilisateur d interagir avec le programme, via une interface graphique comme pour le programme Bubbibex, et de lancer la résolution du problème en appelant les classes Sivia, SiviaCollision et Scenario. L utilisateur peut alors spécifier les trajectoires de patrouilles à valider, les paramètres de résolution de l algorithme SIVIA pour enfin visualiser les résultats obtenus dans une fenêtre graphique dessinée grâce à la classe Repere (comme pour le programme Bubbibex). Cependant, à l inverse de Bubbibex, les fonctions d évolutions des robots sont fixées par le programme. Les classes Sivia et SiviaCollision contiennent toutes les deux un algorithme SIVIA. La classe Sivia traite de la validation des trajectoires de patrouille, suivant le même principe que le programme Bubbibex, et la classe SiviaCollision calcule les zones de potentielles collisions entre les robots patrouilleurs. Ces deux classes communiquent avec la classe MainWindow pour accéder aux données du problème, comme par exemple les intervalles initiaux pour chacune des variables d état, et lui renvoient ensuite les résultats obtenus. Enfin la classe Scénario génère automatiquement les fonctions du système, en prenant en compte les équations des trajectoires de patrouilles à suivre. Ces équations et fonctions sont ensuite sauvegardées sous forme de scripts (.txt) facilement accessibles pour les classe Sivia et SiviaCollision pour la résolution du problème et par la classe MainWindow pour l affichage du système modélisé et de la trajectoire à valider.

51 b) Interface graphique Boite initiale, et précision de bissection demandée sur chacune des dimensions de la boite initiale (Sivia) MBDA France Incertitudes sur les variables d état des robots 51 Paramètres des ellipses Elle sont ensuite automatiquement placées sur la carte en dessous Intervalle de temps pas de temps et Paramètres des bulles pour chaque robots Mise à jour de trajectoire vis-à-vis des paramètres d ellipses demandés. Trajectoires de patrouille autours des iles de Hawaï. Celle-ci sont des ellipses tracées automatiquement à partir des paramètres rentrés manuellement (audessus) Figure 55 : Réglages des paramètres du programme (Ellibex version finale)

52 52 Fenêtre de récapitulatif des résultats trouvés Temps de calculs Marges maximales trouvés pour chacune des trajectoires de patrouille Intervalles de départ (vecteur d état + temps) et précisions utilisées pour la bissections des intervalles Récapitulatif du nombre de solutions trouvées pour la validation de chacune des trajectoires de patrouille (cf. Bubbibex) Nombre de solution trouvées pour le calcul des zones de collisions potentielles entre les robots Lancement de la résolution par les algorithmes SIVIA Figure 56 : Résultats obtenus pour la validations de trajectoires de patrouilles pour 3 robots (Ellibex version finale)

53 53 Trajectoires de patrouille «Bulles» avec leur marge (cf. Bubbibex) Zones de collisions potentielles (Affichées en Rouge). Pour la validation des trajectoires le même code couleur que Bubbibex a été adopté (i.e. en Jaune les solutions «non- Safe» et en gris les solutions «relatively Safe») Options d affichage permet de choisir les trajectoires et les résultats à afficher Échelle temporelle permet d afficher l évolution des solutions au cours du temps Figure 57 : Affichage graphique des résultats (Ellibex version finale)

54 54 3- Test du programme Concernant la validation des trajectoires, le programme Ellibex utilise exactement les mêmes algorithmes que Bubbibex. Cependant l intérêt de ce programme réside surtout dans les résultats obtenus lorsqu on ajoute des incertitudes sur les variables d état. Pour illustrer ceci, trois exemples de simulations vont être présentés. Il s agit dans les trois cas de la validation des mêmes trajectoires de patrouilles avec des incertitudes différentes sur les variables d état, comme illustré dans le tableau suivant : Incertitudes sur (m) Incertitudes sur (m) Incertitudes sur (rad) Cas d étude Cas d étude Cas d étude Les trajectoires de patrouilles sont disposées comme sur la figure ci-dessous, sur une carte des iles de Hawaï. On peut y distinguer les points de départ des robots sur chacune de ces trajectoires (Points noirs). Dans les 3 cas, les trajectoires seront validées sur un temps de parcours de 0.5secondes. Figure 58 : Trajectoires à suivre pour les 3 robots patrouilleurs Dans le premier cas d étude aucune incertitude n est prise en compte pour la validation des trajectoires. Nous obtenons alors les résultats suivants : 3 Figure 59 : Résultats obtenus pour le cas d étude 1

55 55 On peut remarquer sur la figure précédente qu aucune solution «non-safe» (Unsafe boxes) est trouvée pour les trois trajectoires. D autre part, il n existe aucune zone de l espace dans lesquelles les robots pourraient potentiellement rentrer en collision (en considérant les marges de manœuvre calculées pour les robots). Enfin, les marges des bulles (cf. Bubbibex) pour chacune des trajectoires sont relativement faibles avec par exemple, un tube enveloppe de rayon maximum égal à 6.32 mètres, pour la trajectoire du robot n 2. Dans le cas d étude n 2, nous avons rajouté des incertitudes sur le cap de. radians ; cette incertitude peut traduire par exemple, une précision du compas embarqué de. radians. Cette incertitude est valable pour tous les robots, car nous considérons ici qu ils sont tous du même type. Nous obtenons alors les résultats suivants : 3 4 Figure 60 : Résultats obtenus pour le cas d étude 2 Figure 61 : Affichage graphique des résultats obtenus pour le cas d étude 2 Nous pouvons alors constater sur les figures précédentes que l incertitude sur le cap à beaucoup d influence sur la capacité des robots à suivre la trajectoire qui leur est demandée. Tout d abord le nombre de solutions «non-safe» (Unsafe boxes) a explosé pour les trois trajectoires de patrouilles. D autre part, les marges sont nulles pour les deux premiers robots, ce qui montrent qu aucun tube enveloppe n a pu être calculé pour leur trajectoire, car ceux-ci en divergent trop. Enfin, nous pouvons observer graphiquement ces trajectoires divergentes sur la dernière figure.

56 56 Dans le dernier cas d étude, nous allons maintenant considérer des incertitudes sur la position des robots de. Ceci pourrait par exemple traduire une incertitude sur le positionnement GPS de ces robots. Nous obtenons alors les résultats suivants, Figure 62 : Résultats obtenus pour le cas d étude 3 Figure 63 : Affichage graphique des résultats pour le cas d étude 3 Sur les figure précédentes, les résultats obtenus pour le cas d étude n 3, montrent que les incertitudes sur la position des robots n a pas beaucoup d influence sur le nombre de solutions «non-safe» trouvées (Unsafe boxes) pour chaque trajectoire. Cependant, les marges des «bulles» ont augmenté considérablement, ce qui pourrait poser problème lors du calcul des zones de collisions de ces robots. Ici le calcul des zones de collisions n est réalisé que pour les robots entre eux, mais si on s intéresse aux zones de collisions avec les éléments de l environnement, nous pouvons déjà affirmer qu elles existeront (cf. figure précédente). Une fois les trajectoires de patrouille validées, le programme nous permet de les sauvegarder sous forme de points de passage, pour être réutilisées par la suite dans des simulations d interception de menaces arrivant sur ces objectifs, ou encore sur des robots en laboratoire.

57 MBDA France 57 Projet Reachable Sets Le projet Reachable Sets a été proposé par M. Stéphane LE MENEC, et a pour objectif de montrer l efficacité des méthodes ensemblistes sur une nouvelle problématique ; comment calculer les zones de capture de jeux différentielles, à un horizon temporel donné, entre deux robots. Cette problématique avait été précédemment abordée par M. Victor LE COINTRE, lors de sa césure à MBDA France, qui s était heurté principalement au problème du temps de calcul. Aussi, l intérêt de ce projet était de montrer la possibilité de résoudre ce problème en utilisant les techniques développées lors des deux projets précédents (Bubbibex et Ellibex). 1- Principe du programme On se place ici dans un scénario, où l on considère deux robot non-holonomes et noncoopératifs dans le plan. Le premier robot est dit fugitif (E : Evader) et le second robot est dit poursuivant (P : Pursuer) et tous les deux sont respectivement caractérisés par leur fonction d évolution et. Aussi dans ce scénario, le robot E aura une commande bornée sur sa vitesse angulaire, qui doit lui permet d échapper au robot P, qui lui cherche à rentrer en collision, avec une commande bornée sur sa vitesse angulaire. On pose alors les vecteurs d état avec, et l évolution des robots est décrite par les équations d état suivantes : {. s. sin. {. s.. { Figure 64 : Scénario Reachable Sets avec deux robots non-collaboratifs

58 MBDA France 58 Dans notre cas, nous allons chercher à représenter la zone de capture du «jeu des deux automobiles» dans un repère centré sur le robot fugitif (E) en utilisant une approche «Backward Reachable Set» (cf. Partie 1.b.). Cette zone de capture peut être traduite de la manière suivante : - Si le robot poursuivant (P) est situé dans cette zone de capture, alors on ne peut pas garantir d éviter la collision entre les deux robots dans un horizon temporel fixé. - Si P se trouve hors de cette zone de capture, alors il existe au moins une stratégie pour E (qui donne une commande à suivre en fonction des états et ) qui lui permet d éviter la collision avec P sous un horizon temporel fixé. Donc la zone de capture donne les états du jeu pour lesquelles il y a une stratégie du joueur P poursuivant qui lui permet de capturer (intercepter, rentrer en collision, ) le robot E sous un horizon temporel fixé (délai), quels que soient les manœuvres de ce dernier. Cette zone de capture est aussi appelée la zone des états non-sûrs et son complémentaire, la zone des états sûrs. Pour calculer ces zones, nous allons centrer le problème sur le robot E en passant du repère fixe à un repère d origine E et dirigé par le cap (axe selon le cap ). Nous allons alors poser le nouveau vecteur d état pour décrire le système de robots, tel que : Ainsi, on passe d un système d équations d état de dimension 6 à un système avec 3 variables d état, décrit par l équation d évolution suivante : s ( ) { Si l on considère une zone correspondant à la collision (cible, ou «target» du jeu différentiel) à l instant noté, encadré par et tels que, alors trouver les zones pour lesquelles le robot E est sûr d échapper au Robot P pour un horizon temporel, revient à trouver tous les états I pour lesquels, malgré toutes les commandes applicables à P, il existe une commande applicable à E permettant d éviter toute collision à venir sur une durée. Le problème peut alors être reformulé de la manière suivante: I

59 59 a) Utilisation des méthodes par Intervalles De manière classique, le calcul de ces zones de capture s effectue avec les méthodes d intégration en marche arrière (Backward integration). L espace est alors discrétisé, et une méthode d intégration (ex. Euler, Runge-Kutta,..) est utilisée pour trouver les états qui permettent d atteindre la frontière de la zone de collision. Figure 65 : Zones de capture obtenues avec des techniques de Backward Integration. Nous pouvons observer à gauche sur la figure précédente, d une part la zone de capture obtenue (en rouge), tracée dans l espace, et d autre part un exemple de trajectoire simulée pour le couple (en noir) sans collision ; la trajectoire reste à l extérieur de la zone de capture suite à la réalisation par E d une manœuvre d évitement avant d entrer dans la zone des états nonsûrs. À droite sur cette même figure, nous pouvons observer des coupes de la zone de capture suivant l axe (en degrés) qui permettent de mieux comprendre comment ces zone du plan peuvent mener à la capture de E par P pour différents caps donnés. Aussi, une méthode similaire sera utilisée avec l arithmétique par intervalles. Si l on pose le nouveau vecteur d état avec la fonction d évolution, et un espace cible, alors on peut créer le contracteur :. Ce contracteur nous permet de calculer la frontière de la zone de capture, à un horizon temporel, avec un algorithme de type Sivia ; c est-à-dire tous les états qui nous permettent d atteindre la limite de zone de collision entre les deux Robots. Enfin, pour calculer la zone de capture sur un horizon temporel plus important, il suffit d utiliser une récurrence sur les résultats ; c est-à-dire, réutiliser les résultats précédemment calculés sur un horizon temporel, en posant une nouvelle zone de collision (cible du jeu). Il est alors possible de calculer tous les états qui nous permettent d atteindre sur un horizon temporel égal à, et par conséquent qui nous permettent d atteindre sur un horizon temporel égal à.

60 60 b) Limitation du temps de calcul À l instant t, la frontière de la zone de collision est souvent composée d un ensemble de boîtes discontinu. Ceci nous oblige à utiliser l algorithme Sivia sur chacun des sous-ensembles de, puis de fusionner l ensemble des boîtes solutions qui permettent d atteindre. En conséquent, le temps de calcul peut devenir très important si est composé de trop de vecteurs d intervalles, ce qui est le cas lorsque l on souhaite calculer la zone de capture pour un horizon temporel important, comme le montre la figure suivante : X(t) T (t dt) X u (t dt) T (t) T(t) Figure 66 : Calcul de la zone de capture pour une zone de collision. On remarque que la frontière de la nouvelle zone de collision va être composée de plus de boîtes que. Afin de limiter le temps de calcul à chaque pas de temps en arrière, il faut trier les boîtes à calculer pour garder seulement celles qui forment la frontière extérieure de. Cependant comparer les boîtes entre elles, une à une, pour sélectionner celles qui se trouvent les plus à l extérieur de, prend beaucoup de temps de calcul et se révèle être une stratégie perdante à cause de la dimension des boîtes traitées. Aussi, afin de contourner ce problème, une fonction de tri a été créée : { ar tan } Ainsi, il suffit de parcourir l ensemble des boîtes pour comparer entre elles seulement celles qui se trouvent dans une même zone de l espace (grâce à l indice ). D autre part, avec cette fonction de tri, le nombre de boîtes qui composent la frontière est limité à.

61 61 2- Mise en place a) Fonctionnalités du programme Les fonctionnalités du programme se devaient d être les suivantes : - Avoir des paramètres de résolution du problème réglable. o Les Intervalles initiaux pour chaque composantes de sont ajustables. o L horizon temporel maximum sur lequel sera résolu le problème est réglable. On fixe un pas de temps (. ) puis les calculs seront réalisés un horizon.,. o La largeur minimale des Intervalles à bissecter lors du SIVIA est réglable. - Affichage clair des résultats ; L intérêt est de pouvoir comprendre la forme des zones de captures affichées. o Affichage des boîtes projetées sur le plan et sectionnées suivant une valeur fixée de. o Affichage de l évolution d une solution (prise aléatoirement) afin de permettre la meilleure compréhension du comportement des deux robots menant à leur collision. - Sauvegarde des résultats afin de pouvoir être exploités par la suite, sous forme de fichier.txt. Ces fichiers contiennent les coordonnées des points de l enveloppe extérieure de la zone de capture à horizon, pour un fixé. Aussi étant donné que l on utilise encore une fois un algorithme Sivia, avec un affichage des résultats dans une fenêtre graphique, la structure du programme sera relativement identique à celle de Bubbibex (cf. Partie projet Bubbibex, 2.b.).

62 62 b) Interface graphique Enveloppe extérieure de la zone de capture Contour de la zone de collision entre les deux Robots Paramètres du Sivia et horizon temporel Maximum. Paramètres des Robots Limite de la zone dans laquelle doit se trouver le Robot P à t-dt (dans ce cas) pour être en collision avec le Robot E. Angle de cap pris en compte pour l affichage Horizon temporel pris en compte pour l affichage Figure 67 : Interface Graphique (Reachable Sets version finale)

PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille

PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille Résumé de PFE PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille Introduction Dans le domaine de la robotique, la robotique

Plus en détail

PG208, Projet n 2 : Dessin vectoriel

PG208, Projet n 2 : Dessin vectoriel PG208, Projet n 2 : Dessin vectoriel Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Oussama ELKACHOINDI Wajdi MEHENNI RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Sommaire I. Préliminaire : Notice d exécution et mode opératoire...4 II. Architecture globale de l application...5

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

Analyse abstraite de missions sous PILOT

Analyse abstraite de missions sous PILOT Analyse abstraite de missions sous PILOT Damien Massé EA 3883, Université de Bretagne Occidentale, Brest damien.masse@univ-brest.fr Résumé Nous étudions la possibilité de réaliser un analyseur par interprétation

Plus en détail

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population.

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population. Première STMG1 2014-2015 progression. - 1 Table des matières Fil rouge. 3 Axes du programme. 3 Séquence : Proportion d une sous population dans une population. 3 Information chiffrée : connaître et exploiter

Plus en détail

MODELE D UN RAPPORT DE STAGE DE BAC PRO ELECTROTECHNIQUE

MODELE D UN RAPPORT DE STAGE DE BAC PRO ELECTROTECHNIQUE MODELE D UN RAPPORT DE STAGE DE BAC PRO ELECTROTECHNIQUE [Prénom Nom] Rapport sur le stage effectué du [date] au [date] Dans la Société : [NOM DE LA SOCIETE : Logo de la société] à [Ville] [Intitulé du

Plus en détail

[WINDOWS 7 - LES FICHIERS] 28 avril 2010. Logiciel / Windows

[WINDOWS 7 - LES FICHIERS] 28 avril 2010. Logiciel / Windows Ce dossier a une forme un peu différente des précédentes : c est un ensemble de «fiches» décrivant chacune une des opérations que l on peut effectuer avec un fichier (enregistrer, renommer, etc.). Chaque

Plus en détail

Utilisation de python pour le calcul numérique

Utilisation de python pour le calcul numérique Utilisation de python pour le calcul numérique Résumé L objectif de ce TP est de découvrir quelques possibilités de python pour le calcul numérique. Il pourra également vous servir de référence si vous

Plus en détail

LES OUTILS DE LA GESTION DE PROJET

LES OUTILS DE LA GESTION DE PROJET LES OUTILS DE LA GESTION DE PROJET PROJET : «ensemble des actions à entreprendre afin de répondre à un besoin défini dans des délais fixés». Délimité dans le temps avec un début et une fin, mobilisant

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

Contrôle des spécifications dimensionnelles et géométriques sur Machines à Mesurer Tridimensionnelles

Contrôle des spécifications dimensionnelles et géométriques sur Machines à Mesurer Tridimensionnelles Contrôle des spécifications dimensionnelles et géométriques sur Machines à Mesurer Tridimensionnelles 1 Inspection d une spécification portée sur un dessin Les étapes : Définir selon la norme (ISO) la

Plus en détail

Manuel d'utilisation DSim 2005

Manuel d'utilisation DSim 2005 Référence: I2-MU Version: 1.1 Date: 28 octobre 2005 Manuel d'utilisation DSim 2005 DSoft Corporation Le rédacteur: Laurent Duplaa Le chef de projet: Florent Paillard Le résponsable qualité: Pasquier Henri

Plus en détail

SUGARCRM MODULE RAPPORTS

SUGARCRM MODULE RAPPORTS SUGARCRM MODULE RAPPORTS Référence document : SYNOLIA_Support_SugarCRM_Module_Rapports_v1.0.docx Version document : 1.0 Date version : 2 octobre 2012 Etat du document : En cours de rédaction Emetteur/Rédacteur

Plus en détail

Méthodes de Monte-Carlo Simulation de grandeurs aléatoires

Méthodes de Monte-Carlo Simulation de grandeurs aléatoires Méthodes de Monte-Carlo Simulation de grandeurs aléatoires Master Modélisation et Simulation / ENSTA TD 1 2012-2013 Les méthodes dites de Monte-Carlo consistent en des simulations expérimentales de problèmes

Plus en détail

Les états de collision inévitables, un outil pour la sûreté des systèmes robotiques

Les états de collision inévitables, un outil pour la sûreté des systèmes robotiques Les états de collision inévitables, un outil pour la sûreté des systèmes robotiques Antoine Durand-Gasselin, encadré par Thierry Fraichard, equipe emotion, laboratoire Inrialpes Contexte : La navigation

Plus en détail

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème.

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème. Mathématiques - classe de 1ère des séries STI2D et STL. 1. Analyse On dote les élèves d outils mathématiques permettant de traiter des problèmes relevant de la modélisation de phénomènes continus ou discrets.

Plus en détail

Architecture des calculateurs

Architecture des calculateurs Chapitre 1 Architecture des calculateurs 1.1 Introduction Ce paragraphe n a pas la prétention de présenter un cours d informatique. D une manière générale, seuls les caractéristiques architecturales qui

Plus en détail

RAPPORT DE CONCEPTION UML :

RAPPORT DE CONCEPTION UML : Carlo Abi Chahine Sylvain Archenault Yves Houpert Martine Wang RAPPORT DE CONCEPTION UML : Bamboo Ch@t Projet GM4 Juin 2006 Table des matières 1 Introduction 2 2 Présentation du logiciel 3 2.1 Précisions

Plus en détail

Primitives Cours maths Terminale S

Primitives Cours maths Terminale S Primitives Cours maths Terminale S Dans ce module est introduite la notion de primitive d une fonction sur un intervalle. On définit cette notion puis on montre qu une fonction admet une infinité de primitives

Plus en détail

Baccalauréat STG Mercatique Nouvelle-Calédonie 15 novembre 2012 Correction

Baccalauréat STG Mercatique Nouvelle-Calédonie 15 novembre 2012 Correction Baccalauréat STG Mercatique Nouvelle-Calédonie 15 novembre 2012 Correction EXERCICE 1 : TAUX D ÉVOLUTION 5 points Le tableau ci-dessous présente le nombre de voitures neuves vendues en France en 1980,

Plus en détail

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voie : Technologie et biologie (TB) Discipline : Informatique Première et seconde années Programme d informatique

Plus en détail

GESTIONNAIRE DE TOURNOI DE FOOTBALL

GESTIONNAIRE DE TOURNOI DE FOOTBALL GESTIONNAIRE DE TOURNOI DE FOOTBALL Remarque : Le programme n étant pas terminé.je détaillerai l intégralité du cahier des charges, et j expliquerai le raisonnement de chaque partie effectuée. 1/11 Table

Plus en détail

Calcul ensembliste pour la localisation et la cartographie robustes

Calcul ensembliste pour la localisation et la cartographie robustes Calcul ensembliste pour la localisation et la cartographie robustes Jan SLIWKA, Fabrice LE BARS, Luc JAULIN Laboratoire DTN ENSIETA, 2 rue François VERNY 29200 Brest {sliwkaja,lebarsfa,jaulinlu}@ensieta.fr

Plus en détail

Cours de mathématiques pour la Terminale S

Cours de mathématiques pour la Terminale S Cours de mathématiques pour la Terminale S Savoir-Faire par chapitre Florent Girod 1 Année scolaire 2015 / 2016 1. Externat Notre Dame - Grenoble Table des matières 1) Suites numériques.................................

Plus en détail

Réalisation d'un robot sous-marin autonome

Réalisation d'un robot sous-marin autonome Réalisation d'un robot sous-marin autonome Fourniture 2 associée au contrat MRIS 2008-2009 Jan Sliwka, Fabrice Le Bars, Luc Jaulin. ENSIETA Avril 2009 Descriptif de l étude Comme tous les ans depuis 2007,

Plus en détail

Correction de l épreuve intermédiaire de mai 2009.

Correction de l épreuve intermédiaire de mai 2009. Licence de Gestion. 3ème Année Année universitaire 8-9 Optimisation Appliquée C. Léonard Correction de l épreuve intermédiaire de mai 9. Exercice 1 Avec les notations du cours démontrer que la solution

Plus en détail

Fiche de lecture de PFE Guillaume HEMMERTER

Fiche de lecture de PFE Guillaume HEMMERTER 1. INTRODUCTION Les maîtres d ouvrage ou propriétaires de patrimoine immobilier qui s engagent dans la construction ou la rénovation d installations climatiques veulent avoir la certitude d obtenir le

Plus en détail

Conduite et Gestion de Projet Professionnel Cahier des charges Projet: Robot

Conduite et Gestion de Projet Professionnel Cahier des charges Projet: Robot Conduite et Gestion de Projet Professionnel Cahier des charges Projet: Robot Makhlouf OUBACHA Salima OUZZMAN Stevens RABEHAJA Armelle HOUNDJO Mercredi 04 février 2015 1 Table des matières 1 But du projet

Plus en détail

Machine de Turing. Informatique II Algorithmique 1

Machine de Turing. Informatique II Algorithmique 1 Machine de Turing Nous avons vu qu un programme peut être considéré comme la décomposition de la tâche à réaliser en une séquence d instructions élémentaires (manipulant des données élémentaires) compréhensibles

Plus en détail

Licence de Sciences et Technologies. Fiche de cours 1 - Nombres réels.

Licence de Sciences et Technologies. Fiche de cours 1 - Nombres réels. Licence de Sciences et Technologies EM21 - Analyse Fiche de cours 1 - Nombres réels. On connaît les ensembles suivants, tous munis d une addition, d une multiplication, et d une relation d ordre compatibles

Plus en détail

BURTE Julien/MONTES Olivier/ROGLIANO Théo TER :2015 ETERNITY II. Tuteur : Eric BOURREAU

BURTE Julien/MONTES Olivier/ROGLIANO Théo TER :2015 ETERNITY II. Tuteur : Eric BOURREAU BURTE Julien/MONTES Olivier/ROGLIANO Théo TER :2015 ETERNITY II Tuteur : Eric BOURREAU Eternity II est un puzzle de 256 pièces, où chaque pièce est formée de 4 couleurs et doit être assortie à sa voisine

Plus en détail

creer_construire_projet_owb_1.1.0.doc Document de référence : «Open Workbench User Guide r1.1.6 2007» (http://www.openworkbench.

creer_construire_projet_owb_1.1.0.doc Document de référence : «Open Workbench User Guide r1.1.6 2007» (http://www.openworkbench. 1/11 Auteur : Jacques Barzic (contact@jacques.barzic.fr) Sommaire Page 1 - Créer un projet 2/11 1.1 Généralités 1.2 Création d un nouveau projet 2 - Créer des ressources 3/11 2.1 Généralités sur les ressources

Plus en détail

Restauration d images

Restauration d images Restauration d images Plan Présentation du problème. Premières solutions naïves (moindre carrés, inverse généralisée). Méthodes de régularisation. Panorama des méthodes récentes. Problème général Un système

Plus en détail

Livret Professeur. Jeu «Construis ta ligne à grande vitesse» Version Windows/Mac. v1.06 07/04/2015. Jeu édité par. créé par. Avec le soutien de

Livret Professeur. Jeu «Construis ta ligne à grande vitesse» Version Windows/Mac. v1.06 07/04/2015. Jeu édité par. créé par. Avec le soutien de Livret Professeur Jeu «Construis ta ligne à grande vitesse» Version Windows/Mac v1.06 07/04/2015 Jeu édité par créé par Avec le soutien de Page 1 Pre sentation Le Jeu «Construis ta ligne à grande vitesse»

Plus en détail

6.1 Méthode des champs de potentiel

6.1 Méthode des champs de potentiel Chapitre 6 Évitement d obstacles L évitement d obstacles est un comportement de base présent dans quasiment tous les robots mobiles. Il est indispensable pour permettre au robot de fonctionner dans un

Plus en détail

Activité 1 : échantillonnage

Activité 1 : échantillonnage Activité échantillonnage, intervalle de fluctuation, prise de décision (à partir d un même thème) Les trois activités qui suivent s inspirent du document «ressources pour la classe de première générale

Plus en détail

GEOGEBRA : Les indispensables

GEOGEBRA : Les indispensables Préambule GeoGebra est un logiciel de géométrie dynamique dans le plan qui permet de créer des figures dans lesquelles il sera possible de déplacer des objets afin de vérifier si certaines conjectures

Plus en détail

ARTILLERIE ET PHYSIQUE DANS UN JEU VIDÉO

ARTILLERIE ET PHYSIQUE DANS UN JEU VIDÉO ARTILLERIE ET PHYSIQUE DANS UN JEU VIDÉO Stranger, Niavok 29 octobre 2015 Table des matières 1 Introduction 5 2 Un peu de contexte 7 3 L artillerie antiaérienne à l époque des guerres mondiales 9 4 16.7ms

Plus en détail

TUTORIAL Microsoft Project 2010 Fonctionalités de base

TUTORIAL Microsoft Project 2010 Fonctionalités de base TUTORIAL Microsoft Project 2010 Fonctionalités de base Microsoft Project est un logiciel de la suite Microsoft Office. Il s agit d un logiciel de gestion de projet et plus précisement de gestion de planning

Plus en détail

Création d un catalogue en ligne

Création d un catalogue en ligne 5 Création d un catalogue en ligne Au sommaire de ce chapitre Fonctionnement théorique Définition de jeux d enregistrements Insertion de contenu dynamique Aperçu des données Finalisation de la page de

Plus en détail

ORDRE DE RÉACTION : MÉTHODES DE

ORDRE DE RÉACTION : MÉTHODES DE ORDRE DE RÉACTION : MÉTHODES DE RÉSOLUTION Table des matières 1 Méthodes expérimentales 2 1.1 Position du problème..................................... 2 1.2 Dégénérescence de l ordre...................................

Plus en détail

Utilisation d informations visuelles dynamiques en asservissement visuel Armel Crétual IRISA, projet TEMIS puis VISTA L asservissement visuel géométrique Principe : Réalisation d une tâche robotique par

Plus en détail

Utilisation du logiciel OpMat Ce logiciel effectue des opérations élémentaires sur les lignes d une matrice avec des entrées rationnelles

Utilisation du logiciel OpMat Ce logiciel effectue des opérations élémentaires sur les lignes d une matrice avec des entrées rationnelles Utilisation du logiciel OpMat Ce logiciel effectue des opérations élémentaires sur les lignes d une matrice avec des entrées rationnelles Michel Bouchard, enseignant retraité, Département de mathématiques,

Plus en détail

les outils de la gestion de projet

les outils de la gestion de projet les outils de la gestion de projet Sommaire Objectifs de la gestion de projet Les étapes du projet Les outils de gestion de projets Paramétrage de l outil PROJET : «ensemble des actions à entreprendre

Plus en détail

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation

Plus en détail

LA DEMARCHE DE PROJET

LA DEMARCHE DE PROJET LA DEMARCHE DE PROJET Baccalauréat STI2D-SIN SIN 1.1 : La démarche de projet Objectifs o Utiliser les outils adaptés pour planifier un projet (Revue de projet, Cartes mentales, Gantt, chemin critique...

Plus en détail

ROBOT INSPECTEUR DE CABLES

ROBOT INSPECTEUR DE CABLES Barra Jérémy TS1 SSI ROBOT INSPECTEUR DE CABLES En ce début d année de terminale S Si, nous ont été présentés différentes idées de projets que l on pourrait réaliser pour notre projet personnel encadré.

Plus en détail

Fractions et décimaux

Fractions et décimaux Fractions et décimaux Scénario : le pliage des bandes de papier Cette fiche n est pas un programme pédagogique. Elle a pour but de faire apercevoir la portée de l approche «pliage de bandes» et les conséquences

Plus en détail

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Optimisation : pipeline jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des

Plus en détail

Animation d un robot

Animation d un robot nimation d un robot IFT3355 : Infographie - TP #1 Jérémie Dumas Baptiste De La Robertie 3 février 2010 Université de Montréal Table des matières Introduction au problème 2 1 Transformations 2 1.1 Passage

Plus en détail

IA54 Compte-rendu «STATIONNEMENT AUTOMATIQUE DE VEHICULE»

IA54 Compte-rendu «STATIONNEMENT AUTOMATIQUE DE VEHICULE» IA54 Compte-rendu «STATIONNEMENT AUTOMATIQUE DE VEHICULE» Henri Payno - Cyril Bailly 1/12/2011 SOMMAIRE 1. Introduction... 3 2. Contraintes... 3 3. Architecture globale... 4 4. Interface... 5 A. Scène

Plus en détail

D un point de vue système, ajuster la mémoire est l une des principales méthodes pour augmenter ou réduire les performances d un processus.

D un point de vue système, ajuster la mémoire est l une des principales méthodes pour augmenter ou réduire les performances d un processus. GESTION DE LA MEMOIRE SOUS UNIX La mémoire est une ressource critique car elle conditionne les temps de traitements. Différentes options SAS sont disponibles pour utiliser au mieux la mémoire de la machine.

Plus en détail

CHAMPION Matthieu Modèles de Marché en Visual Basic ESILV S04 S6. Sommaire... 1. Introduction... 2

CHAMPION Matthieu Modèles de Marché en Visual Basic ESILV S04 S6. Sommaire... 1. Introduction... 2 Sommaire Sommaire... 1 Introduction... 2 1 Trois différentes techniques de pricing... 3 1.1 Le modèle de Cox Ross Rubinstein... 3 1.2 Le modèle de Black & Scholes... 8 1.3 Méthode de Monte Carlo.... 1

Plus en détail

2B La résolution de modèles linéaires par Excel 2010

2B La résolution de modèles linéaires par Excel 2010 2B La résolution de modèles linéaires par Excel 2010 Nous reprenons ici, de façon plus détaillée, la section où est indiqué comment utiliser le solveur d'excel 2010 pour résoudre un modèle linéaire (voir

Plus en détail

Guide de sélection d une solution de planification

Guide de sélection d une solution de planification Guide de sélection d une solution de planification Liste des points essentiels que votre prochaine solution de planification doit couvrir Une publication de PlanningForce Table des matières 1. Ressources

Plus en détail

Résolution d équations non linéaires

Résolution d équations non linéaires Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

INF-130 Travail Pratique #2

INF-130 Travail Pratique #2 École de technologie supérieure INF-30 Travail Pratique #2 Travail individuel Tracé d un métro Francis Bourdeau, Frédérick Henri et Patrick Salois Remise à la 0 e semaine. Objectifs - Amener l étudiant

Plus en détail

Le voyageur de commerce

Le voyageur de commerce Université de Strasbourg UFR Maths-Informatique Licence 3 - Semestre 6 Le voyageur de commerce Jonathan HAEHNEL & Marc PAPILLON Strasbourg, le 3 mai 2012 Table des matières 1 Etat des lieux 4 1.1 Fonctionnalités..............................

Plus en détail

Épreuve de mathématiques Terminale ES 200 minutes

Épreuve de mathématiques Terminale ES 200 minutes Examen 2 Épreuve de mathématiques Terminale ES 200 minutes L usage de la calculatrice programmable est autorisé. La bonne présentation de la copie est de rigueur. Cet examen comporte 7 pages et 5 exercices.

Plus en détail

Recherche sur les collisions à une dimension : la relation entre la masse et le son

Recherche sur les collisions à une dimension : la relation entre la masse et le son Recherche sur les collisions à une dimension : la relation entre la masse et le son Recherche Le but de cette expérience est de faire une recherche sur la relation entre la masse et le son produit dans

Plus en détail

Problème combinatoire sur le réseau de transport de gaz. Nicolas Derhy, Aurélie Le Maitre, Nga Thanh CRIGEN Manuel Ruiz, Sylvain Mouret ARTELYS

Problème combinatoire sur le réseau de transport de gaz. Nicolas Derhy, Aurélie Le Maitre, Nga Thanh CRIGEN Manuel Ruiz, Sylvain Mouret ARTELYS Problème combinatoire sur le réseau de transport de gaz Nicolas Derhy, Aurélie Le Maitre, Nga Thanh CRIGEN Manuel Ruiz, Sylvain Mouret ARTELYS Au programme Présentation du problème Un problème d optimisation

Plus en détail

Use Cases. Introduction

Use Cases. Introduction Use Cases Introduction Avant d aborder la définition et la conception des UC il est bon de positionner le concept du UC au sein du processus de développement. Le Processus de développement utilisé ici

Plus en détail

fichiers Exemple introductif : stockage de photos numériques

fichiers Exemple introductif : stockage de photos numériques b- La Gestion des données Parmi les matériels dont il a la charge, le système d exploitation s occupe des périphériques de stockage. Il s assure, entre autres, de leur bon fonctionnement mais il doit être

Plus en détail

Livre Blanc. Optimiser la gestion et le pilotage des opérations. Août 2010

Livre Blanc. Optimiser la gestion et le pilotage des opérations. Août 2010 Livre Blanc Optimiser la gestion et le pilotage des opérations Août 2010 Un livre blanc édité par : NQI - Network Quality Intelligence Tél. : +33 4 92 96 24 90 E-mail : info@nqicorp.com Web : http://www.nqicorp.com

Plus en détail

PG208, Projet n 3 : Serveur HTTP évolué

PG208, Projet n 3 : Serveur HTTP évolué PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

Projet informatique UML-Cpp avec QT4

Projet informatique UML-Cpp avec QT4 Haute école spécialisée bernoise Haute école technique et informatique, HTI Section Electricité et système de communication Laboratoire de l informatique technique Projet informatique UML-Cpp avec QT4

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés

ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés ENSEIRB-MATMECA PG-113 014 TP6: Optimisation au sens des moindres carrés Le but de ce TP est d implémenter une technique de recalage d images qui utilise une méthode vue en cours d analyse numérique :

Plus en détail

4D v11 SQL Release 5 (11.5) ADDENDUM

4D v11 SQL Release 5 (11.5) ADDENDUM ADDENDUM Bienvenue dans la release 5 de 4D v11 SQL. Ce document présente les nouveautés et modifications apportées à cette nouvelle version du programme. Prise en charge de nouvelles plates-formes La release

Plus en détail

Evolution d un scénario dans l expérience e-colab. EMF, Dakar avril 2009 Gilles Aldon, Eductice, INRP Dominique Raymond-Baroux, IREM Paris 7

Evolution d un scénario dans l expérience e-colab. EMF, Dakar avril 2009 Gilles Aldon, Eductice, INRP Dominique Raymond-Baroux, IREM Paris 7 Evolution d un scénario dans l expérience e-colab EMF, Dakar avril 2009 Gilles Aldon, Eductice, INRP Dominique Raymond-Baroux, IREM Paris 7 Cadre général Groupe e-colab au sein de l INRP Collaboration

Plus en détail

Cours de Méthodes Déterministes en Finance (ENPC) Benoît Humez Société Générale Recherche Quantitative benoit.humez@sgcib.com

Cours de Méthodes Déterministes en Finance (ENPC) Benoît Humez Société Générale Recherche Quantitative benoit.humez@sgcib.com Cours de Méthodes Déterministes en Finance (ENPC) Benoît Humez Société Générale Recherche Quantitative benoit.humez@sgcib.com Points abordés Méthodes numériques employées en finance Approximations de prix

Plus en détail

Projet de cryptographie. Algorithme de cryptage de type Bluetooth

Projet de cryptographie. Algorithme de cryptage de type Bluetooth Projet de cryptographie Algorithme de cryptage de type Bluetooth Le but de ce projet est de créer une application qui crypte et décrypte des fichiers en utilisant le principe de cryptage du Bluetooth.

Plus en détail

LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION

LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION Dans les leçons précédentes, nous avons modélisé des problèmes en utilisant des graphes. Nous abordons dans cette leçon un autre type de modélisation.

Plus en détail

UNE APPROCHE DES PGI AVEC TINYERP : LE CONTEXTE ZENTA

UNE APPROCHE DES PGI AVEC TINYERP : LE CONTEXTE ZENTA UNE APPROCHE DES PGI AVEC TINYERP : LE CONTEXTE ZENTA Marie-pascale Delamare réseau CERTA Octobre 2007 Plan de la présentation Présentation du contexte Zenta ; Démonstration du contexte Zenta dans Tiny

Plus en détail

La Clé informatique. Formation Access XP Aide-mémoire

La Clé informatique. Formation Access XP Aide-mémoire La Clé informatique Formation Access XP Aide-mémoire Septembre 2003 Définitions de termes Base de données : Se compare à un énorme classeur ayant plusieurs tiroirs où chacun d eux contient des informations

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

COMMENT DÉFINIR L ORIENTÉ OBJET

COMMENT DÉFINIR L ORIENTÉ OBJET COMMENT DÉFINIR L ORIENTÉ OBJET De manière superficielle, le terme «orienté objet», signifie que l on organise le logiciel comme une collection d objets dissociés comprenant à la fois une structure de

Plus en détail

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases SINE QUA NON Découverte et Prise en main du logiciel Utilisation de bases Sine qua non est un logiciel «traceur de courbes planes» mais il possède aussi bien d autres fonctionnalités que nous verrons tout

Plus en détail

TABLEAU DE BORD : SYSTEME D INFORMATION ET OUTIL DE PILOTAGE DE LA PERFOMANCE

TABLEAU DE BORD : SYSTEME D INFORMATION ET OUTIL DE PILOTAGE DE LA PERFOMANCE TABLEAU DE BORD : SYSTEME D INFORMATION ET OUTIL DE PILOTAGE DE LA PERFOMANCE INTRODUCTION GENERALE La situation concurrentielle des dernières années a confronté les entreprises à des problèmes économiques.

Plus en détail

MÉRÉ Aurélien FIIFO1. Pathfinder

MÉRÉ Aurélien FIIFO1. Pathfinder MÉRÉ Aurélien FIIFO1 AMC Pathfinder 1 Sommaire Préambule... 3 Modélisation de l espace... 4 Modélisation des cases δ, α... 4 Interface en mode texte... 5 Modélisation du robot... 8 1 ) Le type Robot...

Plus en détail

QUALIMAIL PRO 2. DOCUMENTATION v1.001

QUALIMAIL PRO 2. DOCUMENTATION v1.001 QUALIMAIL PRO 2 DOCUMENTATION v1.001 I. Accueil...2 II. Qualification d une base existante...3 III. Création d une nouvelle base de recherche...9 VI. Qualification à partir d une liste de sites...11 VII.

Plus en détail

LOGICIEL version pro Nouvelle version 2.0

LOGICIEL version pro Nouvelle version 2.0 LOGICIEL version pro Nouvelle version 2.0 Présentation : Avec le logiciel CHEVALENOR vous aurez l outil indispensable pour analyser et pour bien gérer vos mises sur les pronostiques quinté+ du site http://www.lechevalenor.fr/.

Plus en détail

ZOLLER INSPECTION SOLUTIONS. La solution pour la numérisation 3D de pièces et d outils. 3dCheck

ZOLLER INSPECTION SOLUTIONS. La solution pour la numérisation 3D de pièces et d outils. 3dCheck La solution pour la numérisation 3D de pièces et d outils 3dCheck 02 03 Enregistrer des objets complexes en toute précision et les analyser avec flexibilité»3dcheck«la»3dcheck«de est la machine d inspection

Plus en détail

Fonctions homographiques

Fonctions homographiques Fonctions homographiques On donne ci-dessous deux définitions des fonctions homographiques, et on montre que ces deux définitions sont équivalentes. On décrit la courbe représentative d une fonction homographique.

Plus en détail

Calcul de valeurs globales dans ArtemiS SUITE

Calcul de valeurs globales dans ArtemiS SUITE 09/14 dans ArtemiS SUITE Dans certains cas, il peut être utile de ramener les résultats d analyse à une valeur globale, donc, par exemple, de réduire une évolution de niveau en fonction du temps à une

Plus en détail

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium dans le cadre du projet JASMINe Avril 2008 Table des matières 1 Introduction 3 1.1 Rappel sur JASMINe.......................................

Plus en détail

ELECTROMAGNETISM EXEMPLES

ELECTROMAGNETISM EXEMPLES EXEMPLES 1. Représentation globale du champ électrique 2. Graphiques et export CSV sous Microsoft Excel 3. Configuration de Helmholtz 4. Condensateur plan 5. Limaille de fer autour d une bobine 6. Trajectoire

Plus en détail

1- Enregistrer le nouveau planning

1- Enregistrer le nouveau planning La planification est un outil indispensable de management de projet, un moyen essentiel de prise de décisions pour le chef de projet : pour définir les travaux à réaliser, fixer des objectifs, coordonner

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Profil du candidat et connaissances techniques à connaître/maîtriser

Profil du candidat et connaissances techniques à connaître/maîtriser Utilisation d algorithmes de deep learning pour la reconnaissance d iris. jonathan.milgram@morpho.com Dans ce cadre, l'unité de recherche et technologie a pour but de maintenir le leadership Au sein de

Plus en détail

Utilisation d EXCEL pour résoudre des problèmes de programmation linéaire

Utilisation d EXCEL pour résoudre des problèmes de programmation linéaire Utilisation d EXCEL pour résoudre des problèmes de programmation linéaire Introduction Le solveur d'excel est un outil puissance d'optimisation et d'allocation de ressources. Il peut vous aider à déterminer

Plus en détail

Classes et templates C++

Classes et templates C++ Classes et templates C++ Ce TP propose une application des classes, des templates et du polymorphisme au travers du design de classes permettant de gérer des courbes de Bézier. Contents 1 Bézier unidimensionnelle

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Niveau de la classe : troisième ou seconde

Niveau de la classe : troisième ou seconde Olivier PILORGET et Luc PONSONNET - Académie de Nice - TraAM 2013-2014 " PERIMETRE DE SECURITE AUTOUR D UNE PISCINE" Niveau de la classe : troisième ou seconde Testée avec une classe de seconde sur une

Plus en détail

Projet Pratique de INF241 Parcours de Tableaux

Projet Pratique de INF241 Parcours de Tableaux Projet Pratique de INF241 Parcours de Tableaux L objectif de ce projet est de travailler sur les tableaux en langage d assemblage ARM. Vous devez réaliser votre projet en partie lors des séances encadrées

Plus en détail

Extraction d informations stratégiques par Analyse en Composantes Principales

Extraction d informations stratégiques par Analyse en Composantes Principales Extraction d informations stratégiques par Analyse en Composantes Principales Bernard DOUSSET IRIT/ SIG, Université Paul Sabatier, 118 route de Narbonne, 31062 Toulouse cedex 04 dousset@irit.fr 1 Introduction

Plus en détail