Vous êtes sur la page 1sur 32

Anne 2013-2014

Rapport de projet

EI4 - AGI

Projet Herv
Projet ralis par : - Roy BODEREAU - Florian LIGNEUL - Joris MANSART - Thomas MAUGIN
http://www.projet-herve.fr

Projet encadr par : - Mehdi LHOMMEAU - Paul RICHARD

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

Projet Herv

EI4 - AGI

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

Projet Herv

EI4 - AGI

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

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

Projet Herv

EI4 - AGI

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

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

Projet Herv

EI4 - AGI

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. ISTIA - cole d'ingnieurs Universit d'Angers

2013-2014

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

Projet Herv

EI4 - AGI

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

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

10

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

11

Projet Herv

EI4 - AGI

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.

DLL (abrg de Dynamic Link Library) : format de fichiers de bibliothques logicielles commun sur les systmes d'exploitation Microsoft Windows et IBM OS/21.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

12

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

13

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

14

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

15

Projet Herv

EI4 - AGI

Voici le code C++ gnrant la trame :


for(int i=0;i<NUM_CHANNELS;i++) { PORTB = (PORTB & ~(1 << PPM_PORT)); delayMicroseconds(SYNC); // Hold PORTB = (PORTB | (1 << PPM_PORT)); delayMicroseconds(PULSE_MIN + (PULSE_STEP * channel[i])); } // Synchro pulse PORTB = (PORTB & ~(1 << PPM_PORT)); delayMicroseconds(SYNC); PORTB = (PORTB | (1 << PPM_PORT));

2.2.3 Rsultats obtenus


On peut voir ci-dessous un aperu du signal de sortie de lArduino. On distingue bien les huit canaux, chacun dlimit par un front descendant de 300 microsecondes. La rcurrence de la trame tant de 20 millisecondes. Cest un rsultat plutt satisfaisant, il ny a aucune erreur lors de la transmission avec lordinateur, le programme ne se bloque pas et la trame ne sinterrompt pas.

Figure 8 : Capture d'cran montrant le signal PPM en sortie de l'Arduino

2.2.4 Amliorations
Lapplication utilisant le port srie pour communiquer et ainsi les interruptions, il demeure de petites imprcisions, se traduisant en un tremblement du signal de sortie. Pour rendre le programme encore plus performant il serait judicieux de trouver une autre librairie ou bien damliorer le code en utilisant les interruptions pour gnrer le signal de sortie.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

16

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

17

Projet Herv

EI4 - AGI

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

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

18

Projet Herv

EI4 - AGI

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. ISTIA - cole d'ingnieurs Universit d'Angers

2013-2014

19

Projet Herv

EI4 - AGI

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.

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. ISTIA - cole d'ingnieurs Universit d'Angers

2013-2014

20

Projet Herv

EI4 - AGI

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

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

21

Projet Herv

EI4 - AGI

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).

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

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

22

Projet Herv

EI4 - AGI

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

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

23

Projet Herv

EI4 - AGI

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.

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

24

Projet Herv

EI4 - AGI

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. ISTIA - cole d'ingnieurs Universit d'Angers

2013-2014

25

Projet Herv

EI4 - AGI

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].

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

26

Projet Herv

EI4 - AGI

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].

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

27

Projet Herv

EI4 - AGI

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

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

28

Projet Herv

EI4 - AGI

Diagramme de Gantt

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

29

Projet Herv

EI4 - AGI

Diagramme de rpartition des activits


1% 10% 9% 1 - Acquisition du matriel 2 - Prise en main du matriel 15%

3 - Dveloppement
4 - Test 15%

50%

5 - Amlioration 6 - Promotion

2013-2014

ISTIA - cole d'ingnieurs Universit d'Angers

30

Projet Herv

EI4 - AGI

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 2013-2014 ISTIA - cole d'ingnieurs Universit d'Angers 31