Vous êtes sur la page 1sur 110

Rapport PI3

Conception dun algorithme de suivi de


trajectoire par waypoints pour un
microquadricoptre

AER3900 Projet individuel en gnie arospatial

Travail supervis par le professeur David Saussi, M.Sc.A., Ph.D.

Automne 2016
Dpartement de gnie lectrique
cole Polytechnique de Montral

Dernire mise jour : 24 mars 2017 16:14:31

Olivier Gougeon 1625793


PI3 Rapport des travaux accomplis

Sommaire

Aujourdhui, lutilisation de drones dans diffrents secteurs dactivits est en train de sim-
planter : agriculture, cartographie, inspections, recherche et sauvetage, surveillance et bien plus
encore. Depuis quelques annes, les entreprises prives sintressent vivement au potentiel de ces
machines volantes afin deffectuer des livraisons de petites charges. Les livraisons domicile (Ama-
zon Prime Air [1]) et celles de matriel durgence mdicale (Mdecins sans frontires [2]) sont deux
exemples dactualit. La Figure 1 prsente un prototype rattach chacune de ces activits.

(a) Drone de livraisons commerciales (b) Drone de livraisons mdicales

Figure 1 Drones de livraisons destines diffrentes fins

Pour mener terme ces livraisons, il est ncessaire de munir le drone dun systme de
guidage permettant de lui imposer une trajectoire et datteindre un but. Ainsi, la solution retenue
consiste en la conception dun algorithme de suivi de trajectoire par waypoints qui sera valid
laide dessais en vol effectus sur le microquadricoptre Crazyflie 2.0 (CF2). La synthse de cet
algorithme constitue lobjectif principal du projet.

Pour ce faire, une revue de littrature des diffrentes solutions existantes est dabord ef-
fectue. Puis, une solution est retenue en tenant compte de son niveau de difficult et du temps
dinvestissement requis pour son dveloppement. Une fois la solution retenue, il est ncessaire de
dvelopper un modle dynamique du quadricoptre sous MATLAB /Simulink . Suite lidentifi-
cation des paramtres physiques du CF2 et la configuration de lenvironnement de simulation, il
est possible deffectuer la synthse des algorithmes de contrle du CF2. Finalement, la configuration
des environnements ROS Indigo et VICON permet de procder aux essais en vol.

Il est possible de distinguer deux principaux rsultats pour ce projet :


1. La modlisation paramtrique de la dynamique complte dun quadricoptre (quations en-
tirement dveloppes et rigoureusement dtailles) ;
2. La dmonstration exprimentale dun vol de suivi de trajectoire par waypoints avec le CF2.
De plus, lalgorithme conu permet le suivi de diffrentes trajectoires de rfrence dfinies
dans un plan horizontal 2D et sa principale limite constitue lincapacit effectuer des virages
angles aigus trs prononcs (< 45 ).

Automne 2016 O. GOUGEON ii


PI3 Rapport des travaux accomplis

Table des matires

Sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
Liste des figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Liste des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi


Liste des acronymes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

1 Description du problme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Problmatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.5 Hypothses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Mthodologie employe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Revue de littrature portant sur les diffrentes solutions existantes . . . . . . . . . . 4
2.2 Slection dune mthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Modlisation paramtrique dun drone de type quadricoptre . . . . . . . . . . . . . 10
2.3.1 Dfinition des paramtres de modlisation . . . . . . . . . . . . . . . . . . . . 11
2.3.1.1 Paramtres du groupe moteur . . . . . . . . . . . . . . . . . . . . . 11
2.3.1.2 Paramtres du drone . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1.2.1 Calcul du centre de gravit . . . . . . . . . . . . . . . . . . 13
2.3.2 Modles dynamiques du groupe moteur et du drone . . . . . . . . . . . . . . 14
2.3.2.1 Modle dynamique du groupe moteur en rotation . . . . . . . . . . 14
2.3.2.1.1 Adaptation du modle du groupe moteur pour le CF2 . . . 15
2.3.2.2 Modles dynamiques du drone . . . . . . . . . . . . . . . . . . . . . 16
2.3.2.2.1 Modle dynamique du drone en translation . . . . . . . . . 16
2.3.2.2.2 Modle dynamique du drone en rotation . . . . . . . . . . 18
2.3.3 quations cinmatiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.3.1 quation cinmatique de navigation . . . . . . . . . . . . . . . . . . 21
2.3.3.2 quation cinmatique dEuler . . . . . . . . . . . . . . . . . . . . . 21
2.3.4 quilibrage et linarisation du modle complet du drone . . . . . . . . . . . . 22
2.3.4.1 quilibrage du modle complet du drone . . . . . . . . . . . . . . . 22
2.3.4.2 Linarisation du modle complet du drone . . . . . . . . . . . . . . 23
2.4 Mesure et identification des paramtres physiques du CF2 . . . . . . . . . . . . . . . 25
2.4.1 Paramtres issus de la littrature . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.2 Modlisation 3D du Crazyflie 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4.3 Application numrique des paramtres du CF2 dans le modle linaris . . . 27
2.5 Cration dun environnement de simulation . . . . . . . . . . . . . . . . . . . . . . . 28
2.6 Synthse des lois de contrle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6.1 Synthse de lalgorithme de guidage NLGL . . . . . . . . . . . . . . . . . . . 31
2.6.2 Synthse des contrleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.6.2.1 Synthse des contrleurs externes oprant sur le poste central . . . . 34
2.6.2.2 Synthse des contrleurs embarqus sur le CF2 . . . . . . . . . . . . 35
2.6.3 Synthse de la logique de contrle . . . . . . . . . . . . . . . . . . . . . . . . 36
2.6.3.1 Synthse de la logique des phases de vol . . . . . . . . . . . . . . . . 36

Automne 2016 O. GOUGEON iii


PI3 Rapport des travaux accomplis

2.6.3.2 Synthse de la logique de transition des contrleurs . . . . . . . . . 36


2.6.4 Matrices de passage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.4.1 Matrice de passage du repre inertiel Ro au repre objet Rb . . . . 39
2.6.4.2 Matrice de passage du changement du vecteur dentres v u . . 39
2.6.4.3 Matrice de passage entre les repres NED ENU . . . . . . . . . . 40
2.6.4.4 Matrice de passage entre les emplacements des moteurs CF2 DP1 41
2.7 Configuration de lenvironnement de dveloppement et dessais . . . . . . . . . . . . 43
2.8 Essais en vol et rglage des paramtres des algorithmes . . . . . . . . . . . . . . . . . 45
2.9 Comparaison des performances simules et relles . . . . . . . . . . . . . . . . . . . . 47

3 Analyse des rsultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48


3.1 Simulations effectues sur Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.1.1 Simulation partielle des contrleurs seulement . . . . . . . . . . . . . . . . . . 48
3.1.2 Simulation globale des lois de contrle . . . . . . . . . . . . . . . . . . . . . . 51
3.2 Essais en vol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.1 Essais prliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.1.1 Vol stationnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.1.2 Contrle de la position . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.1.3 Contrle de la vitesse davance . . . . . . . . . . . . . . . . . . . . . 56
3.2.2 Suivi de trajectoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2.2.1 Trajectoire en zigzag . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2.2.2 Trajectoire de rfrence . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2.3 Problmes rencontrs durant la campagne dessais en vol . . . . . . . . . . . . 61
3.2.3.1 Instabilit des contrleurs . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2.3.2 Bruit des camras VICON dans le processus de localisation du drone 61
3.2.3.3 Trajectoire avec virages trop aigus . . . . . . . . . . . . . . . . . . . 63
3.3 Comparaison des performances simules et relles . . . . . . . . . . . . . . . . . . . . 64

4 Discussions critiques du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66


4.1 Discussion critique de la mthodologie et des rsultats obtenus . . . . . . . . . . . . 66
4.2 Discussion critique des prises de dcision . . . . . . . . . . . . . . . . . . . . . . . . . 67

5 Analyse de la gestion du temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69


5.1 Respect de lchancier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.2 Amliorations pour le futur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.1 Retour sur le cadre du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.2 Recommandations de travaux futurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I

Annexe A Programme Mathematica utilis afin de linariser le modle . . . . . I

Annexe B Mesure des masses et proprits physiques CATIA du CF2 . . . .XXIII


.

Annexe C Programme MATLAB de lalgorithme NLGL . . . . . . . . . . . . . XXV


.

Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .XXVIII
. .

Automne 2016 O. GOUGEON iv


PI3 Rapport des travaux accomplis

Liste des figures


1 Drones de livraisons destines diffrentes fins . . . . . . . . . . . . . . . . . . . . . ii
2 Suivi dune trajectoire rectiligne avec lalgorithme NLGL . . . . . . . . . . . . . . . . 8
3 Suivi dune trajectoire rectiligne avec lalgorithme VF . . . . . . . . . . . . . . . . . 8
4 Suivi dune trajectoire spirale avec lalgorithme NLGL . . . . . . . . . . . . . . . . . 9
5 Suivi dune trajectoire spirale avec lalgorithme VF . . . . . . . . . . . . . . . . . . . 9
6 Paramtres physiques du moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7 Gomtrie et paramtres du drone . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8 Illustration des rfrentiels utiliss dans le modle 6DOF (Euler Angles) . . . . . . . 17
9 Photo du Crazyflie 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
10 Rendu du Crazyflie 2.0 modlis avec CATIA . . . . . . . . . . . . . . . . . . . . . 26
11 Environnement de simulation Simulink pour le modle non linaire du CF2 . . . . . 30
12 Schma-bloc Simulink des lois de contrle du CF2 . . . . . . . . . . . . . . . . . . . 31
13 Dfinitions des paramtres de lalgorithme NLGL [3] . . . . . . . . . . . . . . . . . . 32
14 Schma-bloc Simulink du contrleur de la position Est pE . . . . . . . . . . . . . . 34
15 Schma-bloc Simulink de la logique didentification des phases de vol . . . . . . . . 37
16 Schma-bloc Simulink de la logique dactivation ou de dsactivation du contrleur
de la position Nord pN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
17 Schma-bloc Simulink illustrant la matrice de passage de Ro Rb . . . . . . . . 39
18 Comparaison entre les modles CF2 et DP1 . . . . . . . . . . . . . . . . . . . . . . . 42
19 Schma-bloc Simulink des matrices de passage CF2 DP1 et NED ENU . . . . 43
20 Schma de la configuration de lenvironnement de dveloppement et dessais . . . . . 44
21 Schma-bloc Simulink de linterface principale du programme permettant deffec-
tuer des essais en vol partir du poste central . . . . . . . . . . . . . . . . . . . . . . 46
22 Manette de jeu Logitech Rumblepad 2 . . . . . . . . . . . . . . . . . . . . . . . . . 46
23 Volire du Laboratoire de robotique mobile et des systmes autonomes (MRASL) . . 47
24 Rponses temporelles des tats DpU , D, D et D pour des chelons unitaires . . . 49
25 Comparaison entre les modles non linaire et linaire des rponses temporelles des
tats pU , , et pour diffrents chelons . . . . . . . . . . . . . . . . . . . . . . . . 50
26 Commande de plusieurs chelons excuts simultanment . . . . . . . . . . . . . . . 51
27 Efforts des moteurs Ui pour un chelon unitaire appliqu . . . . . . . . . . . . . 52
28 Simulation complte du suivi dune trajectoire par waypoints avec lalgorithme NLGL
sur le modle non linaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
29 Essai prliminaire du vol stationnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
30 Essai prliminaire du contrle en positions linaires et angulaires . . . . . . . . . . . 56
31 Configuration de la volire pour lessai prliminaire du contrle de la vitesse davance 57
32 Essai prliminaire du contrle de la vitesse davance u . . . . . . . . . . . . . . . . . 58
33 Essai prliminaire du suivi dune trajectoire en forme de zigzag . . . . . . . . . . . . 60
34 Essai prliminaire du suivi de la trajectoire de rfrence utilise dans ce projet . . . 62
35 Problme rencontr concernant linstabilit des contrleurs . . . . . . . . . . . . . . . 63
36 Problme rencontr concernant le bruit des camras VICON dans le processus de
localisation du drone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
37 Problme rencontr concernant les trajectoires avec des virages trop aigus . . . . . . 65
38 Comparaison des chanciers prvu et rel . . . . . . . . . . . . . . . . . . . . . . . . 70
39 Mesures brutes des composantes massiques du CF2 obtenues avec une balance . . . XXIII
40 Proprits physiques des lments massiques du CF2 calcules par CATIA . . . . . XXIV

Automne 2016 O. GOUGEON v


PI3 Rapport des travaux accomplis

Liste des tableaux


1 Comparaison des avantages des algorithmes CC, NLGL, PLOS, LQR et VF . . . . . 7
2 Comparaison des inconvnients des algorithmes CC, NLGL, PLOS, LQR et VF . . . 7
3 Paramtres physiques du moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Paramtres gomtriques et physiques du drone . . . . . . . . . . . . . . . . . . . . . 13
5 Paramtres physiques du Crazyflie 2.0 retrouvs dans la littrature . . . . . . . . . . 26
6 Paramtres physiques du Crazyflie 2.0 mesurs ou estims . . . . . . . . . . . . . . . 27
7 Dfinitions des tats de fonctionnement des contrleurs en fonction des phases de vol 37

Automne 2016 O. GOUGEON vi


PI3 Rapport des travaux accomplis

Liste des acronymes

2D Deux dimensions
3D Trois dimensions
4D Quatre dimensions
CAD Computer-Aided Design
CC Carrot-Chasing
CF2 Crazyflie 2.0
DP1 Drone Prototype 1
ENU East North Up
GPS Global Positioning System
IMU Inertial Measurement Unit
LOS Line-Of-Sight
LQR Linear Quadratic Regulator
MPC Model Predictive Control
MRASL Mobile Robotics and Autonomous Systems Laboratory
NED North East Down
NLGL Nonlinear Guidance Law
PID Proportionnel-Intgral-Drive
PLOS Pure pursuit with Line-Of-Sight
PWM Pulse-Width Modulation
ROS Robot Operating System
RPM Rotation par minute
SMC Sliding Mode Control
UWB Ultra-Wide Band
VF Vector Field
VTP Virtual Target Point

Automne 2016 O. GOUGEON vii


PI3 Rapport des travaux accomplis

Description du problme

Ce chapitre prsente la description du problme tudi dans le cadre du projet. Plus prcis-
ment ; le contexte, la problmatique, les objectifs, les besoins du client et les hypothses du projet
sont abords.

Contexte

Dans son exemplaire de mai 2014, la revue scientifique Sciences & Vie affirme que les au-
torits [amricaines] estiment que plus de 10 000 drones civils sillonneront le ciel [aux tats-Unis]
dici 2020 et quils seront alors plus nombreux que les avions de ligne [4]. Ces statistiques
dmontrent clairement lampleur de lexplosion du march de drones survenue dans les quelques
dernires annes. Lruption de ce nouveau march a dj permis quelques entreprises de faire
fortune, entre autres, la compagnie franaise Parrot et son homologue chinois DJI dans le mar-
ch des drones civils usages rcratif ou semi-professionnel notamment des fins de captures
cinmatographiques.

En effet, aujourdhui, lutilisation de drones dans diffrents secteurs dactivits est en train
de simplanter :
Surveillance de zones de culture agricoles ;
Inspections dinfrastructures ;
Transportation de mallettes de premiers secours ;
Lutte contre le smog ;
Relais en direct dvnements dactualit ;
Et bien plus encore.
Depuis quelques annes, les entreprises prives sintressent vivement au potentiel de ces
machines volantes afin deffectuer des livraisons de petites charges. Les livraisons domicile (Ama-
zon Prime Air [1]) et celles de matriel durgence mdicale (Mdecins sans frontires [2]) sont deux
exemples dactualit.

Problmatique

Pour mener terme ces livraisons, il est ncessaire de munir le drone dun systme de guidage
permettant de lui imposer une trajectoire personnalisable et datteindre un but avec prcision.
Pour ce faire, diffrentes mthodes sont envisageables. Parmi celles-ci, il est possible de retenir
deux approches principales : lapproche discrtisant la trajectoire dans lespace et celle discrtisant
la trajectoire dans le temps. Bien que le fonctionnement de chacune de ces mthodes soit plutt

Automne 2016 O. GOUGEON 1


PI3 Rapport des travaux accomplis

similaire, chacune dentre elles possde ses avantages et ses inconvnients en plus de viser certaines
applications prcises.

Ces deux approches ainsi que quelques exemples de mthodes utilises dans la littrature
sont prsents en dtail la Section 2.1.

Objectifs

Ainsi, il vient tout juste dtre mentionn quil existe diffrentes solutions permettant de
rpondre au problme du guidage dun drone. cet effet, lobjectif principal du projet consiste
en la slection judicieuse dune mthode approprie en fonction de lapplication demande par le
client, puis en son dveloppement dans un environnement de simulation sous MATLAB /Simulink
afin dultimement dmontrer la faisabilit de son fonctionnement appliqu un microquadricoptre
(soit le Crazyflie 2.0). En plus de la synthse de lalgorithme de guidage retenu, deux objectifs
secondaires peuvent tre considrs :

1. Modliser la dynamique complte dun quadricoptre de manire paramtrique (quations


entirement dveloppes et rigoureusement dtailles) ;
2. Dmontrer par un vol exprimental de suivi de trajectoire que la solution retenue est applicable
un drone de type microquadricoptre tel que le CF2.

De plus, il est ncessaire que lalgorithme conu puisse tre utilis afin de suivre diffrentes
trajectoires et que les limites de ses capacits soient mises en vidence dans lanalyse de la solution
retenue.

Cahier des charges

Suite aux prcdents objectifs principal et secondaires venant dtre noncs, il est possible
dexpliciter le cahier des charges de la manire suivante :

1. Modliser et paramtrer la dynamique complte dun quadricoptre ;


2. Concevoir un algorithme de suivi de trajectoire ;
3. Dmontrer la faisabilit de la solution retenue par un vol exprimental ;
4. Doter lalgorithme de la capacit suivre diffrents types de trajectoire ;
5. Mettre en vidence les limites de la solution dveloppe.

Automne 2016 O. GOUGEON 2


PI3 Rapport des travaux accomplis

Hypothses

Pour permettre la ralisation de ce projet, la formulation de quelques hypothses de base est


ncessaire. Ces dernires sont issues principalement des limitations connues en termes dquipement
disponible. Ainsi, selon le cahier des charges prcdemment dfini en fonction des besoins du client
le professeur David Saussi il est permis de considrer les hypothses suivantes :

1. Les logiciels MATLAB /Simulink sont utiliss pour le dveloppement de lenvironnement


de simulation ;
2. Le microquadricoptre Crazyflie 2.0 est utilis comme prototype de dveloppement et lment
de dmonstration de la faisabilit de la solution retenue ;
3. Lenvironnement de dveloppement ROS Indigo est utilis afin de permettre la communication
entre le drone et les ordinateurs ;
4. Le systme de camra VICON install dans la volire du Laboratoire de robotique mobile
et des systmes autonomes (MRASL) dont le professeur David Saussi fait partie est utilis
afin de retrouver les tats de la position du drone [5] ;
5. Le vol exprimental de la dmonstration de faisabilit de la solution retenue est ralis dans
la volire dudit laboratoire.

Automne 2016 O. GOUGEON 3


PI3 Rapport des travaux accomplis

Mthodologie employe

Ce chapitre prsente la mthodologie employe dans le cadre du projet. La mthodologie a


t compose en neuf grandes tapes qui permettent de rpondre tous les besoins du client. Plus
prcisment, ces tapes sont :

1. Revue de littrature portant sur les diffrentes solutions existantes dalgorithmes de guidage
permettant le suivi de trajectoires ;
2. Slection dune mthode en fonction du niveau de difficult anticip et des besoins du client ;
3. Modlisation paramtrique de la dynamique complte dun quadricoptre ;
4. Mesure et identification des paramtres physiques propres au microquadricoptre CF2 ;
5. Cration dun environnement de simulation sous MATLAB /Simulink ;
6. Synthse des algorithmes de stabilisation, contrle et guidage du microquadricoptre ;
7. Configuration de lenvironnement de dveloppement et dessais sous ROS Indigo et VICON ;
8. Tests en vol et rglage des paramtres de lalgorithme de suivi de trajectoire propres au
microquadricoptre Crazyflie 2.0 ;
9. Comparaison des performances simules et relles pour le suivi de diffrentes trajectoires.

Ainsi, chaque tape est dtaille et son utilisation est justifie dans les sections suivantes de
ce chapitre.

Revue de littrature portant sur les diffrentes solutions existantes

Diffrentes solutions existent afin de permettre un objet de suivre une trajectoire prcise.
Dans [3], les auteurs font une analyse dtaille des mthodes les plus utilises et tudies parmi les
communauts scientifique et open-source.

Deux grands groupes dalgorithmes peuvent tre diffrencis. Il y a les algorithmes de suivi
de trajectoire 1 (path following ou 3D trajectory tracking), puis ceux de poursuite de trajectoire 1
(trajectory tracking ou 4D trajectory tracking) [3]. Les deux types dalgorithmes considrent les
trois composantes de la position de lobjet donnes dans un rfrentiel 3D quelconque. Toutefois,
les algorithmes de poursuite de trajectoire incorporent une quatrime dimension tant le temps.
Ainsi, la diffrence demeure dans le choix du domaine de paramtrisation de la trajectoire : les
algorithmes de suivi de trajectoire paramtrent la trajectoire dans le domaine spatial, tandis que
les algorithmes de poursuite de trajectoire sont plutt dvelopps dans le domaine temporel. Il
est noter quun algorithme de poursuite de trajectoire paramtre initialement dans le domaine

Automne 2016 O. GOUGEON 4


PI3 Rapport des travaux accomplis

temporel peut tre reparamtriser dans le domaine spatial de sorte quil se comporte comme un
algorithme de suivi de trajectoire [3]. Linverse nest toutefois pas vrai.

Afin de bien comprendre et illustrer la diffrence entre lapproche discrtisant dans le do-
maine spatial et celle discrtisant dans le domaine temporel, un exemple concret dapplication
possible pour chacune dentre elles est donn.

Imaginons le cas o un missile est lanc dun point initial statique et a pour objectif din-
tercepter une cible statique cest--dire le point final dsir. Pour ce faire, le missile est dabord
lanc depuis une position quelconque et sa position est alors corrige par lentremise de lalgorithme
de guidage afin de lui faire suivre une trajectoire prcise. En effet, afin dintercepter la cible sta-
tique, il est ncessaire que le missile atteigne cette dernire avec un angle prcis cest--dire en
suivant une trajectoire finale prcise. Dans ce cas particulier, la vitesse du missile en tout point de
la trajectoire ou le temps que prend le missile atteindre la cible nimportent pas puisque la cible
est statique. En effet, que le missile arrive rapidement ou lentement en peu ou beaucoup de temps
ninfluencera pas la capacit du missile atteindre la cible. Toutefois, il demeure que le suivi de
la trajectoire doit se faire avec prcision afin datteindre la cible. Ainsi, un algorithme de suivi de
trajectoire discrtis dans le domaine spatial tel que [6] serait une solution suffisante et convenable
afin daccomplir cette tche.

Maintenant, imaginons le cas o le missile est toujours lanc du mme point initial statique et
a dsormais pour objectif dintercepter une cible dynamique cest--dire dont le point final dsir
est continuellement en mouvement. Pour ce cas-ci, les mmes conditions demeurent : le missile peut
tre lanc depuis nimporte quelle position puisque lalgorithme de guidage se chargera de corriger
sa trajectoire afin datteindre la cible. De plus, le missile devra toujours atteindre la cible avec un
angle prcis. Toutefois, puisque cette fois-ci la cible est continuellement en mouvement, la vitesse
dapproche du missile et le temps que mettra ce dernier se dplacer seront deux variables cruciales
demandant dtre contrles. En effet, si la vitesse ou le temps sont trop rapides ou trop lents, le
missile arrivera en avance ou en retard sur la cible dsire quil manquera alors. Ainsi, il est possible
de constater que le contrle du domaine spatial ne suffit plus cas ce cas particulier. De fait, afin
daccomplir la tche, il est dsormais ncessaire de considrer galement le contrle du domaine
temporel. En effet, cest la combinaison du contrle de la position et du temps de dplacement du
missile qui lui permette datteindre une cible en mouvement. Ainsi, un algorithme de poursuite de
trajectoire discrtise dans le domaine temporel tel que [7] serait dsormais ncessaire pour excuter
cette tche.

Dores et dj, il est possible de rejeter lapproche utilisant un algorithme de poursuite de


trajectoire discrtis dans le domaine temporel au profit de celle utilisant un algorithme de suivi
de trajectoire discrtis dans le domaine spatial puisquaucune contrainte temporelle nest impose
dans le cahier des charges prcdemment dfini la Section 1.4. Ainsi, le reste de la revue de
1. Traductions libres de langlais ralises par lauteur de ce prsent document.

Automne 2016 O. GOUGEON 5


PI3 Rapport des travaux accomplis

littrature est orient uniquement vers les diffrentes mthodes utilisant les algorithmes de suivi de
trajectoire discrtiss dans le domaine spatial.

Selon [3], il existe deux classes dalgorithmes de suivi de trajectoire : les mthodes gom-
triques et celles utilisant la thorie du contrle.

Les mthodes gomtriques sont principalement issues de la littrature portant sur le gui-
dage de missiles. Elles comprennent entre autres les mthodes suivantes : poursuite pure (pure
pursuit), LOS (line-of-sight), NLGL (nonlinear guidance law) et VF (vector field). Lalgorithme
poursuite de la carotte (carrot-chasing ou CC) faisant allusion au lapin (objet) poursuivant la
carotte (objectif) est lun des algorithmes de suivi de trajectoire les plus utiliss en raison de sa
simplicit dimplmentation. De plus, une version combinant poursuite pure et LOS dite PLOS
est galement beaucoup utilise dans la pratique pour les mmes raisons. Mise part la mthode
VF, toutes ces mthodes se basent sur la gnration dun point virtuel (virtual target point ou VTP)
positionn sur la trajectoire suivre. Ce point agit alors comme cible pour lobjet contrler. Ainsi,
la loi de guidage calcule langle de cap permettant de continuellement diriger le vhicule vers le
point virtuel. Cela permet au vhicule de constamment corriger sa trajectoire lorsquil sloigne du
chemin prescrit. Par consquent, la stabilit de ces algorithmes dpend largement des paramtres
menant la slection de ce point. Le principal avantage de ces algorithmes est quils sont faciles
implmenter et quils demandent peu defforts de calcul en raison de leur approche strictement
gomtrique.

Les mthodes issues de la thorie du contrle sont galement trs populaires puisquelles
procurent gnralement de meilleures performances face au rejet de perturbations comme le vent.
Elles sont donc dites plus robustes. Elles comprennent entre autres les mthodes suivantes : PID
(contrleur classique actions proportionnelle, intgrale et drive), LQR (linear quadratic regula-
tor), SMC (sliding mode control), MPC (model predictive control), backstepping control, contrle
par squencement de gains (gain scheduling theory), contrle adaptatif (adaptative control), pro-
grammation dynamique (dynamic programming), contrle par morceaux affins (piecewise affine
control) et Lyapunov VF. Dpendamment du type de contrleur utilis (linaire ou non linaire),
la stabilit pour ces algorithmes est soit dtermine par le critre de stabilit asymptotique de
Lyapunov (systmes non linaires) ou bien celui de stabilit exponentielle (systmes linaires). De
plus, ces algorithmes sont gnralement plus complexes implmenter et plus exigeants en efforts
de calcul que ceux utilisant les mthodes gomtriques.

Parmi tous les algorithmes venant dtre cits (mthodes gomtriques et celles issues de la
thorie du contrle), cinq algorithmes sont retenus et compars dans [3] : CC, NLGL, PLOS, LQR et
VF. Ces mthodes sont slectionnes pour leurs simplicit, robustesse et facilit dimplmentation
sur un systme temps rel. Toujours selon [3], il est possible de dresser les tableaux comparatifs
suivants :

Automne 2016 O. GOUGEON 6


PI3 Rapport des travaux accomplis

Tableau 1 Comparaison des avantages des algorithmes CC, NLGL, PLOS, LQR et VF

Algorithme Avantage(s)
CC Implmentation simple et largement utilise dans la littrature
NLGL Peut tre utilis pour nimporte quel type de tracs et test en vol
PLOS Implmentation simple et intuitive
LQR Optimisation des efforts de contrle et implmentation simple
VF Erreur de suivi trs faible et test en vol

Tableau 2 Comparaison des inconvnients des algorithmes CC, NLGL, PLOS, LQR et VF

Algorithme Inconvnient(s)
CC Non robuste aux grandes perturbations causes par le vent
NLGL Erreur de suivi plus grande que lalgorithme VF
PLOS Stabilit trs sensible aux choix des gains et aux perturbations externes
LQR Grande erreur de suivi et sensible aux perturbations
VF Plusieurs paramtres ajuster et efforts de contrle importants

Slection dune mthode

Lanalyse des Tableaux 1 et 2 permet de constater rapidement que deux algorithmes sim-
posent parmi le quintuplet tudi : les algorithmes NLGL et VF. En effet, quand bien mme quils
seraient faciles implmenter, les algorithmes CC, PLOS et LQR possdent un inconvnient ma-
jeur : ils sont trs sensibles aux perturbations externes comme celles causes par le vent. Ainsi, dans
loptique dobtenir un algorithme robuste, il est naturel de sorienter vers les algorithmes NLGL et
VF. Dailleurs, ces deux algorithmes ont t tests et valids en vol par des communauts ayant
dvelopp des autopilotes open-sources : NLGL sur lautopilote Piccolo [8] et VF sur lautopilote
Kestrel [9].

Cela tant dit et dans lintention de raliser le choix judicieux dune mthode, il a t dcid
deffectuer des essais prliminaires des algorithmes NLGL et VF. Pour ce faire, des simulations
de chacun de ces algorithmes ont t effectues sur le modle 2D de la voiture de Dubins [10]
largement utilis des fins de comparaisons dalgorithmes dans la littrature [3]. Les rsultats de
simulations pour deux trajectoires diffrentes (rectiligne et spirale) sont prsents ci-dessous.

Tout dabord, lanalyse des Figures 2a et 3a permet de constater que la trajectoire rectiligne
est bien suivie dans les deux cas. Toutefois, il est possible dobserver deux discontinuits de forme

Automne 2016 O. GOUGEON 7


PI3 Rapport des travaux accomplis

R4eponses temporelles
3000

2000
Suivi de trajectoire par waypoints en 2D dans le plan horizontal

x (m)
1000
1000
0

800 -1000

1000
600
500

y (m)
400 0

-500
200
-1000
y (m)

0 200
0

A (deg)
-200
-200
-400
-400
-600

-600 -800

2
-800

u (m/s2 )
0

-1000
-1000 -500 0 500 1000 1500 2000 2500 -2
x (m)
-4
Trajectoire plani-4ee Trajectoire r4elle Position initiale Position -nale 0 100 200 300 400 500 600 700 800 900
t (s)

(a) Trajectoire parcourue (b) Rponses temporelles des tats

Figure 2 Suivi dune trajectoire rectiligne avec lalgorithme NLGL

R4eponses temporelles
3000

2000
Suivi de trajectoire par waypoints en 2D dans le plan horizontal
x (m)

1000
1000
0

800 -1000

1000
600
500
y (m)

400 0

-500
200
-1000
y (m)

0 300
200
A (deg)

-200 100
0
-400
-100
-200
-600
5
u (m/s2 )

-800

0
-1000
-1000 -500 0 500 1000 1500 2000 2500
x (m)
-5
0 100 200 300 400 500 600 700 800 900
Trajectoire plani-4ee Trajectoire r4elle Position initiale Position -nale t (s)

(a) Trajectoire parcourue (b) Rponses temporelles des tats

Figure 3 Suivi dune trajectoire rectiligne avec lalgorithme VF

circulaire dans le cas de lalgorithme VF (Figure 3a). Lanalyse de la Figure 3b permet de constater
que ces discontinuits sont dues un effort de commande u satur 5 m/s2 lorsque lalgorithme
VF est utilis. On remarque que pour la mme trajectoire, la commande u gnre par lalgorithme
NLGL nest pas sature (2b).

Ensuite, lanalyse des Figures 4a et 5a montrent que lalgorithme NLGL russit bien
suivre la trajectoire, tandis que lalgorithme VF ny parvient pas. Bien quil aurait t possible
de trouver un ensemble de paramtres permettant lalgorithme VF de suivre la trajectoire en
effectuant plusieurs itrations, cet exemple est prsent afin de dmontrer que lajustement des

Automne 2016 O. GOUGEON 8


PI3 Rapport des travaux accomplis

Suivi de trajectoire par waypoints en 2D dans le plan horizontal


80

R4eponses temporelles
60 100

50

x (m)
0
40
-50

-100

20 100

50

y (m)
y (m)

0
0
-50

-100

-20 0

A (deg)
-1000

-40
-2000

-3000
-60 60
40

u (m/s2 )
20
-80 0
-80 -60 -40 -20 0 20 40 60 80 100
-20
x (m)
-40
0 20 40 60 80 100 120 140 160
Trajectoire plani-4ee Trajectoire r4elle Position initiale Position -nale t (s)

(a) Trajectoire parcourue (b) Rponses temporelles des tats

Figure 4 Suivi dune trajectoire spirale avec lalgorithme NLGL

Suivi de trajectoire par waypoints en 2D dans le plan horizontal


80

R4eponses temporelles
60 100

50
x (m)

0
40
-50

-100

20 100

50
y (m)
y (m)

0
0
-50

-100

-20 300
200
A (deg)

100
-40 0
-100
-200
-60 100
u (m/s2 )

50

-80
-80 -60 -40 -20 0 20 40 60 80 100 0

x (m)
-50
0 20 40 60 80 100 120 140 160
Trajectoire plani-4ee Trajectoire r4elle Position initiale Position -nale t (s)

(a) Trajectoire parcourue (b) Rponses temporelles des tats

Figure 5 Suivi dune trajectoire spirale avec lalgorithme VF

paramtres de la mthode VF peut savrer tre une tche trs complexe. Finalement, lanalyse des
Figures 4b et 5b montre encore une fois que leffort de commande u gnr par lalgorithme VF
est suprieur celui gnr par la mthode NLGL. Aucune saturation sur la commande na t
applique pour la trajectoire spirale.

Ainsi, la lumire de tout ce qui vient dtre dit, le choix logique demeure lalgorithme de

Automne 2016 O. GOUGEON 9


PI3 Rapport des travaux accomplis

suivi de trajectoire de type NLGL. En effet, ce dernier possde plusieurs avantages sur son homo-
logue lalgorithme VF : soit ceux de pouvoir tre utilis pour nimporte quel type de trajectoires,
de ncessiter lajustement dun moins grand nombre de paramtres et de possder un effort de
commande moindre.

La solution retenue pour le projet consiste donc en la conception dun algorithme de suivi
de trajectoire de type NLGL. Comme il a pu tre constat prcdemment en observant les Fi-
gures 2a, 3a, 4a et 5a ; ce dernier repose sur le principe de navigation par points de cheminement 2
(waypoints). Les waypoints sont une srie de points qui lorsque relis par des droites constituent
la trajectoire devant tre suivie par lobjet command. Aucune limite nexiste pour son nombre.
titre dexemple, la trajectoire rectiligne prcdemment prsente est constitue dun nombre faible
de waypoints (gnrant de grands segments rectilignes entre chaque waypoint), tandis que celle
spirale est forme dun nombre lev de waypoints (produisant de petits segments rectilignes entre
chaque waypoint). En gnral, un nombre lev de waypoints est seulement ncessaire lorsque la
trajectoire devant tre suivie comporte des courbures ce qui nest normalement pas le cas pour
les drones dont les missions se limitent souvent partir dun point A afin de rejoindre un point B.

En somme, la synthse de cet algorithme de suivi de trajectoire par waypoints de type


NLGL constitue lobjectif principal du projet et son fonctionnement sera valid laide dessais en
vol effectus sur le microquadricoptre Crazyflie 2.0 (CF2). Le fonctionnement de cet algorithme
est prsent en dtail la Section 2.6.1.

Modlisation paramtrique dun drone de type quadricoptre

La prsente section dtaille le modle mcanique du drone utilis dans le cadre du projet.
Afin de permettre la rutilisation du modle dvelopp, il a t convenu deffectuer une modlisation
paramtrique. Ainsi, la valeur physique de chaque lment considr dans la modlisation prend la
forme dun paramtre dont la valeur est facilement modifiable. De plus, une caractristique notable
de cette modlisation est quil est possible de modifier langle des bras du drone formant un X .
La nouvelle position du centre de gravit dans le cas dun drone ne possdant quun seul plan
de symtrie est ainsi prise en compte. Toutefois, le calcul de la matrice du tenseur dinertie nest
pas automatique : cette dernire doit tre dtermine exprimentalement en fonction du prototype
utilis. Ce modle a t baptis DP1 pour Drone Prototype 1.

En somme, cette section prsente la dfinition des paramtres de modlisation et les modles
dynamiques non linaires du groupe moteur et du drone, les quations cinmatiques et le modle
2. Le terme point de cheminement est la traduction propose par Transports Canada dans son glossaire
en ligne [11]. En pratique, lappellation anglaise waypoint est lexpression couramment utilise. Pour cette raison, le
terme anglais waypoint est retenu pour lcriture de ce prsent document.

Automne 2016 O. GOUGEON 10


PI3 Rapport des travaux accomplis

linaris complet incluant les moteurs et le drone. De toute vidence, cette partie constitue la
composante mathmatique principale de ce rapport.

Dfinition des paramtres de modlisation

Les diffrentes dfinitions des paramtres du groupe moteur et du drone sont prsentes
dans cette partie. Notamment, on y retrouve la dfinition des paramtres gomtriques associs
la configuration en croix et utiliss dans lenvironnement de simulation MATLAB /Simulink . De
plus, plusieurs autres paramtres physiques sont galement dfinis dans cette section.

2.3.1.1 Paramtres du groupe moteur

Dans le cadre du projet, un moteur lectrique courant continu est galement modlis.

La Figure 6 dtaille les paramtres physiques du moteur.

Ra
kT
Ra
ke
Jr Jp

ke
kD
kD

Figure 6 Paramtres physiques du moteur

La Tableau 3 prsente les dfinitions utilises pour les diffrents paramtres physiques du
moteur.

Tableau 3 Paramtres physiques du moteur

Paramtre Symbole Unit MATLAB /Simulink


Inertie du rotor Jr kg m2 jRotor_kgm2
Inertie de lhlice Jp kg m2 jPropeller_kgm2
Rsistance interne du moteur Ra W rMotor_ohm
Constante de la force lectromagntique ke V/(rad/s) kEMF_V_RPS
Constante de portance de lhlice kT N/(rad/s) kThrust_N_RPS
Constante de trane de lhlice kD N m/(rad/s) kDrag_Nm_RPS

Automne 2016 O. GOUGEON 11


PI3 Rapport des travaux accomplis

Il est noter que la force arodynamique de portance et le moment arodynamique de rsis-


tance sont modliss laide dune constante regroupant tous les paramtres relatifs la gomtrie
de lhlice et des proprits de lair. Pour les fins de ce projet, une modlisation arodynamique
rigoureuse de la force et du moment exercs par lhlice nest pas ncessaire puisque la gomtrie
de lhlice est constante et la variation des proprits de lair peut tre nglige en raison de vols
effectus avec de faibles variations daltitude.

2.3.1.2 Paramtres du drone

La gomtrie du drone retenue pour le projet est celle en croix (ou en X ) puisquelle
est prcisment celle quadopte le microquadricoptre Crazyflie 2.0 qui est utilis afin deffectuer
les essais en vol. Cette gomtrie est paramtrisable afin de permettre ventuellement dautres
personnes dsirant travailler avec le modle dvelopp deffectuer ltude de leffet du dimension-
nement sur le contrle et la stabilit du drone. Il est noter que ladite tude dpasse le cadre du
projet prsent dans ce rapport.

La Figure 7 dtaille les paramtres gomtriques du drone ainsi que ceux de nature physique
associs aux forces et moments principaux agissant sur le corps solide.

" Direction de vol principale "

xb = xg

T2 m m T1
2 1

!2 !1
LF
zg
yg
M

z yb
b
LA

!3 !4
3 4

T3 m m T4

Figure 7 Gomtrie et paramtres du drone

Automne 2016 O. GOUGEON 12


PI3 Rapport des travaux accomplis

La Tableau 4 prsente les dfinitions utilises pour les paramtres gomtriques et physiques
du drone.

Tableau 4 Paramtres gomtriques et physiques du drone

Paramtre Symbole Unit MATLAB /Simulink


Matrice du tenseur dinertie exprime dans Rb Ib kg m2 bodyInertia_kgm2
Masse de la charge utile M kg mPayload_kg
Masse dun moteur m kg mMotor_kg
Angle de dviation entre les bras et laxe xb deg sigma_deg
Longueur du bras avant LF m lForward_m
Longueur du bras arrire LA m lAfter_m

Deux repres peuvent tre utiliss afin de caractriser le drone (Figure 7) :

Rg = (Og ; xg , yg , zg ) : repre gomtrique plaant lorigine du repre Og au point din-


tersection des bras avants et arrires et les axes xg , yg et zg tels que prsents la
Figure 7 ;
Rb = (Ob ; xb , yb , zb ) : repre objet ou body plaant lorigine du repre Ob au centre de
gravit du corps rigide et les axes xb , yb et zb tels que prsents la Figure 7.

Ainsi, le repre gomtrique Rg permet de positionner naturellement les moteurs par rapport
au point dintersection alors que le repre objet Rb est utilis afin de caractriser mathmatiquement
la dynamique propre au quadricoptre. Les deux rfrentiels suivent la norme NED (north east
down). Ces derniers sont illustrs la Figure 7.

2.3.1.2.1 Calcul du centre de gravit

On dfinit le vecteur de la position de chaque moteur et de la charge utile comme suit :

pgi/Og : vecteur projet dans Rg de la position dapplication du poids du moteur mi go


(et de la force Tbi ) et celle du poids de la charge utile M go .

N.B. Les indices 1, 2, 3 et 4 reprsentent chacun des quatre moteurs, tandis que lindice 5
reprsente la charge utile. Ces indices sont dfinis la Figure 7.

Automne 2016 O. GOUGEON 13


PI3 Rapport des travaux accomplis

Les vecteurs projets dans Rg des positions pgi/Og sont :

S Tg S Tg S Tg S Tg S Tg
LF c LF c LA c LA c 0
W X W X W X W X W X
pg1/Og ULF s V , p2/Og = ULF s V , p3/Og = ULA s V , p4/Og = U LA s V et p5/Og = U0V .
=W X g W X g W X g W X g W X

0 0 0 0 0
(1)

N.B. Dans ce rapport, la prsente nomenclature est applique : cx := cos x et sx := sin x.

Puis, les grandeurs scalaires des lments massiques mi sont :

m1 = m, m2 = m, m3 = m, m4 = m et m5 = M . (2)

Le vecteur projet dans Rg du centre de gravit du drone sobtient donc comme suit :

5
q S 2m(L L ) cos Tg
pgi/Og mi
F A
W 4m+M X
i=1
pgCG/Og = 5
=W
U 0 X .
V (3)
q
mi 0
i=1

Finalement, les positions des lments i peuvent tre redfinies dans Rb en appliquant une
translation vers le bas :

pbi/Ob = pgi/Og pgCG/Og . (4)

Modles dynamiques du groupe moteur et du drone

Les modles mathmatiques utiliss dans la modlisation dynamique des moteurs et du drone
sont prsents dans cette section.

2.3.2.1 Modle dynamique du groupe moteur en rotation

En partant de lquation de Newton (5) et en considrant le degr de libert contenu sur


laxe de rotation du rotor, on obtient le systme suivant :


J = M (5)

Automne 2016 O. GOUGEON 14


PI3 Rapport des travaux accomplis

o J est linertie totale de rotation des parties rotatives du moteur, est lacclration
q
angulaire de ces parties rotatives et M est la somme de tous les moments externes appliqus sur
ces parties rotatives.

Le modle retenu considre linertie de rotation du rotor Jr et celle de lhlice Jp . Linertie


totale des parties rotatives du moteur est donc donne par : Jm = Jr + Jp . De plus, la vitesse
angulaire du rotor i est la mme que celle de lhlice i et cette vitesse est note i . Enfin, on
considre trois couples exercs sur les parties rotatives du moteur :

ke : couple lectrique d lapplication dun diffrentiel de potentiel lectrique ;


Ra : couple mcanique d la rsistance interne du moteur ;
kD : couple arodynamique d linteraction entre lhlice et latmosphre.

En insrant ces derniers rsultats dans lquation (5) et en tenant compte du sens de rotation
de chacun de ces couples, on obtient :

1 2
Jm i = ke Ra kD . (6)
i

Finalement, on obtient le modle dynamique du moteur i suivant :

ke Vi ke 2 i
Jm i = kD i 2 (7)
Ra Ra

o Vi est la tension applique lentre du moteur i et est exprime en volts.

2.3.2.1.1 Adaptation du modle du groupe moteur pour le CF2

la section prcdente, le modle dynamique complet dun moteur lectrique courant


continu a t dvelopp. Ce modle prend en entre la tension applique aux bornes Vi (en volts)
du moteur i et retourne en sortie la vitesse de rotation angulaire i de larbre du moteur i (en
RPM). De plus, ce modle ncessite la connaissance de plusieurs paramtres de natures physique,
lectrique et arodynamique propres au moteur lui-mme et son hlice (Tableau 3).

Or, dans la pratique, lidentification prcise de ces paramtres demeure une tche plutt
difficile et requiert la fabrication dun banc dessai adapt spcifiquement au moteur dont lon
souhaite faire lidentification des paramtres. Pour remdier ce problme, il est dusage de procder
de manire exprimentale en faisant une caractrisation directe de la relation entre lentre et la
sortie du moteur. Cette mthode est prsente en dtail dans [12].

Ainsi, selon la mthode prsente dans [12], il est possible de considrer la relation linaire

Automne 2016 O. GOUGEON 15


PI3 Rapport des travaux accomplis

suivante entre lentre Ui et la sortie i du moteur i :

i = a Ui + b (8)

i : grandeur scalaire de la vitesse angulaire du moteur i exprime en RPM (rotation par


minute) ;
a : grandeur scalaire de la constante de conversion proportionnelle entre lentre Ui et la
sortie i exprime en RPM/PWM ;
Ui : grandeur scalaire de la tension applique au moteur i exprime en PWM (pulse-width
modulation ou modulation de largeur dimpulsions) ;
b : grandeur scalaire de la constante de conversion dcale entre lentre Ui et la sortie
i exprime en RPM.

Ainsi, les nouvelles entre et sortie du moteur i sont respectivement Ui et i . Puis, les
constantes a et b de la relation linaire sont dtermines exprimentalement.

2.3.2.2 Modles dynamiques du drone

Le modle mcanique du drone utilise la librairie 6DOF (Euler Angles) intgre Simulink [13].
Deux repres sont utiliss dans cette librairie :

Rb = (Ob ; xb , yb , zb ) : repre objet ou body plaant le centre de gravit du corps rigide de


lobjet Ob au centre du repre Rb et les axes xb , yb et zb tels que prsents la Figure 7 ;
Ro = (Oo ; xo , yo , zo ) : repre inertiel NED (North-East-Down) de la Terre plate ou Local
Tangent Plane plaant le centre du repre Oo en un point arbitraire la surface de la
Terre et les axes xo , yo et zo respectivement orients vers le Nord gographique, lEst
gographique et normal lellipsode de rfrence pointant vers lintrieur de la Terre.

Ainsi, le repre objet Rb est utilis afin de caractriser la dynamique propre au quadricoptre
alors que le repre inertiel Ro permet de situer ce premier repre dans un espace de rfrence. Les
deux rfrentiels suivent la norme NED. Ces derniers sont illustrs la Figure 8.

2.3.2.2.1 Modle dynamique du drone en translation

Lquation vectorielle du mouvement en translation dans Rb est donne comme suit :

A B
Fb = mtot b
VCG/o
b
+ bb/o VCG/o
b
(9)

Automne 2016 O. GOUGEON 16


PI3 Rapport des travaux accomplis

Yb

$FOUSFEF HSBWJU: 0b

0o
Yo
[b
Zb

Zo

[o

Figure 8 Illustration des rfrentiels utiliss dans le modle 6DOF (Euler Angles)

S Tb S Tb S Tb
Fx u p
W X W X W X
F =W
UFy V , VCG/o = U v V et b/o = Uq V
b X b W X b W X (10)
Fz w r

avec

Fb : vecteur projet dans Rb des forces externes exerces sur le corps rigide du drone ;
mtot : grandeur scalaire de la masse totale du corps rigide ;
VCG/o
b : vecteur projet dans Rb de la vitesse du centre de gravit du corps rigide
dans Ro ;
bb/o : vecteur projet dans Rb de la vitesse de rotation instantane de Rb par rapport
Ro .

N.B. Tous
3 les vecteurs
4 sont dfinis conformment la rgle de la main droite dans la base
# # #
orthonorme i , j , k du repre objet NED.

Pour la modlisation des forces externes (voir la Figure 7), on considre seulement les forces
propulsives Tbi des moteurs et la force gravitationnelle associe la masse totale du drone mtot qui
inclut la masse de la charge utile M et celles des quatre moteurs m (mtot = M + 4m). Pour ce
modle, on nglige les forces arodynamiques de trane du corps rigide, les effets arodynamiques
non linaires (p. ex. : effet de sol) ainsi que le poids des autres composantes. On obtient donc le
vecteur des forces externes dans le repre objet suivant :

4

F = mtot Eg +
b o
Tbi (11)
i=1

Automne 2016 O. GOUGEON 17


PI3 Rapport des travaux accomplis

S T S To S Tb
c c c s s 0 0
W X W X W X
E=W
U s s c c s s s s + c c V , g = U 0 V et Ti = U
s c X o W X b W 0 X V (12)
c s c + s s c s s s c c c g0 kT i 2

avec

E : matrice dEuler ou Direction Cosine Matrix (DCM) permettant le passage Ro Rb ;


go : vecteur projet dans Ro de lacclration gravitationnelle terrestre o g0 est lacc-
lration de la pesanteur moyenne la surface de la Terre (9.80665 m/s2 ) ;
Tbi : vecteur projet dans Rb de la force arodynamique de pousse dveloppe par chacun
des quatre moteurs.

Ainsi, le vecteur projet dans Rb des forces externes est :

S Tb
mtot g0 sin
W X
Fb = W
U mtot g0 sin cos X .
V (13)
mtot g0 cos cos kT (1 2 + 2 2 + 3 2 + 4 2 )

En somme, la dynamique du drone en translation considre dans la modlisation est :

Y
_
_mtot g0 sin = mtot (u + qw rv ), selon laxe xb
_
_
]
mtot g0 sin cos = mtot (v + ru pw ), selon laxe yb (14)
_
_
_
_
[m g cos cos k ( 2 + 2 + 2 + 2 ) = m (w + pv qu), selon laxe zb .
tot 0 T 1 2 3 4 tot

2.3.2.2.2 Modle dynamique du drone en rotation

Lquation vectorielle du mouvement en rotation dans Rb est donne comme suit :

3 4
M =I
b bb
bb/o + bb/o I b
bb/o (15)

Automne 2016 O. GOUGEON 18


PI3 Rapport des travaux accomplis

S Tb S Tb
Mx Ixx Ixy Ixz
W X W X
Mb = W
UMy V et I = UIyx Iyy
X b W Iyz X
V (16)
Mz Izx Izy Izz

avec

Mb : vecteur projet dans Rb des moments externes exercs sur le corps rigide du drone ;
Ib : matrice exprime dans Rb du tenseur dinertie du corps rigide.

Pour la modlisation des moments externes (voir la Figure 7), on considre seulement les
moments dus aux bras de levier des pousses Tbi appliques par les moteurs, les couples de rac-
tions des moteurs bi (couple arodynamique d la trane cause par linteraction entre lhlice
et latmosphre ; et linertie de rotation des pices rotatives des moteurs) ainsi que les moments
gyroscopiques. On nglige galement les effets arodynamiques non linaires. On obtient donc le
vecteur des moments externes dans le repre objet suivant :

Q R Q R
4
4
4

Mb = apb
i/Ob Tbi b + bi + a bi b bb/o (17)
i=1 i=1 i=1

S Tb
S Tb S Tb
xi 0 0
W X
W X W 0 X W X
pi/Ob = U yi V , i = W
b W X b
W 4
X et b = W
X i U 0 X
V (18)
Uq 2 V
zi ( kD i Jm i ) Jm i
i=1

avec

pbi/Ob : vecteur projet dans Rb de la position dapplication de la force Tbi ;


bi : vecteur projet dans Rb des moments de trane et dinertie des moteurs ;
bi : vecteur projet dans Rb associ aux moments gyroscopiques des moteurs.

N.B. Dans la dfinition des vecteurs bi et bi , le signe indique le sens de rotation


propre la vitesse i . Ces sens sont indiqus la Figure 7.

Automne 2016 O. GOUGEON 19


PI3 Rapport des travaux accomplis

Ainsi, le vecteur projet dans Rb des moments externes est :

S 3 4 Tb
W kT sin LF (1 2 2 ) LA (3 2
2 4 2) + Jm qW X
W 1 2 X
W X
Mb = W kT cos (M+M LF )(1 2 +2 2 )(M+M LA )(3 2 +4 2 ) X (19)
W J pW X
U 4m+M m V
kD (1 2 2 2 + 3 2 4 2 ) + Jm (1 2 + 3 4 )

W := 1 2 + 3 4 et M := 2m(LF + LA ) . (20)

En somme, la dynamique du drone en rotation considre dans la modlisation est :

Y 3 4
_ 2 2 2 2
_
_
_kT sin LF (1 2 ) LA (3 4 ) + Jm qW = Ixx p + (Izz Iyy )qr, selon laxe xb
_
_ 1 2
]
kT cos (M+M LF )(1 2 +2 2 )(M+M LA )(3 2 +4 2 )
_
_ 4m+M Jm pW = Iyy q + (Ixx Izz )rp, selon laxe yb
_
_
_
_
[kD (1 2 2 2 + 3 2 4 2 ) + Jm (1 2 + 3 4 ) = Izz r + (Iyy Ixx )pq, selon laxe zb .
(21)

N.B. Dans lquation 21, on remarque que tous les moments dinertie croiss sont nuls. En
effet, pour le modle dvelopp et prsent la Figure 7 et ne possdant quun seul plan de symtrie
en (XOZ)b , le moment dinertie crois Ixz nest pas nul en raison de labsence dun plan de symtrie
en (YOZ)b . Toutefois, afin dallger la prsentation des quations du modle dynamique complet,
il a t dcid dannuler tous les moments dinertie croiss. Ce choix est justifi par le fait que le
prototype qui est utilis afin deffectuer les essais en vol le Crazyflie 2.0 possde effectivement
deux plans de symtrie, soit en (XOZ)b et (YOZ)b . Cela a comme effet dannuler tous les moments
dinertie croiss.

quations cinmatiques

Jusqu prsent, les quations diffrentielles des 6 tats (ou degrs de libert) relis au
repre body du drone ont t prsentes : u, v, w, p, q et r. Ces quations permettent de dcrire les
dynamiques en translation et rotation du drone par rapport son propre rfrentiel.

Pour complter la modlisation mathmatique du drone, il est ncessaire de considrer les


quations de transformation entre les repres body et inertiel. Ces deux quations supplmentaires
permettent de rcuprer les 6 tats relis au repre inertiel : pN , pE , pD , , et . Ces dernires

Automne 2016 O. GOUGEON 20


PI3 Rapport des travaux accomplis

dcrivent la dynamique du repre body du drone par rapport au repre inertiel de la Terre plate ou
flat Earth reference frame.

Deux quations cinmatiques sont ncessaires afin de dcrire ces 6 tats supplmentaires :
celle de navigation et celle dEuler.

2.3.3.1 quation cinmatique de navigation

Lquation cinmatique de navigation permet de positionner en translation le repre body


du drone par rapport au repre inertiel de la Terre plate. Son quation est la suivante :

pCG/o
o o
= E VCG/o
b
(22)

S To
pN
W X
poCG/o = W X
U pE V (23)
pD

avec

poCG/o : vecteur des positions North, East et Down du repre body dans le repre inertiel
de la Terre plate.

2.3.3.2 quation cinmatique dEuler

Lquation cinmatique dEuler permet de positionner en rotation le repre body du drone


par rapport au repre inertiel de la Terre plate. Son quation est la suivante :

= W1 b (24)
b/o

S T S T
1 sin tan cos tan
W X W X
U V et W = U0 cos sin X (25)
1
=W X W
V
0 sin / cos cos / cos

avec

Automne 2016 O. GOUGEON 21


PI3 Rapport des travaux accomplis

: vecteur des angles dEuler dfinissant les positions angulaires du repre body par
rapport au repre inertiel de la Terre plate ;
W1 : matrice de transformation permettant de passer du repre body au repre inertiel.

quilibrage et linarisation du modle complet du drone

la section prcdente, la modlisation complte du modle non linaire dun quadricoptre


a t prsente. Au total, ce modle est constitu dune quation scalaire et de quatre autres
quations vectorielles chacune tant constitue de trois quations scalaires. Le modle complet est
donc constitu de treize quations scalaires que voici :

quation 8 : quation scalaire de la relation entre lentre du moteur Ui en PWM et sa


sortie i en RPM pour le Crazyflie 2.0 ;
quation 14 : quation vectorielle du mouvement en translation donnant les trois qua-
tions scalaires dcrivant la dynamique des tats u, v et w dans Rb ;
quation 21 : quation vectorielle du mouvement en rotation donnant les trois quations
scalaires dcrivant la dynamique des tats p, q et r dans Rb ;
quation 22 : quation vectorielle de navigation donnant les trois quations scalaires
dcrivant les positions du repre Rb notes pN , pE et pD dans Ro ;
quation 24 : quation vectorielle de navigation donnant les trois quations scalaires
dcrivant les positions angulaires du repre Rb notes , et par rapport au repre Ro .

Toutes ces quations peuvent tre prsentes sous la forme dun modle dtat invariant dans
le temps prenant la forme suivante :

Y
_
_x = f (x, u)
_
_
_
_ 5 6
]
x := u v w p q r pN pE p D (26)
_
_ 5 6
_
_
_
[u := U1
_ U2 U3 U4

o x et u sont respectivement les vecteurs des tats et des entres.

2.3.4.1 quilibrage du modle complet du drone

Ainsi, le processus de linarisation consiste linariser toutes les quations autour dune
condition de vol dite lquilibre (note par lindice e). Pour un quadricoptre, cette position
dquilibre consiste en un vol stationnaire (hover) pour lequel il existe un duo de vecteurs dtats
xe et dentres ue annulant toutes les variations des tats composant le vecteur xe . Le problme

Automne 2016 O. GOUGEON 22


PI3 Rapport des travaux accomplis

dquilibre prend alors la forme suivante :

Y
_
_xe = f (xe , ue ) = 0
_
_
_
_ 5 6
]
xe := ue ve we pe qe re pN e pE e pD e e e e (27)
_
_ 5 6
_
_
_
[ue := U1e
_ U2e U3e U4e .

Le problme revient alors rsoudre lquation vectorielle f (xe , ue ) = 0. Or, dans le cas
prcis du quadricoptre, la rsolution de cette quation est simplifie puisquil peut tre dtermin
de manire intuitive que la plupart des tats sont nuls lquilibre. En effet, le problme dfini par
le Systme dquations 27 admet les solutions triviales suivantes :

Y
_
]ue = ve = we = pe = qe = re = e = e = 0
(28)
_
[ Uie = 0 i {1, 2, 3, 4}.

Il est noter que les valeurs des tats lquilibre pN e , pE e , pD e et e nont aucun impact
sur lquilibre du systme. En effet, ces tats ne servent qu positionner un endroit prcis le
repre Rb dans le repre Ro . De plus, cela demeure vrai dans la mesure o lhypothse ngligeant
la variation des proprits atmosphriques pour de petites variations en altitude est maintenue.

Lquilibrage du systme est effectu laide du logiciel Mathematica . Le programme utilis


afin de calculer les valeurs des entres Uie lquilibre est prsent lAnnexe A. On trouve le
rsultat suivant :


mtot g0
2b + kT
U1e = U2e = U3e = U4e = . (29)
2a

N.B. Afin de simplifier la prsentation, seulement la solution pour le cas spcifique appliqu
au microquadricoptre Crazyflie 2.0 o LF = LA est prsente.

2.3.4.2 Linarisation du modle complet du drone

Le processus de linarisation consiste exprimer la dynamique non linaire donne par le


Systme dquations 26 en un nouveau systme dcrivant linairement la dynamique autour du

Automne 2016 O. GOUGEON 23


PI3 Rapport des travaux accomplis

point dquilibre retenu (vol stationnaire). Ce dernier prend la forme suivante :

Y
_
_ x = A x + B u
_
_
_
_ 5 6
]
x := Du Dv Dw Dp Dq Dr DpN DpE DpD D D D (30)
_
_ 5 6
_
_
_
_
[ u := DU1 DU2 DU3 DU4

o x et u sont respectivement les vecteurs reprsentant la variation des tats x et des


entres u par rapport leurs valeurs lquilibre respectives xe et ue .

Le calcul des matrices jacobiennes A et B seffectue de la manire suivante :

- -
f -- f --
A := - Rnn et B := Rnm (31)
x xe ,ue u -xe ,ue

o n est le nombre dtats du vecteur x et m est le nombre dentres du vecteur u.

La linarisation du systme est effectue laide du logiciel Mathematica . Le programme


utilis afin de calculer les matrices jacobiennes A et B est prsent lAnnexe A. On trouve le
rsultat suivant :

S T S T
0 0 0 0 0 0 0 0 0 0 g0 0 0 0 0 0
W X W X
W0 0 0 0 0 0 0 0 0 g0 0 0X W 0 0 0 0 X
W X W X
W X W X
W0 0 0 0 0 0 0 0 0 0 0 0X
X W g0 g0 g0 g0 X
W W X
W X W kT L kT L

kT L

kT L X
W0 0 0 0 0 0 0 0 0 0 0 0X
X W X
W W 2I 2Ixx 2Ixx 2Ixx
X
W X W kT Lxx
kT L X
W0 0 0 0 0 0 0 0 0 0 0 0X W kT L
kT L
X
W X W 2I yy 2Iyy
2I
yy 2Iyy X
W X 2 W kD X
W0 0 0 0 0 0 0 0 0 0 0 0X a W kD kD
Izz kD
Izz X
A=W X et B = W Izz Izz X
W
W1 0 0 0 0 0 0 0 0 0 0
X
0X 900 WW 0 0 0 0 X
X
W X W X
W0 1 0 0 0 0 0 0 0 0 0 X
0X W X
W W 0 0 0 0 X
W X W X
W0 0 1 0 0 0 0 0 0 0 0 0X
X W X
W W 0 0 0 0 X
W X W X
W0 0 0 1 0 0 0 0 0 0 0 0X W 0 0 0 0 X
W X W X
W X W X
W0 0 0 0 1 0 0 0 0 0 0 0X W 0 0 0 0 X
U V U V
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
(32)

o := kT .
mtot g0

N.B. Afin de simplifier la prsentation, seulement la solution pour le cas spcifique appli-
qu au microquadricoptre Crazyflie 2.0 o LF = LA = L et = 45 est prsente. De plus,

Automne 2016 O. GOUGEON 24


PI3 Rapport des travaux accomplis

lapplication numrique avec les paramtres propres au CF2 est prsente la Section 2.4.3.

Mesure et identification des paramtres physiques du CF2

Le Crazyflie 2.0 est un microquadricoptre commercialis par Bitcraze AB (voir la Figure 9).
Il a t conu afin doffrir un prototype de dveloppement faible cot aux chercheurs, tudiants et
amateurs dsirant tester leurs propres algorithmes de contrle. En plus dtre utilis par plusieurs
universits travers le monde, le CF2 est notamment utilis par de grands acteurs tels que la
NASA et le MIT. Le fait quil soit si petit et lger lui donne une inertie trs faible qui le rend
trs robuste face aux crasements. De plus, il existe normment de documentation concernant
le CF2 puisque ses crateurs en ont fait un projet compltement open-source. Bref, pour toutes
ces raisons, il demeure ce jour la rfrence en termes de prototype de dveloppement sur un
microquadricoptre. Sa fiche technique complte peut tre retrouve sur le web [14].

Figure 9 Photo du Crazyflie 2.0

Paramtres issus de la littrature

Grce toute la documentation qui existe dj concernant le Crazyflie 2.0, il na pas t n-


cessaire de procder une identification complte et rigoureuse de tous ses paramtres. Le Tableau 5
prsente les diffrents paramtres qui ont pu tre extraits des rfrences [12] et [15].

Automne 2016 O. GOUGEON 25


PI3 Rapport des travaux accomplis

Tableau 5 Paramtres physiques du Crazyflie 2.0 retrouvs dans la littrature

Paramtre Symbole Valeur Unit


Inertie totale du moteur (rotor et hlice) Jm 4.6568 108 kg m2
Constante de portance de lhlice kT 3.6261 1010 N/(rad/s)
Constante de trane de lhlice kD 7.9379 1012 N m/(rad/s)
Constante de conversion proportionnelle a 4.0703 103 RPM/PWM
Constante de conversion dcale b 2.6850 101 RPM

Modlisation 3D du Crazyflie 2.0

Afin dobtenir des paramtres se rapprochant le plus fidlement du prototype utilis en


laboratoire, il a t dcid deffectuer une modlisation 3D du Crazyflie 2.0 laide du logiciel
CATIA . Des fichiers de base de certaines pices ont pu tre rcuprs dans [16], puis les fichiers
manquants ont t modliss. laide dun pied coulisse ( 0.005 mm), il a t possible de vrifier
la mesure de chacune des composantes du CF2. De plus, le CF2 a t dsassembl en ses plus petites
pices lmentaires, puis elles ont t peses prcisment avec une balance lectronique ( 0.001 g).
Les mesures brutes des composantes massiques du CF2 son prsentes la Figure 39 de lAnnexe B.
Finalement, les masses volumiques de chacune des composantes ont t calcules et appliques
aux lments massiques du modle CATIA 3D. La Figure 40 de la mme annexe prsente les
proprits structurelles des lments massiques obtenues avec CATIA . Le CAD (computer-aided
design) obtenu est prsent la Figure 10.

Figure 10 Rendu du Crazyflie 2.0 modlis avec CATIA

Cette approche a ainsi permis de mesurer avec prcision la longueur des demi-bras ainsi que
la masse totale du prototype utilis en laboratoire. De plus, la modlisation 3D a permis destimer
la valeur du tenseur dinertie. Les valeurs recueillies sont prsentes dans la Tableau 6.

Automne 2016 O. GOUGEON 26


PI3 Rapport des travaux accomplis

Tableau 6 Paramtres physiques du Crazyflie 2.0 mesurs ou estims

Paramtre Symbole Valeur Unit


Longueur dun demi-bras L 4.6098 102 m
Masse totale mtot 3.1310 102 kg
Moment dinertie selon laxe xb Ixx 1.6220 105 kg m2
Moment dinertie selon laxe yb Iyy 1.6450 105 kg m2
Moment dinertie selon laxe zb Izz 3.0660 105 kg m2

Application numrique des paramtres du CF2 dans le modle linaris

Ainsi, lapplication numrique des paramtres prsents aux Tableaux 5 et 6 permet dobtenir
les entres lquilibre suivantes :

U1e = U2e = U3e = U4e = 39 038 PWM. (33)

Puis, lapplication numrique donne les matrices jacobiennes suivantes :

Automne 2016 O. GOUGEON 27


PI3 Rapport des travaux accomplis

S T
0 0 0 0 0 0 0 0 0 0 9.80665 0
W X
W0 0 0 0 0 0 0 0 0 9.80665 0 0X
W X
W X
W0 0 0 0 0 0 0 0 0 0 0 0X
W X
W X
W0 0 0 0 0 0 0 0 0 0 0 0X
W X
W X
W0 0 0 0 0 0 0 0 0 0 0 0X
W X
W X
W0 0 0 0 0 0 0 0 0 0 0 0X
A=W
W
X
X (34)
W1 0 0 0 0 0 0 0 0 0 0 0X
W X
W0 1 0 0 0 0 0 0 0 0 0 0X
W X
W X
W0 0 1 0 0 0 0 0 0 0 0 0X
W X
W X
W0 0 0 1 0 0 0 0 0 0 0 0X
W X
W X
W0 0 0 0 1 0 0 0 0 0 0 0X
U V
0 0 0 0 0 1 0 0 0 0 0 0
S T
0 0 0 0
W X
W 0 0 0 0 X
W X
W X
W0.01504 0.01504 0.01504 0.01504X
W X
W X
W0.94650 0.94650 0.94650 0.94650X
W X
W X
W 0.93327 0.93327 0.93327 0.93327X
W X
W X
W 0.33628 0.33628 0.33628 0.33628X
B=W
W X
X (35)
W 0 0 0 0 X
W X
W 0 0 0 0 X
W X
W X
W
W 0 0 0 0 X
X
W X
W
W 0 0 0 0 X
X
W X
W
U 0 0 0 0 X
V
0 0 0 0

Le calcul des valeurs propres de la matrice A de lquation 34 donne douze valeurs nulles.
Selon le critre de stabilit pour un systme linaire, on conclut donc que le systme est la limite de
linstabilit, donc instable. Cela est normal puisquun quadricoptre ne possde aucune dynamique
naturellement stable comme celle dun avion par exemple. Cela justifie donc la ncessit de crer
des boucles de contrle afin de stabiliser le systme. Celles-ci sont prsentes la Section 2.6.

Cration dun environnement de simulation

Une fois les modles non linaire et linaire dvelopps, il est ncessaire de mettre en place
un environnement de simulation. Ce dernier se compose de scripts issus du programme MATLAB
et de schmas-blocs issus du programme Simulink .

Automne 2016 O. GOUGEON 28


PI3 Rapport des travaux accomplis

Le programme MATLAB est utilis afin daccomplir deux tches. Premirement, il permet
de garder en mmoire tous les paramtres du modle prcdemment dfinis la Section 2.4 ainsi que
toutes les quations qui y sont rattaches. Finalement, il est galement utilis comme une puissante
calculatrice afin dvaluer la valeur de tous les gains des contrleurs ncessaires la synthse des
algorithmes prsente la Section 2.6.

Le programme Simulink permet quant lui de rsoudre numriquement les quations dif-
frentielles du modle non linaire dvelopp. Ce programme facilite grandement leur rsolution
puisquil permet d crire intuitivement les quations sous forme schmatique en reliant chacune
dentre elles avec des liens virtuels nomms signaux. De fait, cest cet outil qui permet de simu-
ler le comportement dynamique du prototype dvelopp et dvaluer le bon fonctionnement de la
stratgie mise en place afin deffectuer le suivi dune trajectoire par waypoints. Il permet galement
dvaluer les performances de ladite stratgie.

titre dexemple, le schma-bloc de lenvironnement de simulation du modle non linaire


du CF2 est prsent la Figure 11. Dans lordre logique dopration, ses principales composantes
sont :

Gomtrie : bloc qui importe du programme MATLAB tous les paramtres gomtriques
et physiques propres au modle non linaire du CF2 (Tableaux 5 et 6) ;
Modle mathmatique : bloc o sont dfinies toutes les quations rgissant la dynamique
non linaire du CF2 et o sont gnrs les tats du modle (quations 14, 21, 22 et 24) ;
Capteurs : bloc qui simule la mesure (avec ou sans bruit) de certains tats du drone
normalement mesurables avec les capteurs appropris ;
Estimateurs dtats : bloc qui reconstruit les tats manquants laide de relations
connues, dobservateurs, destimateurs ou bien encore de filtres (p. ex. : filtre de Kal-
man) ;
Ordinateur de vol : bloc o sont dfinis tous les algorithmes de contrle et de guidage
ainsi que la logique de transition des contrleurs gnrant les valeurs correctrices des puis-
sances appliques aux moteurs devant tre envoyes au drone afin de suivre les rfrences
commandes ;
Moteurs : bloc qui effectue la conversion des commandes des moteurs exprimes en PWM
vers des RPM qui sont ensuite transmises au modle mathmatique non linaire (qua-
tion 8) ;
Centre de contrle : bloc qui offre une interface daffichage permettant de visualiser en
temps rel lvolution des tats pendant la simulation notamment le mouvement du
drone en 3D.

Automne 2016 O. GOUGEON 29


PI3 Rapport des travaux accomplis

" Direction de vol principale "

xb = xg

2 m m 1

2 1

!2 !1
LF
zg
yg
M

z yb
b
LA

!3 !4
3 4

3 m m 4

Centre de contrle Gomtrie

U_PWM Omega_RPM x_sys y_sys x_hat_sys

Ordinateur de vol Moteurs Modle mathmatique Capteurs Estimateurs d'tats

Figure 11 Environnement de simulation Simulink pour le modle non linaire du CF2

Synthse des lois de contrle

Afin de doter le Crazyflie 2.0 de la capacit de suivre une trajectoire prcise en naviguant
laide de waypoints, il est ncessaire de synthtiser de nombreuses lois de contrle. Ces dernires
sont constitues des quatre lments suivants que lon retrouve la Figure 12 :

1. Lalgorithme de guidage NLGL : seulement la sortie NLGL du schma-bloc primitif est visible ;
2. Les contrleurs : ceux embarqus sur le CF2 sont reprsents par les blocs bleus, tandis que
ceux oprant extrieurement sous Simulink sont verts ;
3. La logique de contrle : elle est reprsente par les blocs jaunes ;
4. Les matrices de passage : celle du changement de repre inertial2body est illustre en rouge,
celle du changement des entres Du = T\Dv est de couleur orange, celle des changements
entre les emplacements des moteurs CF2 DP1 et celle des changements entre les repres
NED ENU (voir la Figure 19 pour les deux dernires matrices de passage tout justement
mentionnes).

vrai dire, ces quatre lments constituent la pice matresse et originale du projet. En
effet, une mthode unique a t dveloppe en se basant sur des solutions existantes. La Figure 12

Automne 2016 O. GOUGEON 30


dpN_c dpE_c v_c_m_s phi_c_deg u_c_m_s theta_c_deg dpN_c dpE_c
controllerIn controllerIn controllerIn Fz controllerIn controllerIn
controllerOut controllerOut controllerIn controllerOut controllerIn controllerOut controllerOut controllerOut

pN controller pE controller v controller u controller pU controller CARLOS pN controller pE controller


OLD OLD OLD OLD OLD OLD
v2 v2 v1 v1

PI3 Rapport des travaux accomplis

prsente le schma-bloc Simulink constituant ces trois derniers lments. Le premier algorithme
soit celui de guidage est gnr dans un schma-bloc plac en amont de celui tout justement
mentionn.
Simulink Outboard Controllers & Logic Crazyflie Inboard Controllers & Transformation

pU_c_m pU_c_m
controllerIn Fz 1
Fz
controllerOut controllerIn

Takeoff & Landing Logic pU controller

v_c_m_s v_c_m_s
controllerIn phi_c_deg [v] phi_c_deg [v]
controllerOut controllerIn phi_c_deg

Logic [v] v controller

phi_c_deg [pN]
pN_c_m pN_c_m phi_c_deg dphi_c_deg_s dphi_c_deg_s
controllerIn dpN_c dpN_c phi_c_deg [pN] Mphi 1
1 Mphi
commands controllerOut controllerIn controllerOut controllerIn controllerOut controllerIn
commands controllerIn
Logic [pN] pN controller phi controller dphi controller
PWM1

2 Logic [phi]
NLGL
NLGL PWM2
controllerIn controllerOut controllerIn controllerOut inv(T_ENU)* u 1
controllerIn Dv Du u u_sat
u_PWM
Flight Mode Logic Saturation PWM3 Zero-Order
3
x_hat_sys Hold
x_hat_sys
Du = T\Dv
controllerIn Base Change: v2u PWM4
theta_c_deg theta_c_deg dtheta_c_deg_s dtheta_c_deg_s
pE_c_m pE_c_m
4
w_hat_sys controllerIn dpE_c dpE_c theta_c_deg [pE]
Mtheta 1
w_hat_sys Mtheta
controllerIn controllerOut controllerIn
controllerOut controllerIn
theta_c_deg [pE] theta controller dtheta controller Omega_ss_PWM
Logic [pE] pE controller u_e

inertial2body
u_c_m_s u_c_m_s controllerOut
controllerIn theta_c_deg [u] theta_c_deg [u]
controllerOut controllerIn

Logic [u] u controller Logic [theta]

psi_c_deg psi_c_deg dpsi_c_deg_s [psi] dpsi_c_deg_s [psi]dpsi_c_deg dpsi_c_deg_s


controllerIn Mpsi 1
Mpsi
controllerOut controllerIn controllerOut controllerIn controllerOut controllerIn

Logic [psi] psi controller Logic [dpsi] dpsi controller

Figure 12 Schma-bloc Simulink des lois de contrle du CF2

Synthse de lalgorithme de guidage NLGL

Comme il a t mentionn auparavant, lalgorithme de suivi de trajectoire NLGL retenu


utilise une mthode non linaire. Cette dernire est base sur le suivi dune droite de rfrence dfinie
par deux points nomms waypoints. De plus, lalgorithme choisi permet de suivre une trajectoire
dans un plan en 2D cest--dire selon les directions pE et pN du repre inertiel Ro de type ENU.
Cela veut dire quil est galement ncessaire de munir les lois de contrle dun contrleur en altitude
pU afin que le drone maintienne son altitude constante lors du suivi de la trajectoire. Dans [3], les
dfinitions suivantes des paramtres et variables de lalgorithme sont donnes (Figure 13) :

Si+1 : segment de trajectoire constitu du point initial Wi et du point final Wi+1 i


{0, 1, . . . , n 2, n 1} o n est le nombre total de segments de trajectoire ou encore bien
de waypoints visiter excluant celui de dpart ;
Wi = (xi , yi ) : waypoint dfinissant le point initial du segment de trajectoire Si+1 ;
Wi+1 = (xi+1 , yi+1 ) : waypoint dfinissant le point final du segment de trajectoire Si+1 ;
p = (x, y ) : position du drone dans le repre 2D xy Attention : ne pas confondre avec
la vitesse angulaire en roulis prcdemment dfinie ;
: orientation ou angle de lacet du drone dans le repre 2D xy ;

va = u2 + v 2 : vitesse du drone dans le repre 2D xy ;

Automne 2016 O. GOUGEON 31


PI3 Rapport des travaux accomplis

d = pq : erreur de dviation du suivi de la trajectoire soit le plus petit chemin parcourir


entre le segment de trajectoire Si+1 et la position du drone p (d est perpendiculaire
Si + 1 ) ;
q = (xq , yq ) : position du point dintersection entre les droites Si+1 et d Attention :
ne pas confondre avec la vitesse angulaire en tangage prcdemment dfinie ;
LOS : position angulaire de la droite du segment de trajectoire Si+1 par rapport laxe
x du repre 2D xy ;
L : rayon du cercle centr en p coupant le segment de trajectoire Si+1 en deux points
(s et s ) pour le cas o L > d tant le seul paramtre ajustable de lalgorithme de suivi
de trajectoire ;
s : point dintersection situ le plus prs de Wi+1 cest--dire en aval de la trajectoire
entre le cercle form par le rayon L et le segment Si+1 ;
s : point dintersection situ le plus prs de Wi cest--dire en amont de la trajectoire
entre le cercle form par le rayon L et le segment Si+1 ;
: position angulaire de la droite ps par rapport laxe x du repre 2D xy ;
: angle form par la droite ps et le vecteur vitesse va du drone ;
ulat : acclration latrale que subit le drone ;
c : commande gnre par lalgorithme de suivi de trajectoire NLGL soit la variation
commande de la vitesse angulaire de lacet du drone.

y
y 4FHNFOUEF Wi 1
USBKFDUPJSFSi 1
x
Wi 1 s
x
va

q sg

d va p
LOS
Wi L

Wi p
(a) Paramtres du problme de suivi de trajectoire (b) Dtermination des points virtuels des cibles s et s

Figure 13 Dfinitions des paramtres de lalgorithme NLGL [3]

Ainsi, pour une trajectoire (Wi et Wi+1 ) et des conditions initiales (p, et va ) donnes, le

Automne 2016 O. GOUGEON 32


PI3 Rapport des travaux accomplis

problme de suivi de trajectoire par waypoints consiste dterminer la commande c qui permet
au drone de demeurer align avec la trajectoire commande malgr les perturbations externes.
Cela revient donc minimiser lerreur du cap |LOS c |, puis faire tendre lerreur de dviation
d 0 lorsque le temps t . Pour ce faire, deux lments sont ncessaires : premirement,
le calcul de la commande c avec lalgorithme NLGL ; deuximement, un contrleur possdant une
boucle de rtroaction ngative afin dappliquer la commande calcule au drone.

Lalgorithme de suivi de trajectoire NLGL par waypoints permettant de calculer c est dfini
lAlgorithme 1. Cet algorithme possde un seul paramtre ajustable tant la longueur L du rayon
du cercle centr en p dont lintersection avec le segment de trajectoire parcourir Si+1 permet de
trouver la position du point dintersection s servant au calcul de la commande c . Dans [3], il est
dmontr quune grande valeur de L converge moins rapidement quune petite valeur. Toutefois,
dans le cas o L < d, il nexiste aucun point dintersection s. Cela a comme consquence de
gnrer un angle = /2 qui a pour effet de diriger le drone vers la direction orthogonale au
segment de trajectoire Si+1 . Les performances de convergence ne sont donc plus assures lorsque
L < d et cest pourquoi [3] recommande de prendre de grandes valeurs de L afin de toujours
assurer lexistence du point dintersection s. Enfin, il nexiste aucune mthode analytique prcise
afin de calculer la bonne valeur du paramtre L sinon que de procder par itrations laide de
simulations ou dessais en vol.

Algoritme 1 Algorithme de suivi dune ligne droite selon la mthode NLGL


1: function NLGL(Wi , Wi+1 , p , , va , L)
2: Dterminer : s = (xt , yt )
3: = atan2 (yt y, xt x)
4: =
5: ulat = 2va 2 sin ( ) /L
6: c = ulat /va
7: return c
8: end function

Le code MATLAB complet permettant de calculer la variation commande de la vitesse


angulaire de lacet du drone c est donne lAnnexe C.

Finalement, le contrleur permettant de faire tendre la vitesse angulaire de lacet c


est de type PID et il est prsent la section suivante.

Automne 2016 O. GOUGEON 33


PI3 Rapport des travaux accomplis

Synthse des contrleurs

Comme il a t mentionn auparavant, il existe deux classes de contrleurs. Dabord, il y a


ceux qui oprent sur le poste central sous Simulink : blocs verts de la Figure 12 et tape 4 de
la Figure 20. Puis, il y a ceux qui oprent lintrieur mme du microcontrleur embarqu sur le
Crazyflie 2.0 : blocs bleus de la Figure 12 et tape 7 de la Figure 20.

Chacun de ces contrleurs est de la forme PID suivante :

t
de(t)
u ( t ) = K p e ( t ) + Ki e( )d + Kd (36)
0 dt

o Kp , Ki et Kd sont respectivement les constantes actions proportionnelle, intgrale et


drive par rapport lerreur e(t) = valeur (t) valeur (t)rf . reue en entre par le contrleur. La
commande gnre par le contrleur PID est note u(t).

Au total, onze contrleurs PID sont ncessaires afin de pouvoir excuter un vol complet qui
est compos de quatre phases : dcollage, suivi de trajectoire, approche finale et atterrissage. Ces
contrleurs sont prsents aux deux sections suivantes.

Afin de montrer un exemple dimplmentation, le contrleur de la position Est pE est prsent


la Figure 14. On remarque la prsence des trois gains Kp , Ki et Kd , les oprateurs pour une
simulation en temps discret, la logique de rinitialisation de laction intgrale suite au changement
des phases de vol ainsi quune saturation applique sur la commande de sortie. Tous les contrleurs
sont modliss de cette faon.

1 40 1
Reference Error dpE_c
pE_c_m (command) dpE_c
Kp Saturation

2 K Ts
<DpE_m> State
z-1
Ki
2 Discrete Integral
controllerIn == 1
K (z-1) 20
OR Ts z
<flightMode>
== 3 Kd
Discrete Derivative
Reset Integral Logic
(when flight mode changes)

Figure 14 Schma-bloc Simulink du contrleur de la position Est pE

2.6.2.1 Synthse des contrleurs externes oprant sur le poste central

Les contrleurs externes oprant sur le poste central soccupent daccomplir les tches dites
de bas niveau qui normalement demandent une frquence dchantillonnage moins rapide

Automne 2016 O. GOUGEON 34


PI3 Rapport des travaux accomplis

et peuvent tolrer de plus grands dlais de rponse. On retrouve les six contrleurs suivants (voir
les blocs verts de la Figure 12) :

pU controller : contrleur dans REN


o
U de laltitude p gnrant la commande F ;
U z
v controller : contrleur dans REN
b
U de la vitesse latrale v gnrant la commande ;
c
pN controller : contrleur dans REN
o
U de la position Nord p gnrant la commande p
N Nc ;
pE controller : contrleur dans REN
o
U de la position Est p gnrant la commande p
E Ec ;
u controller : contrleur dans REN
b
U de la vitesse davance u gnrant la commande ;
c
psi controller : contrleur dans Rb/o de la position angulaire de lacet gnrant la
EN U

commande c .

Les valeurs des gains Kp , Ki et Kd pour les contrleurs de pE , pN , pU et sont issues


de la communaut open-source qui a dj largement expriment avec le Crazyflie 2.0 [17]. Puis,
celles pour les contrleurs de u et v sont calcules avec la mthode du lieu des racines faisant
intervenir la commande sisotool du programme MATLAB ou bien en appliquant la mthode du
placement de structures propres. Le modle linaire dfini aux quations 30, 34 et 35 est utilis pour
la dtermination des paramtres de ces deux derniers contrleurs PID. Le modle est galement
utilis afin de vrifier la stabilit des contrleurs pris dans la littrature. Quelques rsultats de
simulation sont montrs la Section 3.1.1.

2.6.2.2 Synthse des contrleurs embarqus sur le CF2

Les contrleurs embarqus sur le Crazyflie 2.0 soccupent quant eux daccomplir les tches
dites de haut niveau qui normalement demandent une frquence dchantillonnage plus
rapide et tolrent moins bien les dlais de rponse. On retrouve les cinq contrleurs suivants (voir
les blocs bleus de la Figure 12) :

phi controller : contrleur dans REN


b/o
U de la position angulaire de roulis gnrant

la commande c ;
dphi controller : contrleur dans REN U de la vitesse angulaire de roulis gnrant
b/o
la commande M ;
theta controller : contrleur dans REN
b/o
U de la position angulaire de tangage gn-

rant la commande c ;
dtheta controller : contrleur dans REN
b/o de la vitesse angulaire de tangage gnrant
U

la commande M ;
dpsi controller : contrleur dans REN
b/o
U de la vitesse angulaire de lacet gnrant la

commande M .

, et ) sont issues
Les valeurs des gains Kp , Ki et Kd de tous ces contrleurs (, ,
de la communaut open-source qui a dj largement expriment avec le Crazyflie 2.0 [18]. Le
modle linaire dfini aux quations 30, 34 et 35 est galement utilis afin de vrifier la stabilit des

Automne 2016 O. GOUGEON 35


PI3 Rapport des travaux accomplis

contrleurs pris dans la littrature. Quelques rsultats de simulation sont montrs la Section 3.1.1.

Synthse de la logique de contrle

La synthse de onze contrleurs ne suffit pas accomplir la tche complexe du suivi dune
trajectoire par waypoints. Pour ce faire, il est ncessaire dapposer une logique de contrle permet-
tant deffectuer tous les changements de contrleur en fonction de la phase de vol dans laquelle se
retrouve le drone. La synthse de ce contrle seffectue en deux temps : une premire logique est
ncessaire afin didentifier la phase de vol dans laquelle se retrouve le drone et une seconde logique
est requise afin deffectuer tous les changements de contrleur.

2.6.3.1 Synthse de la logique des phases de vol

Le bon fonctionnement des lois de contrle ncessite la connaissance en tout temps de la


phase de vol dans laquelle se trouve le drone. Afin didentifier la phase de vol, le poste central vrifie
continuellement le respect de certaines conditions logiques. Celles-ci sont prsentes la Figure 15.
Il y a en tout quatre phases de vol particulires aux lois de contrle. Ces dernires sont identifies
par la variable flightMode laide des nombres 1 4 selon les dfinitions suivantes :

Dcollage flightMode = 1 : valeur que possde par dfaut initialement la variable au


dcollage du Crazyflie 2.0 ;
Croisire flightMode = 2 : valeur que prend la variable lorsque le drone a atteint son
altitude de croisire commande une certaine tolrance takeoffTol prs ;
Approche finale flightMode = 3 : valeur que prend la variable lorsque le drone arrive
une certaine distance cruiseTol de son dernier waypoint devant tre visit ;
Atterrissage flightMode = 4 : valeur que prend la variable lorsque le drone a atteint
son dernier waypoint devant tre visit une certaine tolrance approachTol prs et que
tous les waypoints de la trajectoire demande ont t visits.

2.6.3.2 Synthse de la logique de transition des contrleurs

Ainsi, pour chaque phase de vol, il existe une dfinition prcise rgissant quels contrleurs
doivent tre activs ou dsactivs selon les besoins en contrle de ladite phase. Ces dfinitions
sont prsentes au Tableau 7. Dailleurs, lanalyse de ce tableau permet de constater que les cinq
contrleurs de bas niveau embarqus sur le CF2 (, , , et ) sont bel et bien activs tout
au long des quatre phases de vol tout comme le contrleur daltitude pU dailleurs.

Afin de bien comprendre comment les contrleurs sont activs et dsactivs, un exemple
dapplication est donn pour le cas du contrleur en position Nord pN . Lanalyse de la Figure 16

Automne 2016 O. GOUGEON 36


PI3 Rapport des travaux accomplis

cruiseWaypointReached

approachWaypointReached 1
takeoffLgc

landingWaypointReached

1 T
2
<DpU_m>
x_hat_sys
[in] |u| < takeoffTol cruiseLgc cruiseWaypointReached
cruiseLgc cruiseLgc
2 1
<pU_c_m>
x_hat_sys commands cruiseWaypointReached 0 F
[out]

1
flightMode
flightMode
<DpE_m>

1 T
pEN

<DpN_m>
u --> norm(u) < cruiseTol approachLgc approachWaypointReached
approachLgc approachLgc

wpData U Y approachWaypointReached 0 F
wpEnd

<DpE_m>

1 T
pEN

<DpN_m>
u --> norm(u) < approachTol landingLgc
landingLgc landingLgc

wpData U Y landingWaypointReached 0 F
wpEnd

landingWaypointReached

3 AND
<wpID>
NLGL
|u| < 1.4901e-08

wpDataLength

Figure 15 Schma-bloc Simulink de la logique didentification des phases de vol

Tableau 7 Dfinitions des tats de fonctionnement des contrleurs en fonction des phases de vol

flightMode Phase de vol u v pE pN pU

1 Dcollage OFF OFF ON ON ON ON ON ON ON ON ON


2 Croisire ON ON OFF OFF ON ON ON OFF ON ON ON
3 Approche OFF OFF ON ON ON ON ON ON ON ON ON
4 Atterrissage OFF OFF ON ON ON ON ON ON ON ON ON

permet de constater que la commande pNc prend diffrentes valeurs en fonction de la phase de vol :

Dcollage : la commande prend une valeur de position nulle puisque le point initial de
dpart du drone correspond lorigine du repre Ro le drone gagne alors en altitude
en conservant ses positions constantes dans le plan horizontal dailleurs, le contrleur
en lacet permet de maintenir langle initial de cap du drone pendant la monte ;
Croisire : un bloc de type ground indique que le contrleur nest pas actif pendant cette
phase en effet, ce sont plutt les contrleurs en vitesses davance et latrale qui prennent
le relais pendant le suivi de la trajectoire utilisant lalgorithme NLGL afin de conserver
une vitesse davance constante et une vitesse latrale nulle dailleurs, le contrleur en
lacet est arrt au profit de celui en vitesse de lacet afin de suivre la trajectoire
commande par lalgorithme NLGL ;

Automne 2016 O. GOUGEON 37


PI3 Rapport des travaux accomplis

Approche : la commande prend la valeur de la position du dernier waypoint de la trajec-


toire commande de fait, lalgorithme de suivi de trajectoire est arrt afin de diriger
le drone vers le dernier point qui est proximit dailleurs, le contrleur en lacet est
ractiv afin de diriger le drone vers le point ultime selon langle de ce dernier segment Sn ;
Atterrissage : la mme commande que pendant la phase dapproche est envoye au contr-
leur afin que le drone atterrisse verticalement en conservant son cap constant ainsi que
sa position dans le plan horizontal constante comme dans le cas du dcollage.

1
<flightMode>
controllerIn

2
controllerOut
1
1

0 Takeoff Command

2
1

Cruise Command

1
pN_c_m
pN_c_m
3
wpData U Y 1
WPend

WPend [pN] Approach Command

4
1

Landing Command

Figure 16 Schma-bloc Simulink de la logique dactivation ou de dsactivation du contrleur


de la position Nord pN

Matrices de passage

Plusieurs matrices de passage sont ncessaires dans le bon fonctionnement des lois de contrle.
Plus prcisment, les quatre matrices suivantes sont requises :

1. Matrice de passage du repre inertiel Ro au repre objet Rb ;


2. Matrice de passage du vecteur dentres normalises v au vecteur dentres directes u ;
3. Matrice de passage du repre NED au repre ENU ;
4. Matrice de passage des emplacements des moteurs du CF2 ceux du modle DP1.

Ces matrices de passage sont dfinies dans les quatre sections qui suivent.

Automne 2016 O. GOUGEON 38


PI3 Rapport des travaux accomplis

2.6.4.1 Matrice de passage du repre inertiel Ro au repre objet Rb

La matrice de passage du repre inertiel Ro au repre objet Rb est exactement la mme qui a
t prsente lquation 12 soit E. Toutefois, comme il est illustr la Figure 17, cette dernire
a t simplifie au cas 2D en plus dmettre lhypothse que les angles et sont ngligeables
cest--dire que 0. La nouvelle matrice E2D = T2D
b/o est dfinie comme suit :

rb = E2D ro = T2D
b/o r
o
(37)

S Tb S Tb/o S To
x cos sin x
rb = U V , E2D = T2D
b/o =
U V et ro = U V . (38)
y sin cos y

INERTIAL 2 BODY
1
dpN_c f(u) -1 1
phi_c_deg [pN]
u = cos(psi)*dpE + sin(psi)*dpN
3
dpE_c
f(u) 1 3
NoOp
theta_c_deg [pE]
pi/180 v = -sin(psi)*dpE + cos(psi)*dpN

deg2rad

<psi_deg>

2 2
controllerIn controllerOut

Figure 17 Schma-bloc Simulink illustrant la matrice de passage de Ro Rb

2.6.4.2 Matrice de passage du changement du vecteur dentres v u

Prcdemment, les entres directes des moteurs cest--dire les valeurs en PWM envoyes
chaque moteur ont t dfinies lquation 26 comme tant :


u := U1 U2 U3 U4 . (39)

Toutefois, il est galement possible de modifier ces entres directes en entres normalises
associes aux quatre mouvements possibles du drone : le dplacement linaire selon laxe zENb
U et

Automne 2016 O. GOUGEON 39


PI3 Rapport des travaux accomplis

les dplacements angulaires autour des axes xbEN U , ybEN U et zEN


b
U . ces quatre dplacements,

sont associes respectivement les nouvelles entres suivantes :


v : = Fz M M M . (40)

La matrice de passage T1
EN U du vecteur dentres normalises v au vecteur dentres directes
u est donne par [19] :

S T
1 1/2 1/2 1
W X
W1 1/2 1/2 1X
W X
T1 = W X tel que u = T1
EN U v. (41)
EN U W1 1/2 1/2 1X
U V
1 1/2 1/2 1
EN U

La matrice T1
EN U reprsente en fait la contribution de chaque mouvement command du
vecteur normalis v la valeur totale de chaque commande du vecteur direct u envoye chacun
des moteurs i.

De plus, la matrice de passage TEN U du vecteur dentres directes u au vecteur dentres


normalises v peut tre obtenue en calculant linverse de T1
EN U :

S T
1/4 1/4 1/4 1/4
W X
1 21 W1/2 1/2
W 1/2 1/2 X
X
T1 = TEN U = W X tel que v = TEN U u. (42)
EN U W1/2 1/2 1/2 1/2X
U V
1/4 1/4 1/4 1/4
EN U

vrai dire, la matrice TEN U reprsente la contribution de chaque moteur i du vecteur direct
u chaque mouvement du vecteur normalis v.

En somme, les matrices T1


EN U et TEN U dcrivent la distribution des efforts de commande.

Toutefois, lanalyse des Figures

2.6.4.3 Matrice de passage entre les repres NED ENU

la Section 2.3, le modle dynamique complet dun drone de type quadricoptre a t syn-
thtis en utilisant des paramtres. Le modle DP1 a t dvelopp en utilisant des repres inertiel
Ro et objet Rb de type NED. Cependant, le prototype utilis dans le projet le microquadricoptre
Crazyflie 2.0 utilise quant lui des repres de type ENU. La diffrence entre les axes xb , yb et zb

Automne 2016 O. GOUGEON 40


PI3 Rapport des travaux accomplis

de ces deux repres est illustre la Figure 18. Essentiellement, on remarque que les axes xb sont
confondus, tandis que les axes yb et zb sont de signe oppos. La matrice de passage TEN U /N ED
(ou TN ED/EN U ) permettant de convertir des tats exprims dans un repre RN ED des tats
exprims dans un repre REN U (ou vice versa) est dfinie comme suit :

rEN U = TEN U /N ED rN ED ou rN ED = TN ED/EN U rEN U (43)

S T S T S T
x 1 0 0 x
W X W X W X
rEN U = W X
Uy V , TEN U /N ED = TN ED/EN U = W
U0 1 V et rN ED = Uy V
0X W X . (44)
z 0 0 1 z
EN U N ED

En effet, on remarque que le calcul de linverse des matrices TEN U /N ED ou TN ED/EN U


donne les mmes valeurs que les matrices elles-mmes.

Au final, comme lindique le bloc NED 2 ENU du schma-bloc Simulink de la Figure 19, il est
ncessaire deffectuer la conversion des tats xN ED en tats xEN U afin de simuler le plus fidlement
possible le comportement du prototype Crazyflie 2.0. Cela est ncessaire puisque le modle DP1
est dvelopp laide de repres de type ENU.

2.6.4.4 Matrice de passage entre les emplacements des moteurs CF2 DP1

Finalement, une dernire matrice de passage est ncessaire afin dassurer la compatibilit
entre le prototype utilis CF2 et le modle dvelopp DP1. En effet, lobservation de la Figure 18
permet de constater que les emplacements des moteurs ne sont pas numrots de la mme manire.
vrai dire, les moteurs du prototype CF2 sont numrots dans le sens horaire en commenant par
le premier cadran du plan cartsien cest--dire dans le coin suprieur droit de la Figure 18a ;
tandis que les moteurs du modle DP1 sont plutt numrots dans le sens antihoraire conventionnel
en commenant par le premier cadran du plan cartsien cest--dire dans le coin suprieur droit
de la Figure 18b. Ainsi, la matrice de passage TDP 1/CF 2 (ou TCF 2/DP 1 ) permettant de convertir
les commandes des moteurs exprimes selon la convention du prototype CF2 des commandes
exprimes selon la convention du modle DP1 (ou vice versa) est dfinie comme suit :

uDP 1 = TDP 1/CF 2 uCF 2 ou uCF 2 = TCF 2/DP 1 uDP 1 (45)

Automne 2016 O. GOUGEON 41


PI3 Rapport des travaux accomplis

" Direction de vol principale "

xb = xg

T2 m m T1
xb
2 1

m4 m1 !2 !1
LF
zg
yg
M

z yb
yb b
LA

!3 !4
3 4

m3 m2
T3 m m T4

(a) Modle CF2 utilisant le repre ENU (b) Modle DP1 utilisant le repre NED

Figure 18 Comparaison entre les modles CF2 et DP1

S T S T S T
U1 1 0 0 0 U1
W X W X W X
WU X W0 0 0 1X WU X
W 2X W X W 2X
uDP 1 = W X , TDP 1/CF 2 = TCF 2/DP 1 = W X et uCF 2 = W X . (46)
WU3 X W0 0 1 0X WU3 X
U V U V U V
U4 0 1 0 0 U4
DP 1 CF 2

En effet, on remarque que le calcul de linverse des matrices TDP 1/CF 2 ou TCF 2/DP 1 donne
les mmes valeurs que les matrices elles-mmes.

Au final, comme lindique le bloc CF2 2 DP1 du schma-bloc Simulink de la Figure 19,
il est ncessaire deffectuer la conversion des commandes des moteurs uCF 2 en commandes uDP 1
afin de pouvoir les utiliser comme entres dans le modle DP1 dont la numrotation des moteurs
est diffrente. On remarque toutefois que le sens de rotation de chacun des moteurs est identique
pour les deux modles. Cela explique pouvoir la matrice de passage nest compose que de valeurs
positives.

Automne 2016 O. GOUGEON 42


PI3 Rapport des travaux accomplis

NED 2 ENU

1
<u_m_s> u_m_s

-1
<v_m_s> v_m_s

-1
<w_m_s> w_m_s

1
<p_rad_s> p_rad_s

PWM to RPM
-1
<q_rad_s> q_rad_s
PWM1 omega_1_RPM
PWM1 omega_1_RPM
CF2 2 DP1
-1
PWM2 omega_2_RPM <r_rad_s> r_rad_s
PWM2 omega_2_RPM
1 1
u_PWM
CF2 2 DP1 PWM3
PWM3 omega_3_RPM
omega_3_RPM
Omega_RPM x_sys 1
x_sys
<p_N_m> pE_m

PWM4 omega_4_RPM
PWM4 omega_4_RPM
-1
<p_E_m> pN_m
PWM to RPM

Plant of DP1 <p_D_m>


-1
pU_m

1
<phi_rad> phi_rad

-1
<theta_rad> theta_rad

-1
<psi_rad> psi_rad

Figure 19 Schma-bloc Simulink des matrices de passage CF2 DP1 et NED ENU

Configuration de lenvironnement de dveloppement et dessais

Afin de pouvoir effectuer des essais en vol avec le prototype Crazyflie 2.0, il est ncessaire de
dvelopper un environnement dessais. Ce dernier assure les trois fonctions principales suivantes :

1. Rcuprer les tats du drone en vol : tapes 1 2 (voir la Figure 20) ;


2. Calculer les corrections en fonction des tats dsirs : tapes 212 4 ;
3. Envoyer les corrections au drone afin quil les applique : tapes 5 7.

Pour ce faire, onze tapes et sous-tapes sont ncessaires (voir la Figure 20) :

tape 1a1 : les tats du drone (p, q, r, , et ) sont mesurs ou estims grce la IMU
(inertial measurement unit) embarque sur le CF2 ;
tape 1a2 : les donnes sont transmises au poste central grce lantenne radio Crazy-
radio PA [20] ;
tape 1a3 : le poste central un ordinateur roulant sur Ubuntu 14.04 LTS reoit les
donnes transmises par lantenne radio ;
tape 1b : les camras infrarouges VICON Bonita captent les positions (pE , pN et pU )
du CF2 dans le repre ENU (East-North-Up) ;
tape 2 : le systme rseau ROS Indigo [21] rcupre les tats venant du drone et des
camras infrarouges ;

Automne 2016 O. GOUGEON 43


PI3 Rapport des travaux accomplis

1a 2
1a 1 7 6

1b 2 5

1a 3 2 3 4
Figure 20 Schma de la configuration de lenvironnement de dveloppement et dessais

tape 212 : les paramtres de simulation notamment les gains des contrleurs sont
dfinis dans des fichiers scripts MATLAB ;
tape 3 : les tats du drone ainsi que les paramtres de simulation sont rcuprs par le
programme Simulink excutant le fichier dessais en vol prsent la Figure 21 ;
tape 4 : les nouvelles commandes adresses au CF2 sont calcules laide des algorithmes
et contrleurs prsents la Section 2.6 ;
tape 5 : les commandes relles (Fz , c , c et c ) sont envoyes vers le systme r-
seau ROS ;
tape 6 : les commandes relles sont envoyes du systme rseau vers le CF2 par linter-
mdiaire de la mme antenne radio ;
tape 7 : les commandes relles sont reues par le CF2, elles traversent les contrleurs
internes, puis sont ultimement transformes par la matrice de passage T1
EN U prsente
lquation 41 en commandes directes (U1 , U2 , U3 et U4 ) permettant au CF2 de corriger
sa position afin de suivre la trajectoire demande.

Ainsi, ces onze tapes constituent la boucle complte des actions intervenant dans le vol du
drone. Cette boucle sexcute une vitesse de 100 Hz.

Automne 2016 O. GOUGEON 44


PI3 Rapport des travaux accomplis

Essais en vol et rglage des paramtres des algorithmes

La dernire tape avant de pouvoir effectuer des essais en vol consiste adapter le programme
Simulink du modle prsent la Figure 11 afin de le rendre compatible pour une simulation en
temps rel o les tats du drone sont obtenus par les capteurs (IMU du CF2 et VICON ) au lieu
dtre simuls par lintermdiaire du modle non linaire dvelopp la Section 2.3. Linterface
principale du programme adapt permettant deffectuer des essais en vol partir du poste central
est prsente la Figure 21. On note entre autres la prsence de voyants lumineux de contrle,
un interrupteur darrt en cas durgence, dentres (blocs oranges), une logique de squencement
temporel de lexcution des essais en vol (blocs jaunes), des paramtres dexcution (blocs tur-
quoises), des botes daffichage (blocs bleus) et un lien au programme rseau ROS (blocs verts
foncs). De plus, afin dassurer une redondance, il est galement possible dinterrompre en tout
temps lessai en vol laide dune manette de jeu branche au poste central. Celle-ci est prsente
la Figure 22.

Dautre part, une autre constatation importante peut tre ralise en observant la Figure 21.
En effet, la Section 2.6.4.2, il a t indiqu que deux types de vecteur dentres taient utiliss
dans les simulations : celui des entres directes u (quation 39) et celui des entres normalises
v (quation 40). Toutefois, en observant attentivement le bloc Prepare Command en vert fonc de
la Figure 21, on remarque que ce nest ni lun ni lautre de ces vecteurs dentres qui est envoy
au Crazyflie 2.0 lors des essais en vol. En effet, tant donn comment les lois de contrle sont
conues avec une partie des contrleurs sexcutant sur le poste central et lautre partie sexcutant
directement sur le CF2 (voir la Figure 12), les entres relles devant tre calcules sur le poste
central lors dun essai en vol sont dfinies comme suit :


w := Fz c c c . (47)

Une fois les derniers prparatifs termins, il est enfin possible deffectuer des essais en vol.
Ceux-ci sont effectus dans la volire du Laboratoire de robotique mobile et des systmes auto-
nomes (MRASL). La Figure 23 montre un exemple typique de configuration de cette dernire lors
dun essai en vol. Les matelas en styromousse jaune servent protger le microquadricoptre en
cas de chute et couvrir le sol reluisant qui entre en conflit avec le systme de localisation 3D
VICON si laiss dcouvert. Les pices de tapis rectangulaires permettent galement dagrandir
la zone de vol fonctionnelle. On remarque galement la prsence des filets blancs qui permet disoler
lenvironnement dessais et de protger les gens aux alentours. Finalement, on peut apercevoir dix
camras VICON situes lextrmit suprieure du filet entre le rail soutenant ces derniers et le
plafond.

Les essais en vol permettent dajuster les paramtres des algorithmes tels que le paramtre

Automne 2016 O. GOUGEON 45


PI3 Rapport des travaux accomplis

Sim Time
ROS

Blank Message
-0.3465
Msg
Clock Time Difference
geometry_msgs/Twist

0.3465 Select Topic


Elapsed Real Time

Elapsed Real Time


Bus

startEngine 0
logitechON
0 T
stopSim 0 := Z
Fz
0
loggedData hardwareFailLgc NOT 1
<anyHardwareFailLgc> manualSwitchON
ROS
startEngineSafe
Hardware Fail Logic Publish
>= waitTime-1 >= waitTime := X Bus Msg
phi
AND AND /goal
NOT
commandsON
Send Command to CF2
:= Y
theta
loggedData

Log Data
:= Z
F dpsi

Prepare Command
1
commands
commands
Fz

Saturation

4
x_hat_sys
x_hat_sys
39000

Fz_equilibre = 38160 pwm

5 noXerrNLGL
w_hat_sys phi
w_hat_sys

6 controllerIn
y_sys controllerIn
y_sys

theta
q_sys VECTOR q_sys BUS
q_sys

Define q_sys

NOT
3
NLGL
NLGL

dpsi

2
flightMode
flightMode

Simulink Outboard Controllers

<noXerrNLGL>

Figure 21 Schma-bloc Simulink de linterface principale du programme permettant deffectuer


des essais en vol partir du poste central

Figure 22 Manette de jeu Logitech Rumblepad 2

L de lAlgorithme 1 ainsi que les gains Kp , Ki et Kd des contrleurs externes sexcutant au sein du
programme Simulink principal sur le poste central. Leur ajustement est fait de manires itrative
et mthodique en fonction des observations visuelles des vols et des donnes des tats recueillies.
Les rsultats dessais en vol sont prsents la Section 3.2.

Automne 2016 O. GOUGEON 46


PI3 Rapport des travaux accomplis

Figure 23 Volire du Laboratoire de robotique mobile et des systmes autonomes (MRASL)

Comparaison des performances simules et relles

Afin de valider la mthode qui vient tout juste dtre prsente (cest--dire la mthodologie
utilise dans le projet), une comparaison des performances simules et relles est effectue. Pour ce
faire, un vol complet pour une trajectoire donne est dabord simul lintrieur de lenvironnement
de simulation dvelopp la Section 2.5, puis le vol est reproduit avec la mme trajectoire laide
du prototype CF2 et de lenvironnement de dveloppement et dessais prsent la Section 2.7.
Les conclusions de cette analyse sont prsentes la Section 3.3.

Automne 2016 O. GOUGEON 47


PI3 Rapport des travaux accomplis

Analyse des rsultats obtenus

Cette section prsente lanalyse des principaux rsultats obtenus pendant le projet. vrai
dire, elle constitue la partie la plus importante du rapport dans la mesure o tous les rsultats en
lien avec les objectifs prcdemment dfinis la Section 1.3 sont revus.

Plus prcisment, cette section prsente les simulations effectues sur Simulink des contr-
leurs, des lois de contrle et du suivi de trajectoire par waypoints ; les rsultats des essais en vol
ainsi que lanalyse de la comparaison des performances simules et relles.

Simulations effectues sur Simulink

Les simulations sur Simulink seffectuent en deux temps : premirement, les contrleurs PID
synthtiss la Section 2.6.2 sont valids ; deuximement, le bon fonctionnement global de toutes
les lois de contrle cest--dire lensemble constitu des contrleurs, de lalgorithme de suivi de
trajectoire NLGL ainsi que des logiques didentification de la phase de vol et de changement de
contrleurs est vrifi.

Simulation partielle des contrleurs seulement

Comme il a t mentionn la Section 2.6.2, la plupart des contrleurs utilisent des valeurs
de gains Kp , Ki et Kd issues de la communaut open-source [17] [18]. Il est donc ncessaire de
vrifier laide de simulations que ces derniers stabilisent bien le systme. Au lieu de prsenter les
performances de chacun des onze contrleurs, seulement les simulations juges les plus pertinentes
sont retenues.

Tout dabord, les performances des contrleurs des quatre mouvements principaux (trans-
lation selon zo et rotations selon xb , yb et zb ) sont analyses. Lanalyse des rponses temporelles
simules sur le modle linaire de la Figure 24 permet de constater que les quatre contrleurs pos-
sdent exactement les mmes performances. En effet, les critres exigs sont : un temps de rponse
de 2 s pour latteinte 99 % de la valeur en rgime permanent commande et aucun dpassement
tolr.

Sur le mme ordre dide, il est alors possible dvaluer la performance de ces mmes contr-
leurs sur le modle non linaire. La Figure 25 prsente ces rsultats. En gnral, lanalyse des
Figures 25a, 25b, 25c et 25d montre que tous les contrleurs performent bien sur une plage consi-
drable de valeurs commandes. Il est galement possible danalyser les performances de chacun
des contrleurs de manire plus prcise. Dabord, lanalyse de la Figure 25a montre quil existe

Automne 2016 O. GOUGEON 48


PI3 Rapport des travaux accomplis

3QPOTF UFNQPSFMMF EF "pU QPVS VO DIFMPO VOJUBJSF "pUc R4eponse temporelle de "? pour un 4echelon unitaire "?c

1 1

0.9 0.9

0.8 0.8

0.7 0.7

0.6 0.6
"pU [m]

"? [rad]
0.5 0.5

0.4 0.4

0.3 0.3

0.2 0.2

0.1 0.1

0 0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Temps [s] Temps [s]

(a) DpU (b) D

R4eponse temporelle de "3 pour un 4echelon unitaire "3c R4eponse temporelle de "A pour un 4echelon unitaire "Ac

1 1

0.9 0.9

0.8 0.8

0.7 0.7

0.6 0.6
"A [rad]
"3 [rad]

0.5 0.5

0.4 0.4

0.3 0.3

0.2 0.2

0.1 0.1

0 0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Temps [s] Temps [s]

(c) D (d) D

Figure 24 Rponses temporelles des tats DpU , D, D et D pour des chelons unitaires

une trs lgre diffrence entre les dynamiques non linaire et linaire en translation verticale selon
laxe zo pour le drone DP1 modlis. Puis, lanalyse des Figures 25b et 25c montre quil nexiste
pratiquement aucune diffrence entre les dynamiques non linaire et linaire en rotation autour des
axes xb et yb pour le DP1. Finalement, lanalyse de la Figure 25d montre quil existe une diffrence
notable entre ces mmes dynamiques pour le mouvement de rotation autour de laxe zo .

De plus, il peut tre pertinent danalyser la performance des contrleurs lorsque plusieurs
commandes de type chelon sont envoyes en mme temps au drone. Lanalyse de la Figure 26
rvle que le drone na aucune misre excuter des commandes simultanment. Cela indique donc
quune bonne stratgie de contrle a t utilise afin de dcoupler les diffrentes dynamiques du

Automne 2016 O. GOUGEON 49


PI3 Rapport des travaux accomplis

$PNQBSBJTPO EFT SQPOTFT UFNQPSFMMFT EF pU QPVS VO DIFMPO pUc Comparaison des r4eponses temporelles de ? pour un 4echelon ?c
60 60

.PEMF OPOMJOBJSF Mod3ele non-lin4eaire


.PEMF MJOBJSF pUc  m
 Mod3ele lin4eaire (?c = 50/ )
40 .PEMF OPOMJOBJSF 40 Mod3ele non-lin4eaire
.PEMF MJOBJSF pUc  m
 Mod3ele lin4eaire (?c = 40/ )
.PEMF OPOMJOBJSF Mod3ele non-lin4eaire
.PEMFMJOBJSF pUcm
Mod3ele lin4eaire (?c = 30/ )
.PEMFOPOMJOBJSF Mod3ele non-lin4eaire
.PEMFMJOBJSF pUcm

20 20
Mod3ele lin4eaire (?c = 20/ )
.PEMFOPOMJOBJSF Mod3ele non-lin4eaire
.PEMFMJOBJSF pUcm
 Mod3ele lin4eaire (?c = 10/ )
.PEMFOPOMJOBJSF
pU [m]

? [deg]
Mod3ele non-lin4eaire
.PEMFMJOBJSF pUcm

0 0
Mod3ele lin4eaire (?c = 1/ )
.PEMFOPOMJOBJSF Mod3ele non-lin4eaire
.PEMFMJOBJSF pUcm
 Mod3ele lin4eaire (?c = !10/ )
.PEMFOPOMJOBJSF Mod3ele non-lin4eaire
-20
.PEMFMJOBJSF pUcm
 -20
Mod3ele lin4eaire (?c = !20/ )
.PEMFOPOMJOBJSF Mod3ele non-lin4eaire
.PEMFMJOBJSF pUcm
 Mod3ele lin4eaire (?c = !30/ )
.PEMFOPOMJOBJSF Mod3ele non-lin4eaire
-40 .PEMFMJOBJSF pUcm
 -40 Mod3ele lin4eaire (?c = !40/ )
.PEMFOPOMJOBJSF Mod3ele non-lin4eaire
.PEMFMJOBJSF pUcm
Mod3ele lin4eaire (?c = !50/ )

-60 -60
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Temps [s] Temps [s]

(a) pU (b)

Comparaison des r4eponses temporelles de 3 pour un 4echelon 3c Comparaison des r4eponses temporelles de A pour un 4echelon Ac
60 200
Mod3ele non-lin4eaire
Mod3ele lin4eaire (Ac = 180/ )
Mod3ele non-lin4eaire
Mod3ele non-lin4eaire
Mod3ele lin4eaire (3c = 50/ ) 150
Mod3ele lin4eaire (Ac = 150/ )
40 Mod3ele non-lin4eaire
Mod3ele non-lin4eaire
Mod3ele lin4eaire (3c = 40/ )
Mod3ele lin4eaire (Ac = 120/ )
Mod3ele non-lin4eaire 100
Mod3ele non-lin4eaire
Mod3ele lin4eaire (3c = 30/ )
Mod3ele lin4eaire (Ac = 90/ )
20 Mod3ele non-lin4eaire
Mod3ele non-lin4eaire
Mod3ele lin4eaire (3c = 20/ ) 50 Mod3ele lin4eaire (Ac = 60/ )
Mod3ele non-lin4eaire
Mod3ele non-lin4eaire
Mod3ele lin4eaire (3c = 10/ )
Mod3ele lin4eaire (Ac = 30/ )
A [deg]
3 [deg]

Mod3ele non-lin4eaire
0 0 Mod3ele non-lin4eaire
Mod3ele lin4eaire (3c = 1/ )
Mod3ele lin4eaire (Ac = 1/ )
Mod3ele non-lin4eaire
Mod3ele non-lin4eaire
Mod3ele lin4eaire (3c = !10/ )
-50 Mod3ele lin4eaire (Ac = !30/ )
Mod3ele non-lin4eaire
-20 Mod3ele non-lin4eaire
Mod3ele lin4eaire (3c = !20/ )
Mod3ele lin4eaire (Ac = !60/ )
Mod3ele non-lin4eaire
Mod3ele non-lin4eaire
Mod3ele lin4eaire (3c = !30/ ) -100
Mod3ele lin4eaire (Ac = !90/ )
Mod3ele non-lin4eaire
Mod3ele non-lin4eaire
-40 Mod3ele lin4eaire (3c = !40/ )
Mod3ele lin4eaire (Ac = !120/ )
Mod3ele non-lin4eaire -150
Mod3ele non-lin4eaire
Mod3ele lin4eaire (3c = !50/ )
Mod3ele lin4eaire (Ac = !150/ )
Mod3ele non-lin4eaire
-60 -200
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Mod3ele lin4eaire (Ac = !180/ )
Temps [s] Temps [s]

(c) (d)

Figure 25 Comparaison entre les modles non linaire et linaire des rponses temporelles des
tats pU , , et pour diffrents chelons

drone. De fait, ce dcouplage a t ralis par le changement du vecteur dentres directes u en


vecteur dentres normalises v effectu avec la matrice de passage TEN U prsente lquation 42.
De plus, on remarque galement de lgres diffrences entre les simulations excutes sur le modle
linaire et celles excutes sur le modle non linaire : cela demeure comprhensible tant donn
les grandes valeurs des chelons commands.

Finalement, il peut tre intressant danalyser comment les commandes Ui rpondent aux
chelons commands. Un exemple est donn la Figure 27 pour le cas dun chelon unitaire appliqu
en . Lanalyse de cette figure montre quau temps initial les valeurs des commandes des moteurs

Automne 2016 O. GOUGEON 50


PI3 Rapport des travaux accomplis

$PNQBSBJTPOEFTSQPOTFTUFNQPSFMMFTEFTNPEMFTMJOBJSFFUOPOMJOBJSF
QPVSMFTDIFMPOTEFDPNNBOEFpUcm cp cpFUcp
30

pUc (m) [non-lin.]


(voir la l4egende)

20

10 pUc (m) [lin.]


0 ? (/ ) [non-lin.]
? (/ ) [lin.]
-10
3 (/ ) [non-lin.]
-20
3 (/ ) [lin.]
A (/ ) [non-lin.]
Etats

-30

-40 A (/ ) [lin.]
4

-50

Figure 26 Commande de plusieurs chelons excuts simultanment

Ui sont effectivement proches de la valeur thorique de 39 038 PWM donne par lquation 29.
De plus, on remarque quil existe une trs lgre diffrence entre les rsultats de simulation pour
les modles linaire et non linaire exception faite de la valeur finale en rgime permanent qui
diffre dun modle lautre en raison du fonctionnement simultanment du contrleur en altitude
qui ajoute une contribution supplmentaire aux commandes afin de balancer la perte de portance
cause par linclinaison du drone.

Simulation globale des lois de contrle

Dans la section prcdente, les performances des contrleurs principaux ont t analyses.
Bien que ceux-ci accomplissent une tche importante, lobjectif ultime de ces contrleurs est de
permettre le bon fonctionnement de lalgorithme de suivi de trajectoire par waypoints prsent
lAlgorithme 1.

Cela tant dit, cette section prsente lanalyse de laboutissement de tout le travail effectu
jusqu prsent : lanalyse globale des lois de contrle conues afin de permettre de rpondre
lobjectif principal du projet soit le suivi dune trajectoire 2D par waypoints.

La Figure 28 prsente les rsultats dune simulation complte du suivi dune trajectoire 2D
par waypoints avec lalgorithme NLGL excute sur le modle non linaire du DP1.

Tout dabord, lanalyse de la Figure 28a permet de constater que les lois de contrle globales
sexcutent bien. En effet, on observe que le drone effectue convenablement ses quatre phases de
vol : dcollage, croisire, approche et atterrissage. De plus, on remarque que lalgorithme de suivi de
trajectoire NLGL fonctionne trs bien et permet au drone de demeurer sur la trajectoire prescrite.

Automne 2016 O. GOUGEON 51


PI3 Rapport des travaux accomplis

Comparaison des mod3eles lin4eaire et non-lin4eaire pour un 4echelon unitaire 3c = 1/


1

0.9

0.8

0.7

0.6
3 (deg)

0.5

0.4 Mod3ele non-lin4eaire


0.3 Mod3ele lin4eaire
0.2

0.1

41 200

41 000

40 800
Ui(PWM)

40 600

40 400

40 200

40 000

39 800

39 600

39 400
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Temps (s)
U1 (non-lin.) U2 (non-lin.) U3 (non-lin.) U4 (non-lin.) U1 (lin.) U2 (lin.) U3 (lin.) U4 (lin.)

Figure 27 Efforts des moteurs Ui pour un chelon unitaire appliqu

En effet, la Figure 28c permet dapprcier davantage la performance de lalgorithme. Lana-


lyse de cette figure montre galement une caractristique fondamentale de lalgorithme retenu. En
effet, lalgorithme propos par [3] et retenu comme solution au problme du projet est originale-
ment destin aux drones de type avion possdant une aile. Ainsi, lavion ntant pas capable de
faire un vol stationnaire comme lhlicoptre, cela explique pourquoi il y a des dpassements consi-
drables lors des changements de direction larrive de chaque nouveau waypoint. Cela tant dit,
lalgorithme utilis dans ce projet nutilise pas le plein potentiel de la dynamique particulire du
quadricoptre pouvant effectuer des vols stationnaires. Une solution alternative est propose la
Section 6.2.

De plus, la Figure 28b permet de constater le bon fonctionnement de la logique de contrle


utilise avec lalgorithme de suivi de trajectoire NLGL. En effet, on remarque que le passage de
chaque waypoint est bien dtect et que la commande approprie ulat est gnre par lalgorithme
NLGL afin de rediriger le drone vers la trajectoire aprs latteinte dun nouveau waypoint.

Automne 2016 O. GOUGEON 52


PI3 Rapport des travaux accomplis

Finalement, les commandes normalises Fz , M , M et M du vecteur de commande v sont


prsentes la Figure 28d. On constate alors que la concentration des efforts de commande est
issue du contrle effectu sur les mouvements en rotations de roulis et de lacet. En effet, ce sont
ces deux contrleurs qui possdent les carts relatifs les plus levs en effort de commande sur les
pics de valeurs maximales. De fait, ces pics maximaux surviennent lors de changements prononcs
de la trajectoire aprs latteinte dun nouveau waypoint : le contrleur dangle de roulis est alors
grandement sollicit afin dannuler lacclration latrale qui est gnre lors du changement de
direction tout comme celui dangle de lacet qui est tout autant sollicit afin de maintenir le cap du
drone align avec la trajectoire prescrite. Quant elles, les commandes contrlant les mouvements en
translation verticale et en rotation de tangage sont sollicites principalement pendant le suivi de la
trajectoire de la phase de croisire afin de maintenir respectivement laltitude et la vitesse davance
constantes qui sont considrablement elles-aussi affectes lors dun changement de direction.

Essais en vol

Les simulations effectues sur le modle non linaire complet ont permis de valider le fonc-
tionnement adquat de lalgorithme de guidage NLGL, des contrleurs et de la logique de contrle
utilise afin didentifier les phases de vol et effectuer les transitions entre les contrleurs. Ainsi, une
fois ces vrifications termines, il a t possible de commencer les essais en vol.

Cette section prsente les essais prliminaires raliss afin dassurer le bon fonctionnement
des lments de base des lois de contrle, les diffrents suivis de trajectoire raliss et les problmes
rencontrs durant la campagne dessais en vol.

Essais prliminaires

Avant de procder lessai complet du suivi dune trajectoire, il est ncessaire de vrifier
certaines fonctions de base des lois de contrle synthtises. Plus prcisment, il faut dabord vrifier
la stabilit du vol stationnaire, puis celle des contrles en position et en vitesse davance. Les essais
raliss permettent essentiellement dajuster les valeurs des paramtres Kp , Ki et Kd des contrleurs
PID en fonction des observations effectues lors de ces tests.

3.2.1.1 Vol stationnaire

La toute premire chose vrifier est la stabilit du drone pour un vol stationnaire. En effet,
cela consiste en la base mme du contrle du microquadricoptre pouvant se stabiliser en un point
de rfrence fixe. Cet essai est prsent la Figure 29.

Automne 2016 O. GOUGEON 53


PI3 Rapport des travaux accomplis

R4eponses temporelles du suivi de trajectoire par waypoints en 2D


15

wpID (int)
Suivi de trajectoire par waypoints en 2D dans l'espace tridimensionnel 10

2000

5
WipN

Wi (m)
1000 WipE
4.5
0
4

3.5 -1000

3 2000
WiipN
-pD (m)

Wii (m)
2.5 1000 WiipE
2
0
1.5
-1000
1
2
0.5

ulat (m/s2 )
0 0

-2
500
2000
1500 -4
0 0 200 400 600 800 1000 1200
1000
500 t (s)
-500 0
pE (m) -500
pN (m)

Trajectoire plani-3ee Trajectoire r3elle Position initiale Position -nale

(b) tats de contrle de lalgorithme de suivi de tra-


(a) Trajectoire 3D (vue isomtrique) jectoire par waypoints NLGL

R4eponses temporelles des commandes transform4ees


1.92
Suivi de trajectoire par waypoints en 2D dans le plan horizontal
1.9
1000
Fz

1.88

800 1.86

1.84
600 # 10 -4
5

400 0
M?

-5
200
-10
pE (m)

0 -15

-0.178
-200
-0.18
M3

-400 -0.182

-0.184
-600
-0.186
# 10 -3
-800 5

0
-1000
MA

-1000 -500 0 500 1000 1500 2000 2500 -5


pN (m)
-10

Trajectoire plani-3ee Trajectoire r3elle Position initiale Position -nale -15


0 200 400 600 800 1000 1200
t (s)

(c) Trajectoire 2D (vue du haut) (d) Commandes normalises du vecteur v

Figure 28 Simulation complte du suivi dune trajectoire par waypoints avec lalgorithme NLGL
sur le modle non linaire

Lanalyse des Figures 29a et 29c permet dapprcier justement la performance des contrleurs
en position utiliss lors dun vol stationnaire. De fait, lanalyse de la Figure 29b permet de constater
que les positions pE et pN oscillent dans un intervalle moyen denviron 10 cm avec des pics se
rapprochant du 20 cm ces rsultats concordent avec [22]. De plus, on remarque que laltitude
pU est bien maintenue (Figure 29b) ainsi que la position angulaire de lacet qui oscille environ
entre 2 (Figure 29d). vrai dire, quatre contrleurs sont ncessaires afin deffectuer un vol
stationnaire : pE , pN , pU et . Finalement, les positions angulaires et varient continuellement
afin de corriger les positions linaires qui sont commandes et reues par les contrleurs de positions

Automne 2016 O. GOUGEON 54


PI3 Rapport des travaux accomplis

linaires pE et pN .

Suivi de trajectoire par waypoints en 2D dans l'espace tridimensionnel R4eponses temporelles des positions lin4eaires dans le rep3ere inertiel
0.2

0.1

pE (m)
0
1
-0.1
0.9

0.8 -0.2

0.7
0.2
0.6
pU (m)

0.1
0.5

pN (m)
0.4 0

0.3
-0.1
0.2
-0.2
0.1

0 1.5
3
2 1
8

pU (m)
1 6
0 4 0.5

-1 2
0 0
-2
-2
pN (m) -3 pE (m)
-4 -0.5
5 10 15 20 25 30 35 40 45
Trajectoire plani-4ee Trajectoire r4elle Position initiale Position -nale t (s)

(a) Trajectoire 3D (vue isomtrique) (b) Positions linaires pE , pN et pU

R4eponses temporelles des positions angulaires dans le rep3ere inertiel/body


Suivi de trajectoire par waypoints en 2D dans le plan horizontal
10
4

5
? (deg)

3 0

-5
2
-10

1 20
pN (m)

10
3 (deg)

0
0

-1 -10

-20
-2
4

-3 2
A (deg)

0
-4
-4 -2 0 2 4 6 8 -2
pE (m)
-4
Trajectoire plani-4ee Trajectoire r4elle Position initiale Position -nale 5 10 15 20 25 30 35 40 45
t (s)

(c) Trajectoire 2D (vue du haut) (d) Positions angulaires , et

Figure 29 Essai prliminaire du vol stationnaire

3.2.1.2 Contrle de la position

Un autre essai prliminaire devant tre effectu avant de pouvoir suivre une trajectoire est
celui du contrle de la position. Plus prcisment, il est ncessaire de vrifier le contrle des positions
linaires pE , pN et pU ainsi que celui de la position angulaire . Pour vrifier cela, il est demand
au drone de dabord dcoller, puis de visiter quatre points avant de revenir sa position initiale. De
plus, chaque point visit, le drone effectue une rotation en afin de se raligner vers le prochain
point visiter. Cet essai est prsent la Figure 30.

Automne 2016 O. GOUGEON 55


PI3 Rapport des travaux accomplis

Lanalyse des Figures 30a et 30c permet de constater que les points commands sont bel et
bien atteints par le drone. De fait, lanalyse de la Figure 30b montre des rponses temporelles de
type chelon avec des performances trs acceptables. Lanalyse de la Figure 30d rvle toutefois que
le contrleur en position angulaire engendre des dpassements importants lors des commandes de
type chelon. Toutefois, cela demeure comprhensible dans la mesure o le contrleur PID utilis
est linaire et que les valeurs des chelons commands sont trs leves. De telles circonstances ne
sont pas rencontres durant un vol de suivi de trajectoire normal.

Suivi de trajectoire par waypoints en 2D dans l'espace tridimensionnel R4eponses temporelles des positions lin4eaires dans le rep3ere inertiel
2

pE (m)
0

1
-1
0.9
-2
0.8

0.7
2
0.6
pU (m)

1
0.5

pN (m)
0.4 0

0.3
-1
0.2
-2
0.1

0 1.5
3
2 1
8
1 6
pU (m)
0 4 0.5

-1 2
0 0
-2
-2
pN (m) -3 pE (m)
-4 -0.5
0 20 40 60 80 100 120
Trajectoire plani-4ee Trajectoire r4elle Position initiale Position -nale t (s)

(a) Trajectoire 3D (vue isomtrique) (b) Positions linaires pE , pN et pU

R4eponses temporelles des positions angulaires dans le rep3ere inertiel/body


Suivi de trajectoire par waypoints en 2D dans le plan horizontal
10
4

5
? (deg)

3 0

-5
2
-10

1 10
pN (m)

5
3 (deg)

0
0

-1 -5

-10
-2
100

-3 50
A (deg)

0
-4
-4 -2 0 2 4 6 8 -50
pE (m)
-100
Trajectoire plani-4ee Trajectoire r4elle Position initiale Position -nale 0 20 40 60 80 100 120
t (s)

(c) Trajectoire 2D (vue du haut) (d) Positions angulaires , et

Figure 30 Essai prliminaire du contrle en positions linaires et angulaires

3.2.1.3 Contrle de la vitesse davance

Finalement, un dernier essai prliminaire est ncessaire afin de valider le bon fonctionnement

Automne 2016 O. GOUGEON 56


PI3 Rapport des travaux accomplis

de lensemble des contrleurs utiliss par lalgorithme de suivi de trajectoires. De fait, il sagit de
lessai du contrle des vitesses davance u et latrale v qui permettent respectivement au drone de
suivre la trajectoire une vitesse linaire donne tout en conservant une vitesse latrale cest--
dire de dviation nulle. tant donn que le prototype utilis (Crazyflie 2.0) possde deux plans
de symtrie verticaux, il peut tre assum que les dynamiques en vitesses davance et latrale sont
identiques. Ainsi, il est seulement requis deffectuer un essai sur lun ou lautre des contrleurs
de vitesses. toutes fins utiles, il est dcid deffectuer lessai avec la vitesse davance u. La
configuration de la volire utilise pour cet essai est prsente la Figure 31. Celle-ci consiste en
une trajectoire rectiligne dont le plancher est recouvert de coussins protecteurs en cas de chute. De
plus, des coussins sont galement positionns en fin de trajectoire le long du mur afin dviter une
collision avec ce dernier. Les rsultats de lessai sont prsents la Figure 32.

Figure 31 Configuration de la volire pour lessai prliminaire du contrle de la vitesse davance

Lanalyse de la Figure 32a permet de constater que la trajectoire rectiligne est bien suivie
sans que surviennent de trop grandes dviations. Pour effectuer cet essai, les contrleurs en positions
linaire pE et angulaire sont ajusts respectivement des valeurs de rfrence de 0 m et 90 .
Bien entendu, le contrleur en altitude pU soccupe de maintenir laltitude de croisire 1 m.
Ainsi, lanalyse de la Figure 32d permet dobserver que le contrleur en vitesse davance u permet
effectivement de maintenir cette vitesse une valeur plus ou moins constante de 0.5 m/s malgr
la prsence de bruit introduit entre autres par lestimation de ltat de la vitesse u par le filtre
de Kalman rcupr de [22]. De fait, la belle rampe en position linaire pN qui possde une pente
presque constante (Figure 32b) tmoigne du bon fonctionnement du contrleur de vitesse linaire

Automne 2016 O. GOUGEON 57


PI3 Rapport des travaux accomplis

u. Finalement, pour la premire fois, la rponse temporelle de la variable flightMode est prsente
la Figure 32c. Il est alors possible dobserver lvolution de la phase de vol dans laquelle se trouve
le drone mesure quil effectue son vol.

Suivi de trajectoire par waypoints en 2D dans le plan horizontal R4eponses temporelles des positions lin4eaires dans le repere inertiel
9
0.1

0.05
8

pE (m)
0

7 -0.05

-0.1

6 -0.15

5 10
pN (m)

pN (m)
4

3 0

2 -5

1.5
1

pU (m)
0
0.5

-1 0
0
pE (m) -0.5
5 10 15 20 25 30
Trajectoire plani-3ee Trajectoire r3elle Position initiale Position -nale t (s)

(a) Trajectoire 2D (vue du haut) (b) Positions linaires pE , pN et pU

R4eponses temporelles du suivi de trajectoire par waypoints en 2D R4eponses temporelles des vitesses lin4eaires dans le repere body
4 1
f lightM ode

3
0.5
u (m/s)

2
wpID (int) (int)

0
1
10
-0.5

5 -1

0 0.5
10
Wi (m)

WipN
v (m/s)

5
WipE 0

0
10
WiipN
Wii (m)

WiipE -0.5
5

0.6
0
0.5 0.4
ulat (m/s2 )

w (m/s)

0 0.2

-0.5 0

-1 -0.2
5 10 15 20 25 30
t (s) -0.4
5 10 15 20 25 30
t (s)

(c) tats de la logique de lalgorithme NLGL (d) Vitesses linaires u, v et w

Figure 32 Essai prliminaire du contrle de la vitesse davance u

Suivi de trajectoires

Une fois tous les essais prliminaires termins et russis ayant essentiellement permis
dajuster les valeurs des paramtres Kp , Ki et Kd des contrleurs PID il est enfin possible de
procder aux essais en vol de lalgorithme de suivi de trajectoire.

Automne 2016 O. GOUGEON 58


PI3 Rapport des travaux accomplis

Deux trajectoires diffrentes sont prsentes dans ce rapport : la premire la trajectoire en


zigzag (Figure 33) permet deffectuer une vrification simple du fonctionnement global des lois de
contrle ; tandis que la seconde la trajectoire de rfrence (Figure 34) permettrait ventuellement
quant elle dvaluer la performance de la mthode vis--vis dautres contrleurs en effectuant une
trajectoire un peu plus complexe. Une comparaison de la mthode retenue dans ce projet aux autres
issues de la littrature na pas t effectue en raison de la dlimitation du cadre du projet dfini
la Section 1.

3.2.2.1 Trajectoire en zigzag

La premire trajectoire prsente est celle en zigzag. Les rsultats principaux de cet essai
sont regroups la Figure 33.

Lanalyse des Figures 33a et 33b permet de constater que les lois de contrle globales fonc-
tionnent trs bien pour cette trajectoire. En effet, le drone parvient dans lordre : dcoller,
visiter chacun des waypoints prescrits, approcher en ralentissant sa vitesse au dernier waypoint, puis
finalement, atterrir en douceur. La Figure 33c montre lvolution des tats relis aux waypoints ainsi
que lallure gnrale de la rponse temporelle de la commande ulat gnre par lalgorithme de suivi
de trajectoire NLGL. La Figure 33d montre le maintien des vitesses davance u et latrale v
des valeurs respectives moyennes de 0.5 m/s et 0 m/s. La Figure 33e rvle quant elle quoi
ressemblent les commandes relles du vecteur w. Finalement, la Figure 33f montre lvolution dans
le temps des commandes directes u exprimes en PWM. La commande Ui maximum thorique du
drone tant de 216 = 65 536 PWM et les valeurs de lessai autour de 40 000 PWM, on calcule donc
que ce dernier effectue le suivi de la trajectoire en utilisant environ 60 % du rgime maximum de
chaque moteur. Finalement, lanalyse de la Figure 33b permet de constater que les dpassements
occasionns par les changements de direction sont trs mineurs.

3.2.2.2 Trajectoire de rfrence

La seconde trajectoire prsente est celle dite de rfrence . Les rsultats principaux de
cet essai sont regroups la Figure 34.

Lanalyse des Figures 34a et 34b permet de constater que les lois de contrle globales fonc-
tionnent galement bien pour cette trajectoire. En effet, le drone parvient aussi bien suivre tous
les waypoints prescrits. La Figure 34c montre lvolution rapide des nombreux waypoints dans le
temps (tat nomm wpID ). Les Figures 34d, 34e et 34f montrent cette fois que les vitesses linaires,
la commande relle c et les commandes directes des moteurs Ui sont plus bruites que dans le cas
de la trajectoire en zigzag : la cause nest pas connue. Finalement, lanalyse de la Figure 34b permet
de constater que les dpassements occasionns par les changements de direction sont galement plus
grands que dans le cas de la trajectoire en zigzag. Cela est comprhensible dans la mesure o des

Automne 2016 O. GOUGEON 59


PI3 Rapport des travaux accomplis

Suivi de trajectoire par waypoints en 2D dans l'espace tridimensionnel Suivi de trajectoire par waypoints en 2D dans le plan horizontal
8

1 6

0.9

0.8 5

0.7

0.6
pU (m)

pN (m)
0.5

0.4 3
0.3

0.2
2
0.1

0
1
8

6 0.5
0
4
0
2
-1
-1 0 1
pN (m) 0 pE (m)
-0.5 pE (m)
Trajectoire plani-3ee Trajectoire r3elle Position initiale Position -nale Trajectoire plani-3ee Trajectoire r3elle Position initiale Position -nale

(a) Trajectoire 3D (vue isomtrique) (b) Trajectoire 2D (vue du haut)

R4eponses temporelles du suivi de trajectoire par waypoints en 2D R4eponses temporelles des vitesses lin4eaires dans le repere body
4 1
f lightM ode

3
0.5

u (m/s)
2
wpID (int) (int)

0
1
10
-0.5

5 -1

0 0.2
10
WipN 0.1
Wi (m)

5
WipE
v (m/s)

0
0
-0.1
-5
10 -0.2
Wii (m)

5 WiipN -0.3

0 WiipE
1
-5
2
ulat (m/s2 )

w (m/s)

0.5
1

0
0
-1
5 10 15 20 25 30 35
t (s) -0.5
5 10 15 20 25 30 35
t (s)

(c) tats de la logique de lalgorithme NLGL (d) Vitesses linaires u, v et w

3QPOTFT UFNQPSFMMFT EFT DPNNBOEFT SFMMFT 3QPOTFT UFNQPSFMMFT EFT DPNNBOEFT EFT NPUFVST
# 10 4 # 10 4
6 6
Fz (18.)

61 (18.)

4 4

2 2

0 0
# 10 4
50 6
62 (18.)
?c (deg)

4
0
2

-50 0
# 10 4
40 6
63 (18.)
3c (deg)

20 4

0 2

-20 0
# 10 4
200 6
64 (18.)
A_ c (deg/s)

100 4

0 2

-100 0
5 10 15 20 25 30 35 5 10 15 20 25 30 35
t (s) t (s)

(e) Commandes relles Fz , c , c et c (f) Commandes directes U1 , U2 , U3 et U4

Figure 33 Essai prliminaire du suivi dune trajectoire en forme de zigzag

Automne 2016 O. GOUGEON 60


PI3 Rapport des travaux accomplis

angles plus prononcs sont effectus dans la trajectoire de rfrence (angles droits et obtus) que
dans celle en zigzag (angles obtus seulement). Dailleurs, les angles aigus trop prononcs peuvent
occasionner des problmes. Ce problme est abord la Section 3.2.3.3.

Finalement, il est noter quun montage vido a t ralis pour le suivi de la trajectoire
de rfrence prsent la Figure 34. Lhyperlien menant la vido YouTube est donn dans la
bibliographie [23].

Problmes rencontrs durant la campagne dessais en vol

Cette section prsente certains problmes qui ont t rencontrs pendant la campagne dessais
en vol. On retrouve notamment ceux relis linstabilit des contrleurs, au bruit des camras
VICON dans le processus de localisation du drone et aux angles trop aigus retrouvs dans certains
virages.

3.2.3.1 Instabilit des contrleurs

Le premier problme rencontr pendant la campagne dessais en vol a t linstabilit relie


aux contrleurs et au paramtre de lalgorithme de suivi de trajectoire. En effet, une grande majorit
des valeurs des paramtres Kp , Ki et Kd des contrleurs PID issues des simulations Simulink ne
produisaient pas de rsultats stables lors des essais en vol. Un exemple est prsent la Figure 35.

De fait, la Figure 35a montre quau moins un contrleur est instable dans la mesure o
lerreur de dviation par rapport la trajectoire prescrite diverge. En effet, lanalyse de la Figure 35b
rvle que cest la commande c qui entrane cette divergence. On remarque galement que la
divergence de cette premire commande entrane avec elle celle de la commande c .

Des problmes similaires ont galement t rencontrs dans le choix de lunique paramtre L
de lalgorithme de suivi de trajectoire NLGL propos par [3]. Dans les deux cas, ces problmes ont
t corrigs en effectuant plusieurs itrations dessais en vol jusqu ce que des paramtres donnant
des performances acceptables soient identifis.

3.2.3.2 Bruit des camras VICON dans le processus de localisation du drone

Un autre problme est quant lui venu de lenvironnement dessais en vol. De fait, il est
arriv plusieurs reprises que le systme de camras VICON perde de vue la boule de reprage
monte sur le dessus du drone. Ce problme est prsent la Figure 36.

La consquence de la perte momentane de la boule de reprage est la gnration alatoire de

Automne 2016 O. GOUGEON 61


PI3 Rapport des travaux accomplis

Suivi de trajectoire par waypoints en 2D dans l'espace tridimensionnel Suivi de trajectoire par waypoints en 2D dans le plan horizontal
6

0.9
4
0.8

0.7

0.6 3
pU (m)

pN (m)
0.5

0.4
2
0.3

0.2

0.1 1

0
5

4 0
3
3 2.5
2
2
1.5
1 1 -1
0.5 -1 0 1 2 3 4
pN (m) 0 pE (m)
0 pE (m)
Trajectoire plani-3ee Trajectoire r3elle Position initiale Position -nale Trajectoire plani-3ee Trajectoire r3elle Position initiale Position -nale

(a) Trajectoire 3D (vue isomtrique) (b) Trajectoire 2D (vue du haut)

R4eponses temporelles du suivi de trajectoire par waypoints en 2D R4eponses temporelles des vitesses lin4eaires dans le repere body
4 1
f lightM ode

u (m/s)
0.5
2
wpID (int) (int)

1
15 0

10
-0.5
5

0 0.4
6
Wi (m)

0.2
4 WipN
v (m/s)

2 WipE 0

0
6 -0.2
WiipN
Wii (m)

4 -0.4
WiipE
2
1
0
2
ulat (m/s2 )

0.5
w (m/s)

0
0
-2

-4 -0.5
0 10 20 30 40 50 60 70
t (s) -1
0 10 20 30 40 50 60 70
t (s)

(c) tats de la logique de lalgorithme NLGL (d) Vitesses linaires u, v et w

3QPOTFT UFNQPSFMMFT EFT DPNNBOEFT SFMMFT 3QPOTFT UFNQPSFMMFT EFT DPNNBOEFT EFT NPUFVST
# 10 4 # 10 4
6 6
61 (18.)
Fz (18.)

4 4

2 2

0 0
# 10 4
50 6
62 (18.)
?c (deg)

4
0
2

-50 0
# 10 4
40 6
63 (18.)

20
3c (deg)

4
0
2
-20

-40 0
# 10 4
200 6
64 (18.)
A_ c (deg/s)

0 4

-200 2

-400 0
0 10 20 30 40 50 60 70 0 10 20 30 40 50 60 70
t (s) t (s)

(e) Commandes relles Fz , c , c et c (f) Commandes directes U1 , U2 , U3 et U4

Figure 34 Essai prliminaire du suivi de la trajectoire de rfrence utilise dans ce projet

Automne 2016 O. GOUGEON 62


PI3 Rapport des travaux accomplis

Suivi de trajectoire par waypoints en 2D dans le plan horizontal 3QPOTFT UFNQPSFMMFT EFT DPNNBOEFT SFMMFT
8 # 10 4
6

Fz (18.)
4
7

6 0

20

?c (deg)
10

4 -10

pN (m)
-20

3 40

3c (deg)
20
2
0

1 -20

400

A_ c (deg/s)
0 200

0
-1
-1 0 1
-200
pE (m) 4 6 8 10 12 14 16 18
t (s)
Trajectoire plani-4ee Trajectoire r4elle Position initiale Position -nale

(a) Trajectoire 2D (vue du haut) (b) Commandes relles Fz , c , c et c

Figure 35 Problme rencontr concernant linstabilit des contrleurs

la fausse lecture dun autre point reluisant dans langle douverture des camras. Ce point brillant
est alors pris momentanment comme tant la position du drone. Ce phnomne est illustr la
Figure 36a o lon aperoit des sauts de discontinuit dans la position tridimensionnelle du drone.
On peut galement observer ce phnomne dans les 20 premires secondes des rponses temporelles
des positions linaires pE , pN et pU prsentes la Figure 36b.

Une revrification de la surface du plancher cest--dire sassurer que toutes les ouvertures
du plancher brillant sont obstrues avec les matelas et les tapis et une recalibration du systme
VICON permettaient souvent de corriger le problme.

3.2.3.3 Trajectoire avec virages trop aigus

Finalement, un autre problme a t rencontr lorsquest venu le temps dvaluer les limites
de la solution retenue. Ce dernier consiste en lincapacit de lalgorithme de suivi de trajectoire
commander le drone de manire effectuer un virage trs serr cest--dire un virage comportant
un angle trs aigu. Ce problme est prsent la Figure 37.

Lanalyse de la Figure 37a permet de constater que le drone parvient bien effectuer les
virages 90 et mal ceux 45 . Toutefois, dans les deux cas, le drone continue de suivre la trajectoire
prescrite malgr une commande relle c trs exigeante comme il est illustr la Figure 37b.

Cependant, le problme est tout autre lorsque le drone tente dapprocher le treizime way-
point (sans compter celui de dpart). En effet, ce waypoint, la trajectoire prescrit un virage
denviron 18 au drone. Cet angle est alors bien trop aigu pour lalgorithme NLGL qui prend alors
un certain temps ragir. Cela a comme consquence que le cercle autour du drone dlimit par

Automne 2016 O. GOUGEON 63


PI3 Rapport des travaux accomplis

Suivi de trajectoire par waypoints en 2D dans l'espace tridimensionnel R4eponses temporelles des positions lin4eaires dans le rep3ere inertiel
1.5

pE (m)
0.5

1 -0.5

-1
0.8
1
pU (m)

0.6 0

pN (m)
-1

0.4
-2

-3
0.2
-4

0 1.5
3
2 1
8

pU (m)
1 6
0 4 0.5

-1 2
0 0
-2
-2
pN (m) -3 pE (m)
-4 -0.5
0 20 40 60 80 100 120 140 160 180 200
Trajectoire plani-4ee Trajectoire r4elle Position initiale Position -nale t (s)

(a) Trajectoire 3D (vue isomtrique) (b) Positions linaires pE , pN et pU

Figure 36 Problme rencontr concernant le bruit des camras VICON dans le processus de
localisation du drone

le paramtre L (le rayon) ne possde alors plus aucune intersection avec la trajectoire prescrite.
Comme il a t expliqu la Section 2.6.1, dans un tel cas, la convergence de lalgorithme nest plus
assure et le drone commence alors sloigner de la trajectoire prescrite de manire permanente.
Le point final illustr la Figure 37a par un x correspond au moment o dbute la divergence
du contrleur ce qui met fin lessai en vol rsultant par un atterrissage forc du drone.

De toute vidence, cela constitue la plus grande limitation de la solution retenue. Une solution
possible et simple pour remdier ce problme serait de prescrire un angle de virage minimal lors de
la gnration dune trajectoire par waypoints. Une autre solution plus complexe serait de modifier
les lois de contrle afin de permettre au drone de passer dans un mode virage aigu o un contrle
en positions linaires (pE et pN ) et angulaire () prendrait alors le relais afin de permettre au drone
de profiter de sa dynamique particulire lui permettant alors de faire un virage stationnaire sur
lui-mme.

Comparaison des performances simules et relles

Il tait initialement prvu deffectuer la comparaison des performances du suivi de la trajec-


toire de rfrence entre les rponses temporelles obtenues laide des simulations Simulink et celles
obtenues par les essais en vol. Toutefois, comme il a t mentionn la Section 3.2.3.1, la grande
majorit des contrleurs synthtiss laide des simulations ntaient pas stables pendant les essais
en vol. Pour remdier ce problme, il a fallu effectuer une large campagne dessais en vol afin de
retrouver des paramtres Kp , Ki et Kd des contrleurs PID qui permettaient de stabiliser le drone.

Automne 2016 O. GOUGEON 64


PI3 Rapport des travaux accomplis

Suivi de trajectoire par waypoints en 2D dans le plan horizontal 3QPOTFT UFNQPSFMMFT EFT DPNNBOEFT SFMMFT
6 # 10 4
6

Fz (18.)
4

5
2

4 50

?c (deg)
0
3
pN (m)

-50

40
2
20

3c (deg)
0

1 -20

-40

400

A_ c (deg/s)
0
200

-200
-1
-1 0 1 2 3 4
-400
pE (m) 5 10 15 20 25 30 35 40 45 50
t (s)
Trajectoire plani-3ee Trajectoire r3elle Position initiale Position -nale

(a) Trajectoire 2D (vue du haut) (b) Commandes relles Fz , c , c et c

Figure 37 Problme rencontr concernant les trajectoires avec des virages trop aigus

Puisque les paramtres ainsi trouvs laide dessais en vol taient si diffrents de ceux obtenus
par simulation, il na pas t possible deffectuer une comparaison entre les rponses temporelles
simules et relles des tats du drone lors du suivi de la trajectoire de rfrence.

Bien que plusieurs facteurs aient pu contribuer ce problme, il est toutefois permis de croire
que la cause de ce problme rside dans les paramtres du drone utiliss pour les simulations. En
effet, comme il a t mentionn la Section 2.4, la plupart des paramtres physiques du drone ont
t rcuprs dans la littrature [12] [15]. Toutefois, le prototype utilis dans le cadre de ce projet ne
possdait pas exactement les mmes lments structuraux que ceux utiliss dans ces rfrences. De
plus, il est galement possible que les paramtres notamment ceux du groupe moteur diffrent
dun modle de Crazyflie 2.0 lautre.

Bref, la solution envisageable ce problme aurait t de procder rigoureusement lidentifi-


cation de tous les paramtres du prototype proprement utilis dans le cadre de ce projet. Cependant,
en raison de contraintes de temps et surtout dquipement ces tests didentification nont pas
t effectus.

Automne 2016 O. GOUGEON 65


PI3 Rapport des travaux accomplis

Discussions critiques du projet

Les deux sections prcdentes portant sur la mthodologie employe et lanalyse des rsultats
obtenus constituent la fin du coeur de ce rapport. Afin de donner un sens tout ce qui a t
mentionn, une analyse critique du projet sous forme de discussions est effectue dans cette section.

Plus prcisment, deux discussions critiques sont prsentes : une premire portant sur la
mthodologie et les rsultats obtenus et une seconde traitant des prises de dcision.

Discussion critique de la mthodologie et des rsultats obtenus

Cette section prsente le retour critique concernant la mthodologie employe. toutes fins
utiles, la mthodologie dveloppe la Section 2 et utilise dans le cadre de ce projet est rappele
ici mme sous forme courte :

1. Revue de littrature portant sur les diffrentes solutions existantes ;


2. Slection dune mthode ;
3. Modlisation paramtrique dun quadricoptre ;
4. Mesure et identification des paramtres du CF2 ;
5. Cration dun environnement de simulation sous MATLAB /Simulink ;
6. Synthse de la logique de contrle, lalgorithme de guidage et des contrleurs ;
7. Configuration dun environnement dessais sous ROS Indigo et VICON ;
8. Tests en vol et rglage des paramtres ;
9. Comparaison des performances simules et relles.

Aprs coup, il est maintenant facile didentifier ltape o a t introduit le maillon faible
dans la chane. De fait, le maillon faible de la chane est sans aucun doute ltape 4. En effet,
le fait dutiliser les paramtres physiques du Crazyflie 2.0 retrouvs dans la littrature et de ne
pas procder leur validation exprimentale de manire indpendante peut tre considr comme
une source trs probable des problmes survenus lors de lessai initial des contrleurs en vol qui
fonctionnaient alors trs mal. De plus, cela a eu des rpercussions directes sur deux autres tapes.
vrai dire, en raison des paramtres retenus ayant donn de mauvaises performances en vol, la
campagne dessais et de rglage des paramtres de ltape 8 a alors t beaucoup plus longue quil
tait initialement prvu. De fait, il a fallu procder de nombreux essais pour chaque contrleur afin
de retrouver des valeurs de paramtres Kp , Ki et Kd offrant des performances acceptables. Puis,
le fait de modifier compltement la valeur des paramtres des PID a rendu infaisable la dernire

Automne 2016 O. GOUGEON 66


PI3 Rapport des travaux accomplis

tape de la mthodologie labore soit ltape 9 de la comparaison des performances simules et


relles.

Une force retenir de la mthodologie employe est la modlisation paramtrique complte


de la dynamique dun quadricoptre. En effet, la modlisation rigoureuse dun modle avec des
longueurs de bras et un angle entre ces derniers variables constitue vraiment laspect original de ce
projet. De fait, presque lentiret des modles utiliss dans la littrature scientifique est compose
de quadricoptres classiques avec des longueurs de bras gales et deux plans de symtrie verticaux.
Ainsi, le modle dvelopp dans le cadre de ce projet pourra tre rutilis par quiconque souhaitant
modliser un drone avec des longueurs et un angle de bras diffrents.

En dernier lieu, une courte analyse de la validit de la solution finale est effectue. la
lumire des rsultats qui ont t prsents notamment ceux des Figures 33 et 34, il a t dmontr
que la solution finale dveloppe vis--vis le problme de suivi dune trajectoire de rfrence peut
tre utilise afin de suivre diffrentes trajectoires. De plus, ces dernires sont facilement dfinissables
en construisant une matrice de taille n+12 o n est le nombre de waypoints visiter et chaque
ligne reprsente les coordonnes pEi et pNi des waypoints i visiter (le premier point de coordonnes
initiales ne comptant pas comme un point visiter). Toutefois, en poussant la solution dveloppe
jusqu ses limites, il a t constat que les lois de contrle dveloppes ne permettent pas deffectuer
le suivi de trajectoire comportant des angles aigus trs prononcs. Lanalyse de la Figure 37 a bien
mis cela en vidence.

En somme, il est juste daffirmer que la solution finale dveloppe dans ce projet est valide
dans la mesure o elle est effectivement dote de la capacit de pouvoir suivre diffrentes trajectoires
et que ses limites ont t mises en vidence soit les Besoins 4 et 5 du cahier des charges du client
prsent la Section 1.4.

Discussion critique des prises de dcision

Deux dcisions importantes ont d tre prises dans la ralisation de ce projet. La premire
constitue en elle-mme ltape 2 de la mthodologie dveloppe soit la slection dun algorithme
de suivi de trajectoire. La seconde se rattache ltape 4 soit la dcision de ne pas identifier de
manire indpendante les paramtres du prototype utilis dans le cadre du projet.

Tout dabord, la slection de lalgorithme NLGL a t largement dfendue la Section 2.2. En


effet, afin deffectuer un choix clair, les diffrentes mthodes proposes par [3] ont t analyses
selon leurs avantages (Tableau 1) et inconvnients (Tableau 2). De plus, le choix final entre les
deux solutions finalistes (VF et NLGL) sest fait en approfondissant ltude de chacune laide
de simulations (Figures 2, 3, 4 et 5). Le choix de retenir la solution de lalgorithme NLGL comme
solution finale est donc rigoureusement appuy.

Automne 2016 O. GOUGEON 67


PI3 Rapport des travaux accomplis

Ensuite, la dcision relie ltape 4 de la mthodologie consistant en le choix de ne pas pro-


cder une identification rigoureuse des paramtres du Crazyflie 2.0 a t principalement effectue
en fonction de contraintes temporelle et matrielle. En effet, lidentification de ces paramtres aurait
ncessit beaucoup de temps afin de mettre en place les bancs dessai requis afin deffectuer tous les
tests ncessaires notamment celui de la dtermination des constantes arodynamiques kT et kD
des hlices des moteurs ainsi que celui de la dtermination de la matrice relle du tenseur dinertie
Ib du CF2. Au final, malgr le fait que cela ait allong la campagne dessais en vol prliminaires
afin didentifier les nouvelles valeurs des paramtres des contrleurs PID, cela na toutefois pas
empch de faire fonctionner la solution retenue. Enfin, lidentification de ces paramtres dpassait
largement le cadre du projet propos par le professeur David Saussi. De fait, seule lidentification
de tous les paramtres du Crazyflie 2.0 pourrait constitue elle-mme en un projet complet. Voil
donc comment le choix de ne pas procder ces identifications est justifi.

En somme, on retient que les bonnes dcisions ont t prises dans le cadre de ce projet et
cela de manires tout fait justifies.

Automne 2016 O. GOUGEON 68


PI3 Rapport des travaux accomplis

Analyse de la gestion du temps

Afin de respecter les 135 heures devant tre consacres au projet, un chancier initial a t
labor en fonction des grandes tapes prvues. Ce dernier est prsent la Figure 38a. On remarque
que le nombre dheures consacres des activits de conception slve 80 heures. Aucun budget
ntait ncessaire pour la ralisation du projet. En effet, le laboratoire du professeur David Saussi
comportait tous les quipements ncessaires sa ralisation selon le cadre du projet initialement
dfini.

Dautre part, afin de bien veiller au droulement du projet, il a t convenu avec le professeur
Saussi deffectuer de courtes runions hebdomadaires. De fait, celles-ci prenaient place les mardis
aprs-midi entre 13h30 et 14h00. Elles ont t rigoureusement respectes tout au long de la session
lexception prs de quelques runions qui ont d tre reportes dune semaine en raison de
lindisponibilit de lun ou lautre des deux partis.

De plus, pendant toute la dure du projet, les travaux effectus ont t consigns dans un
cahier de projet numrique soit une tablette iPad . Ce cahier numrique comporte essentiellement
des croquis, dveloppements mathmatiques, notes, analyses, observations et annotations darticles
scientifiques ou dautres documents pertinents.

Finalement, un fait notable de lchancier labor initialement est la dcision (ambitieuse)


deffectuer la rdaction du rapport de manire continue tout au long du droulement du projet (voir
la Figure 38a).

Respect de lchancier

Les vnements rels ne se sont pas tout fait drouls comme initialement prvus. En effet,
lanalyse de la Figure 38b rvle quelques diffrences notables. Parmi celles-ci, on retrouve entre
autres les rallongements des priodes requises afin deffectuer la revue de littrature et procder
au rglage des paramtres des lois de contrle.

Le rallongement de la priode requise afin deffectuer la revue de littrature a t caus par


le fait quil me manquait plusieurs connaissances de base en matire de contrle afin de pouvoir
bien saisir toutes les subtilits des articles scientifiques consults. Cela explique donc pourquoi
le processus de recherche dune mthode a t plus long que prvu. Puis, comme il a dj t
mentionn maintes reprises, le rallongement de la priode requise afin de rgler les paramtres
des contrleurs a t caus par lincertitude sur les paramtres utiliss dans lenvironnement de
simulation dvelopp sous Simulink .

Automne 2016 O. GOUGEON 69


PI3 Rapport des travaux accomplis

Finalement, une autre constatation importante est le non-respect de la dcision dcrire le


rapport en continu tout au long du projet. En effet, on remarque sur la Figure 38b que le rapport a
t crit dans les dernires semaines prcdant la date dchance. Cela a entre autres t caus par
le rallongement des priodes prcdemment mentionnes. Ainsi, cest la sous-estimation du temps
requis afin daccomplir ces tches qui est responsable de non-respect de cette dcision initiale. Au
final, cela a eu comme rsultat de concentrer toutes les tches en lien avec la rdaction du rapport et
la prparation de loral en fin de projet et de faire exploser le nombre dheures de travail prcdant
les remises.
LGENDE

Prvu
Rel
% complt
Rel (plus tard que prvu)
% complt (plus tard que prvu)

12 SEPTEMBRE 2016

19 SEPTEMBRE 2016

26 SEPTEMBRE 2016

14 NOVEMBRE 2016

21 NOVEMBRE 2016

28 NOVEMBRE 2016
CHANCIER PRVU - OLIVIER GOUGEON

5 SEPTEMBRE 2016

7 NOVEMBRE 2016

5 DCEMBRE 2016
10 OCTOBRE 2016

17 OCTOBRE 2016

24 OCTOBRE 2016

31 OCTOBRE 2016
3 OCTOBRE 2016
29 AOT 2016
AER3900 - PROJET INTGRATEUR 3

SEMAINE
PRVU REL
TCHE DE POURCENTAGE
# TCHE # SEMAINE DURE # SEMAINE DURE # # # # # # # # # # # # # # #
CONCEPTION COMPLT
DBUT FIN SEMAINE HEURE DBUT FIN SEMAINE HEURE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 Recherche d'un projet et d'un directeur 1 2 2 5 0%
2 Enregistrement du projet 2 2 1 5 0%
3 Revue de littrature portant sur les diffrentes solutions existantes permettant le guidage par waypoints 2 3 2 10 X 0%
4 Dbut de la rdaction du rapport en continu tout au long de la ralisation des tapes du projet 3 12 10 20 0%
5 Choix d'une mthode en fonction du degr de difficult anticip 3 3 1 5 X 0%
6 Modlisation paramtrique de la dynamique complte d'un quadricoptre 4 5 2 20 X 0%
7 Mesure et identification des paramtres physiques propres au microquadricoptre Crazyflie 2.0 6 6 1 5 0%
8 Cration d'un environnement de simulation sous MATLAB/Simulink 6 6 1 5 X 0%
9 Synthse des algorithmes de stabilisation, contrle et guidage du microquadricoptre 7 9 3 25 X 0%
10 Configuration de l'environnement de dveloppement et d'essais sous ROS Indigo et VICON 10 10 1 5 X 0%
11 Tests en vol et rglage des paramtres de l'algorithme de suivi de trajectoire par waypoints sur le microquadricoptre Crazyflie 2.0 11 12 2 10 X 0%
12 Comparaison des performances simule et relle pour le suivi de diffrentes trajectoires 12 12 1 5 0%
13 Finalisation et correction du rapport crit 13 14 2 10 0%
14 Prparation de la prsentation orale (support visuel + pratique) 14 14 1 5 0%
15 Remise du rapport crit 15 15 1 N/A 0%
16 Prsentation orale 15 15 1 N/A 0%
TOTAL PRVU : 135 HEURES TOTAL REL : HEURES
CONCEPTION PRVUE : 80 HEURES CONCEPTION RELLE : HEURES

(a) chancier prvu

LGENDE
Prvu
Rel
% complt
Rel (plus tard que prvu)
% complt (plus tard que prvu)
12 SEPTEMBRE 2016

19 SEPTEMBRE 2016

26 SEPTEMBRE 2016

14 NOVEMBRE 2016

21 NOVEMBRE 2016

28 NOVEMBRE 2016
CHANCIER REL - OLIVIER GOUGEON
5 SEPTEMBRE 2016

7 NOVEMBRE 2016

5 DCEMBRE 2016
10 OCTOBRE 2016

17 OCTOBRE 2016

24 OCTOBRE 2016

31 OCTOBRE 2016
3 OCTOBRE 2016
29 AOT 2016

AER3900 - PROJET INTGRATEUR 3


SEMAINE

PRVU REL
TCHE DE POURCENTAGE
# TCHE # SEMAINE DURE # SEMAINE DURE # # # # # # # # # # # # # # #
CONCEPTION COMPLT
DBUT FIN SEMAINE HEURE DBUT FIN SEMAINE HEURE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 Recherche d'un projet et d'un directeur 1 2 2 5 1 1 1 3 100%
2 Enregistrement du projet 2 2 1 5 2 2 1 2 100%
3 Revue de littrature portant sur les diffrentes solutions existantes permettant le guidage par waypoints 2 3 2 10 X 2 5 4 20 100%
4 Dbut de la rdaction du rapport en continu tout au long de la ralisation des tapes du projet 3 12 10 20 12 14 3 30 100%
5 Choix d'une mthode en fonction du degr de difficult anticip 3 3 1 5 X 5 5 1 5 100%
6 Modlisation paramtrique de la dynamique complte d'un quadricoptre 4 5 2 20 X 6 7 2 20 100%
7 Mesure et identification des paramtres physiques propres au microquadricoptre Crazyflie 2.0 6 6 1 5 8 8 1 5 100%
8 Cration d'un environnement de simulation sous MATLAB/Simulink 6 6 1 5 X 8 8 1 5 100%
9 Synthse des algorithmes de stabilisation, contrle et guidage du microquadricoptre 7 9 3 25 X 9 11 3 30 100%
10 Configuration de l'environnement de dveloppement et d'essais sous ROS Indigo et VICON 10 10 1 5 X 12 12 1 5 100%
11 Tests en vol et rglage des paramtres de l'algorithme de suivi de trajectoire par waypoints sur le microquadricoptre Crazyflie 2.0 11 12 2 10 X 13 13 1 20 100%
12 Comparaison des performances simule et relle pour le suivi de diffrentes trajectoires 12 12 1 5 0 0 0 0 0%
13 Finalisation et correction du rapport crit 13 14 2 10 15 15 1 20 100%
14 Prparation de la prsentation orale (support visuel + pratique) 14 14 1 5 15 15 1 5 100%
15 Remise du rapport crit 15 15 1 N/A 15 15 1 N/A 100%
16 Prsentation orale 15 15 1 N/A 15 15 1 N/A 100%
TOTAL PRVU : 135 HEURES TOTAL REL : 170 HEURES
CONCEPTION PRVUE : 80 HEURES CONCEPTION RELLE : 105 HEURES

(b) chancier rel

Figure 38 Comparaison des chanciers prvu et rel

Automne 2016 O. GOUGEON 70


PI3 Rapport des travaux accomplis

Amliorations pour le futur

Aprs rflexion, je constate quen gnral de bonnes dcisions et habitudes ont t prises
afin deffectuer la gestion du temps du projet. La meilleure habitude constitue certainement en le
respect des rencontres hebdomadaires avec le professeur-directeur du projet.

Toutefois, pour viter que des rallongements des priodes estimes afin daccomplir certaines
tches ne surviennent lavenir, jincorporerai une priode tampon proportionnelle chaque priode
initialement estime. Cela permettra alors davoir un jeu dans le cas o une tche vient demander
plus de temps que prvu.

Automne 2016 O. GOUGEON 71


PI3 Rapport des travaux accomplis

Conclusion

Cette section prsente la conclusion du projet. Cette dernire seffectue en deux temps :
premirement, un retour sur le cadre du projet prsent la Section 1 est effectu ; puis, des
recommandations de travaux futurs sont proposes en guise douverture.

Retour sur le cadre du projet

Dans le cadre du projet propos par le professeur David Saussi, il tait demand deffectuer
la conception dun algorithme de suivi de trajectoire. Ce dernier sorientait selon la ncessit de
fournir une solution de guidage simple et efficace au secteur des drones qui est prsentement en pleine
croissance ; le march des drones de livraisons commerciales [1] et celui de livraisons mdicales [2]
tant deux exemples dactualit.

De fait, lobjectif principal du projet consistait en la modlisation de ladite mthode de suivi


de trajectoire. De plus, le projet comportait galement deux objectifs secondaires : la modlisation
paramtrique dun quadricoptre et la dmonstration de faisabilit de la solution retenue par un
vol dessai ralis avec le Crazyflie 2.0. De plus, il tait galement demand ce que lalgorithme
retenu puisse tre utilis afin de suivre diffrentes trajectoires et den expliciter les limites de ses
capacits.

Deux solutions taient alors envisageables : les algorithmes de suivi discrtisant la trajectoire
dans lespace et ceux discrtisant plutt dans le temps. Afin deffectuer un choix judicieux, une
revue de littrature exhaustive a t ralise afin dexplorer les diffrentes approches possibles
(Section 2.1). Puis, lalgorithme de suivi de trajectoire par waypoints NLGL de [3] a t retenu
aprs une comparaison soutenue des diffrentes mthodes existantes (Section 2.2).

Pour parvenir lobjectif final dun vol de suivi dune trajectoire quelconque, il a t nces-
saire de procder de manire mthodologique. Tout dabord, un modle paramtrique complet du
drone a t modlis (Section 2.3). Puis, les mesures de certains paramtres du prototype de dve-
loppement utilis dans les essais en vol ont t effectues, puis compltes par les valeurs retrouves
dans la littrature (Section 2.4). La cration dun environnement de simulation fonctionnant sous
MATLAB /Simulink (Section 2.5), la synthse des lois de contrle (Section 2.6) et la configura-
tion dun environnement dessais (Section 2.7) ont permis de se rendre ltape ultime des essais
en vol de la mthode de suivi de trajectoire dveloppe dans ce projet.

Une analyse rigoureuse et dtaille des essais en vol (Section 3.2) a dmontr que la solution
dveloppe atteignait les objectifs initiaux savoir que ses performances taient satisfaisantes et
quelle permettait effectivement de suivre des trajectoires personnalisables (Figures 33 et 34). De

Automne 2016 O. GOUGEON 72


PI3 Rapport des travaux accomplis

plus, la principale limite de la solution retenue a t mise en vidence soit quelle ne parvient pas
effectuer des virages comportant des angles aigus trs prononcs. Les rsultats obtenus (Figure 37)
ont montr que cette limite se situait aux alentours de 45 . En effet, partir de cet angle, les
performances commencent se dgrader et lerreur de dviation du suivi de la trajectoire prend
en importance pendant les virages. Une vido de la dmonstration de faisabilit du suivi dune
trajectoire avec lalgorithme retenu NLGL a galement t produite [23].

Finalement, pour les besoins du projet, une discussion critique de la mthodologie, des
rsultats obtenus et des prises de dcision a t effectue ayant men la mise en lumire du
maillon faible dans la mthodologie (Section 4) soit celui de ne pas avoir procd lidentification
des paramtres physiques du drone. Lanalyse de laspect temporel du projet a galement rvl
que le temps devant tre investi dans certaines tapes comme celles de la revue de littrature et
de la campagne dessais en vol a t sous-estim (Section 5). La recommandation dappliquer un
facteur de scurit aux estimations de temps a t propose comme solution pour de futurs projets.

Recommandations de travaux futurs

Durant le droulement du projet, plusieurs ides ont merg poussant continuellement les
limites du cadre de ce projet. En effet, tant donn les contraintes en temps et en matriel, la
grande majorit de ces ides nont pu tre explores. Ainsi, ces ides exploratrices sont explicites
aux paragraphes suivants. Le lecteur avis de ce rapport est fortement encourag poursuivre de
lui-mme certaines de ces ides.

La premire ide est venue pendant la modlisation paramtrique du drone. Bien quelle nait
pas t explore, il aurait t intressant deffectuer une tude de limpact du dimensionnement des
bras LF et LA et de langle sur la stabilit du drone.

La seconde ide a quant elle merg suite au problme rencontr de lincapacit du drone
effectuer des virages composs dangles aigus prononcs. Il serait intressant dajouter une logique
dapproche chaque waypoint afin de faire un contrle en position lapproche de ce dernier. Il
serait alors possible de ralentir le drone jusqu une vitesse nulle, puis dexcuter un virage purement
en lacet afin de rorienter le drone vers son prochain waypoint. Cette approche permettrait au drone
de profiter pleinement de lavantage de sa dynamique particulire dhlicoptre lui permettant de
faire un vol stationnaire. Ultimement, cela permettrait de rduire considrablement voire annuler
les dpassements aux changements de direction.

La troisime ide consiste cette fois en une solution au problme de lincertitude des pa-
ramtres physiques du Crazyflie ayant men la synthse de contrleurs inutilisables pour de
vritables essais en vol. De fait, il existe une thorie du contrle soit celle du contrle adaptatif
qui permet prcisment dadapter en temps rel les paramtres dun modle grce linformation

Automne 2016 O. GOUGEON 73


PI3 Rapport des travaux accomplis

recueillie pendant un vol. Ainsi, lutilisation dune telle mthode de contrle aurait pu permettre
didentifier de meilleurs paramtres physiques pour le prototype utilis dans le cadre de ce projet.

La quatrime ide consiste rendre autonomes les lois de contrle. De fait, dans la mthode
dveloppe pour ce projet, le drone dpend des tats en positions qui sont retourns par le systme
de camras VICON . Or, il serait possible de rendre ces mesures indpendantes en embarquant un
GPS, puis de faire une comparaison avec ce systme plutt lent en frquence de rafrachissement
des donnes disponibles.

La cinquime ide consiste comparer les performances obtenues avec le systme de po-
sitionnement trs prcis et coteux VICON avec un systme moins prcis et beaucoup moins
dispendieux : le UWB (ultra-wideband). En effet, une comparaison avec ce systme comportant
de plus grands dlais aurait t pertinente dans la juste mesure que le systme UWB peut tre
facilement dplaable chose qui nest pas possible avec un systme de camras VICON ancres
solidement.

Les sixime, septime et huitime ides sont apparues lors de la campagne dessais en vol.

Concrtement, la sixime ide est celle de tenter deffectuer des trajectoires comportant des
courbures prononces en utilisant de trs petits segments de trajectoire et donc un nombre lev
de waypoints. Cela permettrait de faire la comparaison de la mthode dveloppe dans ce projet
avec un algorithme de suivi de trajectoire paramtrisable dans lespace pour nimporte quel type
de courbe paramtrique (p. ex. : la mthode de contrle LQR utilise par [22]).

La septime ide consiste en lessai des autres algorithmes de suivi de trajectoire proposs
par [3] notamment celui fonctionnant avec des VF dont la solution a t finaliste ltape du
choix de la mthode de ce projet.

Finalement, la huitime et dernire ide serait de transposer le problme 2D abord dans


ce projet au cadre plus large du problme de suivi de trajectoire en 3D. Une recherche trs rapide
dans la littrature a permis de trouver une quantit importante de rfrences proposant une telle
adaptation partir dun algorithme 2D.

En somme, le lecteur peut retenir que le problme de suivi dune trajectoire est trs vaste
et que toutes les solutions existantes mritent dtre bien explores avant de choisir une mthode
rpondant ses besoins.

Voil ce qui termine le rapport du projet de conception dun algorithme de suivi de trajectoire
par waypoints pour un microquadricoptre.

Automne 2016 O. GOUGEON 74


PI3 Rapport des travaux accomplis

Annexes

Programme Mathematica utilis afin de linariser le modle

Cette annexe prsente le programme Mathematica utilis afin de linariser le modle non
linaire complet du drone DP1 dvelopp la Section 2.3.

La prsentation du programme commence partir de la page suivante.

Automne 2016 O. GOUGEON I


PI3 Rapport des travaux accomplis


Note importante :

Sauf si un avis contraire est donn, toutes les valeurs des paramtres ou des variables sont donnes
dans le systme international.


Mathematica
<<


= //////
= /
=
= [{ }]
////////


= [ ]
= [ ]
[[
[{[[]] = [[ [] ]][[]]}]]
{ []}]

{{{}} {{}} {{}} {{}} {{}} {{}} {{}}


{{}} {{}} {{}} {{}} {{}} {{}} {{}}
{{}} {{}} {{}} {{}} {{}} {{}} {{}} {{}}}

{


}

Automne 2016 O. GOUGEON II


PI3 Rapport des travaux accomplis

2 CF2_Modele_mathematique_et_mecanique.nb



NOTE IMPORTANTE : Faire attention, car plusieurs quations ont t simplifies de manire manuelle
- pour le cas dun quadricoptre possdant 3 plans de symtrie - afin de simplifier la rsolution des
systmes dquation. Il faudrait rcrire les quations non-simplifies et ajouter les conditions de
simplification seulement au moment de la rsolution des systmes pour des cas particuliers de
configuration.


=
=
=
=
=

Automne 2016 O. GOUGEON III


PI3 Rapport des travaux accomplis

CF2_Modele_mathematique_et_mecanique.nb 3

m1m2m3m4m5
* [ ]
= * [ ]

* [ ]
= - * [ ]

- * [ ]
= - * [ ]

- * [ ]
= * [ ]


=


= ( )


= [[] ]


[[[ ]] * [[ ]] { []}]
=

body

= ( - ( ))

Automne 2016 O. GOUGEON IV


PI3 Rapport des travaux accomplis

4 CF2_Modele_mathematique_et_mecanique.nb


[[ { } ]]
[[ { } ]]
= [[ { } ]]
[[ { } ]]
[[ { } ]]

Automne 2016 O. GOUGEON V


PI3 Rapport des travaux accomplis

CF2_Modele_mathematique_et_mecanique.nb 5

[]

[] = []
{ }
/ { }

Direction de vol principale


xb = xg [m]

1.0

0.8

0.6

0.4

0.2

yb [m]
0.2 0.4 0.6 0.8 1.0


[ COMPLTER]

Automne 2016 O. GOUGEON VI


PI3 Rapport des travaux accomplis

6 CF2_Modele_mathematique_et_mecanique.nb


Passage de lentre _i en rad/s lentre U_i en PWM avec la relation linaire suivante :
(* [_]=(*[]+)*(/)
[_]=(*[]+)*(/)
[_]=(*[]+)*(/)
[_]=(*[]+)*(/) *)


[]
[_] = []
[]
[]
[_] = []
[]
[]
[_] = []
[]
[]
[_] = []
[]
- -
= - -
- -


Mouvements en translation
=

([_] = * ([[] ] +
[{[[]][[]] [[]][[]]}])) //

( + ) (- [] [] + [] [] + [])
( + ) ([] [] - [] [] + [])
( + ) (- [] [] + [] [] + [])

Mouvements en rotation

Automne 2016 O. GOUGEON VII


PI3 Rapport des travaux accomplis

CF2_Modele_mathematique_et_mecanique.nb 7

= [[] ]
= []
= [{[[]][[]] [][[]]}]
([_] = + ) //

- [] [] - [] + [] [] - [] [] + [] [] + [] + [
[] + [] [] + [] [] - [] [] - [] [] - [] - [
- [] - [] [] + [] [] + [] - [] [] + [] [] - [


[_] =
[[]] * [[]] [[]] * [[
[[]] [[]] [[]] - [[]] [[]] [[]] [[]] [[]] +
[[]] [[]] [[]] + [[]] [[]] [[]] [[]] [[]] -


=


[_] = * [] + //
- [] + [] + [] + []

- ( + ) [[]]
( + ) [[]] [[]]
( + ) [[]] [[]] - [] + [] + [] + []


= [[[ { } { } ]]]

[_] = - *
[] [] [] []
[_] = [{[][[]] [[]][[]]}]
( = [[[] { }]]) //

[ ] - [] + [] + [] - []
[ ] ( + ( +)) [] +( + + ) [] -( + + ) [] +[]
+

Automne 2016 O. GOUGEON VIII


PI3 Rapport des travaux accomplis

8 CF2_Modele_mathematique_et_mecanique.nb

= +
[_] = () * ([[] ] + [[] ] - [[] ] - [[] ])
[_] = * [] + [] - [] - []
( + ) ( [] - [] + [] - [])

[] - [] + [] - []


[_] = + +
[] + []
* [] * ([] - [] + [] - [])
- * [] * ([] - [] + [] - []) //

( + ) [] ([] - [] + [] - []) + [ ] - [] + [] +
[ ] ( + ( +)) [] +( + + )
(- - ) [] ([] - [] + [] - []) +
+
[] - [] + [] - [] + ( + ) ( [] - [] + []

LHSRHS


= [] []
[] //
[] //
{- ( + ) [[]]} { ( + ) [[]] [[]]}
( + ) [[]] [[]] - [] + [] + [] + []
{{( + ) (- [] [] + [] [] + [])} {( + ) ([] [] - [] [] + [])}
{( + ) (- [] [] + [] [] + [])}}

- ( + ) [[]]
( + ) [[]] [[]]
( + ) [[]] [[]] - [] + [] + [] + []

( + ) (- [] [] + [] [] + [])
( + ) ([] [] - [] [] + [])
( + ) (- [] [] + [] [] + [])

Automne 2016 O. GOUGEON IX


PI3 Rapport des travaux accomplis

CF2_Modele_mathematique_et_mecanique.nb 9


= [] []
[] //
[] //

( + ) [] ([] - [] + [] - []) +
[ ] - [] + [] + [] - []

(- - ) [] ([] - [] + [] - []) +
+
[ ] ( + ( + )) [] +
( + + ) [] - ( + + ) [] + []

[] - [] + [] - [] + ( + ) ( [] - [] + [] - [])

- [] [] - [] + [] [] - [] [] +
[] [] + [] + [] - [] - []
[] + [] [] + [] [] - [] [] -
[] [] - [] - [] + [] - []
- [] - [] [] + [] [] + [] - [] [] +
[] [] - [] - [] + []

( + ) [] ([] - [] + [] - []) + [ ] - [] + [] +
[ ] ( + ( +)) [] +( + + )
(- - ) [] ([] - [] + [] - []) +
+
[] - [] + [] - [] + ( + ) ( [] - [] + []

- [] [] - [] + [] [] - [] [] + [] [] + [] + [
[] + [] [] + [] [] - [] [] - [] [] - [] - [
- [] - [] [] + [] [] + [] - [] [] + [] [] - [



[]
[_] = []
[]
[]
[_] = []
[]

Automne 2016 O. GOUGEON X


PI3 Rapport des travaux accomplis

10 CF2_Modele_mathematique_et_mecanique.nb

= [[] ] [[]][]
([[] ]) //
([[]][]) //
{{ []} { []} { []}}
{{[[]] [[]] [] + ([[]] [[]] [[]] - [[]] [[]])
[] + ([[]] [[]] [[]] + [[]] [[]]) []}
{[[]] [[]] [] + ([[]] [[]] + [[]] [[]] [[]])
[] + (- [[]] [[]] + [[]] [[]] [[]]) []}
{- [[]] [] + [[]] [[]] [] + [[]] [[]] []}}

[]
[]
[]

[[]] [[]] [] + ([[]] [[]] [[]] - [[]] [[]]) [] +
[[]] [[]] [] + ([[]] [[]] + [[]] [[]] [[]]) [] + (
- [[]] [] + [[]] [[]] [] + [


[[]] [[]] [[]] [[]]
= [[] ] [[]] - [[]] []
[[]] / [[]] [[]] / [[]]
([[] ]) //
[[]] [[]] [[]] [[]]
[[]] - [[]] [] //
[[]] / [[]] [[]] / [[]]
{{ []} { []} { []}}
{{[] + [[]] [] [[]] + [] [[]] [[]]}
{[[]] [] - [] [[]]}
{[[]] [] [[]] + [] [[]] [[]]}}

[]
[]
[]

[] + [[]] [] [[]] + [] [[]] [[]]


[[]] [] - [] [[]]
[[]] [] [[]] + [] [[]] [[]]


hover

x x u

Automne 2016 O. GOUGEON XI


PI3 Rapport des travaux accomplis

CF2_Modele_mathematique_et_mecanique.nb 11

=
[( [] [] [] [] [] [] [] [] [] [] [] [] )]
= [ ]
= [( [] [] [] [] )]

[[ ]]
[[ ]]
[[ ]]
[[ ]]
[[ ]]
[[ ]]
= //
[[ ]]
[[ ]]
[[ ]]
[[ ]]
[[ ]]
[[ ]]

( +
( + ) (
( + ) [[]] [[]]
[] + ( + ) [] ([] - [] + [] - []) + [ ] - [] +
[ ] ( + ( +)) [] +( + + ) [] -( + + ) [
[] [] + [] +
+
[] + [] (( - ) [] + []) + [] - [] + [
[[]] [[]] [] + [[]] [[]] [[]]
[[]] [[]] [] + [[]] [[]] [] + [
[[]] [
[]

[]

= [ { }]
[[[ ]] = [[[ ]] [[ ]]][[ ]] { }]
[] //

- [[]] + [] [] - [] [
[[]] [[]] - [] [] + [
- [[]] [[]]- [[]] [[]]-( +) [] []+( +) []
-
+
[] - [] +[] ( []- [])- [ ] [] + [ ] [] + [ ] [] +[] ((-)


(
[] - [] []- [] +[] ( []+(-) [])+(+) [] ([]-[]+[]-[])-
-

[] - [] - [] []+[] ((-) []+ [])+ [] - [] + [] - [] + []+ [

[[]] [[]] [] + ([[]] [[]] [[]] - [[]] [[]]) [] +
[[]] [[]] [] + ([[]] [[]] + [[]] [[]] [[]]) [] + (
- [[]] [] + [[]] ([[]] [] +
[] + ([[]] [] + [] [[]])
[[]] [] - [] [[]
[[]] ([[]] [] + []

Automne 2016 O. GOUGEON XII


PI3 Rapport des travaux accomplis

12 CF2_Modele_mathematique_et_mecanique.nb

hover
= [ / {[] [] []
[] [] [] [] [] [] []
[] [] [] [] [] [] }]
- - + [] + [] + [] + []
{} {} -
+
[ ] [] - [] + - [] + []
-


[ ] ( + ( + )) [] +
( + )
( + + ) [] - ( + + ) [] + []

[] - [] + [] - []
{} {} {} {} {} {}

Automne 2016 O. GOUGEON XIII


PI3 Rapport des travaux accomplis

CF2_Modele_mathematique_et_mecanique.nb 13

[] //
=
[[[ ]] [[ ]] [[ ]]
[[ ]]
[] > [] > [] >
[] > {[] [] [] []} ] //



- - + [] + [] + [] + []

-
+
[ ] [] - [] + -[] +[]
-

[ ] ( + ( +)) [] +( + + ) [] -( + + ) [] +[]
( +)
[] -[] +[] -[]






( + + )
(+)
[] > > > >

> > > > > >

( + + )
(+)
[] > > >

> > > > > > >

( + + )
(+)
[] > > >

> > > > > > >

( + + )
(+)
[] > > >

> > > > > > >

= [[ ]]
= [[ ]]
= [[ ]]
= [[ ]]

Automne 2016 O. GOUGEON XIV


PI3 Rapport des travaux accomplis

14 CF2_Modele_mathematique_et_mecanique.nb

( + + ) ( + + )
(+) (+)

( + + ) ( + + )
(+) (+)

Automne 2016 O. GOUGEON XV


PI3 Rapport des travaux accomplis

CF2_Modele_mathematique_et_mecanique.nb 15

= [ { }] //
=
//












( + + ) ( + + )
(+) (+)

( + + ) ( + + )
(+) (+)


( + + )
(+)

( + + )
(+)

( + + )
(+)

( + + )
(+)

[ / { }]

( + )

Automne 2016 O. GOUGEON XVI


PI3 Rapport des travaux accomplis

16 CF2_Modele_mathematique_et_mecanique.nb

A, B, C et D
A
( = [ { }]) //

[[[[ ]] = [[[ ]] [[ ]]] { }] { }]
//
( = / {[] [] [] [] []
[] [] [] [] [] []
[] [] [] [] []
[] [] [] [] }) //












{{ } { }
{ } { }
{ } { }
{ } { }
{ } { }
{ } { }}

[]
- []
- []- [] []+ []
- - - -


[[]] [[]] [[]] [[]] [[]] - [[]] [[]] [[]]
[[]] [[]] [[]] [[]] + [[]] [[]] [[]] - [[]]
- [[]] [[]] [[]]


Automne 2016 O. GOUGEON XVII


PI3 Rapport des travaux accomplis

CF2_Modele_mathematique_et_mecanique.nb 17

[]
{ }

B
= [( [] [] [] [] )]
=
[ / {[] ( * [] + ) * ( / ) [] ( * [] + ) * ( / )
[] ( * [] + ) * ( / ) [] ( * [] + ) * ( / )
[] * [] [] * [] [] * [] [] * []}]
//

- [[]] [[]]- [
-
[] - [] + [] ( []- [])- [ ] []- [ ] [] +

[] - [] []- [] +[] ( []+(


-

[] + [] []- [] []- [] + [] []- [] []+

[[]] [[]] [] + ([
[[]] [[]] [] + ([

Automne 2016 O. GOUGEON XVIII


PI3 Rapport des travaux accomplis

18 CF2_Modele_mathematique_et_mecanique.nb

= [( - ) / ]
= [( - ) / ]
= [( - ) / ]
= [( - ) / ]
( + ( +))
(+)
- +


( + ( +))
(+)
- +


( + ( +))
(+)
- +


( + ( +))
(+)
- +


[ / { }]
[ / { }]

( +)
- +


( +)
- +


( = [ { }]) //

[[[[ ]] = [[[ ]] [[ ]]] { }] { }]
//
( =
[ / {[] [] [] [] [] [] []
[] [] [] [] [] []
[] [] [] [] []
[] [] }]) //

Automne 2016 O. GOUGEON XIX


PI3 Rapport des travaux accomplis

CF2_Modele_mathematique_et_mecanique.nb 19

{{ } { } { } { } { } { }
{ } { } { } { } { } { }}



(+ []) (+ [])
- -
( +) ( +)
(+) []- [ ]- [ ] [] - (+) []+ [ ]+

( + ( +)) (+ []) ( + ( +)) (+
(+) []- - (+) []-
( +) ( +)
- -


(+ []) (+ [])
-










( + ( +)) ( + ( +))

(+) (+)
- - -
( +) ( +)

( + ( +)) ( + ( +))
[ ] [ ]
(+) (+)
-

( + ( +)) ( + ( +))
( + ( +)) [ ] ( + ( +)) [ ] ( +
(+) (+)
-
( +) ( +)

( + ( +)) ( + ( +))

(+) (+)
-






Automne 2016 O. GOUGEON XX


PI3 Rapport des travaux accomplis

20 CF2_Modele_mathematique_et_mecanique.nb

( = / {

}) //



- - - -
- -
- -
- -





[ / { }] //



- - - -
- -
- -
- -





[ / {

* - * - * }] //



- - - -
- -
- -
- -





Automne 2016 O. GOUGEON XXI


PI3 Rapport des travaux accomplis

CF2_Modele_mathematique_et_mecanique.nb 21

y
[]
[]
=
[]
[]

C
( = [ { }]) //
( = ) //
[[ ]] =
[[ ]] =
[[ ]] =
[[ ]] = -
//














-


( = [ { }]) //
( = ) //









Automne 2016 O. GOUGEON XXII


PI3 Rapport des travaux accomplis

Mesure des masses et proprits physiques CATIA du CF2

Cette annexe prsente les donnes utilises en lien avec la modlisation du CAD CATIA .
La Figure 39 montre les mesures brutes des composantes massiques du Crazyflie 2.0 obtenues avec
une balance lectronique, tandis que la Figure 40 montre les proprits physiques des lments
massiques du CF2 calcules par CATIA .
Mesures massiques des composantes du Crazyflie 2.0 Rsolution de la balance utilise : +/- 0.005 gramme

Description Masse (g) Quantit (u) Masse / unit Volume CATIA (m^3) Densit (kg/m^3)
Frame en plastique non-symtrique sans aucun marqueur 3,09 1,00 3,09
Frame en plastique symtrique AVEC 4 marqueurs 5,10 1,00 5,10
4 petits marqueurs du frame en plastique symtrique 1,68 4,00 0,42 4,21E-07 997,86
Frame en plastique symtrique SANS 4 marqueurs 3,42 1,00 3,42 2,71E-06 1260,13
Marqueurs VICON Pearl Markers (boule+base) 21,91 11,00 1,99
Marqueurs VICON Pearl Markers (boule seulement) 14,86 11,00 1,35 1,25E-06 1077,28
Marqueurs VICON Pearl Markers (base sans velcro seulement) 2,82 5,00 0,56 5,50E-07 1025,27
Marqueurs VICON Pearl Markers (base avec velcro pic seulement) 2,14 3,00 0,71
Marqueurs VICON Pearl Markers (base avec velcro doux seulement) 2,10 3,00 0,70
Marqueurs VICON Pearl Markers (bases toutes confondues velcro+pic seulement) 7,06 11,00 0,64
Batteries (toutes confondues) 37,94 5,00 7,59 4,15E-06 1827,99
Batteries (noires) 15,79 2,00 7,90
Batteries (grises) 22,14 3,00 7,38
Hlice 1,49 6,00 0,25 6,22E-06 39,91
Pice pour retenir la batterie en place + velcro pic 2,09 2,00 1,05
Longues tiges en mtal de couleur or 1,11 30,00 0,04 6,16E-09 6006,49
Courtes tiges en mtal de couleur or 0,50 20,00 0,03
Support en plastique pour les tiges longues ou courtes 0,33 4,00 0,08 1,12E-07 734,97
Antennes radio 15,68 1,00 15,68
Body en X 19,87 3,00 6,62 1,96E-06 3377,53
Moteur + hlice 33,88 12,00 2,82
Moteur seulement 2,59 1,00 2,59 5,03E-07 5154,23
Patte en plastique 5,56 14,00 0,40 5,27E-07 753,59
CF2 ready-2-fly (full body + batterie + VICON marker) 31,31 1,00 31,31
CF2 ready-2-fly FREE (full body + batterie SANS VICON marker) 29,24 1,00 29,24
CF2 full body only (sans batterie ni marqueur, mais avec le support batterie) 21,36 1,00 21,36
CF2 naked (sans batteire ni marqueur ni support batterie) 19,43 1,00 19,43
CF2 ready-2-fly FULL + frame en plastique symtrique 36,41 1,00 36,41

Figure 39 Mesures brutes des composantes massiques du CF2 obtenues avec une balance

Automne 2016 O. GOUGEON XXIII


PI3 Rapport des travaux accomplis

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Produit : CF2_MASTER_CG
Date : mercredi, 14 septembre 2016 13:48:34
Auteur : olgoub
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Component Sub-Component Masse[g] Gx[mm] Gy[mm] Gz[mm] IoxG[kgxm2] IoyG[kgxm2] IozG[kgxm2] IxyG[kgxm2] IxzG[kgxm2] IyzG[kgxm2]
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CF2_Propellers 0,993 3,89E-014 -1,28E-014 -6,785 1,19E-006 1,19E-006 2,38E-006 -2,00E-038 -2,89E-022 8,25E-023
CF2_Legs 1,588 -0,218 0,218 -22,028 1,43E-006 1,43E-006 2,82E-006 -1,26E-008 -2,28E-009 2,28E-009
CF2_Motors 10,362 6,95E-012 6,10E-012 -16,935 1,13E-005 1,13E-005 2,22E-005 6,40E-035 -2,63E-021 7,51E-022
CF2_Battery 7,588 1,31E-014 -7,42E-015 -14,785 2,86E-007 5,93E-007 8,18E-007 8,03E-038 -1,29E-022 1,56E-023
CF2_Body 6,624 -0,252 -2,99E-007 -19,07 1,09E-006 1,12E-006 2,20E-006 3,10E-024 2,07E-025 5,92E-031
CF2_Golden_Stems 0,74 3,01E-012 4,26E-014 -11,375 9,98E-008 3,93E-008 9,91E-008 -1,76E-038 1,60E-025 4,14E-024
CF2_Marker_Pearl.1 1,351 5,57E-015 -1,86E-015 0,333 2,68E-008 2,68E-008 2,97E-008 1,60E-039 -7,05E-025 -6,77E-024
CF2_Marker_Base.1 0,564 6,50E-015 -1,28E-014 -6,714 1,03E-008 1,03E-008 1,66E-008 8,58E-039 -1,54E-024 -3,55E-023
CF2_Marker_Velcro.1 0,136 7,61E-015 -7,47E-015 -8,975 2,35E-009 2,35E-009 4,69E-009 2,18E-040 -5,66E-025 -9,20E-025
CF2_Battery_Holder_Velcro.1 0,44 9,58E-014 -7,07E-015 -9,975 1,25E-008 1,59E-008 2,83E-008 -5,29E-024 -7,66E-024 8,63E-025
CF2_Battery_Holder_Base.1 0,44 1,85E-013 -6,69E-015 -10,9 4,03E-008 1,88E-008 5,90E-008 -9,60E-039 -4,55E-024 2,79E-024
CF2_Battery_Holder_Sides.1 0,165 -3,60E-010 -6,58E-015 -9,175 1,80E-008 4,88E-009 2,27E-008 -3,36E-039 -1,14E-024 1,23E-024
CF2_Battery_Holder_Sides 0,165 -3,61E-010 -7,11E-015 -16,945 1,80E-008 4,88E-009 2,27E-008 -1,60E-024 3,85E-034 -4,72E-050
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CF2_MASTER_CG 31,156 -0,065 0,011 -15,477 1,62E-005 1,65E-005 3,07E-005 -1,25E-008 -1,06E-008 4,54E-009
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Figure 40 Proprits physiques des lments massiques du CF2 calcules par CATIA

Automne 2016 O. GOUGEON XXIV


PI3 Rapport des travaux accomplis

Programme MATLAB de lalgorithme NLGL

Cette annexe prsente le programme MATLAB de lalgorithme de suivi de trajectoire NLGL


utilis afin de calculer lacclration normale u permettant de rorienter le drone vers la trajectoire.
Cet algorithme a t prsent en dtail la Section 2.6.1.

1 function dpsi_c = NLGL(Wi,Wii,p,psi,v_a,L)


2

3 % Local definition of (x,y) for easier reading of the code


4 x = 1;
5 y = 2;
6

7 % Step 1: Initialization (Function inputs)


8

9 %--- Step 2: Determine intersection point s


10

11 % Get equation of waypoint line: ax+by=c


12 if Wii(x) ~= Wi(x)
13 alpha = (Wii(y)-Wi(y))/(Wii(x)-Wi(x));
14 beta = Wii(y)-alpha*Wii(x);
15 a = alpha; b = -1; c = -beta;
16 else
17 % Vertical line
18 a = 1;
19 b = 0;
20 c = Wi(x);
21 end
22

23 % Apply algorithm ...


(http://www.mathematik.tu-darmstadt.de/~ehartmann/cdgen0104.pdf, p. 17)
24 x_m = p(x); y_m = p(y);
25 cp = c-a*x_m-b*y_m;
26

27 % Calculate solution
28 r = L;
29 xi = nan(1,2);
30 eta = nan(1,2);
31 if r^2*(a^2+b^2)-cp^2 > 0

Automne 2016 O. GOUGEON XXV


PI3 Rapport des travaux accomplis

32 % Two points from the line intersect with the circle


33 xi(1) = ( a*cp + b*sqrt(r^2*(a^2+b^2)-cp^2) ) /(a^2+b^2);
34 xi(2) = ( a*cp - b*sqrt(r^2*(a^2+b^2)-cp^2) ) /(a^2+b^2);
35 eta(1) = ( b*cp - a*sqrt(r^2*(a^2+b^2)-cp^2) ) /(a^2+b^2);
36 eta(2) = ( b*cp + a*sqrt(r^2*(a^2+b^2)-cp^2) ) /(a^2+b^2);
37 elseif r^2*(a^2+b^2)-cp^2 == 0
38 % One point from the line intersects with the circle (tangent)
39 xi(1) = a*cp;
40 eta(1) = b*cp;
41 else
42 error('A4-NLGL: No intersection exists between the generated waypoint path ...
and the virtual circle.')
43 end
44

45 % Apply inverted change of variables


46 x_12 = x_m + xi;
47 y_12 = y_m + eta;
48

49 % Rename points
50 s1 = [x_12(1);y_12(1)];
51 s2 = [x_12(2);y_12(2)];
52

53 % Determine the wanted point s (closest intersection point to Wii)


54 if all(isnan(s2))
55 x_t = s1(x);
56 y_t = s1(y);
57 elseif norm(Wii-s1) < norm(Wii-s2)
58 x_t = s1(x);
59 y_t = s1(y);
60 else
61 x_t = s2(x);
62 y_t = s2(y);
63 end
64 s = [x_t;y_t];
65

66 % Step 3
67 alpha = atan2(s(y)-p(y),s(x)-p(x));
68

69 % Step 4

Automne 2016 O. GOUGEON XXVI


PI3 Rapport des travaux accomplis

70 eta = alpha-psi;
71

72 % Step 5
73 u_lat = 2*v_a^2*sin(eta)/L;
74

75 % Step 6
76 dpsi_c = u_lat/v_a;
77

78 end

Automne 2016 O. GOUGEON XXVII


PI3 Rapport des travaux accomplis

Bibliographie

[1] Amazon. (2016) Amazon Prime Air. [En ligne]. Disponible : https://www.amazon.com/b?
node=8037720011
[2] P. Meier et D. Soesilo. (2016, avril) Using drones for medical payload delivery
in papua new guinea. Mdecins Sans Frontires (France). [En ligne]. Disponible :
http://drones.fsd.ch/wp-content/uploads/2016/04/Case-Study-No2-PapuaNewGuinea.pdf
[3] P. B. Sujit, S. Saripalli, et J. B. Sousa, Unmanned aerial vehicule path following : A survey
and analysis of algorithms for fixed-wing unmanned aerial vehicles, IEEE Control Systems
Magazine, pp. 4259, fvrier 2014.
[4] G. Chamayou, Le ciel ne sera plus jamais comme avant, Science & Vie, no. 1160, pp. 6268,
1er mai 2014.
[5] Polytechnique Montral. (2016) Laboratoire de robotique mobile et des systmes autonomes.
[En ligne]. Disponible : http://www.polymtl.ca/robotique-mobile/equipe
[6] A. Manjunath, P. Mehrok, R. Sharma, et A. Ratnoo, Application of virtual target based gui-
dance laws to path following of a quadrotor uav, 2016 International Conference on Unmanned
Aircraft Systems (ICUAS), pp. 252260, juin 2016.
[7] R. Maslim, H. Chaoyi, Z. Yixi, J. Linhao, B. B. Kocer, et E. Kayacan, Performance evaluation
of adaptive and nonadaptive fuzzy structures for 4d trajectory tracking of quadrotors : A
comparative study, 2015 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE),
pp. 17, aot 2015.
[8] S. Park, J. Deyst, et J. P. How, Performance and lyapunov stability of a nonlinear path
following guidance method, Journal of Guidance, Control and Dynamics, vol. 30, no. 6, pp.
17181728, novembre et dcembre 2007.
[9] D. R. Nelson, D. B. Barber, T. W. McLain, et R. W. Beard, Vector field path following for
miniature air vehicles, IEEE Transactions on Robotics, vol. 23, no. 3, pp. 519529, juin 2007.
[10] L. E. Dubins, On curves of minimal length with a constraint on average curvature and with
prescribed initial and terminal positions and tangents, American Journal of Mathematics,
vol. 79, no. 3, pp. 497516, juillet 1957.
[11] Transports Canada. (2015, 13 mai) Glossaire lintention des pilotes et du personnel
des services de la circulation arienne. [En ligne]. Disponible : http://www.tc.gc.ca/fra/
aviationcivile/opssvs/secretariat-terminologie-glossaire-823.htm#point_de_cheminement
[12] W. Hanna, Modelling and control of an unmanned aerial vehicle, Charles Darwin University,
mai 2014, thse de baccalaurat.
[13] The MathWorks, Inc. (2016) 6DOF (Euler Angles). [En ligne]. Disponible : https:
//www.mathworks.com/help/aeroblks/6dofeulerangles.html

Automne 2016 O. GOUGEON XXVIII


PI3 Rapport des travaux accomplis

[14] Bitcraze AB. (2016) Crazyflie 2.0. [En ligne]. Disponible : https://www.bitcraze.io/crazyflie-2/
[15] B. Landry, Planning and control for quadrotor flight through cluttered environments, Mas-
sachusetts Institute of Technology, juin 2015, thse de matrise.
[16] P. Florence. (2015, 8 juillet) SolidWorks files for parts related to CrazyFlie platform. GitHub,
Inc. [En ligne]. Disponible : https://github.com/peteflorence/crazyflie-CAD
[17] GitHub : whoenig. (2015, 3 juillet)
crazyflie_ros/crazyflie_controller/config/crazyflie2.yaml. [En ligne]. Dispo-
nible : https://github.com/whoenig/crazyflie_ros/blob/master/crazyflie_controller/config/
crazyflie2.yaml
[18] GitHub : bitcraze. (2016, 11 novembre)
crazyflie-firmware/src/modules/interface/pid.h. [En ligne]. Disponible : https:
//github.com/bitcraze/crazyflie-firmware/blob/d61484994ce31de0d8f477c118872ff8bfc13a79/
src/modules/interface/pid.h
[19] GitHub : bitcraze. (2016, 6 juillet)
crazyflie-firmware/src/modules/src/power_distribution_stock.c. [En
ligne]. Disponible : https://github.com/bitcraze/crazyflie-firmware/blob/
376a1de0dbadf300411c25a04c6f15341259ea43/src/modules/src/power_distribution_stock.c
[20] Bitcraze AB. (2016) Crazyradio PA. [En ligne]. Disponible : https://www.bitcraze.io/
crazyradio-pa/
[21] ROS.org. (2014, 22 aot) ROS Indigo Igloo. [En ligne]. Disponible : http://wiki.ros.org/indigo
[22] C. Luis et J. Le Ny, Design of a trajectory tracking controller for a nanoquadcopter, Rap-
port de stage Polytechnique Montral, Aot 2016, http://www.professeurs.polymtl.ca/jerome.
le-ny/docs/reports/Luis_LeNy_nanoquad.pdf.
[23] O. Gougeon. (2016, 13 aot) Waypoint Following of a MUAV Using Nonlinear Guidance Law.
Vido YouTube. [En ligne]. Disponible : https://www.youtube.com/watch?v=3inCOvtQNuo

Automne 2016 O. GOUGEON XXIX

Vous aimerez peut-être aussi