32
Année 2013-2014 Rapport de projet EI4 - AGI Projet Hervé Projet réalisé par : - Roy BODEREAU - Florian LIGNEUL - Joris MANSART - Thomas MAUGIN Projet encadré par : - Mehdi LHOMMEAU - Paul RICHARD http://www.projet-herve.fr

Rapport Projet Hervé

  • 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