Comment simuler une ligne de production en multi-robots (threading) ?
Dans cet article, vous apprendrez comment utiliser deux ou plusieurs Ned2 pour créer une ligne de production.
Quels sont les appareils nécessaires pour utiliser cette fonction ?
Vous aurez besoin de deux Ned2, du système de vision avec son espace de travail, de la grande pince, de la pompe à vide, de quelques pions, d’un convoyeur et d’une pente.
Sommaire :
- Comment configurer/préparer mon matériel ?
- Comment configurer/préparer mon logiciel ?
- Comment fonctionne le processus ?
- Chaque robot a-t-il son propre thread ?
- Puis-je modifier les paramètres de la ligne de production ?
Comment configurer/préparer mon logiciel ?
Tout d’abord, attachez l’avant du convoyeur au premier Ned2 et branchez la grande pince.
Ensuite, branchez la pompe à vide sur l’autre Ned2, situé à l’arrière du convoyeur. Réglez la pente à mi-chemin entre les deux Ned2 et fixez les quatre repères de l’espace de travail à l’avant du convoyeur, devant le premier Ned/Ned2.
Enfin, calibrez l’espace de travail.
Comment configurer/préparer mon logiciel ?
Pour le premier lancement, vous devez entrer 6 positions dans le programme avec le mode d’apprentissage activé (appuyez sur Entrée pour confirmer une position). Voici les positions (veuillez respecter le même ordre) :
- Ned2 avant :
○ La position d’observation à partir de laquelle Ned2 peut voir les 4 repères de l’espace de travail.
○ Une position à quelques centimètres au-dessus de la pente (au sommet de la pente).
○ La position depuis laquelle le robot peut déposer le pion sur la pente.
- Ned2 arrière :
○ La position à partir de laquelle le robot peut saisir le pion au bas de la pente.
○ Une position située à quelques centimètres au-dessus de la position précédente.
○ Une position à l’arrière du convoyeur où le robot peut déposer le pion (devant le deuxième Ned2).
Ces 6 positions seront stockées dans un fichier nommé data.txt.
Comment fonctionne le processus ?
Une fois la configuration terminée, le convoyeur se met en marche. Le Ned2 avant attend qu’un pion apparaisse dans son espace de travail. Dès qu’un pion apparaît, le convoyeur s’arrête, le Ned2 avant le ramasse et le place sur la pente, tandis que le convoyeur redémarre. Ensuite, le Ned2 arrière ramasse le pion au bas de la pente et le remet sur le convoyeur.
Le multithreading permet d’exécuter plusieurs parties d’un même programme en parallèle. Il est donc possible d’exécuter plusieurs instructions simultanément dans le même processus. L’échange d’informations entre les threads est rapide et facile, ce qui rend le multithreading très pratique pour contrôler plusieurs Ned/Ned2 simultanément.
Chaque robot a-t-il son propre thread ?
Oui, le thread principal du programme lance un thread pour chaque robot à contrôler. Les threads communiquent entre eux grâce à des variables partagées et à la classe threading.Event().
De cette manière, les interactions entre les deux robots sont possibles, tout comme le contrôle du convoyeur et le partage de la pente. Chaque thread est connecté à un robot et le contrôle. Les threads communiquent entre eux par l’intermédiaire de variables situées dans la classe mère RobotsMains.
Puis-je modifier les paramètres de la ligne de production ?
Bien sûr, vous pouvez modifier la vitesse du convoyeur avec la variable conveyor_speed dans le fichier robot.py.
Vous pouvez également modifier la distance entre les pions avec la variable conveyor_place_interval.
Enfin, vous pouvez modifier la largeur de la distribution des pions sur le convoyeur avec la variable rand_drop.