IMA3/IMA4 2018/2020 P8 : Différence entre versions

De Wiki de Projets IMA
(Unreal Engine 4)
(Godot)
Ligne 194 : Ligne 194 :
  
 
====Godot====
 
====Godot====
C’est un moteur de jeu comportant un moteur 2D, un moteur 3D ainsi qu’un moteur physique. C’est un logiciel libre utilisant plusieurs langages de programmation comme le C# mais également le « GDScript »  qui a une syntaxe proche du python. Disponible sous Windows, Mac et Linux.
+
C’est un moteur de jeu comportant un moteur 2D, un moteur 3D ainsi qu’un moteur physique. C’est un logiciel libre utilisant plusieurs langages de programmation comme le C# mais également le « GDScript »  qui a une syntaxe proche du python. Disponible sous Windows, Mac et Linux.[https://godotengine.org/]
  
 
==Projet S7==
 
==Projet S7==

Version du 7 mai 2019 à 10:27


Présentation générale

Description

Notre projet consiste à réaliser un simulateur configurable de processus physiques destiné à la conception et au développement de systèmes automatisés.

Cette application devra avoir une interface facile d'utilisation donnant la possibilité d'interagir sur la simulation physique via des boutons, et lisible afin d'avoir une vue sur les états des objets et des capteurs que comportent leur système.

Ce projet s'inspire des besoins de développement des outils de production tels qu'ils sont vus dans le concept d'industrie 4.0.

Objectifs

Cette application doit ainsi simuler le comportement dynamique des objets d'une scène, et permettre de les visualiser dans un environnement éventuellement en 3D.

L'application contiendra un simulateur de processus physiques autonome dont les paramètres pourront être initialisés par l'utilisateur.

Par ailleurs, dans un but de conception d'un contrôle commande, le simulateur doit pouvoir également communiquer avec d'autres applications, dont le système de contrôle commande, et échanger des informations liées à l'instrumentation, c'est-à-dire à l'état des capteurs et aux ordres donnés aux actionneurs.

Analyse du projet

Positionnement par rapport à l'existant

Analyse du premier concurrent

RoboDK P8.png

RoboDK est notre premier concurrent. Cet entreprise propose une logiciel de simulation de robots industriel exactement comme notre projet.

Points forts :

  • Grande bibliothèque de robot industriels intégrée
  • Calibration de robot existants
  • Export des programmes compatibles avec les principaux microcontrolleurs de robots
  • Optimisation automatique
  • Compatible Linux/Android/MacOS/Windows

Points faibles :

  • Prix (2995€/an)

Nous voulons proposer un logiciel plus spécialisé mais gratuit.

Analyse du second concurrent

DELMIA P8.png

DELMIA Robotics est notre second concurrent. Ce logiciel fait partie du portofolio 3DSEXPERIENCE a coté de logiciel comme CATIA ou Solidworks.

Ses points fort sont :

  • Prédiction et detection des erreurs
  • Gestion centralisé de tous les robots d'une chaîne de production
  • Planning du coût de la chaine de production, prenant en compte beaucoup de paramètres
  • Société mère reconnue : Dassault-Systèmes.

Point faibles :

  • Prix (non affiché, se négocie au cas par cas)
  • Difficulté de prise en main
  • Est optimal au sein d'une suite d'outils également onéreux
  • Non disponible sous Linux

Le logiciel crée lors de ce projet se veut plus simple et léger et sera disponible sous Linux.

Scénario d'usage du produit ou du concept envisagé

L'utilisateur peut être un technicien, un ingénieur ou un étudiant.

Il utilisera les bibliothèques d'objets afin de créer un système permettant de réaliser les tâches qu'il souhaite accomplir.

L'utilisateur utilisera le logiciel pour simuler un système physique et l'étudier, il aura le choix entre paramètrer les capteurs du système qui agiront sur des actionneurs, ou lancer la simulation en mode libre afin d'avoir un système modulable en temps réel via les boutons de l'interface utilisateur qui agiront sur les actionneurs.

Il peut ensuite, après l'avoir simulé avec notre logiciel, décider de le réaliser ou non.

Exemple de scénario d'usage :

Une entreprise souhaîte créer un réseau de tapis roulants automatiques afin d'amener une caisse d'une postion de départ jusqu'à un endroit de stockage prévu à cet effet. Il va utiliser notre application afin de créer son système qui est une chaîne de tapis roulants qui comporte par exemple un tapis où l'on dépose les caisses et plusieurs zone de destination. L'utilisateur placera des capteurs aux bords des tapis roulants qui capteront si une caisse arrive, un autre capteur détectera sur la caisse la destination affichée. En fonction de ce que le capteur lit, la caisse va par exemple être ammenée sur un tapis roulant qui tourne à gauche au lieu d'aller sur celui qui tourne à droite. L'utilisateur pourra lui-même placer les capteurs et les programmer afin d'activer certains mécanismes (par exemple le plateau rotatif qui choisi la direction de la caisse) via des actionneurs, il créera donc des liens entre capteurs et actionneurs en choisissant un certain délais d'attente entre la détection et l'activation du mécanisme.

Réponse à la question difficile

Problématique: Définir les champs d'applications de notre projet et le logiciel utilisé.

Utilisation de Godot pour la partie animation. Envoie d'ordre à partir d'un terminal par voie TCP/IP vers Godot

Bibliographie et webographie

Etude des concurrents :

RoboDK : https://robodk.com/index

Delmia Robotics : https://www.visiativ-industry.fr/delmia-robotics/

Préparation du projet

Cahier des charges du groupe

  • Etudier les solution logiciels possible (Avantages, inconvénients)

Cahier des charges

  • La création de l'interface utilisateur comprenant :
    • la scène permettant de visualiser la simulation
    • un contrôleur du système via des boutons


  • La modélisation du système :
    • modélisation de différents types de capteurs
    • fonctionnalités propres aux objects ajoutés par l'utilisateur (temps de marche, vitesse de déplacement...)


  • La création du système communiquant avec d'autres applications et d'échange d'informations liées à l'instrumentation :
    • création de commandes pour agir sur le système
    • implémentation de l'utilisation d'un automate

Choix techniques : logiciel

Pour concevoir notre application nous utilisons le moteur de jeu Godot.

Les raison sont les suivantes :

  • Optimisation , logiciel écrit en C++
  • facilité d'installation
  • prise en main rapide
  • interfaçage du langage d'edition Godot script avec C++ possible si nécessaire

site : https://godotengine.org/

Exemple de communication interprocessus (ajout de B. Conrard)

Les codes suivants forment un exemple de communication entre 2 applications, ici en python 2.7, au travers d'une communication TCP/IP.

Liste des tâches à effectuer

Nous nous organisons avec un Trello :

Trello.png

Lien : https://trello.com/b/8wZ9xndy

Calendrier prévisionnel

Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.

Equipe 1

Equipe 2

Equipe 3

Réalisation du Projet

Projet S6

12/03/2019 : Prise de connaissance du logiciel Godot, Prise de RDV avec M. Conrad pour l'organisation des tâches. Etude de l'exemple du TCP/IP fourni. Decoupage des taches dans l'optique SMART avec le site trello.com 19/03/2019 : Justification du choix de méthode de communication parmi TCP/IP, pipes, mémoire partagé.

Documents Rendus

Descriptions des méthodes de communications étudiées

TCP/IP

TCP/IP est une suite de protocoles. Il provient des noms des deux protocoles majeurs de la suite de protocoles, c'est-à-dire les protocoles TCP et IP. TCP/IP représente d'une certaine façon l'ensemble des règles de communication sur internet et se base sur la notion adressage IP, c'est-à-dire le fait de fournir une adresse IP à chaque machine du réseau afin de pouvoir acheminer des paquets de données.

Points positifs : bas niveau, donc rapide

Points négatifs: (pour notre projet) : Nécéssite une interface réseau

Memoire partagée

Communication au niveau de l'OS : Une même zone de mémoire vide est utilisée par plusieurs processus.

Points positifs : Partage de la mémoire

Points négatifs: complexité élevée

Pipe

Connecte la sortie d'un processus avec l'entrée d'un autre processus

Points positifs : Permet de chaîner les programmes dans la philosophie Unix.

Points négatifs: Communication unidirectionelle, lecture et écriture unique, taille d'un tube limitée

Descriptions des différents moteurs de jeu

Unity

C’est un moteur de jeu multiplateforme, avec une partie visualisation 2d et/ou 3d disposant d’une large bibliothèque d’objet. La partie simulation se fait par l’intermediaire de script en C#. Disponible sous Windows et Linux. [1]

Unreal Engine 4

C’est un moteur de jeu vidéo programmé en C++ utilisant le langage « UnrealScript » qui optimise l’utilisation du processeur mais qui est plus lent pour l’éxecution. Disponible sous Windows, Mac et Linux. [2]

Godot

C’est un moteur de jeu comportant un moteur 2D, un moteur 3D ainsi qu’un moteur physique. C’est un logiciel libre utilisant plusieurs langages de programmation comme le C# mais également le « GDScript » qui a une syntaxe proche du python. Disponible sous Windows, Mac et Linux.[3]

Projet S7

Documents Rendus

Projet S8

Documents Rendus