Mini-drones
Sommaire
Cahier des charges
Encadrant : Xavier Redon
Contexte
La robotique comme l'a prédit Isaac Asimov est présente dans tous les domaines, et à le pouvoir de regrouper la plupart des sciences humaines comme l'informatique et l'électronique, tout en restant un moyen ludo-éducatif. Dans notre cas la société Parrot a développé plusieurs drones, et nous avons la chance à travers ce projet d'en utiliser deux, un roulant et volant.
Présentation général du projet
L'objectif de ce projet est de coordonner deux drones.
- Le drone roulant sera piloté à distance
- Le drone volant suivra à une certaine altitude le drone roulant en utilisant une caméra embarquée.
Notre but sera de :
- Contrôler le drone roulant à l’aide d’une interface Web. une interface web intuitive d’utilisation sera utilisé afin de faciliter la prise en main.
- Déplacer le drone volant. Le kit de développement ARDroneSDK nous permettra de le contrôler à distance et de récupérer les informations telles que les images des caméras, l’altitude et son inclinaison
- Apprendre à utiliser le tracking du drone volant avec ARDroneSDK
- Paramétrer les conditions de vol pour le drone volant
- Gérer la communication Wifi entre les drones et l’ordinateur
- Délimiter un espace de travail et de test.
- Synchroniser les drones entre eux
Matériel nécessaire:
Pour mener à bien ce projet, nous aurons besoin :
- Kit de développement ARDroneSDK
- Drones de la société Parrot
Amélioration possible:
- Porter l’application sur tablette ou mobile Android
Avancement du Projet :
du 25 Janvier au 22 Février | Installation du SDK Parrot sur les systèmes Linux et OSX | |
du 22 Février au 29 Février | Test des deux drones et analyse des programmes téléchargés | |
du 29 Février au 7 Mars | Recherche sur l'utilisation d'OpenCV (pour le suivit de la JumpingSumo)et différentes librairies permettant d'obtenir les images et les vidéos prisent par la RollingSpider. | |
du 7 Mars au 14 Mars | """""""" |
But du Projet :
le drone volant devra suivre le drone roulant : Pour ce faire, le drone volant analyse les images reçu en suivant le drone roulant de dessus, L'image devra être respecter, c'est à dire que la position de la JumpingSumo devra être identique, si ce n'est pas le cas, la rollingSpider interagira en fonction de la position du drone roulant sur l'image précédente et rectifiera l'image . Nous utiliserons dans ce cas la programmation en OpenCv.
Le SDK :
Tout d’abord, nous nous sommes occupé de l'installation du SDK en suivant le site :“http://developer.parrot.com/docs/bebop/?java#how-to-build-the-sdk”.
Pour cela, nous avons utiliser un système d’exploitation OSX Yosemite ainsi que Linux.
-repo init -u https://github.com/Parrot-Developers/arsdk_manifests.git Après l’utilisation de cette commande, on télecharge tout les autres dépôts en exécutant la commande: repo sync
-Télecharger toutes les sources du SDK en fonction du système d’exploitation utilisé.
-une fois le build.sh créer, on l'exécute. (si des librairies sont manquantes, il suffit de les télécharger en s’aidant d’Internet pour obtenir les noms exactes des librairies )
Une fois toutes ces étapes effectuer, nous pouvons récupérer les programmes des drones concernés dans notre répertoire : “/monrepertoire/out/Unix-base/staging/usr/bin” Une fois compiler, les drones peuvent controlés à l’aide du clavier.
Nous avons eu quelques problèmes concernant l’installation du SDK, principalement sur le système d’exploitation Linux.
En effet, certaines librairies étaient manquantes et des erreurs survenaient régulièrement.
Ensuite, une fois le programme compiler, celui-ci n’arriver pas à obtenir le chemin de certaines librairies, il suffisait donc de rajouter le chemin suivant :
LD_LIBRARY_PATH=/monrepertoire/out/Unix-base/staging/usr/lib:$LD_LIBRARY_PATH
Caractéristiques des drones :
Caractéristiques | RollingSpider | JumpingSumo | |
---|---|---|---|
Portée | Jusqu'à 20 mètres. | Jusqu'à 50 mètres. | |
Connectivité | Technologie Bluetooth Smart, V4.0 BLE (Bluetooth Low Energy). | Génère son réseau WiFi® (AC) 2.4 ou 5 Ghz. | |
Stabilité | Un capteur ultrasons,un gyroscope 3 axes et d’un accéléromètre 3 axes. | Centrale inertielle avec un gyroscope et un accéléromètre. | |
Batterie | Lithium-Polymer et amovible. Autonomie de 8 minutes et recharge complète en 90 minutes. | Lithium-Polymer et amovible. Autonomie de 20 minutes et recharge complète en 90 minutes. | |
Indicateur | Des LED bicolores indiquent le statut de la Rolling Spider. | Des yeux lumineux indiquent le statut du Jumping Sumo. | |
Caméra | Une caméra verticale et d’un capteur de pression. | Le flux est retransmis, en streaming, sur l’écran du smartphone ou tablette de pilotage Résolution : 640 x 480 px, 15 images par seconde. | |
Vitesse | Roule à 2 m/s (7 km/h). |
Partie Programmation:
La rolling spider est complexe à programmer en langage C. Nous avons un problème avec la programmation du Bluetooth, parce que la rolling spider utilise le BLE (Bluetooth Low Energy) et parrot dans sa librairie ARNetwork n’a pas développer sur Linux.
Premier objectif : Récupérer les images et les vidéos de la RollingSpider à l'aide de la librairie : Node.js. Second objectif : Détection d'une forme spécifique sur la JumpingSumo à l'aide d'OpenCV. Une fois la détection effectuer,le drone volant pourra adapter sa position en fonction du déplacement du drone roulant.