User Tools

Site Tools


neurali:ros_configurazione_network

< ros

Configurazione network

http://wiki.ros.org/ROS/NetworkSetup

Un sistema ROS può essere composto da centinaia di nodi, sparsi su diversi calcolatori. I nodi potrebbero aver bisogno di comunicare tra loro.

Esempio con due computer, su rete locale, ma vale ovunque:

  • marvin.example.com : 192.168.1.1
  • hal.example.com : 192.168.1.2

NOTA: Solo uno dei due esegue ros core

Testare la rete

Pingare se stesso e gli altri (tutte le macchine reciprocamente)

mario@hal ~ $ hostname
mario@hal ~ $ ping hal
mario@hal ~ $ ping 192.168.1.2
mario@hal ~ $ ping marvin

In certi casi si può modificare il file /etc/hosts, oppure usare una variabile di ambiente che specifica dove si trova il server ros core

export ROS_IP=10.0.0.1

Nel caso di test locali, prima di avviare ROS CORE impostare

export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311

Avviare ROS

http://wiki.ros.org/ROS/Tutorials/MultipleMachines

  • Tutti i node devono essere configurati per usare lo stesso master, tramite ROS_MASTER_URI.
    • export ROS_MASTER_URI=http://hal:11311
  • Avviare master: roscore va avviato sulla macchina hal
  • avviare un listner:
    • rosrun rospy_tutorials listener.py
  • avviare un talker:
    • rosrun rospy_tutorials talker.py

Ora per magia, grazie all'intermediario ROSCORE, il listner pur trovandosi su una macchina diversa dal talker, riesce ad ascoltare i suoi messaggi. Ovviamente non è obbligatorio che il listner si trovi sulla stessa macchina dove si trova roscore.

Non devo scrivere applicazioni che usano il protocollo TCP o UDP. Basta che sull'altro host ci sia installato (e configurato) ROS e rosrun….

Provare:

rostopic list

Esempio di talker e Subscriber

http://wiki.ros.org/roscpp_tutorials/Tutorials/WritingPublisherSubscriber


Nel mio computer, quando avvio roscore, ottengo in output

started roslaunch server http://pcmobile:36039/
ros_comm version 1.11.13

SUMMARY
========
PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.13

NODES
auto-starting new master
process[master]: started with pid [4188]
ROS_MASTER_URI=http://pcmobile:11311/

Elenco nodi (hostname, nel mio caso vale pcmobile)

rosnode machine pcmobile
/base_controller_spawner
/ekf_localization
/gazebo
/robot_state_publisher
/rosout
/twist_marker_server
/twist_mux
neurali/ros_configurazione_network.txt · Last modified: 2020/06/08 22:20 by 127.0.0.1