Mode d'emploi | VIRTUAL Universe 1.0 Manuel utilisateur

Ajouter à Mes manuels
73 Des pages
Mode d'emploi | VIRTUAL Universe 1.0 Manuel utilisateur | Fixfr
V1.001B
Manuel de l’utilisateur
©opyright 2010 IRAI
Sommaire
Introduction ................................................................................................ 9
Système nécessaire .................................................................................. 9
Organisation .............................................................................................. 9
Installation ................................................................................................ 10
Licence..................................................................................................... 10
Enregistrer la licence ............................................................................ 10
Installation en réseau .............................................................................. 11
Environnement ......................................................................................... 12
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
Univers .................................................................................................. 20
Connexion .......................................................................................... 20
Driver ............................................................................................ 20
Nom du serveur ou adresse IP ..................................................... 20
Virtual Universe
3
Port ............................................................................................... 20
Mode du driver M340 .................................................................... 21
Options ............................................................................................... 21
RUN automatique ......................................................................... 21
Affiche les variables et les états ................................................... 21
Fil de fer ........................................................................................ 21
Mode Debug pour le moteur physique ......................................... 21
Monde ................................................................................................... 21
Nom .................................................................................................... 21
Affichage ............................................................................................ 21
Taille de la fenêtre ........................................................................ 21
Taille modifiable ............................................................................ 21
Couleur du fond ............................................................................ 22
Lumière ambiante ......................................................................... 22
Montrer les ombres ....................................................................... 22
Nombre d’images affichées par seconde (lecture seule) ............. 22
Utiliser le shader ........................................................................... 22
Nombre maximum d’images par seconde .................................... 22
Caméra ................................................................................................. 22
Nom .................................................................................................... 22
Position .............................................................................................. 22
Position courante ............................................................................... 22
Lumière ................................................................................................. 23
Nom .................................................................................................... 23
Position .............................................................................................. 23
Couleur, type, etc. .............................................................................. 23
Sprite 3d ................................................................................................ 23
Nom .................................................................................................... 23
Dessin ................................................................................................ 23
Position et taille .................................................................................. 23
Virtual Universe
4
Position et taille (valeurs courantes).................................................. 23
Matériel .............................................................................................. 23
Matériel (valeurs courantes) ............................................................. 23
Navigation .......................................................................................... 24
Non sélectionnable ....................................................................... 24
Physique ............................................................................................ 24
Utilise la physique ......................................................................... 24
Utilise la gravité ............................................................................ 24
L’utilisateur peut appliquer une force à l’objet .............................. 24
Type de corps ............................................................................... 24
Masse ........................................................................................... 26
Moment d’inertie ........................................................................... 26
Ajuster automatiquement le centre de masse .............................. 26
Coefficients… ............................................................................... 26
Vitesse .......................................................................................... 26
Pénétration.................................................................................... 26
Joint physique avec le parent ............................................................ 26
Joint .............................................................................................. 26
Position du pivot ........................................................................... 27
Ligne d’action ................................................................................ 27
Limites… ....................................................................................... 27
Puissance du joint ......................................................................... 27
Force du joint ................................................................................ 27
Force de cassure du joint ............................................................. 27
Joint physique avec un autre Sprite 3D ............................................. 28
Sprite 2D ............................................................................................ 28
Comportements .................................................................................... 29
Nom .................................................................................................... 29
Type, etc. ........................................................................................... 29
Type de Comportement ................................................................ 29
Virtual Universe
5
Force ............................................................................................. 32
Appliquer aux frères...................................................................... 32
Position / Rotation / Couleur ......................................................... 32
Liens ................................................................................................... 32
Valeur initiale ................................................................................ 32
Valeur courante, valeur courante interne, conversion des
données, mode d’écriture ............................................................. 33
Noms des autres Sprites 3D ......................................................... 33
Utilise la valeur de ce Comportement .......................................... 33
Lien externe .................................................................................. 33
Sons ................................................................................................... 33
Distance minimale ........................................................................ 33
Script .................................................................................................. 33
Script ..................................................................................................... 34
Ecrire un script ................................................................................... 35
Fonctions spécifiques ........................................................................ 36
Syntaxe des noms de Sprites 3D ................................................. 36
Fonctions d’accès aux valeurs associées à un Sprite 3D ............ 37
Syntaxe des noms de Comportements ........................................ 38
Fonctions d’accès aux valeurs associées à un Comportement ... 38
Fonctions d’accès aux valeurs associées à l’Univers .................. 39
Autres fonctions ............................................................................ 40
Bibliothèque d’objets ............................................................................... 42
Liens externes ......................................................................................... 42
Valeur courante et valeur courante interne .......................................... 42
Lecture d’une valeur de Virtual Universe depuis le logiciel externe .. 43
Ecriture d’une valeur du logiciel externe vers Virtual Universe ......... 44
Accès aux liens externes d’un groupe d’objets .................................... 45
Exemples ................................................................................................. 46
Convoyeur............................................................................................. 46
Virtual Universe
6
Fonctionnement ................................................................................. 50
Liste des références de variables AUTOMGEN / AUTOSIM ............ 51
Liste des références de variables UNITY PRO ................................. 52
Robot et bouteilles ................................................................................ 53
Fonctionnement ................................................................................. 56
Liste des références de variables AUTOMGEN / AUTOSIM ............ 56
Robot NXT ............................................................................................ 57
Fonctionnement ................................................................................. 61
Liste des références de variables AUTOMGEN / AUTOSIM ............ 61
Robot ABB 6 axes ................................................................................ 62
Fonctionnement ................................................................................. 65
Liste des références de variables AUTOMGEN / AUTOSIM ............ 66
Robot aspirateur ................................................................................... 67
Fonctionnement ................................................................................. 69
Liste des références de variables AUTOMGEN / AUTOSIM ............ 69
Manipulateur avec vérins et ventouse .................................................. 70
Fonctionnement ................................................................................. 73
Liste des références de variables AUTOMGEN / AUTOSIM ............ 73
Virtual Universe
7
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.
Système nécessaire
Virtual Universe fonctionne sous les systèmes d’exploitation suivants :
Windows XP, Windows Vista, Windows 7.
Virtual Universe est compatible avec AUTOMGEN 8.015 ou versions
suivantes.
Organisation
Virtual Universe
9
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.
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.
Pour enregistrer la licence, cliquez sur le bouton « Licence » dans la
fenêtre de configuration de Virtual Universe.
Cliquez sur le bouton « Enregistrer la licence ».
Virtual Universe
10
Envoyez le code utilisateur ainsi généré par email à l’adresse
francoise.saut.irai@orange.fr
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
11
Environnement
Au lancement de Virtual Universe apparaît la fenêtre de rendu du monde
3D :
Le bouton RUN/STOP permet de lancer ou de stopper la simulation.
Le bouton CONFIGURATION
configuration :
Virtual Universe
ouvre
ou
ferme
la
fenêtre
de
12
Virtual Universe
13
La même fenêtre en mode « 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é.
Virtual Universe
14
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 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 est le moteur physique utilisé 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
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.
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)
1
Logiciel externe est le terme générique utilisé pour définir le logiciel avec lequel dialogue Virtual
Universe
Virtual Universe
20
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.
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.
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.
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
21
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.
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
Virtual Universe
22
éléments de positions initiales et en choisissant « Copier depuis les
valeurs courantes ».
Lumière
Nom
Permet de désigner une Lumière par son nom
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.
Virtual Universe
23
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.
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 : une forme convexe déduite de la géométrie du Sprite
3D,
- Boîte : un parallélépipède rectangle,
- Sphère : une sphère,
- Capsule : une capsule.
Attention, le type « Quelconque », s’il est utilisé avec un Sprite 3D
complexe (possédant de très nombreuses faces), peut consommer
beaucoup de ressources pour la simulation physique. Privilégiez, lorsque
ceci est possible un des autres types.
Virtual Universe
24
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
25
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 du joint :
- Pivot,
Virtual Universe
26
- Glissière
- 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
27
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 ») :
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
28
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
29
-
-
-
-
-
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
30
-
-
-
-
-
-
-
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.
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.
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
Virtual Universe
31
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.
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
Virtual Universe
32
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.
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
33
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
34
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
35
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
36
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
37
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
38
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
39
- 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
40
<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
41
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
42
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
43
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
44
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
45
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
46
- 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
47
- 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
48
- 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
49
- 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
50
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
51
Liste des références de variables UNITY PRO
Virtual Universe
52
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
53
- 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
54
- RAZ de la simulation après le déplacement de la dernière bouteille.
Virtual Universe
55
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
56
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
57
Ce projet illustre notamment les fonctionnalités suivantes :
- Simulation d’un robot mobile,
Virtual Universe
58
- 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
59
- Destruction de joints.
Virtual Universe
60
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
61
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
62
- Simulation d’un moteur par PID.
Virtual Universe
63
- Calcul de la cinématique inverse du robot.
Virtual Universe
64
- 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
65
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
66
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
67
Ce projet illustre notamment les fonctionnalités suivantes :
- Positionnement aléatoire d’objets,
Virtual Universe
68
- 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
69
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
70
Ce projet illustre notamment les fonctionnalités suivantes :
- Simulation de la ventouse,
- Capteurs de positions pour les vérins,
Virtual Universe
71
- Simulation de vérin avec retour de la tige par ressort,
Virtual Universe
72
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
73

Manuels associés