Pilotage de l’AR-Drone à l’aide d’une manette de PS3

Slides:



Advertisements
Présentations similaires
Module 5 : Implémentation de l'impression
Advertisements

Martin Guibert Pereira Helder Steven Ly Aiman Krissane.
Interactivé: L'Action Script.
Applications distribuées et parallèlisme La communication ne doit pas rester bloquée pour un client.
Communication par diffusion : Multicast Clientn Serveur Client1 Client2 Gr.
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
(Classes prédéfinies – API Java)
PRÉSENTATION D’UNE SÉQUENCE EN SCIENCES DE L’INGÉNIEUR Série S
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance

Les fonctions en Java Partie I Le type void. Dans cette rapide présentation, je vais expliquer :.à quoi servent les fonctions.à quoi faut-il penser avant.
Un environnement matériel et logiciel pour la Réalité virtuelle
Cours de spécialité PEIP Moteur intelligent
Réalité virtuelle et interactions avec un individu
Présentation de l’entreprise
Android Réaliser par: Alia Ragueme Asma Lazrag Maroua Laribi.
Présentation de l’andronessness
Projet Drone/Android M2
CALVET Tom DA COSTA Jaym
Projet 2012 Tour à commandes numériques
Présentation - Partie « Technique »
Outils de tests, logs et documentation Frédéric Moalannée 2010/2011 POO.
Développement Mobile : Android
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Android est une plateforme mobile open source et entièrement paramétrable. Elle a été créée afin de mettre à disposition des développeurs toutes les fonctionnalités.
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
Labview Programmation réseau Communication par sockets
JDBC ou comment manipuler une base de données en Java ?
Les instructions PHP pour l'accès à une base de données MySql
S I N ystèmes nformation umérique Baccalauréat
[rénovation de l’enseignement de la technologie]
Télémétrie pour voiture Eco Marathon SHELL
TP n°3 Javascript Contrôle de formulaire
Drone Didactique Contrôlé
Installation / utilisation
Denis Le Goff - Damien Arrachequesne 1. Application : Réalité augmentée  Objectif  Principe  Démonstration  Description d’ARToolkit  Limites Application.
Suivi d’un drone par un autre 1. Sommaire  L’AR Drone  Objectif  Idées  Faire communiquer les drones  Comment programmer le drone?  Explication.
4 Introduction des objets. Les chaînes et tableaux
L ’ HELICE.
Prise en main de l’application Lync du Windows Store
Programmation en Java Tableaux NGUYEN Thi Minh Tuyen
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Expose sur « logiciel teamviewer »
Android Kévin Giroux.
11/04/ L'héritage Cours 7 Cours 7.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 6 – Exceptions.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Entrées / Sorties.
Strings et Tableaux en Java
Les sockets.
Les systèmes d’exploitation
3 parties r Réalisation sur projet d ’un produit technique 30 à 35 heures r Réalisations assistées par ordinateur 10 à 20 heures r Histoire des solutions.
Mesure en milieu hostile
Gestion d’accès aux centrales nucléaires françaises
1 Applications de Réalité Virtuelle et SCD P. Torguet J.P. Jessel.
Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Introduction à la programmation objet avec java
LIFI-Java 2004 Séance du Mercredi 29 sept. Cours 4.
Sommaire : La programmation arduino
Architecture Client/Serveur
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 3.
Application sous Androïd
SommaireSommaire I. Présentation II. Création du projet III. Dessiner l’interface : o Attribuer une icône à l’application o Insérer une image animée o.
MELISSA GOLGEM 2016 Les fonctions de l’ordinateur.
Introduction O.Legrand G. Seront. Open Handset Alliance Project Regroupement d'entreprises : –de télécommunications, –de constructeurs d’appareils mobiles,
Automatisation d’une rame de métro De : Bavent Sylvain, Aslan Caglar, Ferga Warren, Seigler Alexandre 1.
PROJET CHANTIER GRUE BTS ELECTROTECHNIQUE LYCEE LOUIS ARMAND PARIS.
Transcription de la présentation:

Pilotage de l’AR-Drone à l’aide d’une manette de PS3 Soutenance Intelligence Ambiante – 20 Janvier 2013 Jonathan ATTAL Louis BARRÉ

Présentation de l'AR-Drone 2.0 Conçu et vendu par la société français Parrot depuis 2010 (version 1.0) Premier quadricoptère commandé grand public Version 2.0 : cameras HD, possibilité de faire des vrilles Pilotable via diverses applications pour smartphones

AR.Drone : Open Source C'est un outil ouvert à la programmation. Il possède un Software Developpement Kit détaillé en C++. Possibilité de programmer pour iOS et android ainsi qu'en C++, java et python. Utilisation relativement simple.

Fonctionnement de l'AR Drone 4 hélices tournant dans des sens opposés

Materiel à disposition Caméra frontale HD et caméra sous l'AR-Drone. Nombreux capteurs : accéléromètres, gyroscope, boussole, baromètre, altimètre Connexion Wifi en AdHoc pour transmission flux de données (sortie : vidéo, angles, position / entrée : commandes)

Nombreuses possibilités Pilotage selon différents moyens : manette, pad, clavier Traitement d'image : tracking vidéo, réalité augmentée, déplacement autonome

But du projet 1ère étape : Etablissement de la connexion avec le drone 2ème étape : Utiliser le clavier pour controler le drone grâce à une application JAVA 3ème étape : utiliser une manette de Playstation 3 pour controler le drone

Difficultés rencontrées SDK et documentation très obscurs : de nombreux développeurs ne s'en servent donc pas et Parrot ne propose pas de support au développement. Difficultés pour récupérer le flux vidéo du drone.

Établissement de la connexion au drone Création d’un constructeur pour la classe principale « ARDrone » ByteBuffer bb = ByteBuffer.allocate(4); fb = bb.asFloatBuffer(); ib = bb.asIntBuffer(); inet_addr = InetAddress.getByAddress(ip_bytes); socket = new DatagramSocket(); socket.setSoTimeout(3000); Ce constructeur ouvre également une JFrame qui permettra d’écouter les entrées clavier permettant le contrôle du drone.

Envoi d’une commande AT* void send_at_cmd(String at_cmd) throws Exception { byte[] buffer = (at_cmd + "\r").getBytes(); DatagramPacket packet = new DatagramPacket(buffer, buffer.length, inet_addr, 5556); socket.send(packet); waitms(1); } Les chaines de caractères AT permettent d’envoyer des commandes au drone, comme des instructions de vol (décoller, avancer) ou des informations de configuration (régler l’altitude maximale ou la vitesse)

Simplification des commandes AT Décollage public void takeoff() throws Exception{ send_at_cmd("AT*REF=" + (seq++) + ",290718208"); waiting(3); } Mettre à jour les variables du drone : public void updateDrone() throws Exception{ String at_cmd = ""; at_cmd = "AT*PCMD=" + (seq++) + ",1," + intOfFloat(pitch) + "," + intOfFloat(roll) + "," + intOfFloat(gaz) + "," + intOfFloat(yaw); send_at_cmd(at_cmd);

Fonction principale On instancie un objet de la classe ARDrone Boucle infinie qui écoute les entrées clavier Exemple : while (k<500 && lpressed){ //tourner droite drone.setYaw((float) vitesse); waitms(1); k=k+1; } public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_J: jpressed = true; break; case KeyEvent.VK_L: lpressed = true; break; case KeyEvent.VK_K: kpressed = true; break; case KeyEvent.VK_I: ipressed = true; break; case KeyEvent.VK_Z: zpressed = true; break; case KeyEvent.VK_S: spressed = true; break; case KeyEvent.VK_Q: qpressed = true; break; case KeyEvent.VK_D: dpressed = true; break; case KeyEvent.VK_SPACE: spacepressed = true; break; case KeyEvent.VK_E: epressed = true; break; case KeyEvent.VK_A: quit=false; break;

Démonstration

Dictionnaire : Le Cloud Computing

Définition Cloud Computing = Informatique en Nuage Consiste à dématérialiser les ressources informatiques en les hébergeant sur un serveur distant accessible depuis n’importe ou. Avantages : accessibilité, synchronisation entre les terminaux, risque de perte de données quasiment nul. Inconvénient : Nécessité d’une connexion internet suffisamment rapide selon l’utilisation

Les grands types d’applications Data As A Service: stockage de données Exemples : Dropbox, Google Drive, Skydrive Software As A Service : logiciel utilisable en ligne Exemples : Google Maps, Suites bureautiques, jeux vidéos… Platform As A Service : met à disposition de la puissance de calcul Exemple : Engine Yard Desktop As A Service : bureau en ligne, rassemble souvent plusieurs autres types d’application

Exemple : Microsoft Skydrive Permet d’utiliser Microsoft Office et de stocker/consulter/éditer ses documents en ligne (également depuis smartphones et tablettes) Equivalent à Google Drive + Google Docs

Exemple : Cloud Gaming Permet de jouer via un navigateur à des jeux vidéos qui sont lancés sur des serveurs, en récupérant seulement la vidéo du jeu. Avantage : Pas nécessaire d’avoir un ordinateur puissant pour jouer aux jeux en qualité maximale Exemple : Gaikai

Exemple : Chromebook Ordinateur fonctionnant sous ChromeOS (développé par Google) La plupart des fonctionnalités de l’ordinateur fonctionnent en ligne Peu cher : environ 200€ Pas un succès commercial

L’internet des objets Extension d’internet à des objets ou des lieux dans le monde physique. « Objets ayant une identité » Enjeux : Reconnaitre chaque objet de façon unique et recueillir les données stockées au niveau de l’objet Technologie utilisé : RFID, Qrcode, étiquette Plus compliqué que de lier deux pages web ensemble

L’internet des objets C’est un système de systèmes : Etiquette physique ou virtuelle pour identifier les lieux ou objets Un moyen de lire ou de localiser ces étiquettes Un dispositif mobile Un logiciel sur le dispositif permettant de lire l’étiquette Un réseau sans fil au moins 2G Un page contenant l’information de l’objet lié à l’étiquette Un affichage pour regarder l’information sur l’objet

L’internet des objets 4 grands types d’étiquettes : La radio-étiquette : Technologie RFID L’étiquette graphique : le QR code Etiquette de type SMS : On utilise le SMS pour envoyer un code et recevoir un lien Etiquette virtuel : URL associé à un ensemble de coordonnées géographique (utilisation du GPS)