User Tools

Site Tools


neurali:ros_configurazione_network

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
neurali:ros_configurazione_network [2016/07/04 19:18] profproneurali:ros_configurazione_network [2020/06/08 22:20] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +< [[neurali: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. 
 +    * <code>export ROS_MASTER_URI=http://hal:11311</code>
 +  * **Avviare master**: //roscore// va avviato sulla macchina hal
 +  * avviare un //listner//: 
 +    * <code>rosrun rospy_tutorials listener.py</code>
 +  * avviare un //talker//:
 +    * <code>rosrun rospy_tutorials talker.py</code>
 +
 +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
 +
 +<code>
 +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/
 +</code>
 +
 +Elenco nodi (hostname, nel mio caso vale pcmobile)
 +
 +  rosnode machine pcmobile
 +
 +<code>
 +/base_controller_spawner
 +/ekf_localization
 +/gazebo
 +/robot_state_publisher
 +/rosout
 +/twist_marker_server
 +/twist_mux
 +</code>
neurali/ros_configurazione_network.txt · Last modified: 2020/06/08 22:20 by 127.0.0.1