Connecter / appareiller - Snap, le Visualisateur et Ergo-jr

Bonjour,

Sous chrome, si je lance à partir de https://simu.poppy-project.org/ l’editeur snap puis le visualisateur (qui donne les infos hôte 127.0.01 et port 8080), la connection ne se fait jamais avec le visu.
Quelles sont les valeurs à donner sous snap aux variables host (par défaut localhost) et port (par défaut 6969) , ou quelles sont les autres paramétrages à modifier pour établir cette connexion ?
Merci d’avance…

Bonjour @pcfc,

Pour un robot réel:

  • Dans snap, il faut compléter le paramètre du bloc “set $robot host” avec <nom_du_robot>.local
  • Dans le visualisateur, il faut compléter l’encart “Hôte” avec <nom_du_robot>.local puis cocher (ou re-cocher) la case “synchroniser” pour actualiser ces paramètres

–> les valeurs des ports sont, pour un robot réel, toujours celle indiqué par défaut, à savoir: 6969 pour snap et 8080 pour le visualisateur

Pour un robot simulé:
(cf Comment avoir plusieurs robots simulés à partir d'un unique robot réel)

Que vous ayait utiliser la commande python:

PoppyErgoJr(simulator="poppy-simu", use_snap=True, snap_port=xxxx, use_http=True, http_port=yyyy)

ou la commande terminal:

poppy-services --poppy-simu --http --http-port xxxx --snap --snap-port yyyy poppy-ergo-jr

dans snap, comme dans le visualisateur, vous devrez compléter les paramètres par les valeurs de port spécifiés dans la commande. La valeur du host reste la même: <nom_du_robot>.local

Dans les deux cas
Pour le visualisateur, il est préférable d’entrée l’adresse ip au lieu de <nom_du_robot>.local En effet dans snap, cette valeur est automatiquement remplacer, pas dans le visualisateur! Pour connaître l’adresse ip de votre robot, entrée simplement cette adresse dans votre navigateur: http://<nom_du_robot>.local:6969/ip/

Attention
Si vous utilisé la version en ligne de snap (à cette adressse http://snap.berkeley.edu/snapsource/snap.html) et/ou la version en ligne du visualisateur (à cette adresse: http://simu.poppy-project.org/poppy-ergo-jr/), lors de la connexion (en http://) avec le robot et ces pages web (en https://) votre navigateur bloquera par défaut cette communication:
un bouclier apparaîtra à l’extrémité droite de la barre d’adresse de votre navigateur:


il vous faudra cliquer et “accepter les script à risque” et actualiser la page. la barre d’adresse sera alors de cette forme:

en effet, dans une navigation classique sur internet, il peut être risqué qu’une page https:// exécute des commande non sécurisé de type http:// mais dans le cadre de notre utilisation du robot, aucun problème :wink:

Bonjour,

je ne suis pas certain de bien comprendre…
En connectant un robot réel, j’ai bien accès au bloc “set $robot host” (sinon, je n’ai pas ce bloc sous snap) mais comment le bloc “set $robot host” peut-il interroger le robot sans connaitre son adresse ?.. et si ce bloc n’est accessible que sur le robot réel (non ?), alors l’utilisation du visualisateur rend nécessaire la connexion avec un robot réel ???..
J’ai malgré tout fait cette manip (l’adresse que je récupère sur le robot est du style 169.254.51.251), j’ai rentré cette adresse dans le visualiseur mais je n’ai malheureusement toujours pas de connexion, que ce soit avec un port 8080 ou 6969…

Bonjour @pcfc ,

D’abord quelques généralités pour mieux comprendre:

De fait, si vous souhaitez utiliser (visualiser, programmer, etc) un robot, une instance de celui-ci doit s’exécuter quelque part. Cette instance se lance automatiquement sur les robots réels.

Lorsque que l’instance du robot s’exécute, plusieurs serveurs (sur différents ports) sont créés et permettent d’accéder à différents types de fonctionnalités/ services du robot. Par exemple l’API de snap servie sur le port 6969 ou l’API REST sur le 8080 (et d’autres…). Ces serveurs sont donc accessibles sur le réseau et répond à des requêtes url.
Ainsi lorsque vous chargez le projet “pypot-snap-bloc” (disponible sur le robot réel ou ici) apparait le bloc “set $robot host <<nom_du_robot>.local>" qui envoie la requête: http://<nom_du_robot>.local:6969/ip pour obtenir l’ip du robot sur le réseau. Ensuite, il remplacera l’alias <nom_du_robot>.local par l’ IP pour améliorer le “ping” avec le robot. Les url acceptés par votre robot sont listés ici : http://<nom_du_robot>.local:6969/

Ainsi le robot exécute les requêtes url envoyées par snap sur le port 6969, le visualisateur, lui, interroge le robot (via des requêtes url sur le port 8080) pour connaître la position des moteurs du robot. Ces valeurs de port ne sont à modifier que pour des besoins très spécifiques et dont il n’est pas question ici.
Et donc, pour envoyer ces requêtes il est nécessaire de connaître à quelle adresse: à l’alias <nom_du_robot>.locale (qui est remplacée ensuite par l’ip) pour snap, et directement à l’ip pour le visualisateur.

Une fois la requête envoyée, il faut que quelqu’un soit là pour répondre :wink: et j’en reviens à votre 1ère question:

Non, elle rend nécessaire la connexion avec une instance du robot. Vous pouvez également installer et exécuter celle-ci sur votre ordinateur. La marche à suivre est la même qui si vous souhaitiez utiliser vrep Installation · Documentation of the Poppy Platform

Ensuite concernant votre problème:

C’est très étrange, si l’adresse http://<nom_du_robot>.local:6969 répond, l’adresse http://<ip_du_robot>:8080 devrait fonctionner !!!
pourriez vous vérifier si les 2 répondent (en les entrant simplement dans la barre d’adresse de votre navigateur)
pourriez vous également me donner plus de détails sur votre configuration: type de connexion (direct ethernet, router, réseau local, etc) cf Se connecter au robot · Documentation of the Poppy Platform