Intelligence embarque IMA5 2022/2023 G6

De Wiki d'activités IMA
Révision datée du 28 novembre 2022 à 10:36 par Lpaquin (discussion | contributions) (Conception de la maquette de tests)

Vérification de l'orientation des objets sur ligne de production

Installations

NanoEdgeAIStudio :

  • Extraire les archives control et data.
  • Executer la commande :
apt-get update -qy && apt-get -y install procps libnss3
  • Dans le dossier data/opt/NanoEdge AI Studio executer nanoedgeiastudio (si nécessaire, ajouter l'option --no-sandbox)
  • Insérer la license reçue par mail
  • Ajouter le proxy de Polytech (host : https://proxy.polytech-lille.fr ; post : 3128 ; ID et mdp personels de polytech), tester la connexion et valider.

Description

ChaineProdIA.jpg

Sur une ligne de production, l'orientation des objets transportés doit être maitrisée afin de faciliter le traitement, l'emballage ou le transport de ceux-ci. Notre produit permetterait de vérifier l'orientation des objets transportés sur un tapis roulant afin d'informer de toute divergeance non négligeable sur celle-ci afin que l'objet puisse être repositionné.

La vérification pourra se faire sur objet immobile ou bien alors que le tapis est en marche.

Notre système utilisera donc le machine learning proposé par STMicroelectronics avec le logiciel STM32 NanoEdgeAIStudio afin de vérifier l'orientation de l'objet circulant sur le tapis roulant. Nous réaliserons plusieurs mesures dans un cas "correcte" afin d'entraîner l'algorithme, qui pourra par la suite déterminer les cas "défaillant" des cas "correctes".

Ressources

Matériel

Pour réaliser un prototype permettant de vérifier la faisabilité du système, nous disposons de :

  • Un microcontrôleur STM32F401RE
  • Une carte d'extansion X-NUCLEO-53L5A1' embarquant un capteur TOF VL53L5CX

Logiciel

Nous programmerons le code embarqué à l'aide des logiciels :

  • STM32CubeIDE
  • STM32 NanoEdgeIAStudio

Réalisation

Récupération des informations de distances

Le capteur TOF récupére des informations sur une matrice de 8x8. Un projet Stm32Cube nous à été fournie permettant de récupérer les informations de distances sur chaque point entre 200mm et 600mm.

  1. Nous importons ce projet (via le fichier de configuration .ioc), puis nous modiffions le build configuration -> Set Active -> Release, et enfin nous compilons le projet.
  2. Nous observons les données récupérés via le port série sur minicom après avoir configuré le port correctement (Serial Device : /dev/ttyACM0 ; BPS/Par/Bits : 460800 8N1 ; Hardware Flow Control : No)
  3. Nous observons que l'affichage des données est illisible, nous modifions donc le code afin de corriger cela (ajouter un \r pour chaque \n dans le fichier X-CUBE-TOF1/App/app_x-cube-tof1.c) et pour afficher un tableau 8x8

Création de l'IA

Notre système lira les informations transmises via liaison série. Afin de faciliter la lecture des données pour l'apprentissage et la détection d'anomalies, il est nécessaire de choir le format dans lequel les données seront transférées. Nous choisissons de transférer les 64 données sur une seule ligne, séparées de point-virgules :

D0;D1;D2;D3; . . . . . . ;D61;D62;D63

Tests

Conception de la maquette de tests

Afin de réaliser nos mesures cohérentes, nous devons nous assurer que celles-ci soit réalisées dans les mêmes conditions. Nous allons fixer notre capteur de manière à ce qu'il regarde vers le bas. Nous ferons défiler un objet sous le capteur à vitesse constante. Nous devons nous assurer que la distance entre le capteur et l'objet soit quasiment similaire entre chaque mesure.

LigneProdSetup1.jpg
LigneProdSetup3.jpg
LigneProdSetup2.jpg


L'objet à observer sera placé sur une plateforme amovible (un cahier), que nous pousserons afin de faire défiler l'objet sous le capteur. Nous réaliserons des mesure pour l'objet bien placé et d'autre pour l'objet mal orienté.