anyKode Marilou
ContentsIndexHome
PreviousUpNext
La configuration

La configuration permet de fixer les paramètres de la simulation dans une situation donnée.

Une configuration est un ensemble de paramètres passés au moteur de simulation (Exec). Un projet peut contenir plusieurs configurations. Pour ouvrir une configuration, double cliquer sur le node correspondant dans l'arbre de simulation (l'explorateur de solution). La configuration active est affichée en 'gras'. 

 

Le bouton 'Create shortcut' permet de créer un raccourci (sur le bureau par exemple) qui démarre la simulation avec les paramètres de la configuration courante. 

 

Paramètres physique

 

  1. Real time multiplier : facteur multiplicateur de la base de temps de la simulation (permet de travailler en temps accéléré, multiple du temps réel).
  2. Create infinite ground plane : indique si le simulateur physique doit créer un plan horizontal passant par la coordonnée Y spécifiée.
  3. Disable Cylinder/Cylinder pseudo collider: ODE, aujourd'hui, ne sait pas gérer la collision d'un cylindre contre un autre cylindre. Nous utilisons le système de collision de la capsule/capsule pour 'émuler' celui du cylindre. De ce fait, dans certaines situations, les cylindres peuvent être éjectés car les disques sont considérés comme des spheres (collision de spheres/spheres même si les disques ne se touchent pas).
  4. Contact/Forces: ERP (Errors reduction parameter) indique la quantité d'erreur à corriger à chaque incrément de temps de la simulation. 1.0 corrige toute l'erreur, 0.1 permet de corriger l'erreur en 10 increments de temps. CFM: (Constraint force mixing) permet de donner de l'élasticité sur les contacts. 'Penetration' (Contact Surface Layer) indique une tolerance sur la pénétration des objets. (voir documentation de ODE pour plus de details). On utilise un ERP proche de 1 et un CFM proche de 10-5 pour obtenir un monde très rigide, un ERP proche de 0.1 et un CFM proche de 1.0 pour un monde plus souple. Vous pouvez calculer ces valeurs automatiquement à partir des propriétés d'un ressort en cliquant sur le bouton ... Dans ce cas, vous devez re-calculer les valeurs à chaque changement du Time Step.
  5. Rigid Bodies 'Auto Disable' flag: Indique si la gestion de l'auto disable est activé ou pas. Si elle est activée il est préférable d'utiliser les valeurs ERP/CFM/Penetration prévues à cet effet (stabilité): le plus important étant d'interdire les interpénétrations supérieures à 0.0001 m.
  6. Gravity: fixe la valeur du vecteur de gravité dans le monde.
  7. Time step: incrément de temps entre 2 itérations du moteur physique exprimé secondes simulées. Plus l'incrément de temps est élevé, moins la simulation physique est stable et moins elle consomme de temps CPU. Dans l'autre sens, plus l'incrément de temps est petit plus la simulation est stable et consomme du temps CPU. La valeur par défaut est 0.01s (10ms) : cette valeur offre le meilleur rapport qualité/consommation de CPU. Les erreurs numériques sont moins importantes avec les valeurs 0.001, 0.002, 0.004, 0.005, 0.01.
  8. Method: indique l'algorithme que le moteur physique doit utiliser pour faire évoluer la simulation. La méthode 'Solver' est plus précise que la méthode 'Itérative' mais plus lente aussi.
  9. Static/Viscous torque threshold: Seuil de déclenchement des couples statiques et visqueux des axes de rotation des jointures. Si la vitesse de rotation de l'axe de la jointure est en dessous du seuil, c'est le couple statique qui s'applique; le couple visqueux au delà. Dans la réalité le seuil = 0 : en simulation il doit être réglé en fonction de la granularité de la simulation (time step).
  10. Gravitational forces: gestion des forces gravitationnelles. Il est possible de régler la constante gravitationnelle G ainsi que l'approximation de la génération des forces. La méthode qui consomme le moins de temps CPU est Center/Center (pas de découpage des géométries et application des forces directement sur leur centre de gravité). Les méthodes Subdivide XX découpent les entités suivant leur plus grande longueur, XX fois. Puis, les forces sont calculées de centre à centre pour chaque élément découpé. La complexité du système est (Nombre de géométries*Nombre de géométries) * (XX*XX). (XX=1 pour la méthode Center/Center). Le valeur G est fixée en entrant la valeur constante V puis l'exposant P. Le résultat est: G=V*10e(-P).
  11. Absolute North: position du nord absolu utilisée par le capteur d'angle absolu par exemple (AbsoluteCompass device).

 

Les boutons G et Gravity restaurent la valeur par défaut. 

 

Paramètres du simulateur:

 

 

  1. Execute world : nom du monde (*.mworld) qui devra être chargé au démarrage de la simulation. Le monde est un de ceux définis dans le projet.
  2. Run mode : indique si la simulation démarrage en mode PAUSE ou en more RUN.
  3. EXEC settings file: force Exec à démarrer avec un fichier de configuration spécifique.
  4. Viewpoint position: position du point de vue au démarrage de la simulation (Voir Bookmark).
  5. Instances count: nombre d'instance du simulateur à démarrer. Chaque instance est ouverte dans une nouvelle fenêtre.
  6. First TCP port: port TCP de la premiere instance du simulateur. L'instance suivante utilise First TCP port+1 etc.

 

Onglet Execute:

 

 

Liste des programmes à exécuter au démarrage de la simulation. Le fait de décocher la ligne désactive l'exécution automatique de l'application. 

Liste des arguments rajoutés automatiquement par Exec au démarrage de l'application. 

 

Onglet Data Servers:

 

 

Certains plugins de compatibilité accrochés aux robots (Configuration des PHX) ont besoin de connaître le numéro de port TCP/IP ou le port de communication (COMxx) qu'ils doivent utiliser. L'onglet Data servers remonte à la configuration tous les plugins qui ont déclaré une variable à renseigner. Par exemple si plusieurs robots sont accessibles via un port série virtuel, il faut impérativement attribuer un numéro de port différent à chacun. Les serveurs Urbi pour LEGO MINDSTORM NXT par exemple doivent être montés chacun sur un port TCP/IP. Dans la capture d'écran si dessus, la configuration a détecté que le robot "/robot" a besoin de 2 ports TCP/IP. Les valeurs 40000 et 50000 seront passées aux plugins qui monteront eux même leur propre serveur. 

 

En conclusion nous pouvons dire que Data Servers sert à renseigner un numéro (de port série ou TCP) qui devra être utilisé par le plugin de compatibilité pour monter son serveur. Il ne faut pas confondre cette fonctionnalité avec Data Exchange ci-après : 

 

Onglet Communication ports:

 

Communication Ports est utilisé pour créer un port de communication entre le monde réel et une device simulée (serveur TCP). Le port lit et écrit les données sur la device sélectionnée (voir plugin de Communication Externe). 

 

Onglet Overrides:

 

 

Overrides fonctionne comme Data Servers mais cette fois-ci pour surcharger des variables mises à disposition par les équipements embarqués. 

 

Certains équipements proposent des options qui peuvent (ou doivent) être modifiées avant l'exécution. Par exemple un point d'accès WIFI 802.11 propose un nom de réseau par défaut. Si vous désirez paramétrer plusieurs réseaux dans votre simulation vous aurez le choix entre: 

- Créer des équipements qui portent des noms de réseau différent ou, 

- Utiliser le même équipement pour tous les réseaux et surcharger le nom du réseau dans Overrides. Cette dernière solution est bien plus pratique à utiliser puisque vous n'avez pas à redéfinir un nouvel équipement. 

 

Également, dans certains cas Overrides est un collecteur de fonctionnalités qui vous permettent d'outre passer le paramétrage d'un équipement et faire des essais impossible à reproduire en réalité (par exemple porter la distance d'un émetteur/récepteur 802.11 à 1024 Km sans altérer sa configuration).

Documentation v4.7 (18/01/2015), Copyright (c) 2015 anyKode. All rights reserved.
What do you think about this topic? Send feedback!