Licentafilipoprisan [610582]

UNIVERSIT É “POLITEHNICA” DE BUCAREST
FACULT É D’ING ÉNIERIE EN LANGUES ÉTRANGERES
ORDINATEURS ET TECHNOLOGIE DE L’INFORMATION

PROJET DE FIN
D’ÉTUDES

Coordinateur(Tuteur): Etudiant:
Sl.dr. Maria -Iuliana DASC ĂLU Cristea -Filip OPRIȘAN

Bucarest
2016

Projet de fin d’étude, Filip OPRISAN , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

– 2 –

UNIVERSIT É “POLITEHNICA” DE BUCAREST
FACULT É D’ING ÉNIERIE EN LANGUES ÉTRANGERES
ORDINATEURS ET TECHNOLOGIE DE
L’INFORMATION

Automatisation d’une Drone à l’aide
D’une Application Android

Coordinateur(Tuteur): Etudiant:
Sl.dr. Maria -Iuliana DASC ĂLU Cristea -Filip OPRIȘAN

Bucarest
2016

Projet de fin d’étude, Filip OPRISAN , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

– 3 –

UNIVERSIT É “POLITEHNICA” DE BUCAREST
FACULT É D’ING ÉNIERIE EN LANGUES ÉTRANGERES
ORDINATEURS ET TECHN OLOGIE DE L’INFORMAT ION

Approuvé
Directeur de département:
Prof. dr. ing. George DRAGOI

SUJET DU PROJET DE F IN D’ETUDE POUR :
Filip -Cristea OPRIȘAN

1. Titre du thème (du sujet):
Automatisation d’un drone à l’aide d’une application Android

2. Données initiales de conception:
L’objectif principal du projet est de concevoir une solution innovatrice pour transformer
un drone (Véhicule Aérien sans Pilote) dans un drone capable de suivre de manière
automatique un objectif cible.
Ce genre de fonctionnalité pourra contribuer aux nombreuses autres applications utiles
dans divers domaines (media, transport)
La solution proposée sera élaborée en fonction des technologies Android et protocoles
de communication USB associées .

3. Contribution de l’étudiant:
– Développement de l’état actuel de connaissance dans le domaine de technologies et
applications avec véhicules aériennes sans pilotes
– Développement d’une application mobile pour mesurer la distance physique entre
deux smartphones
– Développement d’un logiciel embarqué et une application mo bile pour la
communication USB entre un drone et un smartphone
– Implémentation de la fonctionnalité « Drone Suiveur »

4. Matériel graphique obligatoire:
Schéma bloc, diagrammes fonctionnels, graphes

Projet de fin d’étude, Filip OPRISAN , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

– 4 –
5. Le mémoire est basé sur les connaissances acquises au fil d es études des suivants cours:
Langages de Programmation, Programmation Orientée Objet, Structures de Données et
Algorithmes, Dispositifs et applications pour mobiles

6. L’environnement de développement de l’ouvrage :
Plusieurs IDE’s : Eclipse, Android Studi o

7. Ce projet serve à:
Projet de Fin d’Etudes

8. Délai de l’ouvrage :
[Juin 2016]

Coordinateur (Tuteur) du projet Etudiant:
S.l dr. Maria -Iuliana DASCĂLU Filip -Cristea OPRIȘAN

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

5

Academic Honesty Statement
(Déclaration d’honnêteté académique)

Je, soussigné , Cristea -Filip OPRI ȘAN, déclare que le projet de fin d’étude ayant le titre [le titre du
document complet] qui est soutenu publique devant le jury pour les PFE’s à l’Université
“POLITEHNICA” de Bucarest, Faculté d’Ingénierie en Langues Etrangères, en vue d'obtenir le grade
d’ingénieur, est le résultat de mon propre travail, basé sur mes recherches.

Le mémoire de la thèse, les simulations, les expériences et les mesures qui sont présentés est
entièrement réalisé par moi -même sous la direction de mon tuteur sans l’implication d’ autres personnes
qui ne sont pas cités par leur nom et leur contribution dans la partie Remerciements. Toutes les sources
et les ressources utilisées sont indiquées dans les références du mémoire de thèse et mentionnées au fil
du mémoire.

Le projet n’a ja mais été présenté à un établissement d’enseignement supérieur ou institut de recherche
dans le pays ou à l’étranger.

Toutes les informations utilisées, y compris les ressources d’Internet, sont obtenues à partir des sources
qui ont été cités et indiqués dans les notes et dans la bibliographie en conformité avec les normes
éthiques. Je comprends que le plagiat est une infraction et il est punissable en vertu de la loi.
Les résultats des modélisations, des simulations, des expériences et des mesures sont a uthentiques. Je
comprends que la falsification des données et des résultats constitue une fraude et est puni
conformément à la réglementation et aux lois existantes. .

Cristea -Filip OPRI ȘAN 22.06.2016

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

6

Sommaire

1. Introduction ………………………….. ………………………….. ………………………….. ………………………….. ……… 8
1.1 Objectif ………………………….. ………………………….. ………………………….. ………………………….. …………… 8
1.2 Structure ………………………….. ………………………….. ………………………….. ………………………….. ………. 10
2. Etat de l’art ………………………….. ………………………….. ………………………….. ………………………….. …….. 10
2.1 Les drones dans le 21eme siècle ………………………….. ………………………….. ………………………….. ….. 10
2.3 Travaux connexes ………………………….. ………………………….. ………………………….. ………………………. 14
2.4 Défi s ………………………….. ………………………….. ………………………….. ………………………….. ……………… 15
3. Recherche et exigences ………………………….. ………………………….. ………………………….. …………………. 17
3.1 Exigences Fonctionnelles ………………………….. ………………………….. ………………………….. ……………. 18
3.2 Exigences non -fonctionnelles ………………………….. ………………………….. ………………………….. ……… 18
4. Description de la solution ………………………….. ………………………….. ………………………….. …………….. 19
4.1 Description générale ………………………….. ………………………….. ………………………….. ………………….. 19
4.2 Technologies utilisées ………………………….. ………………………….. ………………………….. …………………. 20
4.2.1 AR Drone 2.0 ………………………….. ………………………….. ………………………….. ………………………. 20
4.2.2 Android ………………………….. ………………………….. ………………………….. ………………………….. ….. 24
4.2.2.1 Androi d Software Development Kit(SDK) ………………………….. ………………………….. ….. 26
4.2.2.2 Android Studio(environnement de développement) ………………………….. …………………. 26
4.2.2.2.1 Fichier Android Manifest ………………………….. ………………………….. ……………………….. 26
4.2.2.2 2 Ressources de l’Application ………………………….. ………………………….. ……………………. 28
4.2.2.2.3 Android Activity ………………………….. ………………………….. ………………………….. ……….. 30
4.2.3 Langage C ………………………….. ………………………….. ………………………….. ………………………….. . 30
4.2.4 Libusb ………………………….. ………………………….. ………………………….. ………………………….. …….. 31
4.2.5 Cross Compilation ………………………….. ………………………….. ………………………….. ……………….. 32
5. Implémentation et fonctionnement de la solution ………………………….. ………………………….. ………. 34
5.1 Android -Communication inter -smartphone ………………………….. ………………………….. …………… 34
5.2 Mise en place de la communication entre le thread Blueto oth et l'activité de mesure …………. 37
5.3 Création du schéma de communication client -serveur. ………………………….. …………………………. 37
5.4 Communication Smartphone – AR Drone ………………………….. ………………………….. ………………… 43
5.5 Automatisation du mouvement du drone ………………………….. ………………………….. ………………… 47

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

7
6. Validation du logiciel ………………………….. ………………………….. ………………………….. …………………… 49
6.1 Scenarios de test ………………………….. ………………………….. ………………………….. ………………………… 49
6.2 Résultats de tests ………………………….. ………………………….. ………………………….. ……………………….. 50
7. Conclusions et futures améliorations ………………………….. ………………………….. ………………………… 50
8. Remerciements ………………………….. ………………………….. ………………………….. ………………………….. …… 51
Bibliographie ………………………….. ………………………….. ………………………….. ………………………….. …………. 52
Annexe ………………………….. ………………………….. ………………………….. ………………………….. …………………… 54
A1 : Récupération des dispositifs apparies ………………………….. ………………………….. ……………………. 54
A2 : Recuperation de socket Bluetooth ………………………….. ………………………….. …………………………. 54
A3 : Lancement de la prochaine Activity ………………………….. ………………………….. ………………………. 55
A4 : Thread d’echange de donnees ………………………….. ………………………….. ………………………….. …… 55
A5 : Lire des messages ………………………….. ………………………….. ………………………….. …………………….. 56
A6 : Envoyer des messages ………………………….. ………………………….. ………………………….. ………………. 56
A7 : Thread d’échange et relancement périodique ………………………….. ………………………….. ………… 57
A8 : Autorisation via BroadcastReceiver ………………………….. ………………………….. ………………………. 57
A9 : Thread d’envoi des do nnées au drone ………………………….. ………………………….. ……………………. 58
A10 : Thread d’envoi des commandes au drone ………………………….. ………………………….. ……………. 58
A11 : Conversion des mots reçus en commandes AT ………………………….. ………………………….. …….. 58
A12 : Implémentation du protocole AOA ………………………….. ………………………….. ……………………… 59

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

8
1. Introduction

Les U.A.V ( Véhicules Aériennes sans pilote ) ont été développées avec un seul aspect
central : le control à distance. Les U.A.V’s sont apparus à cause de la nécessite de pouvoir
accomplir des tâches qui seront difficiles, sinon impossibles et qui comporteront un dégrée de
danger élevé pour les hommes.

Conçues initialement pour des raisons de reconnaissance et surveillance leur utilité dans le
domaine militaire et commercial a été ignoré . Commençant avec le 20 eme siècle les U.A.V’s
voient une diversification de leurs rôles, principalement dans le domaine militaire. La recherché
guide dans ce domaine a facilité beaucoup des innovations te chnologiques utilisant les U.A.V’s.

Cet aspect central de control à distance a guide le développement des nombreuses
applications, les plus populaires étant inscrits dans plusieurs domaines : conservation de la faune,
agriculture, photographie aérienne . Un autre aspect sont les applications orientes vers les besoins
des citoyens. Certains voient les U.A.V’s come un grand changement dans le future des domaines
comme le journalisme ou des festivals culturels.

Généralement les U.A.V’s sont appelées ‘drones’ car elles manquent aucun genre de
sophistication et ne représentent plus d’un véhicule télécommandé contrôl é par un pilot humaine
(généralement appelé operateur). De ce point de vue les drones ne possède aucun dégrée
d’autonomie ce qui rend leur usage futur limite.
L’autonomie désigne la possibilité d’un dispositif de prendre des décisions sans
l’intervention d’un homme. Les catégories d’autonomie qui semblent les plus importantes pour le
développement futur des drone s sont principalement la planification de mouvement et les décisions
coopératives .

L’autonomie des drones est une étape important e dans le développement futur des
applications. Souvent des taches complexes qui comportent des risques nécessite nt un certain
degré d’autonomie pour pouvoir mener à bon fin ces taches. C’est donc cette autonomie qui
préoccupera les innovateurs dans le domaine afin de révolutionner le monde de nos jours.

1.1 Objectif

Conformément aux estimations réalisées par BI intelligence [1] la plus grande croissance
dans l’industrie et marche de drones reste sur la cote commercial/civil . Le taux de croissance
annuelle préconisé dans les suivantes années pour ce secteur est de 19% en comparaison avec celle
du secteur militaire qui est de 5%.

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

9

Figure 1 : Taux de croissance annuelle dans les suivantes années

Estimations réalisées dans les Etats -Unis montre que près de 1 million de drones
commerciales (pour le consommateur moyen) ont été vendus dans les Etats -Unis seul.

La plupart des ce modèles manquent aucun genre d’autonomie. Les autres proposent des
solutions compliquées ou très chers, ce qui les rendent désagréables a une grande partie de marche.

L’objectif général de ce travail es t de proposer une solution offrant autonomie a un drone
commercial conçue pur usage civ il, en s’aidant d’un dispositif qu’on possède tous : le smartphone.
En utilisant deux smartphones cette solution réalisera un drone capable de suivre de manière
autonome l’utilisateur.

Ce travail cherche à accomplir les suivants buts:

 Rechercher les technologies en matière des drones disponibles à l’heure
 Rechercher les technologies disponibles en matière de communications Bluetooth , USB.

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

10
 Développer un moyen de communication inter -smartphones et drone -smartphone
 Développer une application donnant a un drone la capacité de suivre de manière autonome
un objectif (dans ce cas : un autre smartphone)

1.2 Structure

Apres une description courte de l’objectif du projet et les raisons qui ont conduit au
développement de ce projet, la structure de l’ouvrage inclut l’ état de l’art – une description
générale des U.A.V’s ainsi que quelques aspects généraux de leur automatisation, le contexte
actuel de l’industrie de drones, les secteurs d’ activité , des travaux similaire réalisés ainsi que les
défis à dépasser dans le futur pour l’ intégration des U.A.V’s.

L’état de l’art est suivi par une description des ex igences fonctionnelles et non –
fonctionnelles pour l’application ainsi qu’une courte description de l’application. Par la suite, les
technologies utilisées pour mettre en œuvre la solution multiplateforme sont détaillées ainsi que
leur usage dans le dévelo ppement de la solution.
L’application développée fournit à un simple drone la capacité de suivre de manière
autonome.

L’implémentation et fonctionnement de la solution sont décrits en détail en tenant compte
de chaque étape réalisé dans la section 5. De même les mécanismes qui assurent le fonctionnement
de la solution seront présentés .
Finalement quelques conclusions ainsi que des possibles améliorations dans le futurs seront
explores.
2. Etat de l’art

2.1 Les drones dans le 21 eme siècle

Il n’y a pas si longtemps que les drones étaient considérés comme des grands véhicules
aériens engagés dans des opérations clandestines ou des guerres. A l’heure actuelle l’avis publique
est en train de changer. Maintenant, la plupart du monde considère les drones com me des jouets
sophistiqués . Cet aspect est en train de changer aussi. Accompagnes d’un fort développement
technologique les drones sont sur la bonne voie pour rendre notre vie meilleure.

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

11
Cependant, c’est peu probable que les drones vont fa ire partie de la vie de chaque jour
dans la future proche. En même temps les drones commencent petit à petit de prendre des rôles de
plus en plus importants dans les entreprises et consommateurs individuels.
Généralement un drone peut être classifie selon des différents critères. Les principales
catégories sont les suivantes :

 Micro drones : avec un petit charge utile (poids supporte) cette catégorie est principalement
utilisée dans des missions de recherche ou pour use prive.
 Drone Stratégique : ces modè les sont plus grandes et peuvent être armes et ils sont
généralement utilisées dans des conditions difficiles : HALE (High Altitude Long
Endurance) et MALE (Medium Altitude Long Endurance)
 Drones de combat (UCAV): généralement réservées pour use militaire

La figure suivante montrera les capacités et contraintes des drones par rapport à leur catégorie :

Au-delà du cote de l’usage militaire, les entreprises et les investisseurs commencent à
réaliser le potentiel énorme des drones sur le cote commercial et civil. Dans un seul année le capital
investi dans le start -up lies aux drones dans les Etats -Unis a été doubl e (Bloomberg News,2013).
Figure 2 : Capacites et contraintes des drones en fonction de type.

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

12

2.2 Secteurs d’ activité

Certaines domaines commerciales se sont déjà distinguées comme les plus probable s
d’entrainer des applications utilisant des drones. Ces applications vont apparaitre non pas
seulement à cause du besoin, mais aussi parce que la technologie permettra d’achever cela. La
raison principal n’est pas seulement simplifier des taches complexes, mais aussi éviter de mettre
des vies humaines en danger. On rappelle ici les domaines qui préparent déjà le terrain pour
l’intégration des drones.

Sécurité et surveillance

Dans une interview radio en 2013 [4] le maire de NY , Michael Bloomberg a annoncé ses
plans pour remplaces les paroles humaines et les caméras de sécurité avec des drones qui seront
plus mobiles et plus capables de couvrir des grandes distances nécessaires a une bonne
surveillance. Cela concerne aussi la surveillance de zones écologiqu es protégées pour prévenir les
activités illégales ainsi que dans les zones dit ‘de risque’ d’incendie ou autres désastres naturels.
Selon [18] les technologies de drones offrent un grand potentiel pour les études écologiques à
long terme. Des drones ont étés employés pour cartographier en détail la structure forestière sur
20 ha. Une distance difficile a couvrir pour un homme, l’assistance du drone se prouve donc
indispensable.
Figure 3 : Croissance du capital investi dans les startups des drones en Etats -Unis

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

13
Agriculture

Les autorités du domaine ont déjà commencé à utiliser des drones afin de surveiller les
grandes fermes de bétail . Vue la croissance continue des fermes, l’industrie considère utiliser des
drones pour gérer les cultures. [5] En effet, la surveillance des conditions des cultures sera rendu
plus facile .

Divertissement

Une grande partie de marche des drones commerciales est consacré aux drones dit “pour
le divertissement” . Voler des drones comme loisir est déjà une activité bien établie . Il y a Presque
600 des modèles consacres à cet usage, mais malheureusement une grande partie d’e ntre eux
manques des aptitudes GPS ou d’autonomie. Ces caractéristiques sont réservés aux modèles très
avances ce qui le s rend très chers.
Cependant des études scientifiques sont en train de se dérouler chaque jour. Ceux -ci
explorent et trouve des innovations dans l’usage de drones.

Selon [17] la jointure entre les techniques optiques et les U.A.V’s peut faciliter la
surveillance non-invasive des débits du canal. De plus les mesures du débit de surface prises par
le drone sont en accord avec des mesures traditionnelles .
Dans tous les secteurs mentionnés ci-dessus une caractéristique sera très importante pour
le développement futur . L’autonomie sera définissant dans les applications de succès . La capacité
de prendre des décisions sans l’intervention humaine sera l ’aspect central de l’ intégration des
drones dans tous ces domaines.

En effet, ce papier se propose d’explorer u ne solution capable de fournir un degré
d’autonomie a un des modèles de drone de divertissement moins avances, et donc plus accessible
au citoyen moyen. Bien entendu, cette solution pourra conduire à des nombreuses applications,
facilitant des nombreux loisirs, ou des autres usages, que ça soit dans le milieu de la vie pri ve, ou
éducationnel .

De plus il y a une grande intersection entre les drones et “The Internet of Things”
(L’Internet des choses) vue que beaucoup de ces dispositifs devient connectes a l’Internet et
peuvent être commande à distance en utilisant un smartph one ou une tablette . En fait, ce cet aspect
qui a conduit à mon intérêt dans l’ implémentation d’une fonctionnalité de drone suiveur en
utilisant un smartphone. Bien plus que ces drones peuvent être télécommandés pour accomplir ce
fait, cela nécessite cependant l’intervention d’un homme. Base sur le fait que chacun possède déjà
un smartphone pour opérer ce genre de drone, la fonctionnalité mentionné ci-dessus n’apportera
que des plus a une technologie déjà méritante.

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

14
2.3 Travaux connexes

Comme rappelé ci –dessus l’ intérêt de ce papier est d’an alyser les solutions en matière
d’autonomie déjà conçus pour les drones de divertissement, et de finalement proposer une moi-
même .
Les drones autonomes représentent un sujet assez neuf, spécialement dans l e domaine de
divertissement. Cependant des solutions existent déjà, plus ou moins avances. En même temps une
grande partie de ces solutions restent inaccessibles au grand publique au cause du prix associe.
Dans la suite, quelques approches déjà réalisés seront présentés .

AirDog

AirDog réalise la fonction de
drone suiveur en utilisant la
technologie ‘AirLeash’ qui actionne
comme une laisse en utilisant la
technologie Bluetooth pour
permettre au drone de suivre son
objectif. En effet AirDog utilise
Bluetooth pour se mettre en relation
vis-à-vis d’un contrôl eur qui se
trouve sur la personne utilisant le
drone.

Ce qui distingue AirDog parmi les autres sont les différents modes dans lesquelles elle peut
réaliser le suivi d’objectif. Une de traits exclusifs qui lui permet de bien réaliser cela est le fait
qu’il est le seul drone a être équipée avec la technologie LiDar. Un acronyme provenu de ”Light
detection and ranging” désigne un procédé d’illumination d’un cible avec un laser afin de mesurer
la distance. Une utilisation notable de cette technique est représ entée par la voiture sans conducteur
de Google, un autre champion dans la course d’automatisation. Utilisant LiDar l’AirDog est
capable d’ éviter de collisions avec le sol .

Une autre caractéristique d’AirDog est la possibilité de préprogrammer des routes, ce qui
le rend efficace dans nombreuses situations.
Etant une des plus pratiques solutions pour as surer la capacité de drone suiveur, on verra par la
suite que c’est le genre de solution que j’ai préféré à appliquer aussi.

Hexo +

Figure 4 Drone Airdog [airdog.com]

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

15
Etant un des modèles plus avances dans le domaine ‘Hexo +’ utilise des algorithmes de
fusion de données pour la localisation de son objectif. Ce qui le rend spécial , est le fait que Hexo
+ est équipé d’un algorithme de prédiction du trajet employé par l’objecti f. Cela lui don nera un
grand avantage.

2.4 Défis

La croissance de l’usage de drones est devenu le sujet de nombreuses controverses et
questions de sureté , sécurité et assez important, d’ intimité .
L'utilisation de drones ou véhicules aériens sans pilote (UAV) dans des applications commerciales
a le potentiel de modifier radicalement plusieurs industries, et, dans le processus, changer nos
attitudes et nos comportemen ts en ce qui concerne leur impact sur notre vie quotidienne.

L'émergence de drones défie les notions traditionnelles de sécurité, la sécurité, la
confidentialité, la propriété, la responsabilité et la réglementation.[11]
Cette tension présente des défis uniques à leur intégration dans l'infrastructure gouvernementale et
public -privé existant actuellement.

Figure 5: Fonctionnement du drone Hexo+ [https:// hexo plus.com/]

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

16
Les petits drones comme celui avec lequel j’ai travaillé pendant la préparation de ce papier
sont légales . Cependant les drones plus grands n’ont pas encore le droit de voler dans l’espace
aérien commercial. Cela pourra poser des défis pour leur usage dans transportation, journalisme
ou encore sécurité .
Dans juste les dix dernières années [ 14] un nombre croissant d'États ont cherché à joindr e la
course pour développer et vendre des drones toujours plus sophistiqués sur le marché mondial.

En Europe la Commission Européenne a développé une stratégie pour soutenir le
développement continu du marché de drones en Europe, tout en même temps adressant plusieurs
problèmes liées à la sécurité , intimité et acceptation publique.
Cette stratégie a été soutenue par la communauté aéronautique dans un document “Riga
Declaration” [7].

La stratégie a été présentée dans un communiquât official appelé “A new era for aviation
: Opening the aviation market to the civil use of RPAS in a safe and sustain able manner", adopte
en Avril 2014 [8].
Les points clés pour l’ intégration des drones dans l’espace commercial sont :
 Un cadre reglementatif de sécurité, gérant des risques proportionnelles au type de drone
 Les technologies habilitantes nécessaires comme “ détecter et éviter ”

Dans un discours [9] le Commissaire Bulc a averti sur les besoins importants de l’industrie.
Afin de dépasser ces défi s, l’ind ustrie aura besoin que les autorités publiques travaillent avec les
entreprises de l’industrie afin de développer la technologie utilisée ainsi que les standards.
En Europe, un partenariat publique -privée a été créé est charge pour développer l’infrastructure
nécessaire pour gérer le trafic aérien . SESAR (Single European SkyATM Research) est charge
d’habiliter le développement sure et écologique du transport aérien .
Parmi les réalisations des SESAR on rappelle ici le premier vol simultané d’un drone civile et un
avion pilote.[10] En effet, cet évènement relève les défis est le étapes nécessaires pour assurer un
bon coopération entre les acteurs de l’espace aérien .

Cependant il reste important de rappelles que la stratégie proposée par la Comm ission
Européenne et les travaux menés par SESAR sont centrées exclusivement sur les UAV commandes
à distance, c’est à dire les drone nécessitant un pilote humain. Cela n’inclut pas les systèmes
autonomes .
Cela posera beaucoup de problèmes a l’avenir car beaucoup des applications commerciaux des
drones nécessiteront un grand degré d’autonomie.

Conform [12] a un sondage mené sur les représentants de l’industrie des drones en Europe,
ainsi que sur différents organisations civiles les résult ats démontrent que les drones et les

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

17
opérateurs de drones sont pensés être associées aux risques importants a la vie privée , protection
des données et questions éthiques . Parmi les opérateurs de drones, ceux appartenant a la catégorie
Volant des drones comme loisir sont pensées porter les plus grand risques.

Avant que l’ intégration des U.A.V’s autonomes pourra commencer , plusieurs principes
devront être respectes , comme spécifié dans la Déclaration de Riga[7].
 Acceptation publique
 Le pilote ou propriétaire du drone, dans le cas des drones autonomes est responsable pour
son usage
Pour cela des standards et règlements devront être imposes : come par exemple l’existence
obligatoire d’un puce électronique identifiant le drone et son propriétaire, similaire aux nombres
de immatriculation pour les voitures

Selon [13 ], l’intégration des U.A.V’s dans la société d'aujourd'hui dépend de la capacité de
leurs opérateurs pour démontrer la sécurité. Pourtant , cela impose de contraintes supplément aires
dans le cas des systèmes autonomes.
Les défis en matière de régulations et de développement technologique pour l’ usage commercial
répandu du drone sont nombreux . Cependant ell es ne sont pas insurmontables.
3. Recherche et exigences

Apres avoir mené des recherches sur les différents drones disponibles sur le marché , j’ai décidé
d’implémenter la fonctionnalité de drone suiveur pour un des modèles de drone plus accessibles.
Afin d’ implémenter la solution, j’ai décidé de travailler avec un modèle AR Drone 2.0, développé
Figure 6 : Ventes anuelles des drones Source : dronelife.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

18
par la compagnie Parrot, une des compagnies en tête des ventes de drones de loisir. Etant
accessible au grand publique, avec des fonctionnalités faciles à utiliser , cela fait du AR Drone le
drone parfait pour expérimenter .

De plus, ce modèle possède les capteurs et les technologies nécessaires pour appliquer l’approche
conçue .

3.1 Exigences Fonctionnelles

Ayant en vue les objectifs décrits ci-dessus, plusieurs exigences fonctionnelles pour
l’application ont été élaborées :
 Afin de permettre au drone de se rapprocher et s’arrêter auprès de son objectif la solution
devrait être capable de réaliser une mesure de distance par rapport à l’objectif . La distance
mesurée devra être assez proche que possible de la distance réelle . Le bon déroulement des
processus sera base sur la distance estimée entre le drone et son objectif.
 Pour assurer le sui vi de l’objectif une mesure de la direction de l’objectif devrait être réalise
par l’application
 Afin d’assurer le déplacement l’application devrait être capable de commander le déplacement
du drone. Cela comprend le décollage , mouvement, l’arrêt près de l’objectif si l’ objectif reste
stationnaire.
 Sureté : La solution proposée devra être capable de prendre des mesures dans des situations
non-souhaitées . En cas que ce genre de situations apparaît l’application devra faire atterrir le
drone, afin de ne pas provoquer des dégâts , que ça soit aux personnes, ou équipement .

3.2 Exigences non -fonctionnelles

L’application a le but de fournir un mouvement autonome à un drone accessible au grand
public . Notamment , l’application vise à accomplir cela de manière à être facile à utiliser. Autour
de cette cible, certaines exigences non -fonctionnelles ont été fixes:
 Une Interface Homme -Machine facile à comprendre et utilis er. L’interface devra afficher
des informations de guidage dans l’utilisation, aussi que des informations sur le
déroulement de suivi comme des erreurs etc.
 La solution propose devra utiliser que des équipements accessibles aux grand public
Ayant en vue que l’objectif final est de fourni r un degré d’autonomie a un drone accessible
pour la plupart, la solution propose devra s’encadrer dans les mêmes critères .

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

19

4. Description de la solution

4.1 Description générale

La solution élaborée vise à implémenter la fonctionnalité de drone suiveur dans une
manière simple, efficace et facile à utiliser . En effet elle devra utiliser une approche accessible,
sans des couts additionnels pour l’utilisateur. Un des dispositifs technologiques le plus présente
dans la vie de chaque jour est le smartphone. De plus, les smartphones possèdent des nombreuses
capacités de calcul, transfert de données . Notamment les systèmes d’exploitation des smartphones
se trouvent assez versatiles ce qui crée des nombreuses opportunités pour des applications.

Figure 7 : Utilisateurs des smartphones (en millions) a travers le monde Source : http://www.statista.com/

C’est pour ce raison que j’ai décidé d’implémenter une solution multiplateforme . D’une
part: un e Application Android roulant sur deux smartphones, chargé de mesurer la distance et la
direction vers l’objectif et une application écrite en langage C, chargé de recevoir et interpréter les
commandes reçus à partir d’un des smartphones. En effet le gros du travail est réalisé par
l’application Android.

La solution utilise donc deux smartphones : un se trouvant en possession de la personne
qui devra être suivie par le drone. Ceci désignera en fait l’objectif cible du drone. Encore un

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

20
smartphone se trouvera sur le drone, chargé de guider le drone vers son objectif. Ce fait est
accompli via des données transférées aux drones à travers un câble USB.

Dans le cadre d’une application ANDROID les deux Smartphones r éalisent l’échange des
données nécessaires pour la mesure de distance ainsi que l’orientation du drone. A partir de ces
informations le portable connecte au drone décidera la manière dont il contrôlera le drone. La
communication USB est réalisée d’un cote par l’application Android sur le smartphone et de l’autre
cote (du drone) d’une application C qui interprétera les commandes reçus.

4.2 Technologies utilisées

Cette section présentera les technologies utilisées pour élaborer la solution ainsi que la tester.

4.2.1 AR Drone 2.0

Figure 8 Drone AR.Drone 2.0 Source : parrot.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

21

Afin d’ implémenter la solution et la tester j’ai choisir de travailler avec un drone AR 2.0,
modèle qui a été développé par Parrot, une entreprise française, spécialisé dans dispositifs
Bluetooth et technologies Wireless. C’est donc le modèle sur lequel ce rapport va être concentre.
Par la suite, les caractéristiques et détails de ce modèle seront présentées afin de relever les raisons
qui m’ont emmené a choisir ce drone.
Appartenant à la catégorie dit “Microdrones” ses dimensions le rend parfait pour l’usage prive, en
tant que loisirs.

Dans son premier rôle le AR Drone 2.0 est contrôle directement à partir d’une application
soit IOS soit Android. Cependant le but a été de voir si une autre solution était possible : de
contrôler le drone à travers un fil USB à l’aide des commandes spécifiques. Les informations reçus
dans ce mode serviront finalement à guider le drone d’une façon autonome.

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

22
Le tableau suivant présentera les caractéristiques techniques du modèle AR Drone 2.0:

Les drones n’ont pas un pilot, mais cependant ils ont besoin d’un pilot distant avec lequel
ils ont besoin de communiquer. Cette communication peut se dérouler dans diff érents modalités :
soit par satellite, ou radio à travers WI -FI ou Bluetooth. Cependant l’AR Drone possède un port
USB ce qui a rendu possible une communication à travers un fil entre le drone et un smartphone
qui prendra les décisions liées au mouvement d u AR Drone.
Le drone communique à travers des différents ports UDP. Les commandes de contrôle et
de configuration sont envoyées sur le port 5556, donc, dans le cas où la communication est réalisée
par le port USB ces commandes devront être ‘ redirectionner à partir du port USB vers le port UDP
5556.
Ces commandes sont des commandes spécifiques, appelles commandes AT. Elles sont des chaines
des caractères spécifiques, qui contiennent les paramètres utilisées pour le contrôle et la
configuration du drone.
Les commandes AT, ainsi que les capteurs du drone serviront à réaliser son mouvement
sur 3 axes :

Figure 9 : Caracteristiques techniques du AR Drone 2.0 Source : parrot.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

23

Ainsi les commandes AT agissent directement sur ces paramètres afin d’assurer le contrôle du
drone sur chaque axe.

La figure suivante présente les commandes AT ainsi que les paramètres utilisées :

Figure 10 Axes de mouvement AR Drone 2.0 Source parrot.com
Figure 11 Descriptions des commandes AT Source parrot.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

24

On voit donc la complexité offerte par ces commandes AT. Les paramètres sont représentés
dans le cadre du chaine de caractères dans le format Integer signe en utilisant 32 bits. L’integer est
directement produit à partir d’une conversion d’un float entre -1 et 1.
Le mouvement sur chaque axe est contrôle par l’intermédiaire d’un Integer 32 bit résulté d’un float
entre -1 et 1. Ainsi un nombre négatif produira un mouvement sur une axe dans une direction en
tant qu’u nombre positif produira un mouvement dans la direction opposée.

4.2.2 Android

Android est un système d’exploitation, customizable, facile à utiliser, développé par
Google Inc. , alimentant plus de 1 milliard de dispositifs autour du monde –a partir de mo ntres,
smartphones jusqu’aux équipements TV et voitures
Basé sur le noyau Linux et conçu principalement pour les appareils mobiles à écran tactile tels que
les smartphones et les tablettes. Il a été le système d'exploitation le plus vendu sur les tablettes et
sur smartphones depuis 2013, et a la plus grande base installée.

Figure 12 : Top 8 systemes d'exploitation mobiles Source : (StatCounter, Jan 2016)

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

25
Ce qui rend Android unique parmi les autres systèmes d’exploitations pour les mobiles c’est le fait
qu’il est “Open Source”. Ainsi, il profite d’une grande communauté qui travaille chaque jour à le
rendre meilleur. Cela entraine aussi la possibilité d’accéder à la pile entière des logiciels composant
Androi d, ce qui encourage beaucoup de développeurs à réaliser des applications sur Android.

Figure 13 : Pille logicielle Android Source : developer.android.com
Figure 14 : Description plus detaillee de la pille logiciele Android Source :developer.android.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

26

L'interface utilisateur d'Android est principalement basée sur la manipulation directe, en
utilisant des gestes tactiles qui correspondent vaguement à des actions dans le monde réel, telles
que glisser, taraudage et pincement, pour manipuler des objets à l'écran, avec un clavier virtuel
pour la saisie de texte.

Toutes les caractéristiques mentionnées ci-dessus ainsi que la facilite d’utilisation, qui est un des
objecti fs du travail que j’ai mené , ont fait Android le choix idéale pour la plateforme de
l’application.

4.2.2.1 Android Software Development Kit(SDK)

Les applications sont généralement développes dans le langage JAVA en utilisant le SDK
Android.
Cependant Android n’utilise pas les standards Java ce qui rend les applications Java
incompatibles avec celles Android. Android réutilise seulement la syntaxe de langage Java mais
ne fournit pas les librairies entières et les API’s inclus dans les standard s de Java SE et ME .
En effet, le fait qu’Android réutilise la syntaxe Java est encore une des caractéristiques qui
m’ont poussé à développer ma solution sur cette plateforme . Au fil du développement du projet,
la familiarité avec Java représenterais un gra nd atuu.

4.2.2.2 Android Studio(environnement de développement)

Android Studio représente le IDE (en anglais : Interated development environment) official
pour le développement pour la plateforme Android. Basé sur le logiciel IntelliJ IDEA de JetBrains,
Android Studio est conçu spécifiquement pour le développement And roid [16].
Ainsi cet IDE fournit des nombreuses fonctionnalités et facilite le développement de
plusieurs parties importantes d’un projet Android comme décrit ci -dessous :

4.2.2.2.1 Fichier Android Manifest

Avant que le système Android puisse démarrer une composante de l'application, le système
doit savoir que le composant existe en lisant le fichier AndroidManifest.xml de l'application.
L’application doit déclarer toutes ses composantes dans ce fichier, qui doit être à la racine du
répertoire de projet de l'application.
Au-delà de déclarer les composantes de l’application le fichier manifest effectue les suivantes
:

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

27
 Identifier toutes les autorisations utilisateur de l'application nécessite (appelées
“permissions”, comme l'accès à Internet ou l'accès en lecture aux contacts de l'utilisateur.
 Déclarer caractéristiques matérielles et logicielles utilisées ou requises par l'application,
comme un appareil photo, services Bluetooth, ou un écran multitouche.
 Déclarer le niveau de l'API Android minimum requis par l'application

Comme vu dans l’image ci -dessus, chaque permission dont laquelle l’application a besoin, doit
être impérativement déclaré dans le fichier. Quand un utilisateur télécharge l’application et essaye
l’installer, il sera informe sur toutes ces permissions, pour pouvoir faire une choix informée sur la
continuation de l’installation.

De plus chaque composante de l’application doit être déc larée dans ce fichier comme vu dans
le fichier AndroidManifest.xml de l’application DroneCommand. Cela inclut les Activités,
Services etc. De plus le fichier permet de déclarer les capacités des composantes en spécifiant un
Intent Filter. Ceci sera utilisé par le système d’exploitation Android pour trouver des applications
capable d’effectuer une action choisi par l’utilisateur.

C’est également important de rappeler le fait que pas chaque version d’Android est la même,
et qu’il y a souvent des incompatibil ités entre des versions. En effet cela peut entrainer par
exemple, le fait qu’une application construit pour la version 4.2 (API 17) ne pourra pas être utilisée
sur un smartphone avec la version 4.0 (API 15). Cependant, l’inverse est toujours valable. Souv ent,
Figure 15 : Fichier AndroidManifest.xml de l’application DroneCommand

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

28
la dernière version développée comporte plus des fonctionnalités, mais beaucoup moins
d’utilisateurs.

Ainsi, les développeurs And roid ont à faire un choix sur la version minimale d’Android qui
assure le bon fonctionnement de l’application, afin d’avoir le plus grand nombre d’utilisateurs
possible est les fonctionnalités souhaitées. La figure suivante montre les différentes versions
utilisées :

4.2.2.2 2 Ressources de l’Application

Une application Android est composée de plus de simple code. Elle exige des ressources
qui sont séparés à partir du code source, comme des images, des fichiers audio, et tout ce qui
concerne la présentation visuelle de l'application.
Par exemple, les anim ations, es menus, es styles, les couleurs et plus important le layout
des interfaces utilisateur de chaque activité est réalisé avec des fichiers XML.

L'utilisation des ressources, facilite la mise à jour des diverses caractéristiques de
l’application sa ns modifier le code source.
Ainsi l’interface d’une Activité composante de l’application peut être réalisée de manière
déclarative utilisant le langage XML.

Figure 16: Distribution des diff erents versions d’Android Source : developer.android.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

29
Ainsi chaque élément composant de l’interface d’une Activité doit être déclaré, et ses
attributs spécifiées en respectant les standards XML. Les balises sont donc utiliser pour séparer
entre eux les différents éléments.
Android studio offert aussi un mode visuel qui permet de générer l’IHM sans écrire aucun
code pour cela.

Figure 17 : Fichier XML contenant la description de l’IHM d’une act ivité de l’application DroneCommand
Figure 18 : Editeur visuel de l’Interface Homme -Machine

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

30
Cependant j’ai préféré d’utiliser le mode texte et écrire tout le code pour avoir plus de
contrôle sur l’aspect visuel final de l’IHM.

4.2.2.2.3 Android Activity

Une application est généralement constituée de plusieurs activités qui sont faiblement liés
entre eux. En règle générale, une activité dans une application est définie comme étant l'activité
"principale", qui est présenté à l'utilisateur lors du lancement de l'application pour la première fois.
Chaque activité peut alors commencer une autre acti vité afin d'effectuer différentes actions.

Une Activité est une composante d'application qui fournit un écran avec lequel les
utilisateurs peuvent interagir afin de faire quelque chose, comme composer le téléphone, prendre
une photo, envoyez un email, ou afficher une carte.
Le comportement de l’Activité, ainsi que ce qu’el réalise est décrit en utilisant la syntaxe du
langage Java. Même si les Activités représentent en fait des classes Java, on peut avoir en m
ême temps des autres classes Java qui n’inte ragissent pas avec l’utilisateur dans aucun manière.
Une Activité a un certain cycle de vie, ce qui exige donc que le comportement de l’application soit
décrit pour chaque phase de ce cycle de vie, afin de n’avoir pas des évènements inattendus.

4.2.3 Langage C

C’est un langage de programmation d’usage général, impérative développé en 1969 par
Dennis Ritchie. Ce qui rend C spécial comme langage de programmation c’est le fait qu’il fournit
des constructions qui peuvent être mappées de façon efficient a des instructions machine. Ainsi,
ce langage se trouve utilise dans un grand nombre d’applications qui ont étés auparavant é crits en
Figure 19 : Cycle de vie d’une Activite Android. Source developer.android.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

31
code Assembly, ce qui inclut des systèmes d’exploitation, ou plus important : systèmes
emba rquées. C a été utilisé pour re -implémenter le système d’exploitation Unix, et représente un
des plus utilisées langage de programmation (TIOBE,2009).

On rappelle donc, l’importance de ce fait ici car c’est le genre d’usage qu’il a trouvé dans
l’AR Drone. Comme détaillé ci -dessus, l’AR Drone 2.0 utilise comme système d’exploitation une
version de Linux, qui appartiens a la famille Unix, et donc développé en C. Naturellement, tout
application roulant sur ce drone devrait être écrite en langage C.

Le langage C utilise des librairies comme la principale mé thode d’extension. Une librairie
n’est plus qu’une collection des fonctions contenues dans un seul fichier. Chaque librairie déclare
ses fonctions dans un fichier header (avec l’extension .h) qui contiens les prototypes des fonctions,
déclarations de types de données ou symboles. Ainsi pour utiliser une librairie un programme doit
inclure le fichier header de la librairie et le joindre pendant la compilation, ce qui nécessite des
fanions spéciaux dans la compilation.

4.2.4 Libusb

Libusb est une bibli othèque C qui fournit un accès générique aux périphériques USB. Il
est destiné à être utilisé par les développeurs pour faciliter la production d'applications qui
communiquent avec le matériel USB.
C’est donc la librairie que j’ai utilisé pour mettre en œuvre la communication USB entre le
smartphone et AR Drone.
Figure 20: Utilisation des langages des programmation Source : tiobe.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

32

Certains caractéristiques m’ont emmené a faire cette choix :
 Portabilité : utilisation d'une seule API multiplateforme , elle permet d'accéder à des
périphériques USB sur Linux, OS X, Windows, Android, OpenBSD etc.
 Aucun privilège spécial ou l'élévation est nécessaire pour l'application de communiquer
avec un périphérique.
 Toutes les versions du protocole USB, de 1,0 à 3,0, sont prises en charge.

LibUsb fournit des fonctions pour assurer le transfert de données synchrone
mais aussi asynchrone.
Les fonctions que j’ai utilisé pour réaliser la communication USB peuvent être retrouves ci –
dessous :

4.2.5 Cross Compilation
La cross -compilation est une technique utilisée pour séparer l’environnement de
construction d’une application et l’environnement de cible de l’application, autrement dit du
système sur lequel l’application est censée rouler.
Figure 21 : Fonctions de transfert de la librairie LibUsb Source : libusb.info

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

33
Ceci est utile dans plusieurs cas, le plus important étant celui de systèmes embarqués , des petits
ordinateurs au bord des dispositifs avec des ressources limites. Ainsi les ordinateurs de ces
dispositifs n’ont pas, dans la plupart de temps, suffisamment de puissance pour un compilateur.
Ainsi, ce dispositifs bénéficient de la technique de cross -compilation – le fait de compiler
un programme sur une machine différen te de celle qu’elle va rouler sur.
C’est aussi le cas de l’AR Drone 2.0 , et des smartphones Android. En fait ce qu’Android Studio
réalise , est la cross -compilation de l’application et son déploiement sur le smartphone.
Quelques étapes doivent être suivies pour réaliser la cross -compilation d’une application :

Il est nécessaire premièrement d’installer sur la machine réalisant la compilation des
paquets correspondant au processeur ARM du drone. Cela donnera au compilateur la capacité
d’obtenir le code machine (l’exécutable ) correspondant au modèle du processeur du drone.
Pour cela il faudra installer le paquet arm -linux -gnueabi -gcc-4.6 pour le processeur ARM du
drone.
La compilation se réalisera utilisant une commande comme celle ci -dessous :
« arm -linux -gnueabi -gcc-4.6 –std=c99 « nom du fichier a compiler » -L « le path vers le directory
ou la librairie libusb a été cross compilée « -lusb-1.0 -o « le nom de l’ exécutable ».elf
Il est important de rappeler , que dans le cas où l’application utilise des librairies, ou tout autre
genre d’extension, ceux -ci devront être cross -compilée pour le drone auss i.

4.3 Architecture
L’architecture générale de la solution développée peut être vu dans la figure ci -dessus.
Figure 22 : Architecture du
solution développée pour
implémenter la fonctionnalité de
drone suiveur

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

34
Dans le cadre d’une application ANDROID les deux Smartphones réalisent l’échange des
données nécessaires pour la mesure de distance ainsi que l’orientation du drone.
A partir de ces informations le portable connecte au drone décidera la manière dont il co ntrôlera
le drone. La communication USB est réalisé d’un cote par l’application Android sur le smartphone
et de l’autre cote (du drone) d’une application C qui interprétera les commandes reçus et se
chargera de les redirection er vers le port UDP 5556 , le p ort charge de recevoir les commandes AT .

5. Implémentation et fonctionnement de la solution

5.1 Android -Communication inter -smartphone

Un premier choix dans le développement de la solution a consisté dans la choix d’un moyen
ou medium de communication entre les deux smartphones. Un point important dans l’application
car le transfert des données est essentiel. Sans des informations sur la distance et orientation
l’implantation d’un drone suiveur sera b eaucoup plus difficile, pour ne pas dire impossible.
Avec quasiment deux solutions le Wi -Fi et Bluetooth, on a choisi la deuxième car c’était cette
solution dans notre vue la plus efficace avec un bon rendement même à distance plus grande. En
effet la conn exion Bluetooth pourra assurer le transfert des données jusqu'à une distance de 100
mètres. C’est ne pas le cas avec la connexion Wi -Fi qui ne restera pas fiable à grande distance
(plus de 10 -20 mètres ).

En tenant compte de ce choix, l’application Android qui s’occupera avec la communication
inter-smartphone a été conçue de cette manière :

Une première activité servira à initialiser la connexion Bluetooth. Cette activité crée un
socket Bluetooth qui est manipule dans un thread. Ce thread est utilisé par les prochaines activités
pour chaque transfert de message. Une fois la connexion établie, une nouvelle activité
commencera.
Afin de pouvoir distinguer entre les deux portables (car les opérations ne seront pas
nécessairement les mêmes) un des smartphones p rendra rôle d’un serveur Bluetooth et l’autre d’un
client.
Pour la réalisation de cette connexion et la création de socket l’API Bluetooth standard a été utilisé.
Les rôles de serveur et client devront être choisi au début et pour simplifier le travail j’ai
décidé d’apparier les deux smartphones avant tout prochain développement. Sinon apparier les
deux smartphones à partir de l’application, nécessitera beaucoup de permissions, et à mon avis,
chargera inutilement l’application. Donc l’application suppose que l’utilisateur s’en occupera de
cette partie . Les deux smartphones étant apparies l’Activité en charge de la communication

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

35
Bluetooth ne fera qu’utiliser la connexion physique existante, obtenue a partir de la classe
Bluetooth Adapter
La figure suivante montre un exemple d’affichage de cette activité :
Une fois les rôles décides chaque smartphone affichera un message, correspondant à son rôle :
Figure 23 : Activité de connexion de l’application DroneCommand

Figure 24 : Distinction de l’affichage de l’IHM
en fonction du rôle choisi

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

36
Ainsi pour obtenir le socket d’échange des données le smartphone au rôle de serveur utilise
un objet BluetoothServerSocket qui attend la c onnexion d’un client : dans ce cas l’autre
smartphone.
Quand le client se connecte sur un smartphone apparié (obtenu avec
BluetoothAdapter.getDefaultAdapter().getBondedDevices()), il obtient un objet
BluetoothSocket . De même quand le serveur accepte une c onnexion, il obtient un objet
BluetoothSocket . Plus de détails sur le code nécessaires pour la mise en œuvre de cette partie
peuvent être retrouvées dans l’Annexe A1 et l’Annexe A2.

Ce socket sera manipule par un thread pour l’envoi et réception des données dans les étapes
suivantes de l’application.
Afin de réa liser la phase de connexion j’ai choisi d’utiliser un objet de type AsyncTask .
Cet objet permet tout simplement de lancer des taches de fond sans bloquer l’évolution de
l’interface homme -machi ne. C’est donc l’approche parfait pour donner un look -and feel fiable a
l’application.

Figure 25 : L’objet héritant de la classe AsyncTask et la méthode “doInBackground”

Un objet de ce type sera créé dans les deux cas: un pour le serveur, un pour le client. Les
instructions devront être spécifiées dans la méthode “doInBackground” pour qu’elle s’ exécute en
fond.
Une fois la connexion effectue j’ ai décidé d’arrêter le BluetoothServerSocket afin d’éviter
la connexion d’un autre smartphone et la création des sockets supplémentaires.

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

37
Apres avoir réalisé la connexion et obtenu le socket, une classe héritant de Thread a été
implémenté pour lire (à partir du InputStream) et écrire ( à partir du OutputStream) d ans le socket
comme vu dans l’Annexe A4 . Cet objet, une fois crée, devrai être rendu statique afin de pouvoir
le partager entre les différents Activités de l’application. La réception est l’envoi de messages
peuvent etre consultes dans l’Annexes A5 et A6.

En effet la première activité n’est qu’une activité qui gère la connexion Bluetooth. Deux
fils d’ exécution (un pour serveur et un pour client) serviront à connecter les deux smartphones et
un troisième fil d’ exécution instancie mais pas exécuté par cette activités servira à permettre les
échan ges des messages via le socket B luetooth.

La prochaine étape servira à définir et une nouvelle Activité capable de réaliser des
échanges périodiques entre le client et le serveur . C’est l’activité principale de l’application
Android car c’est elle qui réalisent les opérations nécessaires pour mesurer la distance et
l’orientation, le tout à intervalle régul ier. Celle -ci va être démarrée par l’activité précédente , une
fois la connex ion Bluetooth établie au niveau de l’application. Le lancement de la prochaine
Activité se réalise en utilisant un « Intent » comme vu dans l’Annexe A3.

5.2 Mise en place de la communication entre le thread Bluetooth et l'activité de
mesure

Pour récupérer les données reçues via ce thread et les utiliser dans une activité donnée, il
faut créer un handler . Le handler devra être déclaré et instancié dans la classe qui dépend de
l'activité qui a besoin des données lues. Dans ce cas, il sera opportun de le déclarer dans l'activité de
mesure des distances qui est lancée une fois la connexion établie.

Pour que le thread de communication puisse utiliser ce handler, il faut le lui faire connaitre
(via une nouvelle méthode du thr ead de type 'setHandler(Handler handler)'. Maintenant que le
thread de communication connait le handler pour discuter avec l'activité de mesure de distance, il
faut l'utiliser pour envoyer les données lues dans run() en créant un nouveau message qui a pour
paramètre les données lues dans le socket.

5.3 Création du schéma de communication client -serveur .

Lors de la mise en place de la communication Bluetooth, l'utilisateur a dû choisir un rôle
(client ou serveur Bluetooth). Cette information sera gardée pour déterminer le rôle des terminaux.
Ainsi, le terminal qui a été choisi en tant que Serveur Bluetooth sera le terminal serveur de notre
application de mesure de distance. Cette nouvelle activité n'a besoin que d'un bouton pour l'instant,

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

38
ayant pour aff ichage ' Démarrer le drone ‘ ou ‘ Arrêter le drone ’. Si le bouton est activé quand il
porte le nom ' Démarrer le drone ’, les échanges de données entre le client et le serveur démarrent.
De même, s'il porte le nom de ‘ Arrêter le drone’ , les échanges de données s'arrêtent quand on
l'active.

Voici le schéma des échanges des messages dans ce mode de communication client /
serveur standard :
Client Serveur
write( MsgClient) | ––––- > | read( MsgClient )
read( MsgServeur ) | < ––––- | write( MsgServeur )

Les mesures devront être périodiques. Il faut donc que le client envoie des messages selon
une période donnée qui sera contenu dans un variable globale (INTERVAL_SEND ) dans l’ Activité
de mesure et échange . Cela simplifiera les changements éventuels pendant les tests.

Cette communication nécessite la mise en place de deux nouveaux fils d’exécution (threads ) :
 Un thread côté client, qui envoie un message (MsgClient), et qui attend une réponse du
serveur. Dans la méthode run() de ce thread, un envoi(write) du message sera fait vers le
socket Bluetooth , puis un ‘read ‘ du message reçu du serveur.
 Un thread côté serveur qui permet uniquement de lire des messages. Dans la méthode run()
de ce thread, le serveur commence par lire un message. Quand il a lu un message, il renvoie
un nouveau message au client (MsgServeur).

Il est nécessaire de mesurer périodiquement la distance entre les deux téléphones. Pour cela, le
Client doit être capable d'envoyer un message périodiquement. C’est pour ce raison que l a période
a été fixée dans une constante.
Pour que cela soit réalisé , il fau t que les threads se relancent périodiquement. Dans ce but j’ai
utilisé la méthode handler.postDelayed(runnable, TIME) de la classe Handler qui permet de
relancer l' exécution d'un thread après TIME millisecondes. Pour l'utiliser, il faut bien sûr créer un
objet de classe Handler pour gérer le thread lancé (côté client et serveur). Ces handlers ne serviront
pas à envoyer de messages , ils ne feront que gérer les relancements périodiques des fils d' exécution
comme decrit dans l’Annexe A7 .

Cette étape permet finalement la possibilité d’échanger des messages entre les deux appareils
et donc une solution pour l’envoi de la distance et la direction du smartphone tenu par la personne
(l’objectif) .

Par la suite, des options pour la mesure de distance entre les deu x smartphone seront présentées et
analyses.
Apres avoir mené du recherché sur le sujet j’ai trouvé deux méthodes :

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

39
 En utilisant la puissance du signal Wi -Fi
 En utilisant les coordonnées GPS (Système de positionnement globale) des deux appareils
N’ayant pas des informations suffisantes sur les avantages et désavantages de chaque méthode j’ai
décidé d’implémenter les deux et mener de tests pour faire une décision sur l’ efficacité maximale.

Je présenterai donc, dans la suite, le fonctionnement de chaque méthode , ainsi que ses
avantages et désavantages .

Utilisant la puissance du signal Wi -Fi

Dans ce cas il faudra premièrement initier une communication Wi -Fi dans laquelle le client
est configure comme point d’accès. Ensuite les deux smartphones sont connectes entre eux via la
technologie Wi -Fi Direct. Comme précédemment, dans le cas de la connexion Bluetooth, la
création physique de la connexion WiFi est réalisée directement sur l’appareil, en dehors de
l’application, afin de simplifier le travail.

Pour pouvoir manipuler la connexion WiFi il faudra passer par la classe WiFiManager pour
avoir accès aux réseaux disponibles ainsi qu’au terminaux c onnectes.
En récupérant le réseau connecte on peut récupére r ainsi la puissance en dBm et la fréquence. Etant
une valeur constante j’ai décidé de stocker la valeur de la fr équence dans une variable de l’ Activité
pour rendre moins lourds les calculs menés par l’application.

A partir de cette puissance reçue et de la fréquence j’ai réussi calculer la di stance grâce a
un phénomène qui existe dans le domaine de télécommunications .

Dans les télécommunications, l'espace libre perte de trajet (FSPL :Free Space Path Loss )
est la perte de puissance du signal d'une onde électromagnétique qui résulterait d' une trajectoire en
ligne à travers l'espace libre (habituellement de l'air), sans obstacles à proximité pour provoquer
la réflexion ou diffraction.

Ce phénomène est défini dans «Définitions des termes standard pour Antennes", IEEE Std
145-1983, comme «La perte entre deux radiateurs isotropes dans l'espace libre, exprimée en
rapport de puissance."

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

40

L’équation décrivant le FSPL est la suivante :

𝐹𝑆𝑃𝐿 (𝑑𝐵)=20 𝑙𝑜𝑔 10(𝑑)+ 20 𝑙𝑜𝑔 10(𝑓)+𝐾

d: distance
f: fréquence
K: constante dépendante des unités de mesure choisi pour f et d. (pour f en MHz et d en mètres
K déviant -27.55)

A partir de cette équation j’ai réussi à extraire la di stance entre les deux terminaux avec
la formule :

double exp = (27.55 – (20 * Math.log10(freqInMHz)) + Math.abs(signalLevelInDb)) / 20.0;
distance = Math.pow(10.0, exp);

La mesure peut être réalise par n’importe quel smartphone mais j’ai décidé de l’effectuer
sur le po rtable serveur. Apres la mesure, le serveur envoie cette distance à l’autre smartphone pour
que les deux aient une connaissance de cette valeur et pour que le client puisse plus tard utiliser
cette distance pour envoyer des informations de contrôle a le drone.

Apres avo ir implémenté cette méthode j’ ai mené de tests pour voir son efficacité et pour
voir si elle comporte des désavantages. Etant une très bonne approximation (offrant des erreurs
des quelques centimètres) elle n’était pas quand mêm e assez précise à l’intérieur des bâtiment s ou
dans des situations ou le signal peut être reflète par beaucoup des surfaces. Cependant à l’extérieur
elle a donné des bons résultats.

Un exemple d’affichage de l’Activite peut être vu ci -dessous : Figure 26 : Illustration du phénomène FSPL Source : radio -electronics.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

41

Dans le cas ou l’application rencontre des problèmes avec la connexion WiFi un message d’erreur
est affiche ainsi que une valeur négative choisi comme convention :
Figure 27 : Affichage de l’Activite
d’échange de données et mesure de
distance
Figure 28 : Affichage de l’Activite en cas
d’erreur

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

42

En utilisant le système GPS

Au moment où le serveur envoie un message, l’application récupère les coordonnées en
utilisant le système GPS incorpore, et les incluent dans le message. A la réception de ce message,
le client obtient sa propre position GPS dans la même manière, calcule la distance, et réponds au
message avec ses propres coord onnées GPS pour que l’autre smartphone puisse aussi calculer la
distance. Bien -sûr, cette méthode ne fonctionne qu’à l’extérieur du bâtiment, mais elle peut quand –
même donner des meilleurs résultats, une fois les smartphones séparées par une distance plus
grande.

Pour pouvoir manipuler les services de location, il faudra premièrement passer par un objet
de type LocationManager. Une fois cet objet récupéré, il faudra que la classe qui utilise cet objet
implémente LocationListener, pour pouvoir recevoir des mis-a-jours à propos de la position du
portable.

Une fois ces opérations effectuées, la position GPS du portable sera mis à jour de façon
automatique, et on n’a qu’ à l’a récupérer de façon périodique et l’envoyer à l’autre smartphone.
Au moment où un des portables reçoit les coordonnées GPS de l’autre l’application peut calculer
la distance soit en utilisant la méthode disponible dans l’API soit en utilisant une simple formule.
Pour ne plus compliquer les choses j’ai décidé d’utiliser la méthode di stanceBetween() disponible
dans l’API Android.

Apres avoir implémentée la mesure de distance en utilisant le système GPS j’ai réalisé de
nouveau de tests de mesure. Les problèmes ont étés présents de le début. Par exemple, si le service
de location n’a p as été utilisé récemment, une attente d’au moins 10 minutes est nécessaire pour
que la localisation du portable soit réalisée. De plus, une fois cette attente dépasse je me suis vite
rendu compte de la manque de précision de la mesure dans certains points . En effet, il ne s’agissait
pas que d’un manque de précision, mais aussi une manque de stabilité, la mesure variant avec plus
de 10 ou 20 mètres, sans changer de position .

Ayant en vue ces faits, qui pourront engendrer beaucoup des problèmes et nuisances j’ai
décidé de garder la première solution : la mesure de la distance en utilisant le signal WiFi.
Disposant d’une méthode donnant des bons résulta ts dans la mesure de distance, l’a application
pourra maintenant démarrer les opérations nécessaires pour la communication smartphone – drone.
Il est important de rappeler que ces opérations se déroulent juste sur le smartphone attache au drone
(le smartphone avec le rôle de client) .

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

43
Pour la réalisation de cette étape la communication avec le drone pourra être réalise en
deux modes : en utilisant le réseau Wi-Fi(le fonctionnement typique de l’application inclue avec
le drone) , ou en utilisant l’interface USB du drone, en reliant le smartphone et le drone à travers
un câble USB.
Ayant en vue la réseau Wi-Fi d’un des smartphones était déjà utilisé afin de mesurer la distance
entre les deux portables, et aussi pour épargner de l’énergie, j’ai décidé d’utiliser la deuxième
méthode et réaliser la communication à travers l’interface USB du drone. De plus, cette métho de
m’a appris aussi des nouveaux informations et techniques.

5.4 Communication Smartphone – AR Drone

La communication entre les deux dispositifs va se dérouler donc à travers un fil USB. Le
drone dispose d’un port USB auquel il fournit d’électricité.

Dans toutes les communications USB un des deux dispositifs devra actionner comme un USB host,
et donc délivrer énergie. Dans cette situation le drone fera office d’USB host. Un dispositif
Android peut interfacer avec un dispositif USB dans deux façons : soit en USB host mode soit en
USB Accessory Mode. Dans la deuxième situation l’autre dispositif va être considéré comme un
accessoire Android. Le smartphone opère donc en Accessory mode.

Cependant, pour pouvoir être valide comme un accessoire Android, le drone devra adhérer
au Protocol Android Open Accessory (AOA). Dans la section prochaine je vais décrire les étapes
composantes du pro tocole. Sans suivre ces étapes le drone ne pourra pas communiquer avec le
smartphone Android.

La spécification AOA définit 4 étapes que j’ai du implémenter , dans le cadre d’une
application écrite en langage C sur le drone , afin qu’il peut fonctionner et être considéré un
accessoire Android. Elles sont décrites ci-dessous :
a. Détecter des dispositifs Android connectes
Figure 29 : Flou d’energie et donnees entre les dispositifs Source : developer.android.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

44
b. le support pour Accessory Mode
c. Si nécessaire, essayer de mettre le dispositif Android en mode acces soire
d. Si le dispositif Android implémente le mode accessoire établir la communication.

Comme mentionné précédemment, le drone utilise comme système d’exploitation Linux Ubuntu.

N’ayant pas de support natif ni pour être considéré un accessoire Android ni pour
implémenter les étapes décrits ci-dessus, la libraire C LibUsb a été utilise pour mettre en œuvre
les mécanismes nécessaires .
Dans la suite je vais décrire les opérations réalisées par l’application C pour mettre en œuvre
chaque étape du protocole AOA. Un exemple du code qui implémente ces mécanismes peut être
consulte dans l’ Annexe A12 .

Premièrement l’application doit énumérer les dispositifs connectes sur le port USB du
drone, afin de pouvoir déterminer le PID et le VID (identifiants de producteur et vendeur ) afin de
pouvoir envoyer des requêtes vers le portable. Le PID et VID sont les identifiants d’un dispositif,
étant utilisées dans la librairie LibUsb pour avoir accè s à un dispositif. Suite à cette énumération
l’application dispose des informations relatives au smartphone Android.

Pour obtenir ces informations une requête de type « Get Device Descriptor » a été envoyé
au portable. Suite à cette « interrogation » le portable peut répondre avec des différents identifiants
selon le mode dans laquelle il opère.

Première possibilité : L’interrogation retourne les PID et VID du fabriquant. Dans ce cas
il faudra continuer les étapes suivantes.
Deuxième possibilité : Le smartphone est active en Accessory Mode et réponds avec le PID et
VID de Google : (VID==0x18D1) and PID (PID==0x2D00||PID==0x2D01) . De ce fait on pourra
conclure que le dispositif a du support pour l’accessory mode et il est actif dans ce mode. Ainsi le
smartphone va être capable de détecter le drone comme un accessoire et procéder à la
communication USB. Cette situation peut être rencontre seulement âpres avoir déjà mis le
smartphone en Accessory Mode avec les prochaines étapes, donc finalement l’applicati on doit
implémenter toutes les étapes afin d’avoir succès.

b) Déterminer le support pour Accessory Mode

L’application envoie à l’aide du LibUsb une requête de type contrôle. Ce type de requête
utilise des valeurs spécifiques que j’ai trouvées dans la d ocumentation mis à disposition par
Google. Ces valeurs sont utilisées pour différentier entre plusieurs types des requêtes. Ainsi elles
ont été très importantes dans ces étapes car une mauvaise représentation engendra le non –

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

45
fonctionnement de la communicat ion. Les valeurs utilisées pour ce requête sont disponibles ci –
dessous :

Ensuite, le smartphone répond à cette requête avec un entier correspondant à la version du
protocole AOA incorporée . Cependant le smartphone peut répondre avec un entier nul (0). Cela
signifie qu’aucune version du protocole n’est implémentée et le smartphone ne peut pas opérer
dans Accessory Mode.

De ce façon la, l’application peu facilement tester la disponibilité du protocole, car la
manque du protocole signifiera que l’application provoque l’arrêt de communication ainsi que la
nécessité d’un autre smartphone qui incorpore le protocole AOA.

c) Si nécessaire, essayer de mettre le dispositif Android en mode accessoire
En supposant que le smartphone est équipé d’une version du protocole AOA , l’application
envoie des informations d’identification du drone pour qu’il peut être autorise à envoyer des autre
types de requetés vers le smartphone, par exemple des requêtes pour mettre le dispositif en mode
Accessoire.

Ce genre de fonctionnement est utilisé pour des raisons de sécurité, mais aussi pour
identifier une application capable d’inter agir avec l’accessoire.
Ainsi ces informations ont êtes transmises à l’aide des plusieurs requêtes de type contrôle dont les
valeurs que j’ai utilisé sont présents dans les table ci –dessous :

Figure 30 : Paramètres pour requêtes de contrôle Source : developer.android.com
Figure 31 : Paramètre requête de t ype contrôle pour envoyer des informations d’identification Source :
developer.android.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

46

Chaque string ID utilise représente un autre type d’information transmise. De cette façon,
l’application Android présente sur le smartphone peut relier les informations envoyées à partir du
drone avec un filtre présent dans l’application Android. Ainsi, l’autorisation est effectuée .

Les types et leurs valeurs associées sont décrits dans la prochaine table :
Cependant il n’est pas nécessaire que le filtre dans l’application Android utilise toutes ces
informations. Pourtant, toutes les informations envoyés par le drone doivent être les mêmes que
celles spécifiées dans le filtre d’accessoires.

Pour simplifier cette étape l’application Android utilise seulement la description, le nom
de modèle et le nombre de série, pour effectuer l’autorisation.
Un objet de type BroadcastReceiver pourra être utilise également dans l’autorisation
comme vu dans l’Annexe A8.
Une fois l’autorisation étant effectuée de cote de l’application Android, l’application C roulant sur
le drone envoie une nouvelle requête pour mettre le smartphone Android en mode accessoire.
Les paramètres peuvent être retrouves ci -dessous :

Figure 32 : Filtre pour les accessoires présent dans l’applicatio n Android
Figure 33 : Types d’information et leur code associe pour les utiliser dans le requêtes de contrôle Source :
developer.android.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

47

Pour bien vérifier que tout s’est bien passe l’application envoie de nouveau une requête de
type « Get Device Descriptor ». Si, comme attendu, le smartphone répond à cette requête avec le
PID et VID de Google, cela confirme donc qu’il est actif en Accessory Mode.
Ces opérations réalisent donc l’implémentation du protocole AOA. Donc à partir de là, de point
de vue du smartphone Android le drone pouvait être considéré comme un accessoire Android.

Apres cela, la phase d’initialisation communication est finie. L’application Android
récupère après un objet représentant le drone. Pour cela, j’ai utilisé la liste des accessoires
disponibles en utilisant l’API Android, en passant bien sûr par un objet de type USB Manager pour
accéder les fonctionnalités et services de la connexion USB.

5.5 Automatisation du mouvement du drone

Les étapes de développement suivantes serviront à l’implémentation de fonctionnalité de
drone suiveur. En effet l’application décidera de manière autonome comment commander le drone
pour qu’il puisse se rapprocher de son objectif.
Comme décrit précédemment il est possible de « piloter » le drone en utilisant des chaines de
caractères, suivant une structure spéciale, appelles des commandes AT. Précé demment utilisées
dans les vieux modems [22] [23], elles sont utilisées ici pour le mouvement du drone sur les 3
Axes .

Pour mettre en place l’envoi des données smartphone -> drone l’application Android
utilise un thread qui envoie de façon périodique des « mots » selon la distance. Ainsi les mots
représentent des directions comme : « forward » « turn_left » ou « start » ou « land » comme vu
dans l’Annexe A9 et l’Annexe A10. Pourtant ce mots n’ont rien a faire avec les commandes AT
et ne respectent la syntaxe d’une telle commande. Ainsi j’ai développé une section de code dans
l’application en code C décrit précédemment qui converti le mot reçu dans la commande AT
correspondan te. La commande AT est redirigée ainsi vers le port responsable de gérer les
commandes AT. Pour assurer qu’on mot incorrecte n’est pas converti dans une commande AT ou
Figure 34 : Paramètres pour un requête de mettre le smartphone en mode Accessory
Source : developer.android.com

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

48
tout autre mal -fonctionnement j’ai décidé de faire atterrir le drone dans le cas d’un mo t non
reconnu par l’application C. Un exemple de cette conversion peut vu dans l’Annexe A11.
Les commandes sont envoyés toutes les 100 ms afin que le drone ait un mouvement continu.

En effet la partie Android correspondante a cette étape est réalisé avec un thread qui décide
quelles commandes à envoyer à partir des deux paramètres : la distance qui sépare les deux
smartphones (celui qui est sur le drone et le smartphone qui est avec la personne) et la distance de
garde (la distance auquel le drone devrait s’arrêter de la personne). Comme la distance entre les
deux portables et mis à jour de façon périodique, le Smartphone qui est sur le drone fait avancer
le drone tant que la distance séparant les portables est plus grande que la distance de garde.
Cependant jusqu’a ce moment l’application ne permettait encore de faire le drone tourner , ou
d’avancer dans une autre direction qu’en face.

Premièrement j’ai pensé à utiliser les commandes AT pour effectuer une rotation du drone
en plan horizontale . De ce façon, en calculant la direction en dégrées entre les deux portables en
utilisant le système GPS, on pourrait faire tourner le drone de même manière qu’on le fait avancer
: tant qu’elle n’est pas oriente dans la bonne direction on le fait tourner. Cependant on ne disposait
pas de façon de mesurer l’orientatio n du drone, et donc on devrait de nouveau passer par
l’orientation du portable restant sur le drone. De plus, comme on disposait non plus d’une manière
de faire tourner le drone un nombre précis de dégrées. Cette solution m’a paru inefficace et ne
fonctionnait pas à mon avis dans temps réel, car le drone devrait s’arrêter tous les temps pour
effectuer des rotations avant d’avancer.

Apres avoir recherche des informations et techniques dans la documentation fourni par le
fabriquant du drone j’ai découvert que le drone peut effectuer des mouvements dans deux façons.

Le premier, et celui qu’on utilisait jusqu'à ce moment ce d’effectuer les mouvements du
drone relatif à l’orientation courante du drone. C'est -à-dire que la commande AT correspondant à
« forward » fait le drone avancer dans l’orientation courante ainsi que la commande « backward »
fait la drone se déplacer dans une directio n 180 degrés relative à l’orientation du drone.

Le deuxième mode est appelle Absolute Control Mode et, utilisant des commandes AT
spécifiques à ce mode (commençant par ATPCMD_MAG) effectue les mouvements du drone
relatif à l’orientation qu’on peut le fournir a travers un des paramètres de la commande AT. Ce
type de mouvement est réalisé en utilisant le logiciel natif du drone et le magnétomètre installe sur
le drone.

Ainsi l’application utilise l’orientation géomagnétique du smartphone pour obtenir la
direction du smartphone. Ainsi la personne qui devra être suivi, tiens le portable oriente vers la
direction dans laquelle elle veut aller. L’orientation du portable est transmise de façon périodique

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

49
au drone, qui l’inclue da ns la commande AT pour pouvoir aller dans la bonne direction. De cette
façon, le drone avance tout le temps dans la même direction que la personne suivi.

Comme mentionné précédemment les paramètres des commandes AT sont des flottants
entre -1 et 1. Donc, l’orientation rentre dans cette catégorie aussi. Ainsi une orientation de 0
correspond à l’orientation vers le Nord magnétique, une orientation négative co rrespond à
l’orientation vers le Ouest et positive vers le Est. Les paramètres -1 et 1 coïncident et spécifient
une orientation vers le Sud. En utilisant la règle de trois l’application convertisse facilement
l’orientation en dégrées dans un paramètres com pris entre -1 et 1.

L’orientation est récupéré à partir du portable en utilisant les capteurs mis a disposition par
l’appareil. En passant comme auparavant par un objet de type SensorManager, cette fois-là on peut
accéder à l’angle du portable par rapport au Nord magnétique. Cette angle nécessité premièrement
une conversion, sa valeur étant représentée en radians. Ainsi, une fois la conversion effectue,
l’angle peut être transmis au drone.

6. Validation du logiciel

Pour valid er l’application crée j’ai choisi comme méthode de réaliser plusieurs tests pratiques
pour voir son fonctionnement dans des différentes conditions.

6.1 Scenarios de test

L’application a été testée par moi-même plusieurs fois tout au long du processus de
développement et jusqu’ au fin. Le produit final a été teste aussi par deux autres professeur des
multiples fois dans les mêmes conditions .
Les tests ont été faits dans plusieurs endroits pour vérifier la performance dans des milieux
différents et pouvoir t irer des conclusions. Parmi eux on peut énumérer :
 La cour d’un bâtiment
 Le parking
 L’intérieur d’un bâtiment

J’ai eu également l’opportunité de la teste r sous des diverses conditions météorologiques ce
qui a donné l’opportunité de pouvoir analyse r le comportement dans le s plus divers cadres
possibles et analyser les performances dans ces conditions.

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

50

6.2 Résultats de test s

Suite aux tests déroulés j’ai pu observer la performance de la solution mais aussi des
éventuels défis .
La solution élaborée a réussi avec succès de redirectionner le drone de façon autonome
sans intervention humaine vers la personne portant le smartphone considérée comme objectif .
Par contre, comme défis j’ai pu observer que les conditions météorologiques défavorables
(vent fort ou pluie ) peuvent affecter le trajet du drone en le déplaçant de son trajet vers l’objectif
et affecter aussi les exep eriments. Ca parle plus par rapport au drone et ses caractéristiques
techniques, comme son poids assez réduite , que par rappor t à l’application implémente proprement
dit.
Des matériels visuels des démonstration s peuvent être accédés via les liens suivant s :

https://www.youtube.com/watch?v=ub0rWaR5JXQ
https://www.youtube.com/watch?v=Bw -nB2nFs4w

7. Conclusions et futures améliorations

L’objectif initial du projet a été le développement d’une solution innovante fournissant un
mouvement autonome au drone. Cela a été accompli en tenant compte des critères et exigences
spécifiées au début de cet ouvrage. La solution n’entraine pas des couts additionnelles pour
l’utilisateur, et elle réussit à ajouter une fonctionnalité importa nt au modèle de drone utilise .

Le contexte actuelle du développement des U.A.V’ s montre la besoin d’ intégration des
drones autonomes dans le contexte de l’industrie aéronautique mais aussi dans la vie privée .

Les fonctionnalités disponibles dans la version actuelle de l’application ont été testes avec
succès , le mouvemen t autonome du drone et la fonctionnalité de drone suiveur étant assurées . Les
utilisateurs de l’application peuvent interagir avec une interface homme -machine int uitive et facile
à utiliser, guidant l’utilisateur dans le procès .

Cependant la solution n’est pas parfaite, et donc des futures améliorations et
développements ont été envisages .

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

51
L’environnement de fonctionnement du drone peut souvent être plein d’obstacles. Une
solution donc pour la détection et évitement des obstacles devra être élaborée dans le futur. Ce
développement portera soit sur l’utilisation des capteurs additionnels soit sur l’utilisation des
techniques optiques avancées .

Une idée complémentaire d’amélioration pour une version suivante inclue un contrôle de
la rotation du drone autour de son propre axe , pour qu’il réussit à oriente r son camera tout le temps
vers la personne qu’il suit . Ce développement sera aussi conditionné par l’utilisation des
techniques optiques avancées ainsi que des nombreuses calibrations.

Finalement, cet ouvrage ainsi que la solution élaborée démontrent clairement que dans le
contexte actuel l’automatisation des drones est nécessaires et faisable, mais notamment que cette
automatisation peut être accompli dans des façons innovantes en utilisant des techniques et
équipements accessibles aux grand publique.
8. Remerciements

Au terme de ce travail je tiens à adresser quelques expressions de remerciements e t de
reconnaissances à toute personne dont l’intervention au cours de ce projet a favorise son
aboutissement.

Je présente mes sincères remerciements et ma profonde gratitude à mon tuteur M. Maria –
Iuliana DASCALU , pour le temps consacre à la lecture et réunions qui ont rythmé les différentes
étapes de mon mémoire. Les discussions partagées ont permis d’orienter ce travail d’une manière
pertinente. Je la remercie pour sa disponibilité à encadrer ce travail à travers ses critiques et ses
propositions d’ amélioration .

C’est en aveu du succès de ce projet de fin d’ études , que je tiens à remercier aussi aux
professeurs Katia JAFFRES -RUNSER et Jérôme ERMONT , Professeurs Chercheurs à l’Ecole
Nationale Supérieure d’Electronique, Electrotechnique, Hydraulique et Télécommunications , ainsi
que a ma collègue Ioana CALINOIU pour la contribution initiale a ce projet.

Je remercie également tous mes professeurs qui m’ont enseigne durant mon parcours
universitaire, pour le savoir qu’ils m’ont transmis et m’ont appris à aimer les ordinateurs et la
technologie de l’information.

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

52

Bibliog raphie

[1] http://www.businessinsider.com/uav -or-commercial -drone -market -forecast -2015 -2
[2] http://www.fool.com/investing/general/2016/02/29/drones -in-2016 -4-numbers -everyone –
should -know.aspx
[3] http://cstwiki.wtb.tue.nl/images/Rubin_(2014).pdf
[4] http://www.theverge.com/2013/3/24/4141526/mayor -bloomberg -says-surveillance -drones –
inevitable -in-nyc
[5] http://www.aei.org/publication/big -farms -are-about -to-get-bigger/
[6] https://www.wearechampionmag.com/drones -follow -you-follow -me-mode
[7]http://ec.europa.eu/growth/sectors/aeronautics/rpas/index_en.html
[8] http://eur -lex.europa.eu/legal –
content/EN/TXT/HTML/?uri=CELEX:52014DC0207&from=EN
[9] http://ec.europa.eu/commission/2014 -2019/bulc/announcements/future -flying -conference –
remotely -piloted -aircraft -systems -riga-6-march -2015_en
[10] http://www.sesarju.eu/newsroom/all -news/spanish -sesar -partners -complete -simultaneous –
flight -civil-drone -and-manned
[11] The societal impact of commercial drones
Technology in Society , Volume 45
Bharat Rao, Ashwin Goutham Gopi, Romana Maione
[12] Privacy, data protection and ethics for civil drone practice: A survey of industry, regulators
and civil society organisations Computer Law & Security Review , Rachel L. Finn, David Wright
[13] The integration of drones in today’s society Mitche l Pappota , Robert J. de Boera
[14]The Race for Drones Orbis , Volume 59, Issue 1, Pages 76 -94 Michael J. Boyle
[15] "TIOBE Programming Community Index" . 2009 .
[16] Ducrohet, Xavier; Norbye, Tor; Chou, Katherine (May 15, 2013). "Android Studio: An IDE
built for Android" . Android Developers Blog .
[17] Surfac e Flow Measurements From Drones Journal of Hydrology Flavia Tauro, Maurizio
Porfiri, Salvatore Grimaldi
[18] Seeing the forest from drones: Testing the potential of lightweight drones as a tool for long –
term forest monitoring
Jian Zhang, Jianbo Hu, Juyu Lian, Zongji Fan, Xuejun Ouyang, Wanhui Ye
[19] «Définitions des termes standard pour Antennes", IEEE Std 145 -1983, «La perte entre deux
radiateurs isotropes dans l'espace libre, exprimée en rapport de puissance."
[20] Description protocole Android Open Ac cessory
https://source.android.com/devices/accessories/aoa2.html
[21] Documentation libusb. http://libusb.sourceforge.net/api -1.0/modules.html :
[22] https://fr.wikipedia.org/wiki/Commandes_Hayes

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

53
[23] https://docs.kde.org/trunk4/fr/kdenetwork/kppp/appendix -hayes -commands.html
[24] Notes de cours , Develloppement des Applications pour Platformes Mobiles (DAPM) ,Radu
IOANITESCU
[25] Notes de cours , Acces Systemes Informatiques , Jerome ERMONT
[26] Notes de cours, Algorithmes et Programmation , Xavier CREGUT
[27] Notes de cours, Programmation Orientee Objet, Xavier CREGUT
[28] Notes de cours, Programmation Orientee Objet, George DRAGOI, Maria I. DASCALU
[29] Notes de cours, Structure de Donees et Algorithmes , Maria I. DASCALU
[30] Notes de cours, Langages de Programmation, George DRAGOI
[31] Modapp Android, Katia J AFFRES -RUNSER
[32] Notes de cours, Introduction aux Telecommunicatios Martial COULON
[33] Notes de cours, Traitement de Signal , Jean -Yves TOURNERET
[34] Prof. Robert A. York. "course ECE 201C – Antenna Theory". University of California in
Santa Barbara.
[35] http://www.radio -electronics.com/info/propagation/path -loss/free -space -formula –
equation.php
[36] http://www.theuav.com/
[37] http://www.parrot.com/

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

54
Annexe

A1 : Récupération des dispositifs apparies

A2 : Recuperation de socket Bluetooth

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

55
A3 : Lancement de la prochaine Activity

A4 : Thread d’echange de donnees

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

56

A5 : Lire des messages

A6 : Envoyer des messages

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

57
A7 : Thread d’échange et relancement périodique

A8 : Autorisation via BroadcastReceiver

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

58
A9 : Thread d’envoi des données au drone

A10 : Thread d’envoi des commandes au drone

A11 : Conversion des mots reçus en commandes AT

Projet de fin d’études, Filip Cristea Oprisan , Faculté d’Ingénierie en Langues Etrangères, UPB, 2016

59

A12 : Implémentation du protocole AOA

Similar Posts