Drone autonome

De Wiki d'activités IMA
Révision datée du 3 mars 2015 à 16:19 par Kcolautt (discussion | contributions) (Semaine 3 (9 février 2015))

Présentation générale du projet

Contexte

Les drones sont déjà en phase de test pour la livraison de colis. Pour cela, il leurs faut être autonome d'un point A à un point B en s'adaptant à leur environnement.

Objectif du projet

Le but est d'équiper un drone de type AR Drone de chez Parrot pour lui faire effectuer une tâche de façon autonome.

Description du projet

Les drones que nous possédons peuvent être télécommandés tant qu'ils sont à porté d'un point d'accès WiFi. Vous allez en équiper un d'un système embarqué de type pcDuino pour le rendre autonome et pouvoir naviguer hors de porté du WiFi.

Vous commencerez par installer un pcDuino sur un drone avec alimentation sur la batterie déjà disponible.

Un système avec deux interfaces WiFi doit ensuite être étudié, une première pour la connexion pcDuino/drone et la seconde pour la communication avec le pcDuino.

Implantez deux mode de fonctionnement : un premier permettant de contrôler le drone avec une interface Web simple et efficace, un second permettant de spécifier un trajet à plus longue distance. Vous pourriez tester le second mode par un vol circulaire autour des batiments de Polytech'Lille ou un vol à moyenne altitude aux dessus des bâtiments de Polytech'Lille.

Un plus serait de pouvoir reconstituer le vol par un graphique notant la position (système GPS) et l'altitude. Le graphique serait illustré par des images de la caméra embarquée.

Choix techniques : matériel et logiciel

Matériel
  • AR Drone 2.0 de Parrot [fourni le 26/1/2015]
  • pcDuino v1 [fourni le 26/1/2015]
  • pcDuino V3 nano [fourni le 4/2/2015]
  • diverses Clef WiFi [fournies le 28/1/2015]
  • Shield GPS pour pcDuino [fourni le 4/2/2015]
  • Matériel pour régulation 5v à partir de la batterie du drone [commandé le 4/2/2015]
  • 2 x Clef WiFi pcDuino [fourni le 9/2/2015]
Logiciel
  • Systéme UNIX
  • API ARDRONE lien

Etapes du projet

  • Rechercher une solution pour pouvoir envoyer des commandes au drone (voir le SDK fournit par Parrot)
  • Prévoir l'alimentation du pcDuino avec la batterie du drone
  • Réaliser une liaison entre le pcDuino et le drone via Wifi.
  • Faire communiquer les deux appareils.
  • Créer un serveur web léger sur le pcDuino
  • Utiliser le réseau Wifi de Polytech (PolytechLille)
  • Réaliser une interface web simple et efficace pour la gestion des déplacements du drone.
  • Mettre en place une mémoire de données sur la localisation voulue et réelle (avec le gyroscope pour obtenir un angle de vue)
  • Ajouter un module GPS au pcDuino pour obtenir les données de positionnement.
  • Conception d'un shield pour le GPS.
  • Réaliser le déplacement automatique en fonction de la différence de coordonnées.
  • Récupérer et enregistrer le flux vidéo, le flux de données (positions GPS, angle, …)
  • Réaliser le suivi de déplacement sur une carte.
  • Réaliser un système de commande en cas d’urgence (ex : l’appareil ce pose a un certain point, ou prise du contrôle par manette, …)
  • Réalisation d'une coque adaptée au drone avec le pcDuino

Avancement du Projet

Semaine 1 (26 janvier 2015)

  • prise en main du drone via application existante sous androïde
  • prise en main de la clé wi-fi
  • gestion de l'alimentation du pcDuino via le port USB sous l'arDrone (connecteur à faire) qui délivre du 5V
  • prémices de l'interface Web
Page d'accueil du site

Semaine 2 (2 février 2015)

  • conception shield pour le GPS
Shield GPS pour pcDuino et Arduino
  • réception pcDuino v3 nano donc reconfiguration
  • prise en main des clés wi-fi sans succès
  • schéma du site web réalisé et conception en cours

Semaine 3 (9 février 2015)

  • réception nouvelles clés wi-fi pour pcDuino
  • connection réussie avec les deux clés sur les arDrone
root@ubuntu:~# iwlist wlan0 scan | grep 'ESSID'
                   ESSID:"PolytechGuests"
                   ESSID:""
                   ESSID:""
                   ESSID:""
                   ESSID:"ardrone_105754"
                   ESSID:"PolytechLille"
                   ESSID:"eduroam"
                   ESSID:"LILLE1"
                   ESSID:"PolytechLilleStaff"
root@ubuntu:~# iwconfig wlan0 essid ardrone_105754                                                                                                                                  
root@ubuntu:~# iwconfig wlan0
wlan0     Ralink STA  ESSID:"ardrone_105754"  Nickname:"RT2870STA"
          Mode:Managed  Frequency=2.437 GHz  Access Point: 00:26:7E:4F:F9:80  
          Bit Rate=48 Mb/s  
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality=90/100  Signal level:-72 dBm  Noise level:-72 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
  • Réalisation de la page manuel avec les boutons de commande de base et avec une fonction javascript de test pour vérifier l'envoie d'une donnée
Page php du mode manuel avec
  • apprentissage API google maps pour le mode automatique (marqueurs sur la carte et récupération coordonnées GPS)
  • utilisation de la librairie node-ar-drone (node.js)

Semaine 4 (16 février 2015)

travaux fonctionnels :

  • Connection série entre le GPS et le pcDuino
$GPGGA,000311.800,,,,,0,00,,,M,,M,,*73
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000311.800,V,,,,,0.00,0.00,060180,,,N*49
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
  • Prise en main de nodejs
  • page php intégrant une Google maps avec possibilité de récupérer les coordonnées d'un marqueur via le déplacement de celui-ci ou via une adresse
Page php pour le mode automatique
  • alimentation du pcDuino avec la batterie du drone

Semaine 5 (23 février 2015)

  • Mesure de consommation électrique
Point de mesure Convertisseur 12V/5V pcDuino GPS WiFi (x1) Drone
Documentation  ??? 700mA 20mA  ???  ???
"Repos" 16,3mA 110mA 10 - 15mA 13mA 220 mA
  • Réalisation d'un code en C pour gérer les trames GPS et faire un traitement sur les données
  • Prise en main du SDK pour utiliser un programme C pour le contrôle du drone
  • Liste des services a retirer du démarrage de Linux
liste via : service --status-all
alsa-restore
alsa-store
anacron
cron
lightdm
plymouth
plymouth-log
plymouth-splash
plymouth-stop
plymouth-upstart-bridge
x11-common

Fichiers Rendus