Jumeaux numériques pour la programmation de système pluritechnologique
Go to file
Philippe Roy 95fbbfa09c Bugfix : génération des plot bugée, simplification de la gestion des threads 2023-01-28 17:24:21 +01:00
asset Ajout de la selection du fichier de commandes 2023-01-28 01:10:05 +01:00
img Readme update 2022-12-10 19:24:30 +01:00
monte_charge Changement de la doc : possibilité de changer le script de commandes 2023-01-28 10:33:25 +01:00
poppy_ergo_jr Ajout de la selection du fichier de commandes (point d'étape) 2023-01-27 21:26:33 +01:00
portail_coulissant Bugfix : génération des plot bugée, simplification de la gestion des threads 2023-01-28 17:24:21 +01:00
volet_roulant Changement de la doc : possibilité de changer le script de commandes 2023-01-28 10:33:25 +01:00
LICENSE Transfert du projet 2022-12-05 14:07:17 +01:00
README.md Ajout du grapheur matplotlib + Qt5 2023-01-14 07:49:53 +01:00
blender-edutech.png Transfert du projet 2022-12-05 14:07:17 +01:00
blender-edutech.svg Transfert du projet 2022-12-05 14:07:17 +01:00
twin.png Mettre à jour twin.png, twin.py, twin.svg, twin_about.py, twin_config.xml, twin_doc.py, asset/icons/app/twin.png, asset/icons/app/twin.svg 2022-12-11 08:51:35 +00:00
twin.py Bugfix : génération des plot bugée, simplification de la gestion des threads 2023-01-28 17:24:21 +01:00
twin.svg Mettre à jour twin.png, twin.py, twin.svg, twin_about.py, twin_config.xml, twin_doc.py, asset/icons/app/twin.png, asset/icons/app/twin.svg 2022-12-11 08:51:35 +00:00
twin_about.py Ajout de la selection du fichier de commandes pour le monte-charge et le volet roulant 2023-01-28 03:15:39 +01:00
twin_config.xml Ajout de la selection du fichier de commandes pour le monte-charge et le volet roulant 2023-01-28 03:15:39 +01:00
twin_daq.py Bugfix : génération des plot bugée, simplification de la gestion des threads 2023-01-28 17:24:21 +01:00
twin_doc.py Ajout de la selection du fichier de commandes pour le monte-charge et le volet roulant 2023-01-28 03:15:39 +01:00
twin_file_qt.py Ajout de la selection du fichier de commandes 2023-01-28 01:10:05 +01:00
twin_plot_qt.py Bugfix : génération des plot bugée, simplification de la gestion des threads 2023-01-28 17:24:21 +01:00
twin_plotly.py Ajout du grapheur plotly (pas fonctionnel) 2023-01-14 14:03:15 +01:00
twin_serial.py Bugfix : supression de numpy dans le about 2023-01-27 15:56:11 +01:00
twin_threading.py Bugfix : génération des plot bugée, simplification de la gestion des threads 2023-01-28 17:24:21 +01:00

README.md

Digital Twin

Un jumeau numérique d'un système technique permet de visualiser son comportement à travers une maquette numérique. Le principal intérêt est de valider un modèle comportemental d'abords par la simulation (avant mise en oeuvre du jumeau réel) puis expérimentalement (mesure des écarts entre les deux jumeaux).

Ici le jumeau numérique d'un système pluritechnologique va nous servir à programmer le système en simulant (hors ligne) son évolution. Nous pourrons alors mettre en lien les deux jumeaux et appliquer les règles programmées sur le jumeau réel.

Lors de l'exécution du cycle, tous écarts entre les deux jumeaux seront mesurés afin de corriger le modèle comportemental. Par aileurs, les évènements numériques impacteront le jumeau réel et les évènements réels impacteront aussi le jumeau numérique.

Systèmes :

  • Monte-charge (Maquette A4 Technologie)
  • Portail coulissant (Maquette A4 Technologie)
  • Volet roulant (Maquette A4 Technologie)

Système dont le jumeau numérique est cours de développement :

  • Bras robotisé Poppy Ergo Jr (Poppy)

Screenshot

Jumelage numérique

Le jumelage numérique est basé sur la liaison série entre l'ordinateur (port USB) et un microcontrôleur Arduino (Uno ou Mega). Suivant les jumeaux numériques, le protocole de communication peut être le protocole générique Firmata ou un protocole spécifique.

Téléchargement

Les binaires (Game Engine Runtime) sont hébergés sur phroy.org.

Documents pédagogiques

Les applications pédagogique se trouvent dans le dépôt des documents pédagogiques du projet Blender-EduTech .

Développement

L'environnement de développement est basé sur : la plateforme de modélisation et d'animation 3D Blender ( https://blender.org ), le langage Python (https://python.org ) et le moteur de jeu 3D UPBGE ( https://upbge.org ).

Les bibliothèques suivantes ne sont pas incluses par défaut dans l'environnement UPBGE :

  • Pylint : vérificateur du code Python
  • pySerial : communication sur le port série
  • pyFirmata : protocole Firmata (protocole générique de communication entre un logiciel et un microcontrôleur)
  • Matplotlib : grapheur (visualisation de données)
  • pyQt5 : interface graphique utilisateur (GUI)

Il faut donc les installer localement (dans UPBGE), les étapes sont :

  • GNU/Linux : La configuration ici présente est UPBGE installé sur ~ avec Python 3.9 :

    • Aller dans le répertoire local de Python de UPBGE: $ cd ~/UPBGE-0.30-linux-x86_64/3.0/python/bin
    • Installer le gestionnaire de paquet pip : $ ./python3.9 -m ensurepip --default-pip
    • Installer Pylint : $ ./pip install pylint -t ~/UPBGE-0.30-linux-x86_64/3.0/python/lib/python3.9/site-packages
    • Installer pySerial : $ ./pip install pyserial -t ~/UPBGE-0.30-linux-x86_64/3.0/python/lib/python3.9/site-packages
    • Installer pyFirmata : $ ./pip install pyfirmata -t ~/UPBGE-0.30-linux-x86_64/3.0/python/lib/python3.9/site-packages
    • Installer Matplotlib : $ ./pip install matplotlib -t ~/UPBGE-0.30-linux-x86_64/3.0/python/lib/python3.9/site-packages
    • Installer PyQt5 : $ ./pip install PyQt5 -t ~/UPBGE-0.30-linux-x86_64/3.0/python/lib/python3.9/site-packages
  • Windows : La configuration ici présente est UPBGE installé sur le bureau utilisateur (prenom.nom) avec la distribution Anaconda installée :

    • Avec Anaconda Navigator ouvrir un terminal Powershell
    • Installer Pylint : pip install pylint -t C:\Users\prenom.nom\Desktop\UPBGE-0.30-windows-x86_64\3.0\python\lib\site-packages
    • Installer pySerial : pip install pyserial -t C:\Users\prenom.nom\Desktop\UPBGE-0.30-windows-x86_64\3.0\python\lib\site-packages
    • Installer pyFirmata : pip install pyfirmata -t C:\Users\prenom.nom\Desktop\UPBGE-0.30-windows-x86_64\3.0\python\lib\site-packages
    • Installer Matplotlib : pip install matplotlib -t C:\Users\prenom.nom\Desktop\UPBGE-0.30-windows-x86_64\3.0\python\lib\site-packages
    • Installer PyQt5 : pip install PyQt5 -t C:\Users\prenom.nom\Desktop\UPBGE-0.30-windows-x86_64\3.0\python\lib\site-packages