User Tools

Site Tools


neurali:ros_services

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
neurali:ros_services [2016/07/04 19:17] profproneurali:ros_services [2020/06/08 22:20] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +< [[neurali:ros]]
  
 +====== ROS services ======
 +
 +Tutorial: http://wiki.ros.org/rospy_tutorials/Tutorials/WritingServiceClient
 +
 +Prerequisito: [[neurali:ros nodes]].
 +
 +Esistono tre modi in cui i nodes possono comunicare tra loro
 +
 +=====Messages=====
 +Ogni processo (node) può ;;pubblicare;; e/o ;;;sottoscrivere;;; dei //messaggi// (originati da altri node o da roscore)
 +
 +===== Services =====
 +
 +Ogni processo (node) può ;;fornire;; e/o ;;;richiedere;;; anche dei //servizi// (originati da altri node o da roscore). 
 +
 +Pensare ai servizi come a funzioni utilizzabili a distanza da altri processi.
 +
 +===== Parameters =====
 +
 +Ogni processo (node) possiede anche dei //parametri// a cui possono ;;;;accedere;;;;  a distanza altri processi (node)
 +
 +Pensare ai parametri come alle variabili globali di un programma.
 +
 +http://wiki.ros.org/Parameter%20Server
 +
 +A parameter server is a shared, multi-variate dictionary that is accessible via network APIs
 +
 +===== Comandi =====
 +
 +  * rosservice list
 +  * rosservice type 
 +  * rossrv show
 +  * rosparam list
 +  * rosparam get
 +  * rosparam set
 +
 +  
 +  rosservice list
 +
 +>> /rosout/get_loggers
 +>> /rosout/set_logger_level
 +
 +Come si può leggere nell'output del precedente comando, e del prossimo, //rosout// è usato anche come  //namespace//
 +
 +  rosparam list
 +
 +>> /rosout/run_id
 +
 +
 +  rosservice type nome/servizio
 +  rosservice type rosout/get_loggers
 +  rossrv show tipo_servizio
 +
 +Si possono anche usare insieme
 +
 +  rosservice type nome/servizio| rossrv show
 +
 +Richiedere un servizio
 +
 +  rosservice call nome/servizio argomenti
 +
 +Per esportare e importare
 +
 +  rosparam dump params.yaml
 +  rosparam load params.yaml nuovo_namespace