Activité 2 : Analyse des communications sur le réseau Station Sol / AR-Drone, étude de la couche « Application » du modèle OSI
L'AR-Drone doit envoyer des informations à la Station-Sol (roulis, tangage, lacet, altitude, état moteur, état batterie, ..). Certaines sont critiques et d'autres moins importantes.
Le protocole de transport utilisé est soit l'UDP, soit le TCP.
Les principaux canaux de communication entre la Station-Sol et l'AR.Drone, leurs caractéristiques et leur rôle sont dans le tableau ci-dessous. Analyser ce tableau et conclure.
Canal | Protocole de transport (TCP ou UDP) | Port | Rôle |
---|---|---|---|
Navdata | UDP | 5554 | Obtenir les informations de navigation de l'AR-Drone |
Vidéo | ? | 5555 | Vidéo caméras |
Commandes AT | UDP | 5556 | Contrôler et configurer l'AR-Drone |
Contrôle | TCP | 5559 | Transfert de données critique |
Nous allons maintenant utiliser l'application « ANALYSER » disponible sur l'IPAD. Cela va nous permettre de voir, entre autres, le contenu de NAVDATA (les données de navigation).
Lancer l'application « ANALYSER », compléter le port NavData et l'adresse IP de l'AR-Drone.
On souhaite avoir des informations sur la taille et la fréquence de rafraîchissement des données de navigation (Navigation Data ou Navdata) ainsi que le débit lié à cet échange sur le réseau dans le but d'estimer le taux d'occupation des données de navigation sur la bande passante Wi-Fi disponible.
Démarrer une capture, compléter le tableau suivant puis conclure.
Débit Navdata maximum observe (en Ko/s) | |
---|---|
Débit AT Commands maximum observé (en octets/s) | |
Taille approximative d'un paquet de NavData (en octets) (calcul à faire après une capture sur 10s environ) | |
Taille approximative d'un paquet d'AT Command (en octets) (calcul à faire après une capture sur 10s environ) |
On s'intéresse à présent au contenu des Navdata afin de comprendre comment l'AR-Drone informe la Station-Sol sur son état.
Démarrer une capture sur environ 10 secondes puis lancer l'utilitaire de décodage. L'écran obtenu ressemble à celui de l'annexe n°1.
Sélectionner à gauche une Capture UDP NAV et le niveau d'encapsulation Data.
Le guide du document « ARDrone_SDK_1_6_Developer_Guide.pdf » nous précise cette partie Data :
Dans un premier temps, on s'intéresse à la partie « Drone State »
La description de ces 32 bits est donnée en annexes n°2 et n°3 (voir exemple tableau ci-dessous).
Retrouver dans les tableaux des annexes n°2 et n°3, le nom et le numéro des bits correspondant aux alarmes listées dans le tableau suivant :
Nav Data | N° bit | Nom |
---|---|---|
Prêt à voler (exemple) | b31 | EMERGENCY_MASK |
Alarme Moteurs | b12 | MOTORS_MASK |
Alarme Angle | b19 | ANGLES_OUT_OF_RANGE |
Alarme Batterie | b15 | VBAT_LOW |
Alarme Hélices | b22 | CUTOUT_MASK (Cutout system detection) |
Retrouver dans la trame le code Hexa de l'état du Drone.
En activant « State » vous avez accès à l'état du Drone. Compléter en conséquence le tableau suivant :
Le code hexa trouvé est-il identique à celui indiqué dans la trame ? Si non, appeler le professeur.
Retourner le Drone, faire une capture et vérifier que l'information sur l'angle (out of range) a bien changé.
On s'intéresse à présent aux autres données de navigation telles que l'altitude, les angles, etc... qui sont stockées dans la zone ≪ Option 1 ≫.
Le décodage de cette zone, toujours selon la documentation du code source du SDK, se fait de la façon suivante (voir annexe n°4).
Manipuler l'AR-Drone à la main afin de le positionner à environ 1m sur sol et lancer une capture. Retrouver avec l'utilitaire décodage, l'emplacement de l'altitude dans l'une des trames capturées.
Manipuler l'AR-Drone à la main afin de lui donner un angle de tangage d'environ 30° et lancer une capture. Retrouver avec l'utilitaire de décodage, l'emplacement du tangage dans une des trames capturées.