Download - Autonomous navigation of flying robot

Transcript

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE

ـفــسطيـ - فرحات عباس ـةــجامع

UNIVERSITE FERHAT ABBAS -SETIF

Faculté de Technologie كليـة التـكنــولــوجيــــا

كتروتقنيةلاالقسم : Département D’électrotechnique

Mémoire de Master No. Réf. : MAI/05/2015

Présenté au Département d’électrotechnique

Domaine : Sciences et Technologie Filière : Automatique Spécialité : Automatique Industrielle

Réalisé par :

M.Doukhi Oualid

Thème

Commande et navigation autonome d'un drone

Quadrirotor

Soutenu le 16/06/2015 devant la commission d’examen composée de :

M. Khaber Farid à l’Université de Sétif Président

M. SID Mohamed Amine à l’Université de Sétif Directeur du Mémoire

M. Aouina Abdenoure à l’Université de Boumerdes co-encadrant

M. Aggoune Lakhder à l’Université de Sétif Examinateur

Résumé

L’objectif de ce travail est de développer une approche de commande linéaire,et de l’appliquer sur un véhicule aérien sans pilote nommé quadrirotor. Après unétat de l’art sur ce type de véhicules, nous avons élaboré le modèle complet duquadrirotor qui permet d’étudier son comportement dans des différents régimes defonctionnement. Pour pouvoir valider notre modèle, plusieurs tests ont été réaliséspar simulation sous Matlab/simulink. Nous avons présenté également les fonde-ments théoriques de la technique de commande par PID, et cela, pour pouvoirl’implémenter à la suite dans un calculateur distant. Pour atteindre ce but, nousavons utilisé le langage C++ et l’environnement de développement ROS tout ense basant sur les mesures en provenance de la centrale inertielle (IMU). Une foisnotre commande programmée, nous l’avons implémentée et testée sur le banc detest parrot ardrone 2.0. Les résultats obtenus ont été très satisfaisants du point devue performance de commande et robustesse vis-à-vis les perturbations externes.

Mots clés : commande linéaire, drone quadrirotor , Proportionnel intégral dé-rivé(PID) , C + + ,Robot operating system (ROS) , parrot ardrone

i

Remerciements

Mes remerciements vont, tout d’abord, au « Grand Allah » qui m’a guidé dansle bon chemin et qui m’a donné toute cette force physique et mentale afin

d’accomplir, au mieux, ce présent travail.Je tiens surtout à assurer ma sincère reconnaissance, mon plus grand respect et

ma totale gratitude à Mr.Sid Mohamed Amine, mon encadrant et docteur del’Université de sétif , pour tous les efforts, l’aide, le soutien et les encouragementsqu’il a montré tout au long de ce travail et aussi pour tant de compréhension, etdisponibilité dont il a fait preuve.Je tiens aussi à exprimer mes remerciements à Mr. Aouina Abde annoure

mon co-encadrant et docteur de l’Université de boumerdes, d’avoir bien voulu deme faire profiter pleinement de ces compétences scientifiques et de ses idées pourl’accomplissement de ce travail.Je remercie vivement, également, les membres de jury pour avoir accepté de lire

mon mémoire et juger mon travail.Un grand merci aussi, à mes parents, pour leurs conseils précieux et soutien

constant tout le long de la réalisation de mon mémoire.Je remercier, tous les enseignants que j’ai eu l’honneur d’avoir durant les cinq

années de mon cursus universitaire, et qui m’ont permis, par leurs enseignements,d’acquérir des connaissances solides dans le domaine de l’automatique.J’adresse un remerciement tout spécial au doctorant Nadjib Benaouda et à toute

personne m’ayant apporté le moindre appui au cours de la réalisation de montravail .Enfin j’adresse mes remerciements à tous ceux que j’aurais pu omettre de citer

et qui de près ou de loin m’ont aidé et soutenu.

OUALID

iii

Table des matières

Résumé i

Remerciements iii

Table des matières v

Table des figures ix

Introduction générale 1

1 Historique et domaines d’application des quadrirotors 31.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 L’histoire des quadrirotors . . . . . . . . . . . . . . . . . . . . . . . 31.3 Les application des quadrotors . . . . . . . . . . . . . . . . . . . . . 5

1.3.1 Surveillance et collecte d’informations . . . . . . . . . . . . . 61.3.2 Études scientifiques et surveillance des systèmes distribués . 61.3.3 Recherche et sauvetage . . . . . . . . . . . . . . . . . . . . . 71.3.4 Missions dangereuses (détection de gaz toxiques, radiations) 71.3.5 La livraison des colis . . . . . . . . . . . . . . . . . . . . . . 8

1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Modélisation et commande d’un quadrirotor 112.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Modélisation dynamique du quadrirotor . . . . . . . . . . . . . . . . 11

2.2.1 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . 112.2.2 Les mouvement du quadrirotor . . . . . . . . . . . . . . . . 12

2.2.2.1 Au long de l’axe z . . . . . . . . . . . . . . . . . . 122.2.2.2 Autour des axes x et y (roulis et tangage ) . . . . 132.2.2.3 Autour de l’axe z ( lacet ) . . . . . . . . . . . . 14

v

TABLE DES MATIÈRES

2.2.3 Modèle dynamique du quadrirotor . . . . . . . . . . . . . . . 142.2.3.1 Hypothèses du modèle . . . . . . . . . . . . . . . . 142.2.3.2 Définition des repères . . . . . . . . . . . . . . . . 142.2.3.3 Les angles d’Euler . . . . . . . . . . . . . . . . . 152.2.3.4 Les vitesses linéaires . . . . . . . . . . . . . . . . . 162.2.3.5 Les vitesses angulaires . . . . . . . . . . . . . . . . 162.2.3.6 Les forces et les moments agissant sur le quadriro-

tor . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2.3.7 L’équation de Newton-Euler . . . . . . . . . . . 192.2.3.8 La représentation d’état du système . . . . . . . . 21

2.3 Conception de l’algorithme de commande . . . . . . . . . . . . . . . 222.3.1 Contrôleur PID : . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.1.1 Contrôleur d’altitude : . . . . . . . . . . . . . . . . 242.3.1.2 Contrôleur d’attitude . . . . . . . . . . . . . . . . . 242.3.1.3 Contrôleur de position : . . . . . . . . . . . . . . . 26

2.3.2 Résultats de simulation : . . . . . . . . . . . . . . . . . . . . 282.3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3 Implémentation expérimentale du loi de commande sur un banc d’essai(Parrot Ardronne 2.0 ) 353.1 Présentation de l’AR.Drone . . . . . . . . . . . . . . . . . . . . . . 353.2 Présentation de l’environnement ROS . . . . . . . . . . . . . . . . . 37

3.2.1 Une aperçue sur l’environnement ROS . . . . . . . . . . . . 393.2.2 Nœuds, messages, topics . . . . . . . . . . . . . . . . . . . . 39

3.2.2.1 Topics . . . . . . . . . . . . . . . . . . . . . . . . 393.2.2.2 Les nœuds : . . . . . . . . . . . . . . . . . . . . . . 39

3.3 Architecture matériel du quadrirotor . . . . . . . . . . . . . . . . . 393.3.1 Communication . . . . . . . . . . . . . . . . . . . . . . . . 393.3.2 Réception de données en provenance des capteurs . . . . . . 40

3.4 Implémentation de l’algorithme de commande . . . . . . . . . . . . 413.4.1 Commande de l’altitude . . . . . . . . . . . . . . . . . . . . 413.4.2 Commande de l’angle de Lacet . . . . . . . . . . . . . . . . 433.4.3 Commande de la position . . . . . . . . . . . . . . . . . . . 44

3.5 conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Conclusion et perspectives 47

Annexes 49

A modélisation 51

vi

TABLE DES MATIÈRES

Bibliographie 57

vii

Table des figures

1.2.1 Bréguet Richet Gyro1- 1907 . . . . . . . . . . . . . . . . . . . . . 41.2.2 Oemichen 1920 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.3 Le Quadrirotor de Bothezat1922. . . . . . . . . . . . . . . . . . . . 51.2.4 Convertawings Model A 1956 . . . . . . . . . . . . . . . . . . . . . 51.3.1 surveillance de la Maison Blanche . . . . . . . . . . . . . . . . . . 61.3.2 réseaux surveillés . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.3.3 Sauvetage des personnes . . . . . . . . . . . . . . . . . . . . . . . 71.3.4 Détection de gaz et radiations . . . . . . . . . . . . . . . . . . . . 81.3.5 Livraison des colis . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1 Structure générale d’un quadrotor . . . . . . . . . . . . . . . . . . 122.2.2 Translation selon l’axe z . . . . . . . . . . . . . . . . . . . . . . . . 132.2.3 Mouvement de roulis et tangage . . . . . . . . . . . . . . . . . 132.2.4 Mouvement de lacet . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.5 Système d’axe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2.6 Les forces et les moment ajissant sur le quadrirotor . . . . . . . . . 182.2.7 Les entrer et les sortie . . . . . . . . . . . . . . . . . . . . . . . . . 212.3.1 Contrôleur PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.3.2 Commande d’altitude . . . . . . . . . . . . . . . . . . . . . . . . . 242.3.3 Commande d’attitude . . . . . . . . . . . . . . . . . . . . . . . . 252.3.4 Commande de la position . . . . . . . . . . . . . . . . . . . . . . . 272.3.5 Les signaux de reférence . . . . . . . . . . . . . . . . . . . . . . . . 282.3.6 Altitude et l’angle de rolice . . . . . . . . . . . . . . . . . . . 292.3.7 Angle de lcet et tangage . . . . . . . . . . . . . . . . . . . . . 302.3.8 Vitesses moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.3.9 Commande de la position . . . . . . . . . . . . . . . . . . . . . . . 32

3.1.1 Ardrone 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2.1 Archtecteur générale . . . . . . . . . . . . . . . . . . . . . . . . . 373.2.2 Plateformes supportées par ROS . . . . . . . . . . . . . . . . . . . 383.2.3 Configuration capteur actionneure avec ROS . . . . . . . . . . . . 38

ix

TABLE DES FIGURES

3.3.1 Les topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.3.2 Les donneés de l’ IMU . . . . . . . . . . . . . . . . . . . . . . . . . 413.4.1 Le flux des messages . . . . . . . . . . . . . . . . . . . . . . . . . . 413.4.2 L’altitude obtenue expérimentalement . . . . . . . . . . . . . . . . 423.4.3 Altitude obtenue en présence de perturbation . . . . . . . . . . . 423.4.4 L’angle de lacet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.4.5 L’angle de lacet sous perturbation . . . . . . . . . . . . . . . . . 433.4.6 La position obtenue . . . . . . . . . . . . . . . . . . . . . . . . . . 443.4.7 La position en 3d . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

A.1 modéle simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51A.2 Fux cameras et IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 53A.3 Le simulateur gazebo . . . . . . . . . . . . . . . . . . . . . . . . . 54A.4 Le banc d’éssai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54A.5 Calculateur parrot ardrone . . . . . . . . . . . . . . . . . . . . . . 55A.6 Motorisation (BLDC) . . . . . . . . . . . . . . . . . . . . . . . . . 55

x

TABLE DES FIGURES

Listes des Acronymes et Symboles

AcronymesUAVS Unmanned Aerial VehiclesDDL Degré de libertéROS Robot Operating SystemPID Proportionnel Integrel DeriveSymbolesT Force de poussée totalewi Vitesse moteurTF Matrice de transformationRBI Matrice de rotation

ε Vecteur de positionφ Angle de roulisθ Angle de tangageψ Angle de lacetx Variable d’étatvIx,y,z Vitesse linaire dans le repère fixvBx,y,z Vitesse linaire dans le repère mobileTRi Force de trainéeMx,y,z Moment des forcesA Effet aérodynamiqueMgyro1,2 Moment gyroscopiqueIr Moment d’inertie du rotorI Matrice d’inertieU Commandeφd Angle de roulis désiréθd Angle de tangage désiréxd, yd, zd position désiré

xi

Introduction générale

Ce travail de mémoire a été réalisé au sein de l’équipe surveillance des systèmesdu laboratoire d’automatique de Sétif (LAS). Il s’inscrit dans le cadre des effortsde développement des plateformes expérimentales destinées à la validation desalgorithmes de commande des systèmes cyber-physiques.

Les recherches scientifiques avancées et les progrès technologiques en aéronau-tique permettent de prévoir un essor important de véhicules aériens. Ces derniersdeviennent d’un jour à un autre plus performants et de plus en plus autonomesdans leur mode de fonctionnement. Parmi ces véhicules aériens, on trouve lesdrones qui consistent en des véhicules volants sans pilote, capables de mener unemission bien déterminée. En réalité, ces drones ont fait, ces dernières années, l’ob-jet de divers projets et travaux de recherche. Parmi ces projets, nous pouvons citerLe X4-Flyer lancé par l’université National Australienne, le Quadrirotor du projetQuentin lancé par l’école Pour l’Informatique et Techniques Avancées de France,etc.

Les drones sont souvent équipés d’une variété de capteurs tels que les centralesinertielles ( IMU ) , le GPS, les ultrasons, les cameras, les lasers, etc. Ces capteurspermettent au véhicule de se repérer dans son environnement et, de manière géné-rale, de naviguer en évitant les obstacles. La centrale inertielle fournit des mesuresangulaires et linéaires sur la position du véhicule. En effet, la navigation autonomedes drones est actuellement orientée vers des solutions basées sur l’hybridationentre les données en provenance des IMU et la vision (caméras). Cette techniquepermet la localisation précise du drone car, la vision fournit un ensemble de don-nées très riche sur l’environnement. Cependant, la difficulté majeure réside dansla complexité des algorithmes utilisés dans l’exploitation de ces informations.

Le principal défi scientifique pour ces drones réside dans la complexité de leurcomportement dynamique et leur navigation autonome. Dans ce sens, l’objectifprincipal de ce travail porte sur l’analyse, la modélisation et la navigation auto-nome permettant le suivie d’une trajectoire désirée. Afin d’atteindre cet objectif,notre contribution a porté sur les éléments suivants :

• La dérivation d’un modèle non linéaire du drone en se basant sur les lois de

1

Introduction générale

la physique.• La simulation du modèle mathématique obtenu en réalisant plusieurs testsde validation.

• La commande du système en appliquant un algorithme de stabilisation enaltitude, en attitude et en position.

• L’implémentation de la loi de commande dans la plateforme expérimentaleParrot ardrone 2.0 à l’aide de l’environnement ROS. Ce dernier est un logicielopen-source (libre) destiné aux applications robotiques.

Afin de décrire notre façon de réfléchir, ce mémoire présentant les principauxéléments académiques intervenant dans notre contribution ainsi que la façon deles mettre en oeuvre, est organisé de la manière suivante :

• Le chapitre I présente un bref historique sur la conception des quadrirotorset quelques domaines d’application de ces véhicules.

• Le chapitre II présente une étude détaillée du modèle dynamique développéainsi que le principe de fonctionnement du quadrirotor.

• Le chapitre III présente la loi de commande proposée et qui est basée surla technique PID. Il détaille également l’implémentation de cette loi dans laplateforme expérementale AR Drone.

Le document se termine par une conclusion dans laquelle les principaux résultatsde l’étude sont rappelés et des perspectives ouvertes par ce travail sont proposées.

2

Chapitre 1

Historique et domaines d’applicationdes quadrirotors

1.1 Introduction

L’utilisation des drones a beaucoup évolué durant cette dernière décennie. L’étudede ces systèmes a attiré de nombreux chercheurs travaillant dans des disciplinesliées notamment à l’automatique, l’électronique, la mécanique et l’aérodynamique.Différentes configurations des drones multirotors ont été proposées : en plus (+),

croix (x) et avec deux, trois quatre jusqua huit hélices. Dans ce mémoire nous nousintéressons par les multirotors à quatre hélices connus par les quadrirotors, Dansce chapitre, nous présentons tout d’abord une brève historique sur les quadrirotors.Ensuite nous présentons les différents domaines d’application de ce véhicule aérien.

1.2 L’histoire des quadrirotors

La première génération des quadrirotors est caractérisée par une grande tailleet de mauvaises performances dynamiques.Le premier quadrirotor était le Gyroplane n°1 « Breguet-Richet », conçu

par les frères scientifiques français Louis et Jaque Breguet en collaborationavec le professeur Charles Richet en 1907 (figure1.2.1)[9]. Un an plus tard, unautre quadrirotor « Gyroplane n°2 » a été construit. Le Gyroplane n°2 est équipéd’un moteur Renault, plus puissant, qui atteignit 55 CV brusquement.

3

Chapitre 1 Historique et domaines d’application des quadrirotors

Figure 1.2.1 – Bréguet Richet Gyro1- 1907

En 1920(figure 1.2.2), Etienne Oemichen a commencé ses expériences dans laconception des aéronefs à voilures tournantes[9]. Six modèles ont été conçus parce jeune ingénieur de la compagnie Peugeot. Parmi les quels un grand quadrirotorde 800kg construit en 1922, avec quatre rotors et huit hélices tournées par un seulmoteur.

Figure 1.2.2 – Oemichen 1920

Une autre plateforme à vol vertical été construit pour le service aérien de l’arméeaméricaine à Dayton Ohio en 1921 par les ingénieurs George de Bothezat(figure 1.2.3) et Ivan Jérôme . C’était une structure en croix de 1678Kg [9]Plus de 100 essais de vols ont été exécutés sur ce grand quadrirotor, mais la

commande en vol était très difficile et le prototype n’a pas répondu aux exigencesd’exécution de l’armée américaine.

4

1.3 Les application des quadrotors

Figure 1.2.3 – Le Quadrirotor de Bothezat1922.

Dans les années 50, Amityville (New York), Convertawings a construit un qua-drirotor. Ce véhicule a été commandé en changeant la poussée fournie par chaquerotor[9]. Le quadrirotor de Convertawings a été piloté avec succès, mais la pro-duction a été arrêtée en raison d’un manque d’intérêt commercial pour cet avion.(figure 1.2.4)

Figure 1.2.4 – Convertawings Model A 1956

1.3 Les application des quadrotorsLes quadrirotors rentrent dans plusieurs applications militaires et civiles.

5

Chapitre 1 Historique et domaines d’application des quadrirotors

1.3.1 Surveillance et collecte d’informations

La variété des capteurs utilisés permet de recueillir plusieurs types d’informa-tions, restituées en temps réel, sous forme d’ images, d’origine électro-optique ouélectromagnétique sur terre ou sur mer[16], Les informations transmises par ledrone peuvent être exploitées de différentes manières à savoir l’évaluation de lasituation sur un champ d’opérations, la surveillance d’une zone (figure 1.3.1), ladétection et l’identification des objets.

Figure 1.3.1 – surveillance de la Maison Blanche

En dehors des domaines militaires, les quadrirotors possèdent une large variétépotentielle d’applications civiles. Généralement, nous pouvons les classer dans lesquatre catégories suivantes :

1.3.2 Études scientifiques et surveillance des systèmesdistribués

En novembre 2013, pour la première fois une société française, fait décoller undrone pour inspecter le viaduc ferroviaire , sur la ligne TGV Paris-Marseille[1]. Il asuffi de quelques images haute définition pour détecter d’éventuelles microfissures,Repérage des vols de câbles, contrôle des caténaires, détection d’obstacles sur lavoie , le drone peut remplir bien des missions de surveillance sur ces longs réseaux(figure1.3.2).

6

1.3 Les application des quadrotors

Figure 1.3.2 – réseaux surveillés

1.3.3 Recherche et sauvetageLes quadrirotors peuvent éventuellement devenir les gardes du corps du futur[1].

Le laboratoire RTS (une société de recherches iranienne ) a commencé le dévelop-pement d’un quadrirotor géant, Ce robot peut aider les gardes du corps à sauverdes vies en temps record et de limiter la marge de risque des intervenants(figure1.3.3)

Figure 1.3.3 – Sauvetage des personnes

1.3.4 Missions dangereuses (détection de gaz toxiques,radiations)

Là où l’homme ne peut se rendre sans mettre en péril sa santé, le drone peut leremplacer. Un drone a été envoyé par l’agence internationale de l’énergie atomique

7

Chapitre 1 Historique et domaines d’application des quadrirotors

pour cartographier les poches de radioactivité résiduelle autour de la centrale deFukushima[1], Ce drone a réussi à accéder aux zones dangereuse pour analyser lesdégâts causés par le tsu-nami. Ce véhicule est idéal pour le déplacement dans les en-vironnements hostiles ou à accès difficile à savoir les cheminées d’usines ,etc..(figure1.3.4).

Figure 1.3.4 – Détection de gaz et radiations

1.3.5 La livraison des colisLa livraison des médicaments d’urgence ou des colis achetés sur net sont des ap-

plications possibles[1]. La livraison des colis par les drone est d’un intérêt énormepour les citoyens habitant dans des endroits isolés. Les drones peuvent montrerune grande efficacité dans les opérations de distribution des médicaments ou de lanourriture durant les catastrophes naturelles (les tremblements de terre, inonda-tions, avalanches ou incendies) Figure 1.3.5.

Figure 1.3.5 – Livraison des colis

8

1.4 Conclusion

1.4 ConclusionEn conclusion, nous constatons que le domaine du développement et de com-

mande des drones quadrirotors est champ de recherche vierge nécessitant plusd’efforts pour concrétiser les capacités potentielles fournies par ce véhicule. Dansles chapitre suivant, nous développons un algorithme de commande assurant desbonnes performances de fonctionnement..

9

Chapitre 2

Modélisation et commande d’unquadrirotor

2.1 IntroductionLa dynamique des véhicules volants à voilure tournante est particulièrement très

complexe vue les nombreux effets aérodynamiques. Dans ce chapitre, nous déve-loppons un modèle mathématique permettant de décrire les mouvements possiblesdu drone.

2.2 Modélisation dynamique du quadrirotorAvant de donner le modèle mathématique du drone, nous expliquons tout d’abord

son principe de fonctionnement et l’ensemble des mouvements de vol possibles.

2.2.1 FonctionnementLa conception d’un contrôleur de vol doit passer tout d’abord par la compréhen-

sion approfondie des principes de fonctionnement de l’avion. Cette compréhensionest nécessaire non seulement pour la conception du contrôleur, mais aussi pours’assurer que les simulations du comportement du véhicule sont très proches de laréalité.Le quadrirotor est un robot mobile aérien à quatre rotors défini dans l’espace

par 6 DDL (trois mouvements de rotation et trois mouvements de translation).Ces4 rotors sont généralement placés aux extrémités d’une croix[3].Afin d’éviter quel’appareil se tourne sur son axe de lacet, les deux hélices doivent tourner dans unsens, et les deux autres dans le sens contraire. Nous pouvons positionner le drone en

11

Chapitre 2 Modélisation et commande d’un quadrirotor

faisant varier astucieusement la puissance des moteurs. De cette façon, le quadriro-tor peut monter/descendre, s’incliner à gauche/droite (roulis), en avant/arrière(tangage) ou encore tourner sur lui-même (lacet). Le quadrirotor est un sys-tème sous actionné vue que le nombre des actionneurs (4 moteurs) est inférieureau nombre des ddls (6 ddl).

Figure 2.2.1 – Structure générale d’un quadrotor

2.2.2 Les mouvement du quadrirotorLes quatre mouvements possibles du quadrirotor sont détaillés dans la suite.

2.2.2.1 Au long de l’axe z

Le mouvement de translation selon l’axe z correspond tout simplement à lamontée/descente du quadrirotor. La montée est obtenue en augmentant la vitessedes quatre moteurs. La descente est obtenue par la réduction de la vitesse desmoteurs.

• la montée

f1 + f2 + f3 + f4 > −mg (2.2.1)

• la descente

f1 + f2 + f3 + f4 < −mg (2.2.2)

D’après ces deux équations [2], Nous remarquons que le mouvement selon z estengendré par le déséquilibre des forces (des inégalités).

12

2.2 Modélisation dynamique du quadrirotor

Figure 2.2.2 – Translation selon l’axe z

2.2.2.2 Autour des axes x et y (roulis et tangage )

Le roulis et le tangage sont des mouvements assez similaires visant à pen-cher le quadrirotor sur l’axe x ou sur l’axe y. Ces mouvements sont obtenus enaugmentant la vitesse d’une hélice et en abaissant proportionnellement la vitessede l’hélice opposée . D’autre part nous constatons que deux autres mouvementsde translations (selon x ou y) sont obtenus simultanément.

M1 +M2 +M3 +M4 6= 0(pas d’équilibre des moments ) (2.2.3)

Figure 2.2.3 – Mouvement de roulis et tangage

13

Chapitre 2 Modélisation et commande d’un quadrirotor

2.2.2.3 Autour de l’axe z ( lacet )

Le mouvement de LACET sert à tourner le quadrirotor sur lui-même. Il estobtenu en augmentant la vitesse des hélices de même porteur et en diminuantproportionnellement la vitesse des autres hélices.

(w1 + w3)− (w2 + w4) 6= 0(pas déséquilibre de vitesse des moteur) (2.2.4)

Figure 2.2.4 – Mouvement de lacet

2.2.3 Modèle dynamique du quadrirotor2.2.3.1 Hypothèses du modèle

Le modèle dynamique obtenu est basé sur les hypothèse simplificatrices suivantes[3] :

• La structure du système est supposée rigide.• La structure est supposée parfaitement symétrique donc la matrice d’inertieobtenue est diagonale

• La portance et la trainée de chaque moteur sont proportionnelles au carréde la vitesse (hypothèse empirique).

• Les hélices sont supposées rigides afin de négliger l’effet de leur déformationlors de la rotation.

2.2.3.2 Définition des repères

Le quadrirotor est considéré comme un corps rigide alors deux repères différentssont définis pour construire le modèle du quadrirotor et décrire son mouvementdans l’espace. Pour le premier repère, nous supposons que la terre est plate etstationnaire dans l’espace, par conséquent ce repère est lié à la terre (EF :EarthFrame) et sera considéré comme Galiléen. Le deuxième repère est le repère corps(BF : Body frame) attaché au centre de gravité du quadrirotor[3].

14

2.2 Modélisation dynamique du quadrirotor

Figure 2.2.5 – Système d’axe

Le passage entre les deux repères est assuré par une matrice de transformationfinale TF.

TF =[RIB ε

0 1

](2.2.5)

avec RIB la matrice de rotation et ε le vecteur position.

2.2.3.3 Les angles d’Euler

La rotation autour de l’axe x[15]

Rx =

1 0 00 cφ −sφ0 sφ cφ

(2.2.6)

La rotation autour de l’axe y[15]

Ry =

cθ 0 sθ0 1 0−sθ 0 cθ

(2.2.7)

15

Chapitre 2 Modélisation et commande d’un quadrirotor

La rotation autour de l’axe z[15]

Rz =

cψ −sψ 0sψ cψ 00 0 1

(2.2.8)

donc la matrice de rotation RIB est donnée par

RIB = RzRYRx (2.2.9)

RIB =

cψcθ cψsθsφ− sψcφ cψsθcφ+ sψsφsψsθ sψsθsφ+ cψsθcφ sψsθcφ− sφcψ−sθ cθsφ cθcφ

(2.2.10)

avec cx = cos(x) et sx = sin(x) [6]

2.2.3.4 Les vitesses linéaires

Les vitesses linéaires sont exprimées dans le repère fixe ( I ) en fonction desvitesses linéaires dans le repère mobile ( B ) par la relation suivante [9]

vIxvIyvIz

= RIB

vBxvByvBz

(2.2.11)

2.2.3.5 Les vitesses angulaires

Les vitesses de rotations dans le repère fixe φ, θ, ψsont exprimées en fonction desvitesses de rotations dans le repère mobile p, q, r

φ

θ

ψ

=

p00

+R−1x

0q0

+ (RYRx)−1

00r

= w (2.2.12)

la rotation en roulis a lieu lorsque les repères sont encore confondus. Puis, ence qui concerne le tangage, le vecteur représentant la rotation doit être exprimédans le repère fixe : il est donc multiplié par R−1

x .De même, le vecteur représentantla rotation en lacet doit être exprimé dans le repère fixe qui a déjà subites deuxrotations.finalement on trouve

16

2.2 Modélisation dynamique du quadrirotor

w =

1 0 −sθ0 cφ sφcθ0 −sφ cφcθ

. pqr

(2.2.13)

Si le quadrirotor effectue des petites rotations, nous pouvons écrire les approxi-mations suivantes :[15]cφ = cθ = cψ = 1et sφ = sθ = sψ = 0Par conséquent, la vitesse angulaire dans le repère fix est égale à la vitesse

angulaire dans le repère mobile, ç-à-d :

w =

pqr

=

φ

θ

ψ

(2.2.14)

2.2.3.6 Les forces et les moments agissant sur le quadrirotor

Le quadrirotor est classé dans la catégorie des systèmes volants les plus com-plexes vu le nombre d’effets physiques qui affectent sa dynamique.

Les forces

— Le poids du quadrirotor : donné par

p = mg (2.2.15)

où m est la masse totale et g est l’accélération de la pesanteur.— Les forces de poussé : Ces forces sont proportionnelles au carrée de la

vitesse de rotation des moteurs

fi = kw2i (2.2.16)

T = f1 + f2 + f3 + f4 (2.2.17)

avec k coefficient de poussé wi vitesse de rotation du moteur i,T la poussé total— Les forces de trainée : agissent sur les pales et sont proportionnelles au

carré de la vitesse de rotation de l’hélice.

TRri = bw2i (2.2.18)

avec b coefficient de drag.

17

Chapitre 2 Modélisation et commande d’un quadrirotor

Les moments

— La rotation autour de l’axe x elle est due au moment suivant

MX = l (f4 − f2) = lk(w2

4 − w22

)(2.2.19)

avec l la distance enter le centre du quadrirotor et axe moteur— La rotation autour de l’axe y

MY = l (f3 − f1) = lk(w2

3 − w21

)(2.2.20)

— La rotation autour de l’axe z

MZ = TRr2 + TRr4 − TRr1 − TRr3 = b(w2

2 + w24 − w2

1 − w23

)(2.2.21)

Figure 2.2.6 – Les forces et les moment ajissant sur le quadrirotor

— L’ effet aérodynamique : due au mouvement du corps du quadrirotor etdonné par

A =

ax 0 00 ay 00 0 az

vIxvIyvIz

(2.2.22)

avec ax, ay, az les coefficient aérodynamique selon les trois axes

18

2.2 Modélisation dynamique du quadrirotor

— Le moment gyroscopique : due aux mouvements de quadrirotor [3]

Mgyro1 = ω ∗ I.ω (2.2.23)

avec I la matrice d’inertie, w la vitesse angulaire dans le repère fixe— Le moment gyroscopique : généré par la rotation des hélices [3]

Mgyro2 =4∑i=1

ω ∗ Ir[

0 0 (−1)i+1wi]T

(2.2.24)

où Ir est le moment d’inertie du rotor

2.2.3.7 L’équation de Newton-Euler

La dynamique d’un corps regide de masse m soumis à des forces externes ap-pliquées au centre du corps selon le formalisme de nowten-Euler est donnéepar

∑Fi = mvi. (2.2.25)

où Fi sont les forces externes exprimées dans le repère fixe et vi sont les vitesseslinéaires exprimées dans le même repère

∑MB = Iω +Mgyro1 +Mgyro2 (2.2.26)

avec ω la vitesse angulaire

I =

Ix 0 00 Iy 00 0 Iz

(2.2.27)

I est la matrice d’inertie, d’où

∑Fi =

00−mg

+RIB

00T

+

ax 0 00 ay 00 0 az

vIxvIyvIz

= m

vIxvIyvIz

(2.2.28)

Par conséquent, les équations de translation sont données par xyz

= −g

001

+ T

m

cψsθcφ+ sφsψsψsθcφ− cψsφ

cθcφ

− 1m

ax 0 00 ay 00 0 az

vIxvIyvIz

(2.2.29)

19

Chapitre 2 Modélisation et commande d’un quadrirotor

∑MB =

Ix 0 00 Iy 00 0 Iz

φ

θ

ψ

+

φ

θ

ψ

∗ Ix 0 0

0 Iy 00 0 Iz

φ

θ

ψ

+ Ir

θ

φ0

wt =

Mx

My

Mz

(2.2.30)

avec

wt = w1 + w3 − w4 − w2 (2.2.31)

Par conséquent, nous obtenons les équations de rotation suivantes φ

θ

ψ

=

(Iy−Iz)Ix

θψ(Iz−Ix)Iy

ψφ(Ix−Iy)Iz

φθ

+

−Ir θwt

IxIrφwt

Iy

0

+

Mx

IxMy

IyMz

Iz

(2.2.32)

Finalement, les équations différentielles décrivant le mouvent du quadrirotorsont données par

x = T

m

[cψsθcφ+ sψsφ

]− ax

mx (2.2.33)

y = T

m

[sψsθcφ− cψsφ

]− ay

my (2.2.34)

z = T

m

[cθcφ

]− az

mz − g (2.2.35)

φ = (Iy − Iz)Ix

θψ − IrθwtIx

+ Mx

Ix(2.2.36)

θ = (Iz − Ix)Iy

ψφ+ IrφwtIy

+ My

Iy(2.2.37)

ψ = (Ix − Iy)Iz

φθ + Mz

Iz(2.2.38)

20

2.2 Modélisation dynamique du quadrirotor

Figure 2.2.7 – Les entrer et les sortie

2.2.3.8 La représentation d’état du système

On choisissant le vecteur d’état comme suit[6]

X =[φ φ θ θ ψ ψ x x y y z z

]=

[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12

]. (2.2.39)

Nous obtenons la représentation d’état suivante

21

Chapitre 2 Modélisation et commande d’un quadrirotor

x1 = x2

x2 = (Iy−Iz)Ix

x4x6 − Ir

Ixx4wt+ Mx

Ix

x3 = x4

x4 = (Iz−Ix)Iy

x6x2 + Ir

Iyx2wt+ My

Iy

x5 = x6

x6 = (Ix−IY )Iz

x2x4 + Mz

Iz

x7 = x8

x8 = Tm

(cx5sx3cx1 + sx5sx1)− ax

mx8

x9 = x10

˙x10 = Tm

(sx5sx3cx1 − cx5sx1)− ay

mx10

˙x11 = x12

˙x12 = Tm

(cx3cx1)− az

mx12 − g

2.3 Conception de l’algorithme de commandeDans cette partie on utilise le modelé mathématique développé précédemment

pour construire un contrôleur linaire PID qui permettant la stabilisation du qua-drirotor en altitude, en attitude et en position. Les paramètres de ce contrôleursont calculés en utilisant la fonction TUN de MATLAB/SIMULINK.Pour valider le modèle obtenu nous effectuons une simulation en boucle ouverte.

La vitesse des moteurs demandée pour effectuer un vol stationnaire (hover) calculéeen utilisant la formule suivante[6]

mg = 4fi

mg = 4k(w2ih

)

w2ih = mg

4k (2.3.1)

Dans notre cas nous obtenons

wih = 620.61rad/s (2.3.2)

22

2.3 Conception de l’algorithme de commande

Donc par augmentation ou diminution de la vitesse des 4 moteurs autours decette valeur on peut monter, descente voir incliner le quadrirotor.La dynamique des moteurs n’est pas considérée dans ce modelé car nous suppo-

sons que les servomoteurs utilisés attiennent la vitesse désirée très rapidement etsans dépassement. Après la validation de notre modèle mathématique nous utili-sons un contrôleur d’altitude, d’attitude et de position de type PID .

2.3.1 Contrôleur PID :Dans la plupart des processus industriels, il est indispensable de maitriser cer-

tains paramètres physiques. En automatique lorsque l’on souhaite atteindre unecertaine vitesse, température, position, angle..., il est donc très souvent nécessaired’avoir recours à un asservissement, c’est à dire un système capable d’atteindreet de maintenir une consigne en utilisant une mesure. Il s’agit donc d’un systèmebouclé, dont il reste à déterminer la fonction permettant de corriger la commandeen fonction de la consigne initiale et de l’erreur mesurée. Le PID ( Proportional-Integral- Derivative ) est une méthode qui a fait ses preuves et qui donne de bonsrésultats.Principe généralL’erreur observée est la différence entre la consigne et la mesure. Le PID permet

3 actions en fonction de cette erreur : • Une action Proportionnelle : l’erreurest multipliée par un gain G • Une action Intégrale : l’erreur est intégrée sur unintervalle de temps s, puis multipliée par un gain Ti • Une action Dérivée : l’erreurest dérivée suivant un temps s, puis multipliée par un gain Td Il existe plusieursarchitectures possibles pour combiner les 3 effets (série, parallèle ou mixte), onprésente ici une architecture parallèle

Figure 2.3.1 – Contrôleur PID

23

Chapitre 2 Modélisation et commande d’un quadrirotor

2.3.1.1 Contrôleur d’altitude :

Les entrées du commande sont

U =[T Mx My Mz

](2.3.3)

Donc pour asservir l’altitude il faut agire sur la force de pousse totale T

u1 = kp (zd − z) + kd (zd − z) + ki

ˆ(zd − z) dt (2.3.4)

avec :kp gain proportionnelkd gain dérivéki gain intégralezd l’altitude désiréez l altitude mesuréeA partir de l’équation (2.2.35)

T = (g + u1)m

cθcφ(2.3.5)

Figure 2.3.2 – Commande d’altitude

2.3.1.2 Contrôleur d’attitude

On peut agir sur les couples Mx, Myet Mz comme suit

24

2.3 Conception de l’algorithme de commande

u2 = kp (φd − φ) + kd(φd − φ

)+ ki

ˆ(φd − φ) dt (2.3.6)

u3 = kp (θd − θ) + kd(θd − θ

)+ ki

ˆ(θd − θ) dt (2.3.7)

u4 = kp (ψd − ψ) + kd(ψd − ψ

)+ ki

ˆ(ψd − ψ) dt (2.3.8)

à partir des équation (2.2.36,2.2.37,2.2.38) nous obtenons

Mx = u2Ix (2.3.9)

My = u3Iy (2.3.10)

Mz = u4Iz (2.3.11)

Figure 2.3.3 – Commande d’attitude

25

Chapitre 2 Modélisation et commande d’un quadrirotor

Finalement la vitesse correcte des moteurs permettant la stabilisation du systèmeest calculée à partir des équations (2.2.17,2.2.19,2.2.20,2.2.21) sous forme matri-cielle

TMx

My

Mz

=

k k k k0 −lk 0 lk−lk 0 lk 0−b b −b b

w2

1w2

2w2

3w4

4

(2.3.12)

En remplaçant T MxMyMz par leurs valeurs dans l’ équation 2.3.12 , wi estdonné par

w1 =√T

4k −My

2kl −Mz

4b (2.3.13)

w2 =√T

4k −Mx

2kl + Mz

4b (2.3.14)

w3 =√T

4k + My

2kl −Mz

4b (2.3.15)

w4 =√T

4k + Mx

2kl + Mz

4b (2.3.16)

2.3.1.3 Contrôleur de position :

La position x et y ne peut pas commander directement par la commande U enrevanche la position x et y peuvent étre commande à travers les angles rolice ettangage . Les agles désiré il est calculer en utilise les équations de mouvementde translation (2.2.33,2.2.34 )

26

2.3 Conception de l’algorithme de commande

Figure 2.3.4 – Commande de la position

x = T

m

[cψsθdcφd + sψsφd

]− ax

mx

y = T

m

[sψsθdcφd − cψsφd

]− ay

my

Tantque le quadrirotor opér autour de piont de fonctionnement , les angle detangage et rolice pronder petit valeur ,donc en utilise la (small angle assump-tion) sin(φd) = φd sin(θd) = θd et cos(θd) = cos(φd) = 1 alors on trouve que[6]

φd = m

T[sψ[xd + ax

mxd] + sψ[yd + ay

myd] (2.3.17)

θd = m

T[cψ[xd + ax

mxd] + sψ[yd + ay

myd] (2.3.18)

Avec :

xd = kp(xd − x) + kd(xd − x) + ki

ˆ(xd − x)dt (2.3.19)

27

Chapitre 2 Modélisation et commande d’un quadrirotor

2.3.2 Résultats de simulation :

Les performances de notre contrôleur sont testées pour plusieurs scénarii et pourdes différentes conditions initiales. Dans le

1er scénario le quadrirotor se trouve sur terre et au repos ε =[

0 0 0]T

et

n =[φ θ ψ

]T=[

0 0 0]T. Nous essayons d’asservir le drone à la référence

variable représentée ci-dessous.

Figure 2.3.5 – Les signaux de reférence

28

2.3 Conception de l’algorithme de commande

(a) Altitude

(b) L ’angle de rolice

Figure 2.3.6 – Altitude et l’angle de rolice

29

Chapitre 2 Modélisation et commande d’un quadrirotor

(a) L’angle de lacet

(b) L’angle de tangage

Figure 2.3.7 – Angle de lcet et tangage

30

2.3 Conception de l’algorithme de commande

Figure 2.3.8 – Vitesses moteur

D’après les résultats illustrés aux figures précédent ,en constatons que l’agorithmede commande conçu assure une bonne poursuite de la consigne donnée.

Evolution de la position en 3D

Commande de la position : la trajectoir désirée est définie par les fonctionssuivantes [15] :xd = cos(t)yd = sin(t)zd = 1 + t/10

31

Chapitre 2 Modélisation et commande d’un quadrirotor

(a) Commande de la position (b) Commande de la pposition en présens de perturbation

Figure 2.3.9 – Commande de la position

Ces résultats de simulation montrent que la technique de commande appliquéeforce le systéme à suivre la trajectoire disérée (figure 2.3.9a) . Dans la figure 2.3.9bune perturabtion externe (du vent) est appliquée sur le système selon les axesx, y, z afin de tester la robustesse et la sensibilité de notre contrôleur vis-à-vis lessignaux éxogènes.Les résultats de simulation montrent que l’algorithme de commande PID est

robuste aux pertrubations en gardant des bonnes performances de poursuite detrajectoire désirée.

2.3.3 ConclusionDans ce chapitre nous avons développé le modèle mathématique et la commande

PID du quadrirotor. La dynamique de ce dernier est présentée par des équationsdifférentielles qui ont été dérivées via l’utilisation du formalisme de newton Euler.

32

2.3 Conception de l’algorithme de commande

Le modèle proposé a été validé dans un premier temps par une simulation en boucleouverte, et par une autre en boucle fermée visant particulièrement la validation dela commande de quadrirotor. Notre simulation a été conduite en utilisant matlabsimulink.Dans le but de valider réellement notre commande PID développée, nous dé-

taillons dans le chapitre suivant sa mise en oeuvre réelle, et cela, en utilisant laplateforme extpérimentale Ardrone 2.0 avec l’environnement de développementROS.

33

Chapitre 3

Implémentation expérimentale du loide commande sur un banc d’essai

(Parrot Ardronne 2.0 )

Introduction

Dans ce chapitre nous allons appliqué la loi de commande proposée précédem-ment sur une plateforme expérimentale parrot ar drone 2.0. Nous utilisons l’envi-ronnement « robot operating systems ROS » pour récupérer les mesures et envoyerles commandes au drone. Afin de fermer la boucle de commande nous devons toutd’abord mieux connaitre l’AR.Drone et maitriser l’environnement ROS.

3.1 Présentation de l’AR.Drone

Figure 3.1.1 – Ardrone 2.0

35

Chapitre 3 Implémentation expérimentale du loi de commande sur un bancd’essai (Parrot Ardronne 2.0 )

L’AR.Drone est un quadrirotor conçu par la société française Parrot SA et sortien août 2010 en France. Il s’agit d’un petit hélicoptère à quatre hélices au designfuturiste. Il peut se piloter avec un appareil sous iOS(iPhone, iPod touch,iPad),Android ou Symbian (Téléphones Nokia) via une liaison Wifi [11]. Il est principale-ment dédié au divertissement mais dispose d’équipements de haute technologie telsqu’une caméra frontale pour le pilotage, une seconde verticale, un accéléromètretrois axes, deux gyroscopes, deux émetteurs récepteurs à ultrasons permettant decalculer l’altitude, de nombreux capteurs ainsi qu’un ordinateur embarqué fonc-tionnant sur noyau Linux. Une véritable centrale inertielle et autant d’équipementshabituellement réservés à un usage professionnel ou militaire.

Quelques caractéristiques techniques...[7]

1. Processeur ARM cadencé à 468 MHz

a) Mémoire DDR 128 Mbyte at 200 MHzb) Wi-Fic) USB high speedd) Systèmes inertiels de guidagee) Accéléromètre 3-axesf) Gyromètre 2 axesg) 1 Gyromètre de précision pour la rotation(axe Z)h) Vitesse : 5 m/s, 18km /hi) Poids : 380 g sans carène , 420 g avec carènej) Autonomie de vol : 12 minutesk) Système de sécurité Coque de protection , Blocage automatique des hé-

lices en cas de contact , Interface de contrôle avec bouton d’urgence.l) Structure aéronautique Hélices haute performances (spécialement dési-

gnées pour l’AR.Drone) Structure en fibres de carbonem) 4 servomoteurs brushless, (35000 rpm, puissance : 15 W)n) Batterie Lithium (3 cells, 11.1 V, 1000 mAh) Capacité de décharge : 10C

Temps de charge de la batterie : 90 minuteso) Altimètre à ultra-sons Fréquence d’émission : 40 kHz Portée : 6 mètres,p) stabilisation verticale Caméra frontale Caméra grand angle 93°

36

3.2 Présentation de l’environnement ROS

3.2 Présentation de l’environnement ROS

Robot Operating Systems, est une structure diffusée selon les termes de la licenceBSD (Berkeley Software Distribution , systèmes d’exploitation dérivé d’Unix.).[10]C’est un environnement open source destiné au développement de logiciels robo-tiques. ROS a été créée en 2007 par le Laboratoire d’intelligence artificielle deStanford avec l’appui du projet l’AI Robot Stanford (STAIR). En 2008 le dévelop-pement se poursuit principalement au sein du laboratoire de recherche en robotiqueWillow Garage créé fin 2006.

Figure 3.2.1 – Archtecteur générale

Beaucoup d’institution de recherche ont commencé à développer des projets sousROS en ajoutant des nouveaux robots et partageant leurs codes. De même, les com-pagnies ont commencé à adapter leurs produits à l’environnement ROS. Dans lafigure (??), nous identifions quelques plateformes supportées par ROS. Un nombreimportant de codes à implémenter dans ces plateformes sont publiés afin d’accélé-rer le développement des algorithmes en robotique via le partage libre.

37

Chapitre 3 Implémentation expérimentale du loi de commande sur un bancd’essai (Parrot Ardronne 2.0 )

Figure 3.2.2 – Plateformes supportées par ROS

Les robots deviennent de plus en plus complexes, et exigent l’intégration d’unnombre important de capteurs et d’actionneurs. D’une manière continue un nombrecroissant d’appareils sont supportés par ROS. Ce dernier facilite la mise en œuvrerapide des algorithmes et réduit le temps exigé pour l’intégration de nouveauxmatériels.

Figure 3.2.3 – Configuration capteur actionneure avec ROS

38

3.3 Architecture matériel du quadrirotor

3.2.1 Une aperçue sur l’environnement ROSAfin de démarrer l’environnement ROS nous utilisons l’instruction suivante$ roscoreCette commande lance deux choses : Le MASTER , Le serveur de paramètres.Le Master : C’est le processus cœur comportant les différents nœuds. Une fois

que les nœuds sont en contact, ils se communiquent directement → architecturedistribuéeLe serveur de paramètres : Il permet de définir et de gérer les paramètres globaux

du robot. Ces derniers peuvent être de type entier, flottant, booléen, string ou liste.Le serveur des paramètres est une mémoire partagée dans laquelle chaque nœudpeut lire et modifier ces paramètres.

3.2.2 Nœuds, messages, topicsLe MASTER démarre un nœud, qui démarre un topic

3.2.2.1 Topics

Un topic est un système de transport de l’information many-to-many, il fautpréciser quel type de messages transportés (twist , empty ..), En se basant surle système de l’abonnement / publication (subscribe / publish) , On peut lire untopic en temps réel en utilisant la commande.$ rostopic list$ rostopic echo /topic_name

3.2.2.2 Les nœuds :

Un nœud est un sous programme exécutable qui peut être lié à un actionneurou à un capteur. Un nœud peut publier ou lire des messages d’un topic. La dé-faillance d’un noeud n’implique pas la défaillance de ROS (Notion de micro-kernelsur laquelle est basée ROS). Les nœuds communiquent entre eux de manière évè-nementielle en utilisant les différents topics.

3.3 Architecture matériel du quadrirotor

3.3.1 CommunicationNous allons dans un premier temps décrire la relation client-serveur entre le PC

et le drone. Dans notre cas le drône joue le rôle d’un serveur en créant un point d’ac-cès. Par conséquent le l’ordinateur qui exécute ROS est considéré comme un client.

39

Chapitre 3 Implémentation expérimentale du loi de commande sur un bancd’essai (Parrot Ardronne 2.0 )

Ce dernier se connecte au quadrirotor afin de l’envoyer les consignes. De son part,le drône exécute ces cosignes en réalisant les mouvements de vole désirés. Chacunde drone et de l’ordinateur est mené d’une adresse IP bien déterminée(InternetProtocol).

3.3.2 Réception de données en provenance des capteursNous détaillons maintenant comment accéder à la mémoire du drône, pour cela

nous nous connectons au drone par le wifi. Il est à noté qu’un seul client peut seconnecter à la fois (en effet imaginons un instant le contrôle d’un hélicoptère par2 pilotes à la fois, ce ne serait pas facile). Par conséquent s’il y a déjà un clientconnecté les autres connexions entrantes seront rejetées. Une fois qu’un client estaccepté par l’appareil ces LEDs deviennent vertes. Si cela ne fonctionne pas, c’estque quelqu’un d’autre s’est connecté auparavant au drone. Dans ce cas si le drônen’est pas en cours d’utilisation, il suffit d’appuyer sur le bouton « reste ». Une foisque cela est fait nous ouvrons un terminal lunix et tapons la commande$ rosrun [package_name] [node_name]doukhi@doukhi-Aspire-5733 :~$ rosrun ardrone_autonomy ardrone_driver

Nous sommes en mesure lancer le nœud ardrone_driver qui permet de se connec-ter avec le drone. D’autre part l’affichage du contenu des topics communiquant avecce nœud est possible en utilisant la commande$ rostopic list

Figure 3.3.1 – Les topics

Pour accéder à l’un des topics ( exemple : imu) nous tapons l’instruction suivante

40

3.4 Implémentation de l’algorithme de commande

doukhi@doukhi-Aspire-5733 :~$ rostopic echo /ardrone/imu

Figure 3.3.2 – Les donneés de l’ IMU

3.4 Implémentation de l’algorithme de commandeDans cette partie nous détaillons l’implémentation de l’algorithme de commande

PID sur ardrone 2.0 afin d’asservir l’altitude( z ), et l’attitude et la position ( x ,y ) [4].

3.4.1 Commande de l’altitudeLe contrôleur pid est programmé en langage c++ afin de stabiliser l’altitude.

Ce programme est considéré comme un nœud qui publie ses messages à travers letopic ardrone/cmd_vel.

Figure 3.4.1 – Le flux des messages

41

Chapitre 3 Implémentation expérimentale du loi de commande sur un bancd’essai (Parrot Ardronne 2.0 )

Résultats expérimentaux :La valeur de consigne d’altitude désirée est 1.5 m.

Figure 3.4.2 – L’altitude obtenue expérimentalement

En perturbant l’altitude nous obtenons la réponse illustrée à la figure ci-dessous

Figure 3.4.3 – Altitude obtenue en présence de perturbation

42

3.4 Implémentation de l’algorithme de commande

3.4.2 Commande de l’angle de LacetAvec un angle désiré de 90° nous obtenus

Figure 3.4.4 – L’angle de lacet

En injectant une perturbation sur l’angle de lacet on récupère les données sui-vantes.

Figure 3.4.5 – L’angle de lacet sous perturbation

43

Chapitre 3 Implémentation expérimentale du loi de commande sur un bancd’essai (Parrot Ardronne 2.0 )

3.4.3 Commande de la position

Avec les consignes suivantes

cx = 100sin(t)

cy = 100cos(t)

cz = 700(1 + t/10)

Nous obtenons les résultats illustrés à la figure ci-dessous.

Figure 3.4.6 – La position obtenue

Evolution de la position en 3D

44

3.5 conclusion

Figure 3.4.7 – La position en 3d

InterprétationD’après les résultats expérimentaux, nous constatons :1. D’après la figure (3.4.3), une bonne stabilité en altitude, et cela, vis-à-vis de

nos perturbations exercées sur le quadrirotor.2. D’après la figure (3.4.5), une bonne stabilité au niveau de l’angle de lacet et

toujours en présence de perturbations.3. D’après la figure (3.4.6), un suivi acceptable de la trajectoire désirée avec la

présence de certaines erreurs, relativement, négligeables.Dans manière générale, nous pouvons dire que notre commande PID à montrerune robustesse vis-à-vis des perturbations externes et une bonne poursuite de laconsigne donnée.

3.5 conclusionDans ce chapitre, nous avons appliqué une technique de commande linéaire sur

un drone quadrirotor parrot ardrone 2.0 en se basant sur les mesures provenantde son IMU. Les résultats expérimentaux obtenus montrent que cette techniquedonne de bonnes performances en terme de poursuite de trajectoire avec un tauxd’erreurs négligeable. Ces résultats permettent de valider expérimentalement leslois de commande proposées dans le chapitre précédent et montre la performance

45

Chapitre 3 Implémentation expérimentale du loi de commande sur un bancd’essai (Parrot Ardronne 2.0 )

de ces lois pour la naviguation autonome (sans pilote) du quadrirotor dans unenvironnement connu au préalable.

46

Conclusion et perspectives

Dans ce mémoire, nous avons étudié un type particulier des véhicules aériensappelé Quadrirotor. Notre objectif principal a porté sur l’analyse, la modélisationet la navigation autonome permettant le suivie d’une trajectoire désirée ,de cegenre de véhicules.

Pendant la réalisation de ce présent travail, nous avons consolidé davantage nosconnaissances théoriques et pratiques dans le domaine de la robotique en généraleet dans la façon de les commander en particulier. Il nous a mené à faire un état del’art sur les quadrirotors et bien particulièrement sur leur mode de fonctionnementen termes de navigation autonome et de suivi de trajectoire. Nous avons effectuécette étude dans le but de pouvoir apporter des contributions originales pertinentesà la commande de ces quadrirotors dans ses différents modes de fonctionnement.

Les contributions majeures de ce travail consistent en :— La proposition d’un modèle mathématique précis qui serve de base pour la

simulation d’un comportement dynamique et effectif du quadrirotor. Notremodèle comporte deux parties, une première qui est pertinente aux équa-tions décrivant les mouvements de translation, et une deuxième qui portesur les équations qui décrivent les mouvements de rotation. Dans ce modèleproposé, nous avons pris en compte principalement, la vitesse du vent, l’effetaérodynamique et la force de trainée (drag force) qui affecte les hélices denotre quadrirotor. Pour pouvoir simuler notre modèle, nous avons mis enœuvre ces deux parties dans Simulink pour les assemblés à la suite dans unseul modèle complet.

— Une fois ce modèle est réalisé, nous avons développé une commande linéairePID qui permet de stabiliser notre quadrirotor en position, en altitude et enattitude.

— Afin de valider nos modèle et commande, nous avons réalisé dans une pre-mière tentative une simulation en utilisant Matlab. Dans cette simulation,nous avons conduit quelques manœuvres de vol pertinentes à la conduiteautonome du quadrirotor. Durant la simulation, nous avons soumis ce der-nier à des diverses perturbations, et cela, suivant les trois axes (X, Y, Z).

47

Conclusion et perspectives

Le quadrirotor a montré une capacité de poursuite intéressante avec de trèsbonnes performances.

— Dans une deuxième tentative, nous avons conduit des tests expérimentauxréels en utilisant la plateforme expérimentale parrot ar-drone 2.0 et l’envi-ronnement de développement ROS. Ce dernier nous a permis de programmernotre commande PID proposée auparavant, et cela, en utilisant C++. Lesrésultats obtenus ont montré l’efficacité de cette commande dans des condi-tions expérimentales différentes.

Les objectifs soulignés au début de ce travail ont été atteints en surmontant lesobstacles que nous avons rencontrés durant le temps restreint fixé pour finaliser cetravail ainsi que la nature multidisciplinaire du sujet étudié.Afin d’apporter plus de valeur à ce présent travail, ce dernier peut être conduit

à long terme et comme perspectives suivant différentes dimensions dont voici lesplus importantes :— Faire intervenir d’autres stratégies de commande plus sophistiquées comme la

commande robuste et la commande non linéaire avec une étude comparativesur leur implication induite sur le fonctionnement du quadrirotor.

— Étudier les effets de la commande tolérante aux défauts sur le comportementdynamique du quadrirotor.

— Étendre notre proposition en introduisant la navigation simultanée et colla-borative de d’autres quadrirotors.

— Dans notre travail et afin de faire naviguer notre quadrirotor, nous noussommes juste limités par l’utilisation du l’IMU. Dans ce sens, il est trèsintéressant d’améliorer davantage notre proposition pour intégrer la visonartificielle (slam/ visuel odometry/3d reconstraction) dans ce processus denavigation. Cette technique offre une fois intégrée, plus d’autonomie dans lanavigation de notre quadrirotor.

48

Annexes

Annexe A

modélisation

Figure A.1 – modéle simulink

51

Annexe A modélisation

Algorithme A.1 fonction pour calculer la vitesse des moteures

Algorithme A.2 Calcule de la commande

52

Algorithme A.3 Sous systéme de rotation

Algorithme A.4 sous systéme de translation

Figure A.2 – Fux cameras et IMU

53

Annexe A modélisation

Figure A.3 – Le simulateur gazebo

Figure A.4 – Le banc d’éssai

54

Figure A.5 – Calculateur parrot ardrone

Figure A.6 – Motorisation (BLDC)

55

Bibliographie

[1] http ://www.popsci.com[2] Corrado Santoro<�<How does a Quadrotor fly ? A journey from physics,

mathematics, control systems and computer science towards a “ControllableFlying Object>�>ARSLAB - Autonomous and Robotic Systems LaboratoryDipartimento di Matematica e Informatica - Universit ‘a di Catania, Italy -Jan 10, 2014

[3] Mr. KHEBBACHE Hicham <�<Tolérance aux défauts via la méthodebackstepping des systèmes non linéaires Application : Système UAV de typeQuadrirotor>�>Mémoire de Magister UNIVERSITE FERHAT ABBAS DESETIF Département d’Electrotechnique Faculté de Technologie - 06 / 06 /2012

[4] D. Cremers, J. Sturm, J. Engel, C. Kerl <�<Visual Navigation forFlying Robots>�> lecture Computer Vision Group Department of InformaticsTechnical University of Munich Summer Term 2013

[5] Leghmizi Said and Boumediene Latifa <�<Modeling and Control ofMechanical Systems in Simulink of Matlab>�> College of Automation, HarbinEngineering University China 09, September, 2011

[6] Heba talla Mohamed Nabil ElKholy<�<Dynamic Modeling andControl of a Quadrotor Using Linear and Nonlinear Approaches>�>In par-tial fulfillment of the requirements for The degree of Master of Science inRobotics, Control and Smart Systems The American University IN CAIROSchool of Sciences and Engineering

[7] Ehouarn Perret - Levent Demir<�<Projet AR.Drone>�> Poly-tech Grenoble Gipsa - lab

[8] Garcia Carrillo,L.R,Dzul Lopez, AE.Lozano,R. ;Hardcover<�<Quad Rotorcraft Control>�> springer 2013

[9] BELLAHCENE ZAKARIA<�<Synthèse de lois de commande robuste pourun hélicoptère à quatre hélices>�> Thèse Présentée pour l’obtention du DI-PLOME DE MAGISTER EN AUTOMATIQUE Université des Sciences et de

57

BIBLIOGRAPHIE

la Technologie d’Oran Mohamed Boudiaf Faculté de Génie Electrique Dépar-tement d’Automatique 6/3/2013

[10] Jason M. O’Kane<�<A Gentle Introduction to ROS>�> University of SouthCarolina Department of Computer Science and Engineering 315Main StreetColumbia, SC 29208generated on November 20, 2014.

[11] Inkyu, Hu and Van <�<Technical documentation for AR.Droneproject>�>Cyphy Lab. Queensland University of TechnologyJanuary 14, 2013

[12] Matt Mahoney<�<How to Program in C++ >�>[13] https ://raw.githubusercontent.com/AutonomyLab/ardrone_autonomy[14] www.ros.org[15] Marilena Vendittelli <�<quadrotor modeling>�>University de Roma SA-

PIENZA[16] Isabelle FANTONI-COICHOT<�<Vers l’autonomie des v’ehi-

cules aeriens>�> MEMOIRE presente et soutenu publiquementle 10 decembre 2007 pour l’obtention de l’ Habilitation µa Diri-ger des Recherches Ecole doctorale de l’Universit’e de Tech-nologie de Compiµegne le 10 decembre 2007

58