Il y quelques semaines nous avons détaillé comment envoyer une commande AT à l’AR Drone à l’aide des paquets UDP (lire : AR Drone – Envoyer des commandes AT). Nous avons ensuite publié une liste complète des commandes AT compatibles avec le drone de Parrot (lire : AR Drone – Récapitulatif des commandes AT). La suite logique consistait donc à créer un programme permettant de contrôler l’AR Drone en lui envoyant des commandes AT !

Pour ce faire nous avons écrit un programme en C. Dans cet article nous vous proposons de découvrir notre programme de contrôle de l’AR Drone !

Fonctionnement du programme

Le fonctionnement de ce programme est très simple. Certaines touches du clavier sont liées à une commande AT particulière. Chaque commande AT traduit un ordre de vol : avancer – reculer – prendre de la hauteur … Nous intégrons ces commandes AT dans des paquets UDP que nous envoyons à l’AR Drone sur le port 5556. Pour rappel l’adresse IP du Drone est 192.168.1.1. … Nous utilisons SDL (Simple DirectMedia Layer) afin de gérer les touches du clavier. Veillez donc à installer cette bibliothèque sur votre machine !

Dans un premier temps nous avons configuré ce programme afin d’envoyer une commande toutes les 30 ms. Nous avons ajusté cette valeur à 50 ms afin de ne pas saturer la mémoire tampon de l’AR Drone. Nous réaliserons des essais plus poussés dans les semaines à venir !

Les limites de ce premier programme

Ce programme ne permet pas d’envoyer simultanément plusieurs ordres de vol. Par exemple nous ne pouvons pas demander au drone de prendre de la hauteur tout en effectuant une rotation autour de lui. Ce programme impose donc de décomposer le mouvement du drone en une succession de mouvements élémentaires. Nous allons étudier plus en détail la SDL afin de corriger ce problème !

Enfin ce programme envoi des paquets UDP à l’AR Drone sans se préoccuper de leur bonne réception. Dans l’idéal ce programme doit analyser les informations de navigation transmises par le drone sur le port 5554 afin de vérifier l’état de la connexion WiFi et la charge de la batterie. Le drone utilise le protocole MAVLink (Micro Air Vehicle Communication Protocol) afin de transmettre ses informations de navigation. Nous allons bientôt étudier ce protocole afin de l’intégrer dans nos programmes ! En attendant vous pouvez utiliser QGroundControl afin d’afficher les informations de navigation. Ou APMCopter !

Code source

Voici la dernière version du code source. N’hésitez pas à nous faire part de vos suggestions ou améliorations !

Ce programme utilise la bibliothèque SDL. Vous devez donc installer SDL sur votre machine UNIX afin de compiler ce code source ! Par ailleurs nous envisageons de développer un programme similaire à destination de Windows. Si vous utilisez MAC OS X vous pouvez compiler votre programme en utilisant le fichier Makefile présent sur GitHub.

Les premiers test !

Nos premiers essais ont été une réussite ! Le drone se comporte normalement et est réactif. Voici la liste des commandes (ou ordre de vol) offerte par ce programme (si vous avez un doute jetez un coup d’oeil au début du code-source) :

  • Décollage : ENTRER
  • Atterrissage : BACKSPACE
  • Avant : FLÈCHE HAUT
  • Arrière : FLÈCHE BAS
  • Mouvement à droite : FLÈCHE DROITE
  • Mouvement à gauche : FLÈCHE GAUCHE
  • Prendre de la hauteur : TOUCHE « Z »
  • Perdre de la hauteur : TOUCHE « S »
  • Rotation à gauche : TOUCHE « Q »
  • Rotation à droite : TOUCHE « D »
  • Arrêt d’urgence : ÉCHAP

Et voilà ! Vous pouvez quitter le programme en appuyant sur la touche « P ». Avant d’utiliser ce programme vous devez évidemment vous connecter au réseau WiFI créé par le drone lors de sa mise sous tension. Si les paquets UDP ne peuvent être correctement transmis à l’AR.Drone alors le programme affichera un message d’erreur dans la console. Utile si vous perdez la connexion WiFi !

Nous ne pouvons garantir le fonctionnement optimal de ce programme. En effet ce programme est expérimental. Utilisez le en toute connaissance de cause ! Ceci étant dit d’après nos tests l’AR.Drone se révèle être d’une solidité étonnante !

Vous êtes intéressés par l’AR Drone ? Soutenez nous en achetant un AR Drone sur Amazon ! Merci !

Équipe Dédale – Télécom SudParis