IMA3/IMA4 2021/2023 P3
Notre projet consiste à créer le simulateur d’un processus industriel, ainsi que de mettre en place une communication réseau permettant de contrôler le processus industriel simulé. Cela permettra de pouvoir tester un programme, sans avoir à le tester directement sur le processus industriel réel. Le processus dont nous créons le simulateur est un “tri de pièce”, comportant un vérin, un convoyeur, un détecteur de présence et une caméra.
Sommaire
Contexte
Dans le contexte actuel de la crise sanitaire, les entreprises industrielles sont très sollicitées et nécessitent l'automatisation du mouvement des marchandises et potentiellement de leur tri. C'est pourquoi la simulation de notre système de gestion de marchandises par traitement d'images s'avère nécessaire dans ce contexte industriel pour la formation du personnel.
Objectif
Cela peut être très utile dans plusieurs cas, par exemple, pour tester des améliorations ou des mises à jour d’un processus existant, sans avoir le risque en cas de bug de mettre en danger les machines, les produits, ou encore les personnes. Également, afin de tester le fonctionnement d’un processus réel pas encore existant, ce qui permettrait de pouvoir voir en amont les problèmes que l’on pourrait rencontrer lors de la réalisation et de la mise en place du processus réel et donc de les anticiper.
Description
Schéma fonctionnel:
Notre simulation réalisée sur le logiciel GODOT représente un convoyeur permettant le tri de pièce de 1€ et 2€. Pour cela, une caméra est disposée au dessus du convoyeur et a pour rôle d'identifier la valeur de la pièce. Cette information est alors envoyée à un système de commande qui contrôle l'état d'un vérin. Ce vérin doit permettre de pousser ou non la pièce pour que celle-ci se dirige vers un espace de stockage qui lui est dédié. Cette simulation doit permettre à un automaticien de tester son application de commande pour qu'il puisse visualiser des résultats facilement.
Schéma descriptif:
Réalisation des résultats
Matériel à disposition
Pour la partie simulateur, nous avons utilisé le logiciel Godot, un moteur physique abordable et pour en ce qui concerne la partie communication, nous avons utilisé le logiciel Spyder, un IDE qui permet de gérer des fichiers en Python.
Partie Simulation
Ce simulateur permet de générer aléatoirement des pièces de monnaie de 1€ (représentée par des pièces grises) et de 2€ (représentée par des pièces jaunes) à l'appuie du bouton "Nouvelle pièce". Le convoyeur est ensuite mis en marche grâce au bouton "marche" et permet à la pièce d'avancer jusqu'au vérin. L'utilisateur peut alors commander le vérin avec deux boutons: "vérin push", "vérin pull" afin de trier la pièce dans le bac voulu. Le convoyeur peut également être stopper par l'utilisateur avec un dernier bouton nommé "arrêt".
Partie communication
La partie communication UDP se compose de deux parties. Une application de commande écrite en python se comporte en client pour envoyer des messages à un serveur Godot. Ce dernier est un noeud 2D dans le projet principal et va s'occuper de recevoir les commandes de l'application et traiter les informations pour modifier les états des actionneurs puis renvoyer ceux-ci dans un feedback en plus de l'état du capteur de présence.
Bilan
Nous avons donc acquis un certain nombre de compétences au cours de ce semestre, notamment des compétences techniques au niveau du fonctionnement logiciel de Godot et donc des éléments du moteur physique 3D, mais aussi des compétences en ce qui concerne la communication réseau (en UDP) en utilisant un serveur Godot et un client python. Nous avons également acquis des compétences pratiques en ce qui concerne l'organisation notamment avec l'avancement à chaque fin de séance et la répartition des tâches ainsi que la mise en commun des ressources.
Gestion du projet
Chronologie et avancement du projet :
Semestre 7:
10 Octobre 2022:
- Avancement et mise en page du wiki
- Redéfinition du cahier des charges
- Création d'un liste des tâches à réaliser pour le projet entier
21 Octobre 2022:
- Création d'un prototype du convoyeur Godot
- Etablissement de deux binômes "Communication UDP" et "Conception Godot"
- Recherches sur la programmation en GDScript
- Recherches sur la communication UDP entre une application Python et une application Godot
28 Octobre 2022:
- Amélioration du convoyeur et tests sur le moteur physique pour se rapprocher de la réalité
- Premiers essais de scripts Python pour UDP sur Spyder
- Premiers essais de scripts Godot pour l'UDP
18 Novembre 2022:
- Mise en marche du tapis du convoyeur transportant une pièce
- Communication réussie entre des mini applications python et Godot en UDP avec le loopback
- Recherches sur la communication UDP à distance sans loopback
21 Novembre 2022:
- Mise en place de boutons permettant d'interagir avec le simulateur
- Ajout d'un vérin au convoyeur mais non fonctionnel
- Communication réussie entre des mini applications python et Godot en UDP sans loopback
25 Novembre 2022:
- Adaptation des applications Python et Godot afin de commander le convoyeur
- Recherches sur la mise en place d'un détecteur de présence
- Finalisation de la première version de la communication UDP à implémenter
28 Novembre 2022:
- Amélioration du vérin pour le rendre fonctionnel
- Implémentation réussie de la partie communication au convoyeur
- Communication réussie entre une application python et notre simulateur
- Modification de l'apparence du convoyeur et du vérin pour se rapprocher du réel
8 Décembre 2022: