
Aujourd'hui, nous combinons un programme de contrôle de drone autonome avec un programme de détection de balle afin d'éclater la balle avec un drone autonome.
Dans des articles précédents, nous avons examiné le lancement d'un drone virtuel et réel autonome, ainsi que le développement d'un nœud ROS qui définit et transfère les coordonnées d'une balle dans l'espace . Maintenant, nous allons refaire le programme de contrôle des drones pour qu'il essaie automatiquement d'éclater la balle.
Programme volant vers le ballon
Le programme volant vers le ballon est basé sur le même cycle de contrôle de vitesse que dans le programme de contrôle manuel .
La différence est qu'au lieu des touches de contrôle du clavier, le vecteur de vitesse du drone est contrôlé par des informations sur la position de la balle obtenues à partir du sujet /baloon_detector/twist
.
setvel_forward
vitesses setvel_forward
et le vecteur setvel_forward
setvel
définis de sorte que le drone vole directement dans le ballon.
Si le drone ne voit pas le ballon pendant plus de 0,2 seconde, nous pensons que nous l'avons éclaté et mis le drone en mode d'atterrissage.
Le texte complet du programme est donné ci-dessous: (crash_baloon.py) Recommandations de débogage
Pour le débogage, nous vous recommandons de choisir un espace ouvert, d'attacher la balle à la base, en vous assurant qu'il n'y a pas d'objets rouges à proximité, afin qu'il n'y ait pas de faux positifs du programme de guidage.
Le fonctionnement du programme de guidage, avant le vol, doit être vérifié à l'aide d'un navigateur, au 192.168.11.1:8080:

Si tout est correctement configuré, le programme doit distinguer en toute confiance la balle et ne pas provoquer de faux positifs.

Au début du programme de guidage, il est entendu que le drone devrait voir le ballon après le décollage. Sinon, le drone pensera que la balle a déjà éclaté et passera en mode atterrissage.
À l'avenir, vous pouvez modifier le programme - vous approcher du ballon, par exemple, en utilisant le mode AUTO.MISSION. Et après avoir atteint le point GPS souhaité, passez en mode de recherche visuelle.
La sélection des coefficients de vitesses dans le cycle principal du programme est effectuée expérimentalement pour un drone spécifique.
Lors des compétitions, les tentatives d'éclatement du ballon ressemblaient à ceci:
Je serais reconnaissant pour les commentaires et les questions de ceux qui essaient de répéter notre expérience.
Les codes sources des programmes sont téléchargés sur Github .