Drone autonome : Différence entre versions

De Wiki de Projets IMA
(Avancement du Projet)
(Semaine 4 (16 février 2015))
Ligne 102 : Ligne 102 :
 
[[Fichier:carte_geo_php.jpg|200px|center|thumb|Page php pour le mode automatique]]
 
[[Fichier:carte_geo_php.jpg|200px|center|thumb|Page php pour le mode automatique]]
 
* alimentation du pcDuino avec la batterie du drone
 
* alimentation du pcDuino avec la batterie du drone
 +
[[Fichier:IMAG0076.jpg|200px|center|thumb|Convertisseur pour le pcDuino]]
  
 
===Semaine 5 (23 février 2015)===
 
===Semaine 5 (23 février 2015)===

Version du 24 mars 2015 à 07:14

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 leur 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ïd
  • 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
Plan du site

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 de contrôle manuel avec les boutons de commande de base et avec une fonction javascript de test pour vérifier l'envoi 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
Convertisseur pour le pcDuino

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

Semaine de vacances de février.

  • Finalisation du programme C pour le GPS
  • Test de vol via un programme C qui envoie des requêtes UDP : tous les arguments sont donnés dans la console (port, commande(s), délai ...) => fonctionnel
  • Programme C avec commande au clavier : reprise de l'ancien code + ajout des commande AT spécifiques à l'ARDrone + switch case pour gérer les entrées clavier => en cours

Semaine 6 (09 mars 2015)

  • Test du GPS
Time:
       Hour : 14 
       Minute : 25 
       Seconds : 9 
       Milliseconds : 0 
Date:
       Day : 11 
       Month : 3 
       Year : 15 
Fix : 1 
Quality : 1 
Location :
       Latitude : 50.607395 N
       Longitude : 3.135820 E
Other:
       Speed (knots) : 0.840000 
       Angle : 210.619995 
       Altitude : 70.099998 
       Satellites : 5

Carte

  • Test de vol du drone à partir du pcDuino. A l’atterrissage le drone se met en mode défaut ce qui empêche un redécollage immédiat.
  • Résolution des problèmes de connections ( dhcp dans le fichier rc.local )
  • Test des deux codes C avec le PCDuino : premier fonctionnel, mais pas le deuxième
  • Débogage du deuxième code


Semaine 7 (19 mars 2015)

  • Débogage du programme C de l'envoie des commandes AT terminé, code fonctionnel au clavier avec une interface dans le terminal
  • Création d'un cgi-bin pour que la page php envoie une commande ( sous forme d'un simple caractère ) au programme C
  • Débogage du programme C du GPS terminé

Fichiers Rendus