Drone autonome
Sommaire
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
Semaine 2 (2 février 2015)
- conception shield pour le GPS
- 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
- squelette du site web réalisé
- 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 mettre des marqueurs et de récupérer les positions GPS de ceux-ci
- alimentation du pcDuino avec la batterie du drone
[IMG]
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
- Kevin a ragé sur le site web
- 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