Upload
tmaugin
View
1.166
Download
1
Embed Size (px)
DESCRIPTION
Par Roy BODEREAU, Florian LIGNEUL, Joris MANSART et Thomas MAUGIN
Citation preview
Anne 2013-2014
Rapport de projet
EI4 - AGI
Projet Herv Projet ralis par : - Roy BODEREAU - Florian LIGNEUL - Joris MANSART - Thomas MAUGIN
Projet encadr par : - Mehdi LHOMMEAU - Paul RICHARD
http://www.projet-herve.fr
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 1
Remerciements Nous voudrions remercier notre tablissement, lIstiA (cole dingnieurs de lUniversit
dAngers) et tout particulirement ses enseignants : M. LHOMMEAU, M. CLOUPET et M. RICHARD pour
leur encadrement et leur soutien, galement un grand merci M. FASQUEL et M. COTTENCEAU pour
nous avoir guid et conseill ds que ncessaire ainsi qu Mme Cadot pour grande ractivit lors
dachats de matriels.
Nous tenions galement remercier le projet Solar Decathlon et lquipe dAngers Loire
Mtropole qui nous ont fait confiance tant sur la ralisation de ce projet que sur sa promotion lors des
nombreux vnements auxquels ils nous ont convis.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 2
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 3
Sommaire
1 Introduction ................................................................................................................................ 4
2 Prsentation du projet ............................................................................................................... 7
2.1 Herv Motion ....................................................................................................................... 7
2.1.1 Prsentation de l'application ........................................................................................ 7
2.1.2 Dtail de l'application ................................................................................................... 8
2.1.3 Rsultats obtenus ....................................................................................................... 13
2.1.4 Amliorations .............................................................................................................. 13
2.2 Herv Connect ................................................................................................................... 14
2.2.1 Prsentation de l'application ...................................................................................... 14
2.2.2 Dtail de l'application ................................................................................................. 14
2.2.3 Rsultats obtenus ....................................................................................................... 16
2.2.4 Amliorations .............................................................................................................. 16
2.3 Herv Capture .................................................................................................................... 17
2.3.1 Prsentation de l'application ...................................................................................... 17
2.3.2 Dtail de l'application ................................................................................................. 18
2.3.3 Rsultats obtenus ....................................................................................................... 19
2.3.4 Amliorations .............................................................................................................. 19
2.4 Herv Visual ....................................................................................................................... 20
2.4.1 Prsentation de l'application ...................................................................................... 20
2.4.2 Dtail de l'application ................................................................................................. 20
2.4.3 Rsultats obtenus ....................................................................................................... 24
2.4.4 Amliorations .............................................................................................................. 24
3 Conclusion ................................................................................................................................. 25
4 Bibliographie ............................................................................................................................. 26
5 Complments ............................................................................................................................ 28
Table des illustrations .............................................................................................................. 28
Diagramme de Gantt ............................................................................................................... 29
Diagramme de rpartition des activits .................................................................................. 30
Rsum ........................................................................................................................................ 31
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 4
1 Introduction Les quadricoptres, aussi appels quadri-rotor ou "quadcopter" en anglais, qui sont
aujourdhui sous le feu des projecteurs. Permettent - aussi bien pour les passionns que les novices en
modlisme - une aisance dutilisation ainsi que des performances surpassant la plupart des autres
engins volants (avions, hlicoptres standards, etc.). Ils permettent souvent dembarquer un appareil
photo ou une camra afin de raliser en toute simplicit des prises de vues ariennes.
Les technologies nouvelles de la ralit virtuelle qui mergent telles les interfaces vido,
dispositifs dacquisition de la gestuelle de lutilisateur, etc Offrent des possibilits de dveloppement
varies, ces technologies peuvent venir se greffer sur de nombreux projets, soit pour augmenter
limmersion de lutilisateur, soit pour crer un systme dinteraction diffrents des standards.
Le projet Herv dvelopp par quatre tudiants de lIstiA, lcole dingnieur de luniversit
dAngers, pendant leur cursus de quatrime anne au sein de la filire Automatique et Gnie
Informatique a pour objectif dimplmenter ces nouvelles technologies, en particulier lOculus Rift et le
Leap Motion, sur un quadricoptre quip dun stabilisateur embarquant une camra Go Pro.
Le quadricoptre en question est dune envergure denviron 60cm quip de quatre moteurs
dveloppant chacun une puissance de 200W. La batterie utilise (de 4000mA/h) apportera une
autonomie de plus ou moins 10 minutes, ce qui est largement suffisant pour une prise de vue correcte.
Le Leap Motion est un capteur qui reconnait la position et lorientation dune ou deux mains et
retourne ces informations un ordinateur. Herv Motion se charge de rcolter ces donnes, de les
traiter et de les convertir en commande de vol.
Il faut ensuite transmettre l'ordre au quadricoptre, de base un ordinateur ne peut pas sortir
de signaux lectriques adapt notre utilisation. Pour y remdier nous utilisons une carte Arduino et le
programme Herv Connect qui se charge de convertir les donnes transfres par l'ordinateur en
signal comprhensible par le drone.
La dernire tape est de passer le signal de l'Arduino l'aronef. Pour cela nous disposons de
la radiocommande du quadricoptre comme metteur et dun cble colage qui permet une autre
tlcommande, ici l'Arduino, d'envoyer les commandes au drone. Avec ce dispositif, la radiocommande
peut tout moment reprendre la main sur le Leap Motion. C'est une scurit obligatoire en cas de
perte de la connexion avec le Leap Motion ou du contrle de l'appareil.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 5
La seconde partie de ce projet, est limplmentation de lOculus Rift, un casque immersif qui
reconnait la position de la tte de lutilisateur. Nous utilisons une camra GoPro pour filmer ce que voit
le drone. Nous transmettons ensuite la vido par onde radio via un kit dmission/rception 5,8GHz.
Un adaptateur composite vers USB nous permet de rcuprer un flux vido sur lordinateur qui
considre ce dernier comme une webcam standard. Nous utilisons par ailleurs le logiciel Herv
Capture, qui soccupe de convertir le flux vido en images successives et de faire linterfaage avec
Herv Visual pour la prise en charge de lOculus Rift. Au final cela permet de mettre lutilisateur en
immersion, cest--dire dtre sous le drone et de voir ce que la camra filme.
Parlons maintenant de la rglementation applique aux aronefs. Tout appareil, sans dispositif
de prise de vue, de moins de 25 kg et dune puissance infrieure 15 kW, est un aronef de catgorie
A, autrement qualifi daromodle. La rglementation des aromodles est assez souple puisque,
dans la limite de laltitude maximum de 150 mtres et sous rserve dun pilotage vue, ces appareils
peuvent voler librement hors zone peuple, sans aucun document de navigabilit et sans aucune
condition daptitude de lappareil ou de son tlpilote. En dautres termes, lappareil ne doit rpondre
aucune norme technique et son utilisateur na pas tre titulaire dun diplme.
La rglementation se durcit incroyablement lorsque lappareil est quip dun dispositif de
prise de vue ou, tout le moins, lorsque le drone est utilis pour des activits, notamment, de
photographie et dobservation. Pour voler, il doit rpondre des exigences techniques rigoureuses qui
doivent tre valides par la DGAC. Le tlpilote doit en outre avoir suivi une formation et obtenir, en
fonction du scnario de vol envisag, de multiples autorisations.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 6
Regardons maintenant le fonctionnement global du projet sous forme de schma :
Figure 1 : Schma de visualisation de la partie Leap Motion
Figure 2 : Schma de visualisation de la partie Oculus Rift
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 7
2 Prsentation du projet
2.1 Herv Motion
2.1.1 Prsentation de l'application Lapplication Herv Motion a pour but dacqurir les donnes issues du Leap Motion pour
ensuite les traiter et les envoyer un microcontrleur (Arduino UNO). Cette application est le cur du
systme de contrle du Quadricoptre, elle formate les donnes avec le mme principe quune
tlcommande, sous forme de voix ; moteur, direction, orientation et permet de faire des rglages ;
sensibilits, courbes, zones mortes
Le langage retenu pour faire cette application est le C#, il permet de dvelopper une interface
graphique simple, claire et rapide. Ce langage tant relativement rependu, il est facile de trouver de
laide ou des librairies sur le net (notamment celle pour Arduino).
Dans l'optique d'un moyen de contrle innovant, intuitif et facile prendre en main pour une
personne sans exprience, nous avons orient notre choix vers le Leap Motion. Le Leap Motion est une
interface homme machine nouvelle gnration sans contact. Au moyen de trois capteurs infrarouge, le
Leap Motion scanne la zone au-dessus de lui dans un rayon de 61cm, (autrement dit dans une zone de
0,227m3) et retourne la position des doigts et des mains avec une prcision de l'ordre du centime de
milimtre. Grce sa haute rsolution (200Hz), le Leap Motion offre un lissage des donnes important
et permet tout type de contrle sans -coup.
Dans notre cas, nous utiliserons le Leap Motion afin de contrler le quadricoptre sur ses
quatre axes ( savoir : Gaz, Lacet, Roulis, Tangage). Pour ce faire, nous utiliserons quatre degrs de
libert de la main sont associs aux quatre axes de contrles :
La translation de la main selon l'axe vertical commande les gaz du quadricoptre, plus la main est
haute (dans la limite des 61cm du capteur) et plus le drone acclre. Une main trois cm
correspond un arrt des moteurs pour l'atterrissage.
La rotation de la main de gauche droite permet de contrler le roulis de l'appareil, le tout tant
encadr par des valeurs minimale et maximale interdisant le retournement de ce dernier par
mesure de scurit, mais autorisant nanmoins un contrle avanc en cas de collision en vol ou de
perturbation.
La rotation de la main d'avant en arrire contrle le tangage de l'aronef, ce tangage tant lui aussi
encadr par des valeurs de scurit afin d'viter que l'appareil n'atteigne une vitesse trop leve,
le rendant potentiellement dangereux. Dans le cas prsent, la vitesse linaire de l'appareil n'est pas
le but recherch c'est pourquoi nous avons choisi de mettre le point sur la scurit de vol.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 8
2.1.2 Dtail de l'application Lide tait donc dutiliser le Leap Motion pour retranscrire les informations de position de la
main en commande pour le quadricoptre. Pour cela nous avons utilis lAPI (Application Programming
Interface) du Leap Motion fournie par le constructeur.
La premire difficult a t de faire fonctionner le Leap Motion avec un programme C#, peu
dexemples sont disponibles sur internet et la documentation fournit par le constructeur nest pas trs
fournit. Il a donc fallu chercher un peu avant de pouvoir facilement acqurir les donnes de celui-ci. La
version 0.x du projet sest concentre sur lacquisition des donnes du Leap Motion et leur traitement.
Voici la premire version de lapplication :
Figure 3 : Premier visuel de l'application Herv Motion
On peut voir quelle se focalise sur lessentiel, laffichage des donnes et la visualisation grce
la librairie Tao.OpenGl.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 9
Le langage C# tant orient objet, nous avons cr des objets diffrents pour chaque fonction
de lapplication (acquisition, traitement, visualisation ).
Figure 4 : Diagramme UML de fonctionnement des Objets dans l'application Herv Motion
Prenons lexemple de l'affichage du drone en OpenGL. Nous avons cr un objet Drone
permettant dafficher lcran une reprsentation de son orientation. Nous navions qu fournir
chaque instant la nouvelle orientation de celui-ci sans nous soucier du fonctionnement de laffichage.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 10
Une fois les commandes du Leap Motion traites il fallait ensuite les convertir pour ensuite les
envoyer lArduino UNO. Pour faire cela, nous avons cr une nouvelle classe Tlcommande qui
prend en entre les donnes du Leap Motion et qui donne en sorties les donnes envoyer lArduino
UNO. Cette Tlcommande se dcompose elle-mme en une liste de Voix, classe cre limage
dune vrai tlcommande radiocommande et qui permet dappliquer des rglages sur les commandes
de lutilisateur tel que la sensibilit (rate en Anglais), les courbes exponentielles (pour une commande
non linaire) et des points morts (pour viter de retranscrire les tremblements de lutilisateur par
exemple).
Lautre partie importante a t dtablir la communication avec lArduino UNO. Pour cela nous
avons dans un premier temps utilis une librairie trs connue dans le domaine des microcontrleurs et
dArduino : Firmata, elle permet de communiquer avec un ordinateur en utilisant le port srie.
Dans un second temps nous avons d chercher une librairie du ct de lapplication C# :
Firmata.NET, elle permet denvoyer des donnes vers lArduino trs simplement et sans occasionner de
retards entre lenvoi et la rception des informations.
A cause dun problme de communication entre lArduino et la tlcommande nous avons
chang de librairie (Sharpduino) pour savoir si le dysfonctionnement provenait de la librairie ou bien
dailleurs. En ralit ctait une erreur de cblage qui entrainait un retard trs important entre les
communications. Une fois le problme rsolu (changement du cble) nous sommes retourns la
librairie initiale, savoir, Firmata.NET, car beaucoup plus rapide.
L encore nous nous sommes concentrs sur le fonctionnement de lapplication avant de
dvelopper une interface agrable pour lutilisateur. Voici un second aperu de lapplication aprs
implmentation de tous les composants majeurs :
Figure 5 : Second visuel de l'application Herv Motion
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 11
Lapplication permettait dacqurir les donnes du Leap Motion (et accessoirement dappliquer
une mise au neutre et un calibrage sur position de la main) pour ensuite les convertir en commandes
comprhensibles par lArduino : niveau des gaz, dplacement en avant, dplacement sur les cts,
rotation sur lui-mme et les envoyer celle-ci. LAPI du Leap Motion est trs performante et donne
directement les informations dont nous dont nous avons besoin pour contrler le multirotor, position
de la main par rapport au Leap Motion et orientation de la main.
Pour amliorer lexprience de lutilisateur nous avons ensuite amlior linterface graphique
et les options de lapplication :
Figure 6 : Visuel final de l'application Herv Motion
On remarque limplmentation de la visualisation des donnes grce un systme
dinstrumentalisation de laviation avec la librairie AvionicsInstrumentsControls.
Nous avons amlior les rglages que lutilisateur pouvait faire en proposant un paramtrage
indpendant des voix, savoir :
La sensibilit, pour limiter les dplacements du quadricoptre
Des courbes exponentielles, pour empcher que le quadricoptre ne ragisse trop
rapidement aux commandes de faibles amplitudes
Un inversement des voix pour un interfaage rapide avec la radiocommande.
La visualisation de la courbe de rglage et la commande actuelle de lutilisateur a t
ralise grce la librairie ZedGraph.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 12
Nous avons galement implment un systme de sauvegarde des rglages sous forme de
fichier XML. Ainsi lutilisateur peut paramtrer sa convenance le logiciel et ensuite retrouver ses
rglages sa prochaine utilisation.
Une console permet galement de visualiser les oprations ralises au cours de lutilisation
du logiciel :
Programme prt.
Connexion/Dconnexion lArduino
Positionnement des neutres (position de la main par dfaut dessus du Leap Motion).
Calibration des dplacements de la main.
Mode de vol du quadricoptre.
Un signal sous forme de barres wifi permet de connaitre le nombre de doigts dtect par le
Leap Motion et ainsi de savoir lorsque celui-ci va dcrocher. Des raccourcis clavier pour la mise des
neutres et la calibration laide des touches N et C ont t ajouts afin daider lutilisateur
paramtrer seul le logiciel.
Une fonctionnalit supplmentaire, mais que nous nutilisons pas dans la version finale et qui
permet de piloter la position de la nacelle laide de lOculus Rift est toujours prsente dans la version
finale, on peut voir dans linterface graphique un bouton qui permet de remettre la nacelle droite
quand lutilisateur appuie dessus. Une simple modification au niveau des cblages du quadricoptre
est effectuer. Ainsi en regardant vers le bas, la nacelle de la camra soriente vers le bas et vice versa.
Cest une solution que nous avons dcide de ne pas utiliser, car le quadricoptre tremble et la
qualit du rendu nest pas optimale. La gimball a t garde en tant que stabilisateur de roulis et de
tangage. Nous avons donc choisi une solution plus simple (voir suite du rapport). Nanmoins, nous
tenions garder cette solution, car elle est viable et pourrait tre amliore.
Les trs nombreuses DLL1 qui sont ncessaires au bon fonctionnement de Herv Motion ont
t embarques au sein du logiciel pour faciliter sa portabilit, ainsi lors du lancement de celui-ci, les
DLL non-manages sont extraites dans le rpertoire courant puis leur intgrit est vrifie laide dun
chiffrage md5. Les DLL manages sont quant elles gards au sein de lapplication et appele ds que
ncessaires.
1 DLL (abrg de Dynamic Link Library) : format de fichiers de bibliothques logicielles commun sur les systmes
d'exploitation Microsoft Windows et IBM OS/21.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 13
2.1.3 Rsultats obtenus Les rsultats obtenus sont plutt convaincants, le but initial de contrler le quadricoptre
grce au Leap Motion a t respect. Cependant, il s'est avr un peu plus compliqu de totalement le
contrler au Leap Motion, pour des raisons de maniabilit et de scurit. Ainsi nous avons dcid de ne
confier que roulis et tangage au Leap Motion laissant le les gaz et le lacet un autre utilisateur pouvant
reprendre le contrle total sur le drone tout moment.
Les plus grandes difficults rencontrs ont t de comprendre le fonctionnement de lAPI Leap
Motion et la communication entre le PC lArduino et la Radiocommande. En effet les lorsque la
communication ntait pas bonne nous ne savions pas si le problme tait li au programme C#
lArduino ou bien la tlcommande, ce nest quaprs quelques heures que nous avons compris
lintgralit des erreurs qui occurraient et les avons rsolues.
2.1.4 Amliorations Comme futures amliorations et pour avoir plus de scurit il serait judicieux dimplmenter
un systme de tlmtrie (informations relatives au drone). On pourrait alors visualiser des donnes
importantes telles que la tension des batteries, la position GPS ou encore laltitude du quadricoptre.
Ces informations sont trs importantes et ne peuvent tre ngligs lors du pilotage. En ltat actuel il
est ncessaire de rgulirement surveiller ces informations, afin de garantir la prennit du
quadricoptre.
Il serait galement agrable de pouvoir utiliser son autre main pour rgler les gaz du
quadricoptre. En effet, garder laltitude du drone est trs compliqu (mme avec une
tlcommande), il nest donc pas facile de grer en mme temps et avec la mme main la direction et
les gaz. Une manette de gaz de l'aronautique serait tout fait approprie.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 14
2.2 Herv Connect
2.2.1 Prsentation de l'application Lapplication Herv Connect a pour but dacqurir les donnes issues de lapplication Herv
Motion et de lordinateur pour ensuite les traiter et les envoyer la radiocommande du quadricoptre.
Cette application a t faite dans le but dtre le plus efficace et le plus rapide possible. Il est important
quaucun bug ne survienne au cours du pilotage du drone. Nous allons voir au cours du
fonctionnement de lapplication notre choix dutiliser une Arduino UNO.
2.2.2 Dtail de l'application Le quadricoptre utilise un systme de contrle classique de modlisme, une radiofrquence
de 2.4GHz dans laquelle les valeurs des diffrentes voies sont fournies la suite une frquence de
50Hz. Chaque voix est reprsente par un signal crneau variant de une deux ms (valeur minimale et
maximale) et elles se succdent sur une priode de 20 ms, ce signal est appel PPM (Pulse Position
Modulation). Dans notre cas, nous utilisons un systme metteur rcepteur huit voies, donc notre
signal utile sera contenu dans les 16 premires millisecondes d'mission et le reste sera compos de
blanc. Notre tlcommande de contrle principal est quipe d'un mode de vol d'colage, lequel
permettant un utilisateur avec une autre tlcommande de faire transiter le signal dans cette
dernire, qui se charge de lmission.
L'intrt de ce mode, est qu'en cas d'erreur de vol de commande par l'lve, la tlcommande
"maitre" peut reprendre la main et donc corriger et scuriser le vol. Dans notre application, notre
systme de contrle intuitif a le rle de l'lve et la tlcommande physique est le maitre, ce qui d'une
part permet de reprendre la main en cas de problme de pilotage de l'utilisateur et d'autre part, de
respecter la loi. Cette dernire impose la prsence d'une tlcommande maitre "classique" permettant
tout moment de reprendre la main sur un moyen de contrle non conventionnel.
Nous devons donc muler une tlcommande afin de s'en servir de tlcommande lve. Les
signaux PPM ncessaire au contrle de la tlcommande sont de 5V, nous avons donc cherch un
moyen de gnrer ses signaux. Nous avons orient notre choix vers un microcontrleur trs rependu et
facile prendre en main : l'Arduino. Cette carte de prototypage offre d'une part un microcontrleur
vloce et robuste et d'autre part intgre un port USB permettant d'obtenir une liaison srie avec
l'ordinateur. Les 16MHz du microcontrleur sont largement suffisant notre application, la majeure
partie des traitements tant effectue dans le logiciel de traitement. Le microcontrleur a donc pour
objectif ici de recevoir les donnes, les interprter et de gnrer sur une de ses broches de sortie le
PPM dsir. Ce PPM sera ensuite envoy la tlcommande au moyen du cble jack d'colage.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 15
Voyons plus en dtail son fonctionnement :
Les donnes du programme de traitement et d'acquisition du Leap Motion sont envoyes dans
l'Arduino via le port srie trs haute dbit (115200 bits par seconde) afin de pouvoir assurer le
transfert de la quantit importante d'information ncessaire au vol. Pour grer la liaison entre ces deux
entits, nous avons choisi la librairie Firmata (open source sous licence GNU). L'Arduino se charge ici de
rcuprer les donnes de l'ordinateur et de les interprter. De ces donnes sont dfinies les largeurs
dimpulsions ncessaires sur chacune des voix. Elle gnre le PPM grce l'alternance du niveau de sa
broche de sortie cadenc afin de respecter la priode de 20ms. Notre signal est constitu de huit voix,
l'Arduino met donc chacune des valeurs et se met en attente le temps que les 20 millisecondes soient
atteintes (par exemple, si les huit signaux sont l'tat le plus bas, c'est dire une dure dune ms, leur
gnration ncessite huit ms, impliquant donc une pause de 12ms la fin). La broche de sortie est
branche au cble d'colage et envoy directement dans la tlcommande maitre. Du point de vue de
cette dernire, le signal est strictement identique celui qu'une autre tlcommande aurait gnr, ce
qui ne cause aucun problme de communication.
Voici un schma de la sortie PPM de lArduino :
Figure 7 : Schma reprsentatif de la sortie PPM de l'Arduino
Pour raliser cette trame, le programme Arduino se connecte dans un premier temps
lordinateur, pour ensuite recevoir les commandes envoyes par lapplication Herv Motion. Le
traitement est relativement simple, lArduino reoit les commandes sous forme de variables allant de 0
1000, correspondant aux temps ajouter chaque largeur dimpulsion. Herv Connect, gnre alors
une trame toutes les 20 millisecondes en utilisant ces variables.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 16
Voici le code C++ gnrant la trame :
for(int i=0;i
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 17
2.3 Herv Capture
2.3.1 Prsentation de l'application Lapplication Herv Capture a pour but de faire linterface entre le priphrique dacquisition
vido USB et le logiciel Herv Visual. Le premier priphrique de capture prsentait des problmes de
compatibilit avec lentre de capture vido Windows, entrainant inluctablement un cran bleu. Nous
avons donc cherch un moyen de contourner ce problme de compatibilit et cest pour cela qu'Herv
Capture a t dvelopp. Le principe de cette application est de revenir au fondement de base qui est
que toute vido est constitue dune suite dimages. Avec le nouveau priphrique dacquisition, on
peut lacqurir directement en tant que webcam, mais par soucis de compatibilit, nous avons dcid
de dvelopper compltement ce logiciel afin de pouvoir choisir le mode dacquisition en fonction du
matriel.
Cette application a donc pour objectif de rcuprer les images du priphrique au lieu du flux
vido. Lavantage de cette mthode est quelle ne gnre plus dcran bleu sous Windows. Nous avons
aussi dautre part constat que cette mthode est trs robuste, car non sensible aux erreurs provenant
du priphrique de capture, cest--dire que s'il y a un problme lors de la gnration dune image,
cela ne perturbe pas la gnration des suivantes, chose qui pose parfois problme avec le mode
dutilisation webcam.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 18
2.3.2 Dtail de l'application Cette application ne ncessitant pas dinterface graphique et tant uniquement utilis en lien
avec Herv Visual, nous avons dcid de ne pas lui implmenter dinterface graphique et de travailler
uniquement en tche de fond. Laccs aux menus du programme se fait par un clic sur licne dans la
barre des tches. Le menu de Herv Capture permet les rglages suivants : lancer ou arrter la capture,
choisir le rpertoire de travail et le priphrique de capture et enfin quitter lapplication.
Laspect technique de cette application est le principe de synchronisation entre Herv Capture
et Herv Visual afin que les images qui saffichent soient toujours les plus rcentes, cest pourquoi nous
avons opts pour un systme bas sur le principe des smaphores. Toute la gestion des acquisitions
seffectue avec des demandes et des autorisations. Lors de son lancement, lapplication gnre une
premire image et le fichier dautorisation associ. Une fois cette tape termine, le cycle peut
commencer comme illustr ci-dessous. Quand lapplication Herv Visual a besoin dune nouvelle
image, elle cre une demande via la cration dun fichier demande. Cette action est dtecte par
Herv Capture qui supprime lautorisation prcdente, rcupre une image du priphrique
dacquisition, lenregistre sur le disque et informe le demandeur que limage est prte au moyen du
fichier pret. Le logiciel attend maintenant que le fichier de demande soit supprim afin de ne pas
gnrer de nouvelles images tant que la prcdente na pas t acquise par lautre application. Ceci
correspond un cycle de fonctionnement du point de vue de Herv Capture. Un schma rcapitulatif
est disponible ci-dessous :
Figure 9 : Schma de fonctionnement de systme de smaphore
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 19
Concernant la capture des images, nous avons choisi dutiliser la bibliothque OpenCV en plus
des bibliothques standards. OpenCV offre un large choix de mthodes acquisitions et de traitement
sur les images et de plus est sous licence BSD, ce qui signifie quon peut lutiliser et le distribuer mme
des fins commerciales. Dans notre application, limage est capture et redimensionne afin de
respecter le ratio dimage 720x480 pour lutilisation dans Herv Visual. La limite de 720x480 est celle
des signaux vidos analogiques et bien que nous utilisions une camra trs haute dfinition, le fait
denvoyer la vido sans fil rduit la rsolution maximale celle de lanalogique, ce qui rduit
grandement la rsolution.
Au niveau du langage de programmation, nous avons tout dabord opt pour du Python, mais
cause des besoins de vitesse de lapplication, nous nous sommes tourns vers le C++. Mme si ce
langage est plus difficile dapproche, les performances sont bien meilleures (on passe de 10 16
images par seconde en moyenne). Larchitecture elle profite dune particularit du C++ quest le fait
dtre multiparadigme. Nous utilisons donc dune part les objets et dautre part des fonctions de
traitement. Du fait des besoins dexcution, lapplication utilise galement le multithreading afin de
grer laffichage et la fonction de capture.
2.3.3 Rsultats obtenus Avec le code en Python, le rsultat tait denviron 10 images par secondes, ce qui nest pas
trs fluide, mais grce au passage en C++, nous arrivons atteindre 16 images par secondes, ce qui est
bien plus apprciable. Lors des premires versions, le programme utilisait un cur du processeur son
maximum, mais grce lajout de temps libre pour le processeur, nous avons russi descendre sa
consommation 2 % du processeur pour une consommation de RAM de 20 Mo.
Concernant la robustesse, lors de lutilisation dune seule image comme prsent plus haut,
nous avions des erreurs daccs lecture criture simultan sur limage, entrainant un crash de
lapplication. Cest pour cela que nous avons choisi un systme avec image tampon, ce qui implique
que chaque logiciel travaille sur une image diffrente, supprimant ainsi le risque de conflit. Avec ce
dernier systme, nous avons fait tourner le logiciel pendant plusieurs heures sans aucune erreur, ce qui
en fait une mthode plus fiable que la capture directe, mais avec une cadence moins importante.
2.3.4 Amliorations Plusieurs amliorations sont possibles pour cette application. On pourrait ajouter un systme
de sauvegarde des paramtres destination et priphrique source afin de ne pas avoir les renseigner
chaque dmarrage de lapplication. Il aurait galement t bien daugmenter la compatibilit du
logiciel avec plus de matriel, par exemple notre nouveau priphrique (EzCap) ne supporte pas Herv
Capture.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 20
2.4 Herv Visual
2.4.1 Prsentation de l'application
Lapplication Herv Visual a pour rle de grer toute la partie concernant limmersion de
lutilisateur (cest--dire la gestion de lOculus Rift). Elle est en charge de laffichage du flux vido
rcupr par Herv Capture et de la prise en compte des mouvements de tte de lutilisateur acquis
par le casque Oculus Rift. Celle-ci a t conue au travers du moteur/diteur de jeux vido quest
Unity3D notamment en raison de sa compatibilit avec le SDK 2de lOculus Rift mais galement pour
son aspect multiplateforme qui pourrait savrer utile pour des perspectives de dveloppement Web
ou mobile.
2.4.2 Dtail de l'application
Lide tait donc dutiliser le flux vido de la GoPro transmis par radiofrquence pour simuler
une immersion de lutilisateur et ce en insistant particulirement sur deux points :
lutilisateur devait avoir la possibilit dorienter sa vision
lapplication devait utiliser au maximum leffet de stroscopie simule3
La premire tape a donc t de gnrer cet effet de stroscopie en dveloppant un
environnement utilisateur (on parlera dornavant de GUI pour Graphical User Interface) tel que
limage de gauche soit dcal de -X et +Y et celle de droite de +X et -Y. La phase suivante a t la
conception dun menu de calibration pour cet effet, car dun utilisateur un autre, lcartement des
yeux varie et donc le paramtrage est ajuster.
2 SDK (abrg de Starter Development Kit) : kit de dmarrage pour les dvelloppeurs : un outil souvent fourni par les concepteurs afin dacclrer la prise en main de leur matriel.
3 Stroscopie simule : principe de superposition de deux images (une pour chaque oeil) avec un lger dcalage vertical et/ou horizontal qui permet de recrer une impression de 3D en partant dune image plane quelconque.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 21
La seconde partie consistait en lexploitation de lorientation de la tte de lutilisateur laide
des outils fournis par OculusVR (la socit commercialisant lOculus Rift). Lide initiale tait dasservir
les positions des servomoteurs de la nacelle en fonction du vecteur direction de lOculus Rift.
Cependant cette mthode a t rapidement abandonne, car elle incorporait une trop grande
instabilit (due lasservissement en position) des servomoteurs qui se rpercutait sur limage perue
par lutilisateur. Ainsi, une solution diffrente a d tre dveloppe : le choix sest port sur lutilisation
de lobjectif grand-angle de la GoPro. Le postulat de base a t que le champ de vision dun tre
humain bien qutant dapproximativement de 120, la partie utile de ce champ (observation de
paysage, lecture, etc.) nest, elle, que denviron 60. Or, la GoPro possde un angle de prise de vue de
170 : cela signifie donc quen bridant le champ de vision de lutilisateur 60 dans lapplication, on
conserve une amplitude de presque trois fois le champ de vision utilis. De plus, cette mthode a
galement permis un zoom vers lendroit regard par lutilisateur : en effet, dimensions gales de
rendu, un champ de vision plus troit donnera un effet de zoom plus important.
Figure 10 : Schma reprsentatif des champs de vision de l'il humain
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 22
Concernant la ralisation mme de lapplication, les plus gros travaux ont t la conception de
lenvironnement de lutilisateur (menus, disposition des lments dans lunivers 3D, etc) et surtout
lexploitation du flux vido reu de lapplication Herv Capture.
Pour ce qui est de lenvironnement et des menus, ils sont rests en majeure partie tels
quimports depuis Unity : savoir que peu de modifications des scripts de gestion de lOculus et des
systmes de boutons proposs par Unity ont t ncessaires. Cependant, les quelques amliorations
apportes (tels que la modification du champ de vision, lajout dun systme de slection des boutons
simplifis, etc.) ont demand un lourd travail de comprhension des codes sources afin de ne pas les
endommager.
Le plus gros du travail a lui t consacr la gestion du flux vido. La solution initialement
choisie tant lexploitation direct dun flux vido entrant avec une reconnaissance automatique des
entres vido potentielles (webcam intgre, adaptateur s-vido USB 2.0, etc.), il tait possible
dutiliser directement les textures vido de Unity. Un problme majeur a cependant t rvl par
cette mthode : une trs forte instabilit menant un crash brutal de lapplication lui-mme le plus
souvent lorigine dune erreur fatale du systme dexploitation.
Dans un deuxime temps, lutilisation du systme de smaphore dcris dans la section
prcdente a t retenue afin de fiabiliser le flux vido. Les performances taient bien entendu moins
optimises (nombre dimages par seconde environ divises par deux) mais le principal blocage
rencontr a t une fuite mmoire. En thorie cette dernire naurait jamais du pouvoir survenir, car le
langage de programmation utilis tant le C#, un garbage collector4 aurait d soccuper de librer
lespace mmoire de limage prcdente une fois chaque nouvelle image charge.
Afin de mieux comprendre le phnomne rencontr, il est ici important de dtailler le
fonctionnement du systme de smaphore du point de vue Unity. Le principe est de demander
lapplication Herv Capture de faire une capture dcran du flux vido exploit puis de la charger en
tant que texture sur un plan visible par lutilisateur (sorte dcran de tlvision virtuelle), le tout un
rythme trs lev afin de simuler une vido en utilisant la persistance rtinienne. Le souci a donc t
que lors du passage dune texture base sur une image A une image B, limage A tait conserve en
mmoire par lapplication Unity; le tout tant rpt un nombre de fois lev par seconde (environ 30
fois) lespace mmoire utilis en RAM5 explosait donc en un temps record (jusqu 8Go occups en
moins de 20 secondes).
4 Garbage collector : systme de rcupration de la mmoire utilise lors de la suppression dobjet. Ce systme est prsent notamment dans les langages orients objet tels que le Java ou le C# et permet en thorie dviter toute surcharge ou mme fuite mmoire. 5 RAM (abrg de Random Access Memory) : la mmoire vive est la mmoire informatique dans laquelle un ordinateur place les donnes lors de leur traitement
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 23
La solution ce problme a t de simuler le garbage collector en supprimant manuellement la
texture sauvegarde par Unity avant den charger une nouvelle. De plus, afin dviter laffichage dun
cran noir durant la fraction de seconde de suppression de limage, il a t choisi damliorer le
systme de smaphore en partant sur un ddoublement de limage sauvegarde et des fichiers de
demande et dautorisation (autrement dit un chargement de limage B pendant que limage A est
supprime puis vis-versas).
Figure 11 : Schma de fonctionnement du double smaphore
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 24
2.4.3 Rsultats obtenus Le plus satisfaisant concernant la mise en application de cette partie du projet a t que la
majorit des sujets test ont dans un premier temps cru que la camra tait rellement pilote par les
mouvements de tte de lutilisateur.
Un autre aspect intressant a t le bridage de lorientation de la camra virtuelle : lide tait
initialement de bloquer la rotation de la camra virtuelle si celle-ci devait tre amene sortir du
cadre de lcran virtuel. Ce mode de fonctionnement a trs vite mis en avant une gne des sujets test
et a amen repenser le systme : la solution retenue a finalement t de simuler un espace noir avec
une lunette de vision limite ( linstar dun astronaute voyant travers son casque seulement lorsque
son regard est orient en direction de sa visire). Cette mthode sest vite avre bien plus confortable
pour lutilisation de lOculus Rift des fins dobservation.
2.4.4 Amliorations Les points notables damlioration de lapplication Herv Visual sont tous lis et ont pour but
une amlioration de la qualit de limage et de limmersion. Notamment laugmentation de la
rsolution du flux vido entrant qui est uniquement possible par un changement de technologie de
communication (les radiofrquences tant limites un dbit offrant une image de 480p, il faudrait
passer par exemple au Bluetooth ou la Wifi). Une autre ide serait le passage lOculus Rift V2 trs
fraichement annonc par ses crateurs qui proposera une rsolution quatre fois meilleure tout en
tant plus lger et ractif afin dinsister sur le ct immersif de lapplication.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 25
3 Conclusion
3.1 Apports professionnels Sur un plan strictement professionnel, ce projet nous a grandement apport en ce qui
concerne le travail en quipe. En effet, avec les mtiers davenir que nous visons, ce mode de travail
sera de plus en plus rpandu du fait de son efficacit avre. Le projet sur lequel nous avons travaill a
ncessit une solide organisation en raison des nombreux aspects traits (cinq langages de
programmation diffrents pour pas moins de quatre applications dveloppes formant un pack
complet).
Le maitre mot de ce projet a donc t la planification (tche qui nous a demand au total une
dizaine dheures sur les 100 dont nous disposions) afin doptimiser au mieux notre rpartition des
efforts. Lorsque nous tions dans une priode de rush avec de nombreux travaux raliser, nous
favorisions le travail individuel afin de pouvoir couvrir un maximum de choses en un minimum de
temps.
Au contraire lors des priodes de creux ou de dbugage, nous prfrerions travailler en
coopration, deux par ordinateurs, afin de fiabiliser le code gnr. Il est par ailleurs intressant de
noter que cette faon de faire est aujourdhui de plus en plus courante en entreprise pour les projets
consquent : mme si au premier abord on peut penser un gchis, car deux personnes sont payes
pour une seule tche, on observe au final une amlioration du rendement grce un meilleur
dbugage et une plus grande vitesse de comprhension.
3.2 Apports pdagogiques La diversit des domaines dtudes touchant ce projet sont vastes et nous ont permis de
dvelopper de nombreuses comptences. La premire a t des bonnes bases sur le monde du
modlisme et du fonctionnement dun quadricoptre.
Aprs avoir dcid de langle dattaque du projet nous avons choisi les technologies utiliser.
Ici, nous avons choisi un large panel de langages adapts chaque application. Ainsi, Herv Motion a
t cod en C# langage trs modulable, moins rapide, mais trs efficace. Herv Visual utilise Unity 3D,
moteur de jeu trs rependu et efficace. Herv Connect en C++, trs rapide et adapt un
microcontrleur. Puis pour finir Herv Capture galement en C++ (au dbut en Python), pour une
communication rapide efficace. Nous ne sommes pas rests sur nos acquis et avons essay dutiliser le
meilleur de chaque langage pour rendre la suite Herv Office la plus adapte.
Il ne faut pas oublier le ct organisationnel, point crucial de ce projet, qui a t davoir une
ractivit maximale aux imprvus (matriel non reu, incompatible, etc.), et de rebondir rapidement
dune tape lautre afin de ne pas perdre de temps.
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 26
4 Bibliographie
4.1 Gnral [1] Leap Motion Developer | Controller Developer Resources, SDK, and More. [Online]. Available: https://developer.leapmotion.com/. [Accessed: 16-Apr-2014]. [2] Log-in | Oculus Developer Center. [Online]. Available: https://developer.oculusvr.com/. [Accessed: 16-Apr-2014]. [3] Modlisme par geeby22 - Aromodlisme propulsion lectrique. [Online]. Available: http://www.geeby22.fr/. [Accessed: 16-Apr-2014].
4.2 Lgislation [1] Drones civils: objets volants pnalement non identifis. [Online]. Available: http://www.village-justice.com/articles/Drones-civ[...],16276.html. [Accessed: 16-Apr-2014].
4.3 Herv Motion [1] 3D solar system with OpenGL and C# - CodeProject. [Online]. Available: http://www.codeproject.com/script/Articles/ArticleVer[...]843514. [Accessed: 16-Apr-2014]. [2] C# Avionic Instrument Controls - CodeProject. [Online]. Available: http://www.codeproject.com/Articles/27411/C-Avioni[...]Controls. [Accessed: 16-Apr-2014]. [3] Connecting your R/C Transmitter to a PC using an Arduino UNO Richard J. Prinz. [Online]. Available: http://www.min.at/prinz/?x=entry:entry130320-204119. [Accessed: 16-Apr-2014]. [4] GLUT - The OpenGL Utility Toolkit. [Online]. Available: http://www.opengl.org/resources/libraries/glut/. [Accessed: 16-Apr-2014]. [5] La srialisation XML avec .NET. [Online]. Available: http://tlevesque.developpez.com/dotnet/xml-serialization/. [Accessed: 16-Apr-2014]. [6] Leap Motion Developer | Controller Developer Resources, SDK, and More. [Online]. Available: https://developer.leapmotion.com/. [Accessed: 16-Apr-2014]. [7] Log-in | Oculus Developer Center. [Online]. Available: https://developer.oculusvr.com/. [Accessed: 16-Apr-2014]. [8] SiS-Shadowman/RiftDotNet, GitHub. [Online]. Available: https://github.com/SiS-Shadowman/RiftDotNet. [Accessed: 16-Apr-2014]. [9] The Tao Framework, SourceForge. [Online]. Available: http://sourceforge.net/projects/taoframework/. [Accessed: 16-Apr-2014]. [10] ZedGraph, SourceForge. [Online]. Available: http://sourceforge.net/projects/zedgraph/. [Accessed: 16-Apr-2014].
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 27
4.4 Herv Connect [1] Arduino Playground - Firmata. [Online]. Available: http://playground.arduino.cc/Interfacing/Firmata. [Accessed: 16-Apr-2014]. [2] Firmata.NET. . [3] Main Page - Firmata. [Online]. Available: http://firmata.org/wiki/Main_Page. [Accessed: 16-Apr-2014].
4.5 Herv Capture [1] Develop Windows desktop apps Windows Dev Center. [Online]. Available: http://msdn.microsoft.com/en-gb/windows/desktop/aa904962. [Accessed: 16-Apr-2014]. [2] Overview Python 3.4.0 documentation. [Online]. Available: https://docs.python.org/3/. [Accessed: 16-Apr-2014]. [3] Welcome to opencv documentation! OpenCV 2.4.8.0 documentation. [Online]. Available: http://docs.opencv.org/. [Accessed: 16-Apr-2014].
4.6 Herv Visual [1] Log-in | Oculus Developer Center. [Online]. Available: https://developer.oculusvr.com/. [Accessed: 16-Apr-2014]. [2] Unity - Movie Texture. [Online]. Available: http://docs.unity3d.com/Documentation/Comp[...]Texturere.html. [Accessed: 16-Apr-2014].
4.7 Manifestations [1] Salon rgional des mtiers: Angers Loire Mtropole. [Online]. Available: http://www.angersloiremetropole.fr/actua[...]-metiers/index.html. [Accessed: 16-Apr-2014]. [2] Secteur Robotique - Plante Sciences. [Online]. Available: http://www.planete-sciences.org/robot/index.php?section[...]geid=120. [Accessed: 16-Apr-2014]. [3] Solar Decathlon Europe. [Online]. Available: http://www.solardecathlon2014.fr/. [Accessed: 16-Apr-2014].
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 28
5 Complments
Table des illustrations
Figure 1 : Schma de visualisation de la partie Leap Motion ..................................................................... 6
Figure 2 : Schma de visualisation de la partie Oculus Rift ........................................................................ 6
Figure 3 : Premier visuel de l'application Herv Motion ............................................................................ 8
Figure 4 : Diagramme UML de fonctionnement des Objets dans l'application Herv Motion .................. 9
Figure 5 : Second visuel de l'application Herv Motion ........................................................................... 10
Figure 6 : Visuel final de l'application Herv Motion ................................................................................ 11
Figure 7 : Schma reprsentatif de la sortie PPM de l'Arduino ................................................................ 15
Figure 8 : Capture d'cran montrant le signal PPM en sortie de l'Arduino .............................................. 16
Figure 9 : Schma de fonctionnement de systme de smaphore .......................................................... 18
Figure 10 : Schma reprsentatif des champs de vision de l'il humain ................................................ 21
Figure 11 : Schma de fonctionnement du double smaphore ............................................................... 23
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 29
Diagramme de Gantt
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 30
Diagramme de rpartition des activits
1%
9%
50%15%
15%
10% 1 - Acquisition du matriel
2 - Prise en main du matriel
3 - Dveloppement
4 - Test
5 - Amlioration
6 - Promotion
Projet Herv EI4 - AGI
ISTIA - cole d'ingnieurs 2013-2014 Universit d'Angers 31
Rsum
Un drone contrl en immersion Le projet Herv (pour RV : Ralit Virtuelle) a pour but de piloter un quadricoptre avec la main
tout en tant immerg dans le drone l'aide de lunettes immersives. Ce projet prend part un
challenge international de cration de maisons "vertes" ralis en partenariat avec une quipe
Amricaine afin d'offrir un point de vue arien l'aide d'une nouvelle gnration de drones.
Plusieurs outils d'immersion ont t utiliss tels le Leap Motion, sorte de Kinect pour les mains
et l'Oculus Rift, un masque immersif. L'utilisation de ces techniques tant dj connues, l'innovation
vient du fait de les employer simultanment afin d'obtenir un tout nouveau moyen de pilotage. Le
fonctionnement des quadricoptres n'est pas aussi simple qu'on peut l'imaginer : un grand nombre de
processus complexes interviennent au cours du contrle et de la stabilisation des multirotors. C'est la
raison pour laquelle le travail a t divis en deux : la gestion de l'immersion entre la GoPro et l'Oculus
Rift d'un ct et le pilotage l'aide du Leap Motion de l'autre.
Au final, les objectifs initiaux ont t atteints : il n'a jamais t aussi facile de contrler un
drone, mme pour un dbutant. De plus, un utilisateur peut piloter l'appareil avec ses mains pendant
qu'un deuxime observe l'environnement en bougeant la tte, l'Oculus Rift plac sur ses yeux. Les
premiers tests montrent que mme des enfants sont capables de faire voler le drone en seulement
quelques minutes.
Mots cls: Quadricoptre Control Immersif Intuitif
Immersive drone control The Herv (for RV, Realit Virtuelle in French) Project is about controlling a quadcopter using a
hand and immersive glasses to have the point of view of the drone. It is involved in an international
ecological house contest led by American and European teams and provides a new generation of
remotely controlled aircrafts able to explore the sky.
This project uses various types of immersive components like Leap Motion, sort of Kinect for
hands and the Oculus Rift, a head mounted-display. The fact of using those methods already exists but
were never put together that is why this project bring a totally new way of using remotely controlled
aircraft. Quadcopters are not as simple as we think; a lot of complicated processes were involved in the
development of the control and the balance of the multirotor. To do that the project was realized in
two parts. On one hand the immersive part was to implement a GoPro on the quadcopter sending a
video stream to the Oculus Rift. On the other hand the Leap Motion was used to control the aircraft by
using a hand.
As a result, the purpose of the project was easily reached. It has never been easier to control a
multirotor even for a beginner. One user can remotely control the device only using his hand while
another one is setting the orientation of the camera by simply moving his head around. Even kids are
able to control the drone after a couple of minutes.
Key words: Quadcopter Control Immersive Intuitive