IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Connection à ROS dans un docker depuis localhost


Sujet :

Embarqué

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Par défaut Connection à ROS dans un docker depuis localhost
    Bonjour,

    je me permets de vous posez une question concernant mon installation ros sur docker. Je me suis fait un docker basé sur vos conseils dans lequel j'ai ros qui tourne proprement (j'ai pu publier des topics manuellement avec rostopic et tout fonctionne bien). Je souhaite maintenant développer une page web qui interagit avec ros (qui tourne dans le docker) via rosbridge. Je ne souhaite pas mettre ma page web dans le docker, car je ne veux pas redéployer à chaque modification. Donc j'aurais souhaité m'y connecter avec rosbridge et pour cela je dois spécifier l'adresse et le port de ROS_MASTER_URI et je ne trouve pas les bons paramètres... (Je lance ma page web à partir d'un server tomcat).

    Voici quelques élément pour illustrer mon installation:

    voici une list des topics en place:
    /foiler/motion_controller/engine_rpm_controller/command
    /foiler/motion_controller/foil_cantangle_controller/command
    /foiler/motion_controller/foil_pullout_controller/command
    /foiler/motion_controller/joint_states
    /foiler/motion_controller/rudder_angle_controller/command
    /foiler/motion_controller/twist
    /rosout
    /rosout_agg

    J'ai lancé la commande du server rosbridge:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    > roslaunch rosbridge_server rosbridge_websocket.launch
    
    PARAMETERS
     * /rosapi/params_glob:[*]
     * /rosapi/services_glob:[*]
     * /rosapi/topics_glob:[*]
     * /rosbridge_websocket/address: 
     * /rosbridge_websocket/authenticate: False
     * /rosbridge_websocket/bson_only_mode: False
     * /rosbridge_websocket/delay_between_messages: 0
     * /rosbridge_websocket/fragment_timeout: 600
     * /rosbridge_websocket/max_message_size: None
     * /rosbridge_websocket/params_glob:[*]
     * /rosbridge_websocket/port: 9090
     * /rosbridge_websocket/retry_startup_delay: 5
     * /rosbridge_websocket/services_glob:[*]
     * /rosbridge_websocket/topics_glob:[*]
     * /rosbridge_websocket/unregister_timeout: 10
     * /rosbridge_websocket/use_compression: False
     * /rosdistro: melodic
     * /rosversion: 1.14.3
    
    NODES
      /
        rosapi (rosapi/rosapi_node)
        rosbridge_websocket (rosbridge_server/rosbridge_websocket)
    
    ROS_MASTER_URI=http://localhost:11311
    
    process[rosbridge_websocket-1]: started with pid [2169]
    registered capabilities (classes):
     - rosbridge_library.capabilities.call_service.CallService
     - rosbridge_library.capabilities.advertise.Advertise
     - rosbridge_library.capabilities.publish.Publish
     - rosbridge_library.capabilities.subscribe.Subscribe
     - <class 'rosbridge_library.capabilities.defragmentation.Defragment'>
     - rosbridge_library.capabilities.advertise_service.AdvertiseService
     - rosbridge_library.capabilities.service_response.ServiceResponse
     - rosbridge_library.capabilities.unadvertise_service.UnadvertiseService
    process[rosapi-2]: started with pid [2170]
    [INFO] [1548667268.143774]: Rosbridge WebSocket server started on port 9090
    Voici le script js pour me connecter à ros:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ros = new ROSLIB.Ros({url : 'ws://172.17.0.2:11311'});
    Faut-t-il lancer le server rosbridge sur la machine locale?
    J'ai essayer de lancer le container en utilisant l'option pour que l'on soit sur le même réseau et spécifier localhost, mais cela ne change rien.

    J'espère que vous avez un peu de temps pour considérer ma demande.
    Salutations
    Yvus

    Nota Bene: Concernant votre tuto, je pense qu'il manque une ligne dans le Dockerfile qui lance le ros_entrypoint.sh à chaque construction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ENTRYPOINT ["/ros_entrypoint.sh"]

  2. #2
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Par défaut
    Bonjour,

    Je suis désolé d'avoir polué votre forum, car j'ai pu résoudre le problème simplement: il faut spécifier le port du rosbridge server et non celui du ROS_MASTER_URI! Mais comme toujours formuler m'a question m'a aidé à y répondre...

    J'ai donc pu lancer la page web, mais il faut faire attention de lancer le docker avec l'option où 9090 est le port du server rosbridge. On n'utilise pas l'option qui est superflue. Puis dans le javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ros = new ROSLIB.Ros({url : 'ws://172.17.0.2:9090'});
    Merci
    Yvus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [APPLET] beans dans applet appelé depuis une page HTML
    Par Néo-Tony dans le forum Applets
    Réponses: 1
    Dernier message: 04/01/2006, 14h54
  2. gestion des connections à internet dans un réseau
    Par evarisnea dans le forum Web & réseau
    Réponses: 3
    Dernier message: 21/10/2005, 19h15
  3. Réponses: 4
    Dernier message: 01/10/2005, 17h59
  4. CONNECT BY dans InterBase
    Par NickoPier dans le forum InterBase
    Réponses: 9
    Dernier message: 22/03/2005, 08h24
  5. Réponses: 4
    Dernier message: 25/01/2005, 22h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo