Mode d'emploi | VIRTUAL Universe 1.1 Manuel utilisateur

Ajouter à Mes manuels
78 Des pages
Mode d'emploi | VIRTUAL Universe 1.1 Manuel utilisateur | Fixfr
V1.100
Manuel de l’utilisateur
©opyright 2010-2011 IRAI
Sommaire
Introduction ................................................................................................ 9
Nouveautés ................................................................................................ 9
Système nécessaire .................................................................................. 9
Organisation ............................................................................................ 10
Installation ................................................................................................ 11
Licence..................................................................................................... 11
Enregistrer la licence ............................................................................ 11
Installation en réseau .............................................................................. 12
Environnement ......................................................................................... 13
Navigation et interactions ........................................................................ 15
Les différents types d’objets ................................................................. 16
Univers ............................................................................................... 16
Monde ................................................................................................ 16
Caméra .............................................................................................. 16
Lumière .............................................................................................. 16
Sprites 3D .......................................................................................... 16
Comportements ................................................................................. 16
Concepts fondamentaux.......................................................................... 17
Rendu 3D et sons ................................................................................. 17
Moteur physique ................................................................................... 18
Dialogue ................................................................................................ 19
Script ..................................................................................................... 19
Mode RUN/STOP ................................................................................. 19
Manager de médias .............................................................................. 20
Propriétés ................................................................................................ 20
Unités utilisées. ..................................................................................... 20
Univers .................................................................................................. 20
Connexion .......................................................................................... 20
Virtual Universe
3
Driver ............................................................................................ 20
Nom du serveur ou adresse IP ..................................................... 20
Numéro du port ............................................................................. 21
Mode du driver M340 .................................................................... 21
Chemin serveur OPC.................................................................... 21
Serveur TCP ................................................................................. 21
Port serveur TCP .......................................................................... 21
Dernière erreur ............................................................................. 21
Qualité de la liaison ...................................................................... 21
Options ............................................................................................... 21
RUN automatique ......................................................................... 21
Affiche les variables et les états ................................................... 21
Mode de navigation ...................................................................... 22
Fil de fer ........................................................................................ 22
Mode Debug pour le moteur physique ......................................... 22
Statistiques ........................................................................................ 22
Sécurité .............................................................................................. 22
Propriétés des propriétés ............................................................. 22
Monde ................................................................................................... 22
Nom .................................................................................................... 22
Affichage ............................................................................................ 22
Taille de la fenêtre ........................................................................ 22
Taille modifiable ............................................................................ 22
Couleur du fond ............................................................................ 23
Lumière ambiante ......................................................................... 23
Montrer les ombres ....................................................................... 23
Nombre d’images affichées par seconde (lecture seule) ............. 23
Utiliser le shader ........................................................................... 23
Nombre maximum d’images par seconde .................................... 23
Virtual Universe
4
Brouillard, couleur du brouillard, début du brouillard, fin du
brouillard ....................................................................................... 23
Physique ............................................................................................ 23
Moteur physique ........................................................................... 23
Simulation soft uniquement .......................................................... 23
Gravité .......................................................................................... 23
IHM ..................................................................................................... 23
IHM ............................................................................................... 23
Position du pupitre IHM ................................................................ 24
Ciel ..................................................................................................... 24
Caméra ................................................................................................. 24
Nom .................................................................................................... 24
Position .............................................................................................. 24
Position courante ............................................................................... 24
Limites ................................................................................................ 24
Options ............................................................................................... 24
Fixe ............................................................................................... 24
Active au démarrage..................................................................... 24
Coefficients ................................................................................... 24
Lumière ................................................................................................. 24
Nom .................................................................................................... 24
Position .............................................................................................. 25
Couleur, type, etc. .............................................................................. 25
Sprite 3d ................................................................................................ 25
Nom .................................................................................................... 25
Dessin ................................................................................................ 25
Position et taille .................................................................................. 25
Position et taille (valeurs courantes).................................................. 25
Matériel .............................................................................................. 25
Matériel (valeurs courantes) ............................................................. 25
Virtual Universe
5
Navigation .......................................................................................... 25
Non sélectionnable ....................................................................... 25
Physique ............................................................................................ 25
Utilise la physique ......................................................................... 26
Utilise la gravité ............................................................................ 26
L’utilisateur peut appliquer une force à l’objet .............................. 26
Type de corps ............................................................................... 26
Masse ........................................................................................... 28
Moment d’inertie ........................................................................... 28
Ajuster automatiquement le centre de masse .............................. 28
Coefficients… ............................................................................... 28
Vitesse .......................................................................................... 28
Pénétration.................................................................................... 28
Joint physique avec le parent ............................................................ 28
Joint .............................................................................................. 28
Position du pivot ........................................................................... 29
Ligne d’action ................................................................................ 29
Limites… ....................................................................................... 29
Puissance du joint ......................................................................... 29
Force du joint ................................................................................ 29
Force de cassure du joint ............................................................. 29
Joint physique avec un autre Sprite 3D ............................................. 30
Tissu ................................................................................................... 30
Corps mou.......................................................................................... 30
Fluide ................................................................................................. 30
Sprite 2D ............................................................................................ 30
Comportements .................................................................................... 31
Nom .................................................................................................... 31
Type, etc. ........................................................................................... 31
Type de Comportement ................................................................ 31
Virtual Universe
6
Force ............................................................................................. 35
Appliquer aux frères...................................................................... 35
Position / Rotation / Couleur ......................................................... 35
Liens ................................................................................................... 35
Valeur initiale ................................................................................ 35
Valeur courante, valeur courante interne, conversion des
données, mode d’écriture ............................................................. 36
Noms des autres Sprites 3D ......................................................... 36
Utilise la valeur de ce Comportement .......................................... 36
Lien externe .................................................................................. 36
Sons ................................................................................................... 36
Distance minimale ........................................................................ 36
Script .................................................................................................. 36
Script ..................................................................................................... 37
Ecrire un script ................................................................................... 38
Fonctions spécifiques ........................................................................ 39
Syntaxe des noms de Sprites 3D ................................................. 39
Fonctions d’accès aux valeurs associées à un Sprite 3D ............ 40
Syntaxe des noms de Comportements ........................................ 41
Fonctions d’accès aux valeurs associées à un Comportement ... 41
Fonctions d’accès aux valeurs associées à l’Univers .................. 42
Autres fonctions ............................................................................ 43
Bibliothèque d’objets ............................................................................... 45
Liens externes ......................................................................................... 45
Valeur courante et valeur courante interne .......................................... 45
Lecture d’une valeur de Virtual Universe depuis le logiciel externe .. 46
Ecriture d’une valeur du logiciel externe vers Virtual Universe ......... 47
Accès aux liens externes d’un groupe d’objets .................................... 48
Mise au point ........................................................................................... 49
IHM .......................................................................................................... 49
Virtual Universe
7
Lien avec Matlab Simulink ....................................................................... 50
Import depuis Solidworks ou Inventor ..................................................... 50
Création simplifiée d’applications ............................................................ 50
Exemples ................................................................................................. 51
Convoyeur............................................................................................. 51
Fonctionnement ................................................................................. 55
Liste des références de variables AUTOMGEN / AUTOSIM ............ 56
Liste des références de variables UNITY PRO ................................. 57
Robot et bouteilles ................................................................................ 58
Fonctionnement ................................................................................. 61
Liste des références de variables AUTOMGEN / AUTOSIM ............ 61
Robot NXT ............................................................................................ 62
Fonctionnement ................................................................................. 66
Liste des références de variables AUTOMGEN / AUTOSIM ............ 66
Robot ABB 6 axes ................................................................................ 67
Fonctionnement ................................................................................. 70
Liste des références de variables AUTOMGEN / AUTOSIM ............ 71
Robot aspirateur ................................................................................... 72
Fonctionnement ................................................................................. 74
Liste des références de variables AUTOMGEN / AUTOSIM ............ 74
Manipulateur avec vérins et ventouse .................................................. 75
Fonctionnement ................................................................................. 78
Liste des références de variables AUTOMGEN / AUTOSIM ............ 78
Virtual Universe
8
Introduction
Virtual Universe est un simulateur de monde 3D dédié à l’automatisme et
la robotique. En intégrant les dernières technologies de rendu 3D, de
son 3D, de simulation physique, et de script, Virtual Universe va vous
permettre de créer des simulations ultra réalistes. Virtual Universe peut
communiquer avec des ateliers logiciels d’automatisme (AUTOMGEN,
UNITY, etc.) afin que les systèmes virtuels puissent être pilotés comme
les systèmes réels.
Nouveautés
- Utilisation possible du moteur physique PhysX de Nvidia autorisant
la simulation de tissus, fluides et objets mous, ajout d’exemples
illustrant ceci,
- Communication possible avec les automates S7-1200 de Siemens,
création d’exemples développés avec STEP7 BASIC et des
fichiers Virtual Universe associés,
- Ajout d’un éditeur exécuteur UML/SysML (voir le manuel spécifique
dédié à ceci),
- Gestion de la sécurité et de l’accès aux paramètres : verrouillage
de l’accès à la fenêtre de configuration et à la visualisation et/ou la
modification de l’ensemble des paramètres par mot de passe,
- Importation automatique de pièces et d’assemblage depuis
Soildworks et Inventor,
- Communication avec le logiciel Matlab/Simulink,
- Générateur de fichier .AVI à partir d’une simulation,
- Lien avec AUTOMLAB,
- Modification de la position/taille/rotation des objets à la souris,
- Nouvelle ergonomie (menu, fenêtre de configuration attachée),
- Mode debug pour l‘accès aux variables externe,
- Mondes et objets prédéfinis pour créer facilement des projets.
Système nécessaire
Virtual Universe fonctionne sous les systèmes d’exploitation suivants :
Windows XP, Windows Vista, Windows 7.
Virtual Universe
9
Virtual Universe est compatible avec AUTOMGEN 8.015 ou versions
suivantes.
Organisation
Virtual Universe
10
Installation
Pour Installer Virtual Universe, lancez simplement l’exécution du
package d’installation qui vous a été livré sur CD-ROM ou par
téléchargement. Visitez notre site Internet (www.irai.com) pour
télécharger les dernières mises à jour de Virtual Universe. Vous devrez
également installer le moteur Physx de Nvidia que vous pouvez
télécharger
sur
le
site
de
Nvidia
à
l’adresse
http://www.nvidia.com/object/physx-9.10.0513-driver.html
Licence
Enregistrer la licence
Virtual Universe fonctionne en version d’évaluation (version limitée à 40
jours d’essai) tant que vous n’avez pas enregistré la licence. Notez que
le gestionnaire de licences de Virtual Universe est le même que celui
d’AUTOMGEN.
Pour enregistrer la licence, sélectionnez « Licence » dans le menu
« Fichier ».
Cliquez sur le bouton « Enregistrer la licence ».
Virtual Universe
11
Envoyez le code utilisateur ainsi généré par email à l’adresse
[email protected]
Vous recevrez par email un code de validation que vous saisirez dans
les zones « code de validation », puis vous cliquerez sur « Valider » pour
valider la licence. Vous disposez de 20 jours entre la génération d’un
code utilisateur et la saisie du code de validation.
Installation en réseau
Les fichiers de Virtual Universe peuvent être installés sur un serveur de
fichiers. Les licences peuvent également être gérées par un gestionnaire
de licences réseau (voir le manuel spécifique du gestionnaire de licences
réseau).
Virtual Universe
12
Environnement
Au lancement de Virtual Universe apparaît la fenêtre de rendu du monde
3D :
Le menu Simulation/Run permet de lancer ou de stopper la simulation.
Virtual Universe
13
Le menu Fenêtre/Configuration ouvre ou ferme la fenêtre de
configuration :
Virtual Universe
14
Le bouton « par propriétés » permet d’obtenir pour un groupe d’objets la
liste des valeurs d’une même propriété. Dans ce mode, en haut à
gauche doit être sélectionné le parent des objets et en bas à gauche la
propriété.
Navigation et interactions
Les commandes suivantes permettent de naviguer et dans le Monde 3D
ou d’interagir avec celui-ci :
- Molette de la souris ou touches Haut et Bas du clavier : Zoom
- Bouton du milieu de la souris enfoncé et déplacement de la souris :
déplacement du point de vue,
- Bouton droit de la souris enfoncé et déplacement de la souris :
orbite autour de l’objet sélectionné.
- Déplacement de la souris dans la fenêtre de rendu : sélection
automatique de l’objet survolé pour orbiter autour.
- Clic gauche de la souris sur un objet en mode STOP : sélection de
l’objet.
- Bouton gauche de la souris enfoncé sur un objet et déplacement
de la souris en mode RUN : interaction avec l’objet sélectionné :
pousser, tirer, déplacer.
Virtual Universe
15
Les différents types d’objets
Les objets sont organisés de façon hiérarchique enfant/parent.
Univers
C’est l’objet parent de tout projet Virtual Universe, il contient un ou
plusieurs Mondes, ses propriétés définissent notamment avec quel
logiciel d’automatisme dialoguera Virtual Universe. L’objet Univers est
toujours le parent de la hiérarchie.
Monde
C’est un sous ensemble de l’Univers. Ses propriétés définissent entre
autre l’aspect de la fenêtre de rendu. Les objets Mondes sont toujours
enfants de l’Univers.
Caméra
Les Caméras représentent un point de vue de l’utilisateur dans un
monde 3D. Les objets caméras sont enfants des objets Mondes ou
Sprites 3d.
Lumière
Les Lumières sont nécessaires, comme dans le Monde réel pour pouvoir
observer les objets. Les objets Lumières sont enfants des objets Mondes
ou Sprites 3d.
Sprites 3D
Ce sont les objets et leurs multiples caractéristiques physiques et
visuelles. Les objets Sprites 3D sont enfants des objets Mondes ou
Sprites 3D.
Comportements
Associés à un Sprite 3D ou une Lumière, ils vont pouvoir modifier
dynamiquement leurs propriétés : modifier leurs positions ou leurs
couleurs par exemple ou encore exécuter un script qui pourra agir sur
ces objets. Un Comportement pourra agir comme un moteur pour
transmettre une force à un Sprite 3D. Les objets Comportements sont
enfants des objets Lumières ou Sprites 3D.
Virtual Universe
16
Concepts fondamentaux
Rendu 3D et sons
Le moteur de rendu utilisé par Virtual Universe est Irrlicht qui s’appuie
lui-même sur DIRECTX 8 ou 9 ou OPENGL (en fonction de ce qui est
disponible sur le PC). Le rôle du moteur de rendu 3D est l’affichage des
objets du monde 3D éclairés par les Lumières en fonction du point de
vue défini par une caméra. Des coordonnées cartésiennes X/Y/Z
régissent le monde 3D.
Virtual Universe
17
Un repérage des axes est affiché dans la fenêtre de rendu lorsque la
fenêtre de configuration est ouverte.
Les sons 3D augmentent le réalisme des simulations. Les sons sont
émis dans le monde virtuel à la position des objets et sont donc perçus
en fonction de la position de la caméra.
Moteur physique
Newton Physic Engine ou Physx de Nvidia sont les moteurs physiques
utilisés par Virtual Universe pour la gestion physique des objets : la
gravité par exemple, mais aussi beaucoup plus que cela.
Pour tirer pleinement partie du moteur physique, il est important d’être
familier avec les concepts de bases de la physique, tels que forces,
vitesses, frictions, masse, etc.
Les paramètres du moteur physique sont associés à chaque Sprite 3d.
Un Sprite 3d peut être géré ou pas par le moteur physique. Un objet
Virtual Universe
18
servant uniquement visuellement par exemple pourra ne pas être géré
par le moteur physique.
Dialogue
Le dialogue avec un logiciel externe est un des éléments essentiel
permettant de piloter les simulations. Le type du logiciel externe et le
paramétrage de la connexion se trouvent dans les propriétés de
l’Univers. Les liens sont ensuite définis dans les Comportements. Le
type du Comportement déterminera le sens du dialogue (lecture depuis
ou écriture vers le logiciel externe).
Script
Des scripts écrits en langage basic peuvent être associés à chaque objet
par l’intermédiaire d’un Comportement.
Mode RUN/STOP
Virtual Universe peut être en mode STOP (simulation stoppée et
initialisée) ou RUN (simulation en cours). En mode RUN, le moteur
physique et le dialogue avec le logiciel externe sont activés. Les
Comportements et les scripts sont actifs.
En mode RUN, le rendu est effectué aussi vite que possible par rapport
aux performances du PC, le moteur physique et les scripts sont appelés
toutes les 10ms.
Virtual Universe
19
Les objets possèdent un doublon pour certains paramètres (leurs
positions par exemple). Le premier jeu de paramètre correspond aux
valeurs initiales, le deuxième jeu aux valeurs courantes. En mode STOP,
les valeurs initiales sont recopiées dans les valeurs courantes.
Manager de médias
Il permet de stocker les fichiers médias (fichiers 3D, fichiers bitmaps et
fichiers sons) utilisés dans un projet. Les objets peuvent utiliser des
fichiers se trouvant dans le manager de médias ou en dehors. Les
fichiers se trouvant dans le manager de médias seront sauvegardés
dans le fichier projet. Cette dernière méthode est conseillée si le projet
doit être échangé ou exécuté sur un autre PC.
Propriétés
Unités utilisées.
Les unités utilisées dans le paramétrage (masse, dimensions, etc.) sont
celles du système internationales :
Mètres, Secondes, Newtons, Kilogrammes, etc.
Univers
Connexion
Driver
Détermine la connexion avec un logiciel externe1
Cas de la connexion avec AUTOMGEN ou AUTOSIM
Nom du serveur ou adresse IP
Utilisez « localhost » si le logiciel externe est lancé sur le même PC. Si le
logiciel est lancé sur un autre PC du réseau, entrez son adresse IP ou
son nom tel que vu sur le réseau.
1
Logiciel externe est le terme générique utilisé pour définir le logiciel avec lequel dialogue Virtual
Universe
Virtual Universe
20
Numéro du port
Doit être le même que celui sélectionné dans les propriétés du projet
AUTOMGEN / AUTOSIM dans l’onglet Exécution Connexion TCP/IP,
serveur, port.
Cas de la connexion à UNITY (PLC simulateur ou API M340)
Mode du driver M340
Simulateur local : PLC simulateur lancé sur le même PC, API connecté
par USB : un API M340 connecté à un port USB, API ou simulateur sur
IP : un API connecté par Ethernet ou un simulateur lancé sur un autre
PC connecté au réseau. Dans ce cas, documentez l’adresse IP de l’API
ou du PC.
Chemin serveur OPC
Concerne la connexion OPC.
Serveur TCP
Permet à des logiciels externes (l’éditeur exécuteur de scripts,
d’organigrammes ou d’UML/SysML intégré à Virtual Universe par
exemple).
Port serveur TCP
Le port utilisé par le serveur TCP.
Dernière erreur
Dernière erreur de communication.
Qualité de la liaison
Qualité de la communication, plus la valeur est petite plus la
communication est rapide.
Options
RUN automatique
Provoquera le passage en RUN à l’ouverture du projet.
Affiche les variables et les états
Affichera dans la fenêtre de rendu les noms de variables ainsi que les
états pour les Comportements faisant référence à une variable du
logiciel externe.
Virtual Universe
21
Mode de navigation
Détermine le mode de navigation : VU=déplacement automatique
lorsque le curseur passe au dessus des objets, IRIS3D=utilisation de
boutons de navigation (mode identique au logiciel IRIS3D).
Fil de fer
L’ensemble des Sprites 3D du projet seront affichés en mode « fil de
fer » si vrai.
Mode Debug pour le moteur physique
Si vrai, les volumes utilisés par le moteur physique sont affichés dans la
fenêtre de rendu (lignes de couleurs jaunes). Ceci est très utile en phase
de développement d’un projet utilisant le moteur physique pour visualiser
les volumes pris en compte par le moteur physique. Uniquement
disponible pour le moteur Newton. Le moteur Physx possède sont
propre outil de mise au point (voir le site de Physx).
Statistiques
Donne des informations sur le temps nécessaire au rendu, à l’exécution
du moteur physique et au traitement des comportements.
Sécurité
Permet de définir un mot de passe qui contrôle l’accès à la fenêtre de
configuration ainsi qu’à la modification du projet.
Propriétés des propriétés
Permet de définir l’accès en lecture et/ou modifications à chacune des
propriétés du projet.
Monde
Nom
Permet de désigner un Monde par son nom.
Affichage
Taille de la fenêtre
Détermine la taille de la fenêtre de rendu en pixels.
Taille modifiable
Si vrai, la taille de la fenêtre peut être modifiée par l’utilisateur.
Virtual Universe
22
Couleur du fond
Détermine la couleur affichée comme fond sur la fenêtre de rendu.
Lumière ambiante
Détermine la couleur et l’intensité de la lumière ambiante (lumière
illuminant l’ensemble des objets quel que soit leurs positions et leurs
orientations).
Montrer les ombres
Si vrai, gère l’affichage des ombres, nécessite que les propriétés des
objets relatives aux ombres soit également positionnées. L’affichage des
ombres peut ralentir de façon significative le rendu.
Nombre d’images affichées par seconde (lecture seule)
Indique le nombre d’images affichées en une seconde dans la fenêtre de
rendu.
Utiliser le shader
Technique d’affichage 3D évolué réservée aux spécialistes.
Nombre maximum d’images par seconde
Si différent de 0, limite le nombre d’images affichées par seconde à la
valeur indiquée. Permet de préserver le temps processeur.
Brouillard, couleur du brouillard, début du brouillard, fin du brouillard
Affiche un effet de brouillard.
Physique
Moteur physique
Détermine le moteur physique utilisé : Newton ou Physx.
Simulation soft uniquement
Force une simulation physique logicielle pour le moteur physique Physx.
Gravité
Détermine la gravité.
IHM
IHM
Détermine si une interface homme/machine doit être utilisée
Virtual Universe
23
Position du pupitre IHM
Détermine la position du pupitre IHM.
Ciel
Permet de définir une texture utilisée comme ciel.
Caméra
Nom
Permet de désigner une Caméra par son nom.
Position
Détermine la position initiale de la Caméra par les coordonnées de la
cible (ce que regarde la Caméra) ainsi qu’une rotation sur les axes X et
Y et un zoom
Position courante
Idem mais pour la position courante.
La position courante peut être recopiée dans la position initiale en
cliquant sur les flèches descendantes apparaissant à droite des
éléments de positions initiales et en choisissant « Copier depuis les
valeurs courantes ».
Limites
Permet de limiter les mouvements de la caméra.
Options
Fixe
L’utilisateur ne peut pas déplacer la caméra.
Active au démarrage
En mode multi-caméras, défini la caméra comme active.
Coefficients
Modifie le coefficient de zoom et de déplacement de la caméra (la
vitesse du zoom et du déplacement).
Lumière
Nom
Permet de désigner une Lumière par son nom
Virtual Universe
24
Position
Permet de définir les coordonnées et la direction de la Lumière (la
direction n’est utilisée que pour les Lumières de type Spot et
Directionnel.
Couleur, type, etc.
Détermine les caractéristiques de la Lumière.
Sprite 3d
Nom
Permet de désigner un Sprite 3d par son nom
Dessin
Détermine le fichier 3D utilisé pour définir la géométrie du Sprite 3D ainsi
que d’éventuels fichiers de texture.
Position et taille
Définit la position, la rotation (ainsi que l’axe) et l’échelle initiale du Sprite
3D. Les rotations sont exprimées en degrés (de -180 à +180 degrés).
Position et taille (valeurs courantes)
Idem mais pour les valeurs courantes, avec en plus : la translation et la
rotation relative (par rapport au Sprite 3D parent), ainsi que la position du
centre de l’objet et la rotation absolue par rapport au Monde.
Matériel
Ces propriétés regroupent les caractéristiques du matériel utilisé pour
afficher l’objet. Ces caractéristiques sont directement liées au moteur de
rendu Irrlicht.
Matériel (valeurs courantes)
Idem pour les valeurs courantes.
Navigation
Non sélectionnable
Si vrai, le Sprite 3D n’influe pas sur la navigation lorsqu’il est survolé par
le curseur de la souris.
Physique
Regroupe les propriétés de l’objet concernant le moteur physique.
Virtual Universe
25
Utilise la physique
Si vrai, le Sprite 3D sera pris en compte par le moteur physique, dans le
cas contraire, l’objet sera complètement ignoré par le moteur physique,
en d’autres termes, l’objet sera uniquement affiché dans le monde 3D
mais n’aura aucune interaction physique avec les autres objets.
Utilise la gravité
Si vrai, le Sprite 3D sera soumis à la gravité. Sa masse devra également
être non nulle.
L’utilisateur peut appliquer une force à l’objet
Si vrai, l’utilisateur peut, en mode RUN, agir sur l’objet en maintenant le
bouton droit de la souris enfoncé lorsque le curseur est sur le Sprite 3D
et en déplaçant le curseur.
Type de corps
Détermine pour le moteur physique le type de géométrie du Sprite 3D
- Quelconque (convexe) : une forme convexe déduite de la
géométrie du Sprite 3D,
- Quelconque : une forme quelconque (disponible si le moteur
physique est Physx),
- Boîte : un parallélépipède rectangle,
- Sphère : une sphère,
- Capsule : une capsule,
- Tissu : un tissu (Physx seulement),
- Objet mou : un objet mou (Physx seulement),
- Fluide : un fluide (Physx seulement).
Attention, les types « Quelconque », s’ils sont utilisés avec un Sprite 3D
complexe (possédant de très nombreuses faces), peuvent consommer
beaucoup de ressources pour la simulation physique. Privilégiez, lorsque
ceci est possible un des autres types.
Virtual Universe
26
Il est possible et souvent utile dans les phases de mise au point de
visualiser les géométries manipulées par le moteur physique en activant
l’option « Mode debug pour le moteur physique » dans les propriétés de
l’Univers. Exemple :
Les volumes pris en compte par le moteur physique apparaissent en
jaune.
Solution dans le cas d’un Sprite 3D complexe nécessitant une forme
quelconque :
- définir une forme simplifiée du Sprite 3D (avec moins de facettes),
lui donner les attributs « invisible » et « géré par le moteur
physique »,
- conserver la forme complexe du Sprite 3D et l’ajouter comme
enfant avec les attributs « visible » et « non géré par le moteur
physique ».
Cette solution est exploitée dans l’exemple « Convoyeur ».
Virtual Universe
27
Solution dans le cas d’un Sprite 3D nécessitant une forme physique
concave :
définir plusieurs formes convexes et les lier par des joints.
Masse
La masse de l’objet. Une masse de 0 fige l’objet.
Moment d’inertie
Détermine la quantité d’énergie nécessaire pour faire tourner l’objet sur
chacun des axes.
Ajuster automatiquement le centre de masse
Si vrai, le centre de masse de l’objet est automatiquement recalculé en
fonction de la géométrie du Sprite 3D. Sinon, le centre de masse est le
point de coordonnées 0/0/0 du Sprite 3D.
Coefficients…
Déterminent la friction, l’élasticité et la souplesse des objets. Une valeur
de 0 utilise les paramètres par défaut du moteur physique. Le coefficient
utilisé par le moteur physique entre un objet A et un objet B est une
combinaison (le produit) des coefficients de l’objet A et de l’objet B.
Vitesse
Permet d’accéder aux valeurs de vitesses globales et locales de l’objet.
Ces valeurs ne sont disponibles que pour les objets gérés par le moteur
physique.
Pénétration
Si vrai, les collisions de l’objet ne sont pas gérées. Dans le cas d’objets
liés par des joints (voir ci-après) les collisions sont automatiquement
désactivées entre deux objets liés par un joint.
Joint physique avec le parent
Détermine le type de joint entre un Sprite 3D enfant et un son parent.
Les deux Sprites 3D doivent être gérés par le moteur physique. Ils
peuvent être soumis ou non à la gravité.
Joint
Détermine le type de la liaison avec l’objet parent :
- Pivot,
Virtual Universe
28
-
Glissière,
Rotule,
Pivot glissant,
Poulie (disponible avec le moteur Physx uniquement, voir
l’exemple « Pont Gustave Flaubert »),
- Fixe.
Position du pivot
Détermine la position x/y/z de la liaison avec l’objet parent pour les
liaisons pivot.
Ligne d’action
Détermine la ligne d’action du joint pour les joints Glissière (axe de
translation) et Pivot (axe de rotation).
Limites…
Détermine les limites minimales et maximales du joint. Si ces deux
valeurs sont égales, alors le joint n’a pas de limite (rotation ou translation
sans borne).
Puissance du joint
Détermine la rigidité du joint.
Force du joint
Donne la valeur de la force supportée par le joint.
Force de cassure du joint
Force au-delà de laquelle le joint sera automatiquement détruit. Si 0,
cette fonction est désactivée. Ceci permet de simuler la destruction
d’une liaison entre deux objets (voir l’exemple « NXT »).
Virtual Universe
29
Joint physique avec un autre Sprite 3D
Jeux de paramètres identiques mais le lien est réalisé entre le Sprite 3D
et un autre Sprite 3D que le Sprite 3D parent. L’autre Sprite 3D est
désigné par son nom. Ce deuxième joint permet de créer des modèles
circulaires (voir la simulation « Robot ABB ») :
Tissu
Ensemble de paramètres relatifs à l’utilisation de la simulation de tissus
(moteur Physx, voir l’exemple « Voilier »).
Corps mou
Ensemble de paramètres relatifs à l’utilisation de la simulation de corps
mous (moteur Physx, voir l’exemple « Matelas »).
Fluide
Ensemble de paramètres relatifs à l’utilisation de la simulation de tissu
(moteur Physx, voir l’exemple « Remplissage de pots de peinture »).
Sprite 2D
Permet d’afficher un bitmap 2D à la position du Sprite 3D. Voir la gestion
de la poussière dans l’exemple du robot aspirateur.
Virtual Universe
30
Comportements
Les Comportements sont les éléments qui vont « donner vie » à la
simulation. Ils vont aussi définir les liens entre la simulation et les
logiciels externes.
Ils sont intimement liés au moteur physique et vont pouvoir communiquer
des forces aux Sprites 3D par son intermédiaire et aussi manipuler les
données physiques en retour (la vitesse d’un objet par exemple).
Pour une simulation réaliste, des actions par application de forces
doivent être privilégiées à des actions modifiant directement la position
ou l’orientation des Sprites 3D.
Un Comportement peut aussi être utilisé simplement pour stocker une
valeur pendant la simulation. Les scripts pourront accéder à cette valeur
en lecture et en écriture. On peut considérer ces Comportements comme
« variables globales » de l’application.
Nom
Permet de désigner le Comportement.
Type, etc.
Type de Comportement
Un des types suivants pour les Comportements associés à une
Lumière :
- Aucun, le Comportement ne fait rien,
- Ecrit l’intensité de la Lumière,
o La valeur du Comportement détermine l’intensité lumineuse
de la Lumière associée.
Un des types suivants pour les Comportements associés à un Sprite
3D :
- Aucun, le Comportement ne fait rien,
- Applique une force ou un couple,
o Cet ensemble de types de Comportement permet d’appliquer
une force ou un couple à l’objet. Le paramètre Force
détermine la direction de la force, le repère peut être global
ou local (en fonction du type). La force sera appliquée en
Virtual Universe
31
-
-
-
-
-
fonction de la valeur courante du Comportement. La force
appliquée sera la force paramétrée multipliée par la valeur
courante du Comportement.
Applique une force locale au Sprites 3D en contact,
o Applique une force à l’ensemble des Sprites 3D en collision
avec le Sprite 3D associé. L’application typique est la
simulation d’un tapis roulant. Voir l’exemple « Robot ABB »
pour une illustration. « Nom(s) des autres Sprites 3D »
permet de limiter l’action de ce Comportement à un groupe
de Sprites 3D (voir plus loin). Il est conseillé de limiter les
tests de collision au strict nécessaire.
Applique une force ou un couple de frein,
o Identique mais la force appliquée agira comme frein.
Définit la force d’attraction du Sprite 3D,
o Le Sprite 3D attire les autres Sprites 3D. . « Nom(s) des
autres Sprites 3D » permet de limiter l’action de ce
Comportement à un groupe de Sprites 3D (voir plus loin).
« Attraction » permet de définir la force d’attraction,
« Distance d’attraction » modifie la zone d’action de cette
attraction (infinie si 0). La force d’attraction est aussi
proportionnelle au carré de la distance. L’exemple
« Manipulateur avec vérins et ventouses » illustre ceci.
Ecrit la position et la rotation du Sprite 3D,
o Modifie la position ou l’orientation d’un Sprite 3D. Utilisable
par exemple pour ramener un objet en position initiale (voir
l’exemple « Convoyeur »).
Ecrit la position et la rotation des Sprites 3D en collision,
o Identique mais écrit la position et la rotation de l’ensemble
des Sprites 3D en collision avec le Sprite 3D parent. Le
paramètre « Nom(s) des autres Sprites 3D » permet de
limiter l’action de ce Comportement à un groupe de Sprites
3D (voir plus loin). Il est conseillé de limiter les tests de
collision au strict nécessaire. Voir l’exemple « Robot ABB »
pour une illustration de ce Comportement.
Ecrit la couleur ambiante du Sprite 3D,
o Modifie la couleur ambiante du Sprite 3D parent si la valeur
courante du Comportement est différente de 0. La valeur à
Virtual Universe
32
-
-
-
-
-
-
-
appliquer est un des paramètres du Comportement (voir plus
loin). Voir l’exemple « Convoyeur » pour une illustration.
Exécute un script,
o Exécute un script si la valeur courante du Comportement est
différente de 0. Voir le chapitre consacré au Scripts.
Exécute un fichier script,
o Exécute un script contenu dans un fichier si la valeur
courante du Comportement est différente de 0. Voir le
chapitre consacré au Scripts.
Joue un son,
o Permet de jouer un fichier son en boucle ou une seule fois.
Le son 3D sera perçu comme provenant du Sprite 3D parent.
Le son est joué si la valeur courante du Comportement est
différente de 0. De plus, la valeur courante du Comportement
peut moduler le volume ou la vitesse du son joué. Les
exemples illustrent ceci en modulant la vitesse du son joué
pour simuler le son des moteurs en fonction de la vitesse de
rotation.
Lecture générique,
o Le Comportement ne fera que lire une variable du logiciel
externe. Cette valeur pourra par exemple être utilisée dans
un script.
Reset,
o Remet la simulation dans son état initial si la valeur courante
du Comportement est différente de 0. L’exemple « Robot et
bouteilles » illustre ce type de Comportement.
Teste la collision avec d’autres Sprites 3D,
o Permet d’obtenir nombre de collisions entre le Sprite 3D
parent et les autres Sprites 3D du Monde courant. Le
paramètre « Nom(s) des autres Sprites 3D » permet de
limiter l’action de ce Comportement à un groupe de Sprites
3D (voir plus loin). Il est conseillé de limiter les tests de
collision au strict nécessaire. Voir l’exemple « Convoyeur »
pour une illustration de ce Comportement.
Teste si le joint est détruit,
o Permet d’obtenir l’état du joint entre le Sprite 3D associé au
Comportement et son parent.
Virtual Universe
33
- Obtient la pénétration avec d’autres Sprites 3D,
o Donne la profondeur de pénétration entre le Sprite 3D
associé au Comportement et les autres Sprites 3D.
L’utilisation est typiquement le capteur de proximité. Le
paramètre « Nom(s) des autres Sprites 3D » permet de
limiter l’action de ce Comportement à un groupe de Sprites
3D (voir plus loin). Il est conseillé de limiter les tests de
pénétration au strict nécessaire. Voir l’exemple « NXT » pour
une illustration de ce Comportement.
- Obtient des informations sur un Sprite 3D,
o Permet d’accéder aux valeurs dynamiques d’un Sprite 3D. Le
paramètre « Sélectionne l’information à lire… » détermine la
valeur.
- Teste la position du joint,
o Permet de tester si la valeur d’un joint est comprise entre
deux bornes. L’utilisation typique est la simulation d’un
capteur de position sur un actionneur. « Position min » et
« Position max » sont les bornes. L’exemple « Manipulateur
avec vérins et ventouses » illustre ceci.
- Ecriture générique,
o Le Comportement ne fera qu’écrire une variable du logiciel
externe. Cette valeur pourra par exemple être calculée dans
un script.
- IHM entrée,
o Crée un lien avec un élément IHM en entrée (un bouton
poussoir par exemple, voir le chapitre consacré à l’IHM),
- IHM sortie,
o Crée un lien avec un élément IHM en sortie (un voyant par
exemple, voir le chapitre consacré à l’IHM),
- Activer,
o Active un objet : dans le cas d’un objet « Emetteur de
fluide », ceci active l’émission du fluide (voir l’exemple
« remplissage de pots de pointure »),
- Figer l’objet,
o Empêche le déplacement d’un objet, ce comportement est
utilisé pour les tapis roulants pour créer un objet considéré
Virtual Universe
34
-
-
comme en mouvement par le moteur physique mais dont les
coordonnées sont figées,
Attache l’objet en contact,
o Crée un joint fixe avec l’objet en contact,
Déplace l’objet
o Déplace un objet d’un point à un autre avec la contrainte de
temps spécifiée,
Désactive la physique,
o Désactive l’action du moteur physique sur l’objet associé,
Place au loin,
o Déplace l’objet à une position lointaine (non visible),
Teste si l’objet est cliqué,
o Prend la valeur 1 si l’utilisateur clique sur l’objet associé avec
le bouton gauche de la souris),
Force
Définit la valeur de la force sur chacun des axes pour les types de
Comportements concernés.
Appliquer aux frères
Si vrai, le Comportement est appliqué au Sprite 3D concerné et à
l’ensemble des frères. Voir l’exemple « Convoyeur » pour une illustration
de ce paramètre.
Position / Rotation / Couleur
Valeurs utilisés pour les Comportements les nécessitant.
Liens
Suivant le driver sélectionné dans les propriétés de l’Univers, apparaîtra
la définition d’un nom de variable externe spécifique à chaque logiciel
externe.
Valeur initiale
Sera recopiée dans la valeur courante au passage en mode RUN de la
simulation. Peut être utilisé pour activer de façon permanente un
Comportement. Par exemple, un script pourra être exécuté de façon
inconditionnelle dés le lancement de la simulation en mettant cette
propriété à 1.
Virtual Universe
35
Valeur courante, valeur courante interne, conversion des données, mode
d’écriture
Les valeurs du Comportement et le mode de conversion, voir le chapitre
« Liens externes » pour plus d’informations.
Noms des autres Sprites 3D
Certains Comportements peuvent utiliser un ensemble de Sprites 3D.
Par défaut, si ce paramètre est vide, l’ensemble des Sprites 3D du
Monde courant sont concernés. En documentant ce paramètre, la portée
du Comportement est réduite aux Sprites 3D dont le nom commence par
le texte contenu dans celui-ci. Par exemple, « DUST » réduira les Sprites
à ceux dont le nom commence par « DUST ». Voir l’exemple du « Robot
aspirateur » pour une illustration de ceci.
Utilise la valeur de ce Comportement
Si non vide, cette zone donne le nom d’un Comportement dont la valeur
sera lue et recopiée dans la valeur interne courante. Voir le chapitre
« Script » pour plus d’informations sur les conventions de nom pour les
Comportements.
Lien externe
Si vrai, le Comportement sera listé dans la liste des liens externes (voir
le chapitre « Liens externes »).
Sons
Distance minimale
Permet de modifier le rapport entre le son du volume et la distance de
l’objet générant le son et la caméra.
Script
Voir le chapitre suivant
Virtual Universe
36
Script
Le concept de Script est un des plus puissants outils de Virtual Universe.
Il permet d’intégrer à la simulation des traitements très sophistiqués. Les
scripts sont activés par l’intermédiaire des Comportements. Chaque
Comportement peut activer un script qui sera une tâche entièrement
autonome. Le Script s’exécute tant que la valeur courante du
Comportement associé est différente de 0 et que le script n’est pas
terminé. Un script se termine si la dernière ligne d’exécution est atteinte
ou que le l’instruction END est exécutée. Le langage utilisé est le Basic.
Des instructions spécifiques sont utilisables pour accéder en lecture et
en écriture aux valeurs associées aux objets.
La priorité d’exécution des scripts peut être modifiée dans les propriétés
du Comportement associé. La priorité « Normale » correspond à
l’exécution d’un élément du script toutes les 10ms., la priorité haute
correspond à l’exécution de l’ensemble du script toutes les 10ms.
D’autres priorités plus faibles sont également accessibles. Sauf
nécessité (ou script court), il est conseillé de ne pas utiliser la priorité
haute : plus consommatrice de temps processeur.
Le Script est basé sur le logiciel BeeBasic.
Pour plus d’information, consultez le fichier d’aide basic_api.chm se
trouvant dans le répertoire d’installation de Virtual Universe, ou cliquez
sur le bouton « Aide Basic ».
Virtual Universe
37
Ecrire un script
Les scripts sont écrits dans le paramètre « Script » des Comportements.
Une fenêtre d’édition de script s’ouvre.
Une zone d’édition ainsi qu’une aide sur les fonctions spécifiques est
affichée. L’élément « Erreur de Script » du Comportement permet
d’obtenir une éventuelle erreur rencontrée dans l’analyse du script (le
script en question n’est pas exécuté dans ce cas mais la simulation peut
quand même passer en mode RUN). Si une erreur est détectée, le
numéro de ligne est affiché permettant de localiser l’erreur dans l’éditeur
(les numéros de lignes et de colonnes sont affichés en bas de la zone
d’édition).
Virtual Universe
38
L’élément « Sortie de Script » du Comportement affiche les sorties
générées par la fonction basic PRINT. Ces sorties sont également
affichées dans la fenêtre de rendu à l’emplacement du Sprite 3D associé
au Comportement.
Fonctions spécifiques
Les fonctions spécifiques permettent d’accéder en lecture et en écriture
aux valeurs associées aux objets de Virtual Universe.
Syntaxe des noms de Sprites 3D
Le nom pour la référence aux Sprites 3D doit respecter la syntaxe
suivante :
- un nom sans chemin d’accès : cherchera le premier Sprite 3D dont
le nom commence par ce texte dans l’ensemble des Sprites 3D du
Monde courant
- ..\<nom> : un Sprite 3D nommé, frère du Sprite 3D parent du
Comportement,
- <nom 1>\**\<nom2> : un Sprite 3D nommé nom2, descendant d’un
Sprite 3D nommé nom1.
- <chemin d’accès\nom> : un Sprite 3D correspondant au chemin
d’accès.
Il n’y a pas de différenciation majuscules/minuscules dans les noms.
Exemples :
mon sprite : désigne le premier Sprite 3D dont le nom commence par le
texte « mon sprite ».
..\un autre sprite : désigne le Sprite 3D nommé « un autre sprite » frère
du Sprite 3D parent du Comportement.
robot1\**\level3 : désigne le Sprite 3D nommé « level3 » descendant du
Sprites 3D robot1.
..\..\encore un sprite : désigne le Sprite 3D nommé « encore un sprite »
frère du parent du Sprite 3D parent du Comportement.
Remarque : faire référence à des noms relatifs (utilisant des chemins
relatifs) plutôt qu’à des noms absolus permet d’avoir des objets
Virtual Universe
39
facilement duplicables sans nécessité de modifier les liens. L’exemple
« Robot ABB » illustre ceci.
Fonctions d’accès aux valeurs associées à un Sprite 3D
GetValSprite3d(<paramètre>) retourne une valeur associée à un Sprite 3D
<paramètre> désigne le paramètre. Il peut désigner un Sprite 3D par son
nom. Si ce n’est pas le cas, c’est le Sprite 3D parent du Comportement
qui est utilisé.
La syntaxe est [<nom du Sprite 3D>].<nom du paramètre>
Exemples:
POSX: position X du Sprite 3D parent
[BOX3].SPEEDZ vitesse sur l’axe Z du Sprite 3D nommé BOX3
Liste des paramètres possibles :
POSX, POXY, POSZ : position absolue dans le Monde 3D.
ROTX, ROTY, ROTZ : rotation absolue dans le Monde 3D.
RELPOSX, RELPOSY, RELPOSZ : position relative par rapport au
Sprite 3D parent. Valide uniquement si l’objet est géré par le moteur
physique et est lié à un Sprite 3D parent par un joint.
RELROTX, RELROTY, RELROTZ : rotation relative par rapport au Sprite
3D parent. Valide uniquement si l’objet est géré par le moteur physique
et est lié à un Sprite 3D parent par un joint.
SCALEX,SCALEY, SCALEZ : échelle.
FORCEX, FORCEY, FORCEZ : force appliquée.
TORQUEX, TORQUEY, TORQUEZ : couple appliqué.
FORCEBRAKEX, FORCEBRAKEY, FORCEBRAKEZ : force frein
appliquée.
TORQUEBRAKEX, TORQUEBRAKEY, TORQUEBRAKEZ : couple frein
appliqué.
SPEEDX, SPEEDY, SPEEDZ : Vitesse
Virtual Universe
40
ROTSPEEDX, ROTSPEEDY, ROTSPEEDZ : Vitesse angulaire
RELSPEEDX, RELSPEEDY, RELSPEEDZ : Vitesse relative
RELROTSPEEDX, RELROTSPEEDY,
angulaire relative (au parent)
RELROTSPEEDZ :
Vitesse
TRANSPARENCY : Transparence (de 0=opaque à 1=invisible)
SetValSprite3d(<paramètre>,<valeur>) modifie une valeur associée à un
Sprite 3D
<paramètre> est identique à GetValSprite3d avec en plus :
JOINTMIN, JOINTMAX : valeur minimale et maximale du joint avec le
parent
JOINTMIN2, JOINTMAX2 : valeur minimale et maximale du deuxième
joint
Syntaxe des noms de Comportements
Le nom pour la référence aux Comportements doit respecter la syntaxe
suivante :
- un nom sans chemin d’accès : cherchera le premier Comportement
dont le nom commence par ce texte dans l’ensemble
Comportements du Monde courant
- ..\<nom> : un Comportement nommé frère du Comportement
courant,
- <nom de sprite>\<nom de Comportement> : un Comportement
nommé enfant d’un Sprite 3D. Le nom du Sprite 3D doit répondre
aux critères définis au chapitre « Syntaxe des noms de Sprites
3D »
Fonctions d’accès aux valeurs associées à un Comportement
GetBehavior(<paramètre>)
Comportement
retourne
une
valeur
associée
à
un
<paramètre> peut être un nom de Comportement ou un nom de
Comportement et le type de valeur.
Virtual Universe
41
La syntaxe est :
[<nom du Comportement>].<type de valeur>
Ou
[<nom du Comportement>]
Si le type de valeur est omis, c’est la valeur courante qui est référencée.
Le type de valeur possible est « internalvalue » pour accéder à la valeur
courante interne.
Exemples :
[MON COMPORTEMENT] : valeur courante du Comportement nommé
« MON COMPORTEMENT ».
[MON CHIEN].internalvalue : valeur courante interne du Comportement
nommé « MON CHIEN ».
[robot1\**\level2\position] : valeur courante du Comportement nommé
« position » enfant du Sprite 3D nommé « level2 » descendant du Sprite
3D nommé « robot1 ».
[..\..\..\request].internalvalue : valeur courante interne du grand parent du
parent du Comportement.
SetBehavior(<paramètre>,<valeur>) écrit la valeur d’un Comportement
<paramètre> est identique à GetBehavior.
Fonctions d’accès aux valeurs associées à l’Univers
GetUniverse(<paramètre>) retourne une valeur associée à l’Univers
<paramètre> peut être :
- RUNNINGDURING : retourne la durée en ms depuis le dernier
passage en RUN de la simulation
- MOUSEBUTTONS : retourne l’état des boutons de la souris : bit 0
pour le bouton gauche, bit 1 pour le bouton droit, bit 2 pour le
bouton du milieu.
Virtual Universe
42
- MOUSEX, MOUSEY : retourne la position du curseur de la souris
relative au coin supérieur gauche de la fenêtre de rendu.
SetUniverse(<paramètre>,<valeur>) écrit une valeur associée à l’Univers
<parameter> peut être
PLEASEQUIT : force la terminaison de Virtual Universe
Autres fonctions
GetFirstSprite3D(<name>) retourne le premier numéro d’un Sprite 3D
Le nom doit respecter la syntaxe des noms de Sprites 3D. La valeur
numérique retournée peut directement être passée en paramètre aux
fonctions d’accès aux valeurs associées aux Sprites 3D sous la forme
« #numéro ». Si la valeur retournée est inférieure à 0, aucun Sprite 3D
n’a été trouvé. Voir l’exemple « Robot Aspirateur » pour une illustration.
GetNextSprite3D(<numéro>,<name>) retourne le numéro du Sprite 3D
suivant.
<numéro> est la valeur retournée par GetFirstSPrite3d.
Si la valeur retournée est inférieure à 0, aucun Sprite 3D n’a été trouvé.
Rand() : retourne une valeur aléatoire comprise entre 0 et 1
Voir l’exemple « Robot aspirateur ».
ComputeIK(<ndof>,<x>,<y>,<z>,<a>,<b>,<c>,<tx>,<ty>,<tz>,<b1>,<b2>,<b3
>,<b4>,<b5,<b6>) calcul la résolution cinématique inverse d’un robot
Le Comportement associé doit être enfant du Sprite 3D composant le
dernier élément du robot.
Voir l’exemple « Robot ABB ».
<ndof> : nombre de degrés de liberté (doit être 6),
<x,y,z> : position à atteindre,
<a,b,c> : angle souhaité pour le dernier élément,
<tx,ty,tz> : déplacement de l’outil,
Virtual Universe
43
<b1> à <b6> : nom de 6 Comportements qui recevront les valeurs pour
chacun des 6 axes.
La valeur de retour est :
0 : pas d’erreur, les valeurs ont été calculées,
-7 : la position ne peut pas être atteinte,
Autre valeur < à 0 : erreur.
Virtual Universe
44
Bibliothèque d’objets
Il est possible d’importer et d’exporter des objets « complexes »
composées de Sprites 3D, de Lumières et de Comportements.
L’importation d’objets complexes est réalisée en cliquant sur un Monde
ou un Sprite 3D avec le bouton droit de la souris et en choisissant
« Importer ». Des exemples d’objets se trouvent dans le sous-répertoire
« library » du répertoire d’installation de Virtual Universe.
L’exportation est réalisée en cliquant avec le bouton droit de la souris sur
un Sprite 3D et en choisissant « Exporter ». L’ensemble des éléments
« Enfants » sont exportés.
Liens externes
Les liens externes permettent le pilotage des simulations créés dans
Virtual Universe par un logiciel externe (AUTOMGEN par exemple).
Le type de la connexion est défini dans les propriétés de l’Univers.
Les échanges sont activés dés que Virtual Universe est en mode RUN et
que le logiciel externe est capable d’effectuer ces échanges.
L’état de la connexion est affiché dans les propriétés de l’Univers.
Un lien est établi entre le logiciel externe et un Comportement.
Suivant le logiciel externe sélectionné, un nom de variable spécifique
peut être documenté dans chaque Comportement.
Valeur courante et valeur courante interne
Chaque Comportement possède deux états : un état courant et un état
courant interne. Ces deux états sont utilisés d’une manière différente et
inverse suivant le sens de l’information : du logiciel externe vers Virtual
Universe ou de Virtual Universe vers le logiciel externe.
Virtual Universe
45
Lecture d’une valeur de Virtual Universe depuis le logiciel externe
Cette action peut être décrite comme « lecture d’une entrée » du point
de vue du logiciel externe.
Le cheminement des données est le suivant :
Le type de conversion peut être une simple recopie de la valeur ou une
inversion (pour les variables booléennes complémentées).
En complément, un « mode d’écriture vers le logiciel externe » peut être
spécifié. Trois modes sont disponibles :
- « Normal » : la valeur est écrite à chaque échange,
- « Seulement sur changement » : la valeur n’est écrite vers le
logiciel externe que si elle a changée (l’écriture vers certains
logiciels externes peut être consommatrice de ressources, cette
option à pour but d’amoindrir l’impact des écritures en terme de
ressources) ;
- « Sécurisé » : la valeur est écrite à chaque changement. Chaque
écriture est vérifiée (lecture de la valeur après écriture). Ce mode
garantit qu’un changement fugitif d’état (typiquement un capteur vu
vrai pendant une durée très courte – inférieur au temps d’échange
des données entre Virtual Universe et le logiciel externe – sera
« vu » par le logiciel externe. Ceci est exploité dans l’exemple
« Convoyeur ».
Virtual Universe
46
Ecriture d’une valeur du logiciel externe vers Virtual Universe
Cette action peut être décrite comme « écriture d’une sortie » du point de
vue du logiciel externe.
Le cheminement des données est le suivant :
Le type de conversion peut être une simple recopie de la valeur ou une
inversion (pour les variables booléennes complémentées).
Virtual Universe
47
Accès aux liens externes d’un groupe d’objets
Il est possible d’accéder facilement à la totalité des entrées sorties
associées à un groupe d’objets en cliquant avec le bouton droit de la
souris sur le parent (cliquez sur le Monde pour avoir la totalité des liens
des objets se trouvant dans un Monde) et en sélectionnant « Liens
externes ». Exemples :
L’application typique de ceci est de modifier l’attribution des entrées
sorties d’un objet après importation ou duplication. Les variables
associés aux entrées sorties dépendent du type de driver (type de
logiciel externe) sélectionné dans les propriétés de l’Univers.
Virtual Universe
48
Mise au point
En mode RUN, le menu « Mise au point » accessible dans le menu
« Simulation » de la fenêtre principale ou dans le menu de la fenêtre de
configuration permet d’ouvrir cette fenêtre :
Cette fenêtre permet de visualiser et de modifier (zone forçage) l’état
des variables externes.
IHM
Virtual Universe intègre la fonction IHM (fonctionnalités IRIS2D
d’AUTOMGEN). Pour créer un pupitre IHM, activez la propriété IHM du
monde. Les éléments IHM utilisent un espace de variables distinct. Pour
lire ou écrire un élément IHM, un comportement de type IHM entrée ou
IHM sortie doit être créé.
Virtual Universe
49
Exemple de pupitre IHM
Lien avec Matlab Simulink
Consultez le tutorial se trouvant sur la page Web www.irai.com/sli.
Import depuis Solidworks ou Inventor
Consultez les tutoriaux se trouvant sur la page www.irai.com/vu.
Création simplifiée d’applications
Le sous-répertoire « Easy » du répertoire « Livrary » (répertoire
contenant les objets prédéfinis) permet de concevoir rapidement des
applications. Le sous-répertoire « Easy » du répertoire « Exemples »
donne un exemple d’application créé avec ces objets.
Virtual Universe
50
Exemples
Convoyeur
Le
projet
convoyeur
se
trouve
dans
le
sous-répertoire
« samples\conveyor » du répertoire d’installation de Virtual Universe. Il
est accompagné d’un projet .AGN pour les logiciel AUTOMGEN ou
AUTOSIM et d’un projet .XEF pour le logiciel Unity Pro.
Cet exemple illustre notamment les fonctionnalités suivantes :
- Gestion des ombres : ici des Sprites 3D « allégés » (avec moins de
faces) ont été utilisés pour le rendu des ombres afin de ne pas trop
ralentir le rendu.
Virtual Universe
51
- Gestion physique : le même principe a été utilisé pour la gestion
« physique ».
- Applications d’un Comportement à un groupe d’objets : le couple
appliqué aux rouleaux de chaque convoyeur est généré par un
seul Comportement avec l’attribut « appliquer aux objets frères ».
- Simulation marche avant, marche arrière et frein pour les
convoyeurs.
Virtual Universe
52
- Simulation d’une colonne lumineuse.
- La gestion des capteurs a été réalisée avec des Comportements
« Test de collision ». La gestion de la « furtivité » de l’information
provenant des capteurs a été traitée avec un mode d’écriture
« sécurisé » pour que le logiciel externe puisse « voir »
l’information de façon certaine.
-
- Le retour des boîtes à la position de départ est géré par des
couples de Comportements « Test de collision » et « Ecriture de la
position ».
Virtual Universe
53
- Les noms et états des variables sont affichables sur la fenêtre de
rendu (choix de l’utilisateur sélectionné dans les propriétés de
l’Univers).
Virtual Universe
54
- Modulation de la vitesse des sons en fonction de la vitesse de
rotation des rouleaux. Calcul réalisé dans un script.
Fonctionnement
Les boîtes sont de deux tailles différentes, le but est de les évacuer
vers deux destinations différentes en fonction de leur taille. Deux
capteurs (un capteur bas et un capteur haut) permettent d’identifier la
taille des boîtes. Capteur bas seul = petite boîte, capteur bas et
capteur haut = grande boîte.
Virtual Universe
55
Liste des références de variables AUTOMGEN / AUTOSIM
Variable Commentaire
Symbole
before switch low sensor
%i0
capteur bas avant le
convoyeur de tri
before switch high sensor
%i1
capteur haut avant le
convoyeur de tri
departure sensor backward
%i2
capteur départ arrière
convoyeur de tri
departure sensor forward
%i3
capteur départ avant
convoyeur de tri
arrival sensor
%i4
capteur convoyeur d’arrivée
middle conveyor forward
%q0
moteur convoyeur du milieu en
avant
middle conveyor backward
%q1
moteur convoyeur du milieu en
arrière
middle conveyor brake
%q2
frein convoyeur du milieu
middle conveyor red light
%q3
lumière rouge colonne
lumineuse convoyeur du milieu
middle conveyor orange light %q4
lumière orange colonne
lumineuse convoyeur du milieu
middle conveyor green light
%q5
lumière verte colonne
lumineuse convoyeur du milieu
switch conveyor forward
%q6
moteur convoyeur de tri en
avant
switch conveyor backward
%q7
moteur convoyeur de tri en
arrière
switch conveyor brake
%q8
frein convoyeur de tri
arrival conveyor forward
%q9
moteur convoyeur d’arrivée en
avant
arrival conveyor backward
%q10 moteur convoyeur d’arrivée en
arrière
arrival conveyor brake
%q11 frein moteur convoyeur
arrival conveyor orange light %q12 lumière orange colonne
lumineuse convoyeur d’arrivée
arrival conveyor red light
%q13 lumière rouge colonne
lumineuse convoyeur d’arrivée
arrival conveyor green light
%q14 lumière verte colonne
lumineuse convoyeur d’arrivée
Entrée
Sortie
Virtual Universe
56
Liste des références de variables UNITY PRO
Virtual Universe
57
Robot et bouteilles
Ce projet se trouve dans le sous-répertoire « samples\robot and bottles »
du répertoire d’installation de Virtual Universe. Il est accompagné d’un
fichier .AGN.
Ce projet illustre notamment les fonctionnalités suivantes :
- Modification de l’échelle et de la position pour la simulation du
ressort,
Virtual Universe
58
- Définition de joints,
- Simulation des moteurs du robot par modification des limites des
joints. Pilotage par variables numériques (une variable associée à
chaque axe) géré par un script pour chaque moteur.
- Préhension : rien de particulier à faire, la fermeture de la pince est
suffisante.
Virtual Universe
59
- RAZ de la simulation après le déplacement de la dernière bouteille.
Virtual Universe
60
Fonctionnement
Pour chacun des axes, deux variables numériques sont utilisées. Une
donne la position courante, l’autre permet de définir la position à
atteindre. Si la position courante est proche de la position demandée,
alors le mouvement a été effectué.
Liste des références de variables AUTOMGEN / AUTOSIM
Symbole
Variable Commentaire
request level 1
%mw200 Position demandée pour l’axe 1
position level 1
%mw201 Position courante pour l’axe 1
…
request level 5
%mw208 Position demandé pour l’axe 5
position level 5
%mw209 Position courante pour l’axe 5
request finger 1
%mw210 Position demandée pour le doigt 1 de
la pince
position finger 1
%mw211 Position courante pour le doigt 1 de la
pince
request finger 2
%mw212 Position demandée pour le doigt 2 de
la pince
position finger 2
%mw213 Position courante pour le doigt 2 de la
pince
Entrée
Sortie
Virtual Universe
61
Robot NXT
Ce projet se trouve dans le sous-répertoire « samples\nxt » du répertoire
d’installation de Virtual Universe. Il est accompagné d’un fichier .AGN.
Virtual Universe
62
Ce projet illustre notamment les fonctionnalités suivantes :
- Simulation d’un robot mobile,
Virtual Universe
63
- Simulation de 2 moteurs à vitesse variable modulation de vitesse
et frein piloté par 2 variables booléennes et une variable
numérique.
- Capteur de proximité analogique simulé par un test de pénétration.
Virtual Universe
64
- Destruction de joints.
Virtual Universe
65
Fonctionnement
Les deux roues sont pilotées par des moteurs dont la puissance est
pilotée par des variables numériques. Deux variables numériques
permettent de piloter le moteur dans chaque sens.
Liste des références de variables
Symbole
Variable
motor#1 power
%mw200
motor#2 power
%mw201
sensor
%mw203
motor#1 direction 1 %q0
motor#1 direction 2 %q1
motor#2 direction 1 %q2
motor#2 direction 2 %q3
Entrée
AUTOMGEN / AUTOSIM
Commentaire
Puissance moteur 1
Puissance moteur 2
Capteur de proximité
Direction 1 moteur 1
Direction 2 moteur 1
Direction 1 moteur 2
Direction 2 moteur 2
Sortie
Virtual Universe
66
Robot ABB 6 axes
Ce projet se trouve dans le sous-répertoire « samples\abb robot » du
répertoire d’installation de Virtual Universe. Il est accompagné d’un
fichier .AGN.
Ce projet illustre notamment les fonctionnalités suivantes :
- Simulation d’un robot 6 axes.
Virtual Universe
67
- Simulation d’un moteur par PID.
Virtual Universe
68
- Calcul de la cinématique inverse du robot.
Virtual Universe
69
- Simulation d’un tapis roulant.
Fonctionnement
Six variables numériques permettent de choisir la destination et
l’orientation de la pince du robot. La précision de la position de
destination est également donnée par une variable numérique. Plus la
précision demandée est importante, plus le temps mis pour la fin du
mouvement sera importante, à l’inverse, une précision moindre
permettra d’enchaîner plus rapidement les mouvements au détriment de
la précision. Une variable numérique de commande permet de lancer le
mouvement, une variable numérique de compte rendu permet de savoir
si le mouvement a été effectué. Le système de coordonnées est celui
réellement utilisé par le robot ABB réel.
Virtual Universe
70
Liste des références de variables
Symbole
Variable
xrobot1
%mf200
yrobot1
%mf201
zrobot1
%mf202
arobot1
%mf203
brobot1
%mf204
crobot1
%mf205
deltarobot1
%mf206
cmdrobot1
%mw200
statrobot1
close clamp
Entrée
AUTOMGEN / AUTOSIM
Commentaire
Coordonnées X de destination
Coordonnées Y de destination
Coordonnées Z de destination
Angle A de destination (en degrés)
Angle B de destination (en degrés)
Angle C de destination (en degrés)
Précision demandée
Commande : le passage de 0 à 1
lance le mouvement
%mw201 Résultat : 1=mouvement effectué,
<0=erreur (-7=position impossible à
atteindre)
%q0
Fermeture de la pince
Sortie
Virtual Universe
71
Robot aspirateur
Ce projet se trouve dans le sous-répertoire « samples\vacuum robot » du
répertoire d’installation de Virtual Universe. Il est accompagné d’un
fichier .AGN.
Virtual Universe
72
Ce projet illustre notamment les fonctionnalités suivantes :
- Positionnement aléatoire d’objets,
Virtual Universe
73
- Simulation d’une aspiration.
Fonctionnement
Le robot est piloté par deux moteurs eux-mêmes pilotés en tout ou rien
par 2 sorties chacun (une sortie pour chaque sens de marche). Un
capteur de contact détecte les collisions avec les objets, un capteur de
proximité permet d’obtenir l’information de l’absence de sens devant le
robot.
Liste des références de variables AUTOMGEN / AUTOSIM
Symbole
Variable Commentaire
forward motor 1
%q0
Moteur 1 en avant
backward motor 1
%q1
Moteur 1 en arrière
forward motor 2
%q2
Moteur 2 en avant
backward motor 2
%q3
Moteur 2 en arrière
collision
%i0
Capteur collision
ir sensor
%i1
Capteur absence de sol devant le robot
Entrée
Sortie
Virtual Universe
74
Manipulateur avec vérins et ventouse
Ce projet se trouve dans le sous-répertoire « samples\cylinders » du
répertoire d’installation de Virtual Universe. Il est accompagné d’un
fichier .AGN.
Virtual Universe
75
Ce projet illustre notamment les fonctionnalités suivantes :
- Simulation de la ventouse,
- Capteurs de positions pour les vérins,
Virtual Universe
76
- Simulation de vérin avec retour de la tige par ressort,
Virtual Universe
77
Fonctionnement
Le bras est composé de deux vérins simple effet. Une ventouse permet
la préhension des bouteilles. Deux convoyeurs gèrent l’arrivée et le
départ des bouteilles.
Liste des références de variables AUTOMGEN / AUTOSIM
Symbole
Variable Commentaire
vaccum
%q0
Active l’aspiration
go down
%q1
Fait sortir le vérin vertical
go out
%q2
Fait sortir le vérin horizontal
top
%i0
Vérin vertical rentré
bottom
%i1
Vérin vertical sorti
in
%i2
Vérin horizontal rentré
out
%i3
Vérin horizontal sorti
Entrée
Sortie
Virtual Universe
78

Manuels associés