Logo Poly
L'environnement CAVE
-----

L'environnement CAVE

Grappe d'affichage

L'environnement d'affichage CAVE est constitué d'une grappe de 5 PCs. D'autres machines sont aussi présentes pour des calculs ou pour supporter des appareils spécialisés.
  • cvmaitre
    Cette machine sert à lancer les applications de la CAVE.

  • cvdroit, cvgauche, cvfond, cvsol
    Machines dédiées à l'affichage sur les murs de la CAVE (une machine par projecteur)

  • cinq.recherche.polymtl.ca
    Machine seule tout au fond, accessible du réseau extérieur

  • deux et trois
    Stations de travail graphiques (trois : écran autostéréoscopique)

  • bonne.recherche.polymtl.ca
    Serveur de fichiers
Toutes les machines fonctionnent sous Linux. La machine "bonne" fait office de serveur NIS et serveur NFS. Trois partitions sont montées par NFS sur toutes les machines: les répertoires utilisateur, de même que "/.../stk_bonne" et "/.../stk_bonne_fedora" qui contiennent des programmes de visualisation 3D tels que VRJuggler ou OpenSceneGraph.

Projecteurs

Il y a 4 projecteurs de marque Optoma. Ils projettent une image 1280x720 à 120 Hz. Chaque projecteur est connecté à un PC qui lui est dédié. Les noms de ces PCs sont cvgauche, cvdroit, cvfond, cvsol.

Une lumière sur le dessus de chaque projecteur indique son état (vert = power ON/OFF, jaune = standby ON/OFF). Quand vous arrivez dans la CAVE, les projecteurs devraient normalement être en mode "standby". Pour les allumez, utilisez la télécommande (bouton "POWER"). Vous devriez normalement voir apparaitre un écran gris.

Si, après les avoir allumer, les projecteurs affichent plutôt un écran bleu clair, c'est peut-être que les écrans sont en mode « sommeil ». Pour les éveiller, exécuter la commande " reveille-les.sh ".

Il est aussi possible qu'un problème intermittent (et un peu trop courant) fasse que les serveurs X disparaissent sur les quatre machines du cluster. Dans ce cas, le plus simple est de redémarrer les machines avec la commande " cvreboot.sh ".

Important: Quand vous quittez la CAVE, veuillez éteindre les projecteurs en pressant le bouton "POWER" deux fois.

En cas de désalignement des projecteurs

Pour aligner les projecteurs, on put utiliser ces cibles: 1728x1078.png ou 11920x1080.png

Lunettes stéréoscopiques

Veuillez faire attention de bien refermer la branche droite des lunettes afin de ne pas décharger inutilement leur pile.

Flock of Birds

Ce dispositif fabriqué par Ascension Technologies permet de d'obtenir la position et l'orientation de senseurs attachés aux lunettes, au Wand et au gant. Le dispositif est composé d'un "Extended Range Controller" et de 3 "Slaves" (un par senseur). Le "Extended Range Controller" fait la synthèse des informations fournies par ses "slaves" et les retransmet via une communication par port série à 38400 bauds à la machine "deux".

Sur deux, un "demon" (programme en arrière-plan) fonctionne en permanence et se charge de communiquer avec les Flocks. Le programme s'appelle VRPN (Virtual Reality Peripheral Network). Celui-ci transmet ensuite par réseau les informations récupérées des Flocks. VRJuggler a été modifié afin d'être capable de communiquer avec ce programme (ajout du chunk vrpnSensor).

=> Adresse VRPN de ce senseur : "flock@deux".

En fonctionnement normal, un bouton rouge doit être allumé de façon continue sur chacun de ces appareils. Vous pouvez obtenir directement les informations des trackers avec la commande: " vrpn_print_devices.sh flock ".

Exemple de sortie:

 Tracker flock@deux, sensor 0:
         pos (-0.26, -0.49,  2.29); quat ( 0.24, -0.53,  0.28,  0.76)
 Tracker flock@deux, sensor 1:
         pos (-0.23, -0.11,  2.34); quat (-0.02, -0.06,  0.13,  0.99)
 Tracker flock@deux, sensor 2:
         pos (-0.27, -0.05,  2.34); quat ( 0.52, -0.23,  0.82,  0.07)
 Tracker flock@deux, sensor 0:
         pos (-0.27, -0.49,  2.29); quat ( 0.24, -0.53,  0.28,  0.76)
 Tracker flock@deux, sensor 1:
         pos (-0.23, -0.11,  2.34); quat (-0.02, -0.06,  0.13,  0.99)
 Tracker flock@deux, sensor 2:
         pos (-0.27, -0.05,  2.34); quat ( 0.52, -0.23,  0.82,  0.07)
 Tracker flock@deux, sensor 0:
         pos (-0.27, -0.49,  2.29); quat ( 0.24, -0.53,  0.28,  0.76)

( Vous pouvez aussi faire " vrpn_print_devices.sh flock | sed -n '/0:/,+1 p' " pour ne voir que le senseur #0 ou " vrpn_print_devices.sh flock | sed -n '/1:/,+1 p " pour ne voir que le senseur #1 ou encore " vrpn_print_devices.sh flock | sed 'N; s/\n//' " pour regrouper les lignes deux à deux. )

Remarques:
  • Les positions sont données en mètres et avec un système d'axes différent de celui utilisé habituellement dans la CAVE. Les fichiers de configurations de vrjuggler font un changement de repère pour revenir au repère habituel.
  • Au besoin, utiliser le script " vrpn_restart.sh " pour relancer les serveurs VRPN.
  • En cas de problème avec les flocks:
    • Vérifiez que le daemon vrpn est bien lancé sur deux par la commande:
      benoit@cinq:/home/users/benoit$ ssh deux 'ps -Af | grep vrpn'
      vrpn   6190   1  0 Nov07 ?  00:13:32 /net/bonne/exports/[...]/vrpn_server [...]
           # (Ici c'est donc OK, le démon existe et a le numéro de process 6190)
      
    • Si une des lumières des flocks est éteinte ou clignotante, il faut faire un reset des flocks en suivant la procédure suivante:
      • Faire la commande " vrpn_stop.sh "
      • Mettez les 3 slaves, puis le Extended Range Controller (ERC) en position "standby" (le bouton pour le ERC se trouve derrière)
      • Rallumez le ERC sa lumière devrait clignoter 4 ou 5 fois puis s'éteindre.
      • Attendez 5 secondes
      • Allumez (Position "Fly") le premier slave (celui juste en dessous du ERC) sa lumière devrait clignoter 4 ou 5 fois puis s'éteindre.
      • Attendez 5 secondes
      • Allumez le deuxième slave sa lumière devrait clignoter 4 ou 5 fois puis s'éteindre.
      • Attendez 5 secondes
      • Allumez le dernier slave sa lumière devrait clignoter 4 ou 5 fois puis s'éteindre.
      • Testez avec la commande vrpn_print_devices.sh flock.

Wand

Fabriqué par la société Fakespace. Il est connecté via une communication sur port série à 1200 bauds à la machine trois. Il comporte 3 boutons pressoirs (valeurs ON ou OFF) et un joystick analogique (2 directions).

Il est aussi géré par un démon VRPN cette fois sur la machine trois. Un problème avec ce driver fait que pour l'instant seuls les boutons pressoirs sont gérés correctement.

=> Adresse VRPN de ce senseur : "wanda@trois".

Vous pouvez tester son bon fonctionnement par la commande: vrpn_print_devices.sh wanda. Ensuite essayez de presser les boutons du Wand. Un exemple de sortie est:

Opened wanda@trois as: Tracker Button Analog Dial Warning/Error.
Press ^C to exit.
Button wanda@trois, number 0 was just pressed
Button wanda@trois, number 0 was just released
Button wanda@trois, number 0 was just pressed
Button wanda@trois, number 0 was just released
Button wanda@trois, number 1 was just pressed
Button wanda@trois, number 1 was just released
Remarques:
  • Au besoin, utiliser le script " vrpn_restart.sh " pour relancer les serveurs VRPN

Client VRPN

Quelques liens pour développer un client VRPN :

-----
© 2000-2025, Polytechnique Montréal - LIRV - Tous droits réservés
http://cours.polymtl.ca/inf6802/wwwrv/voute/environnement.php
Benoît Ozell