Table of Contents

< ros

ROS services

Tutorial: http://wiki.ros.org/rospy_tutorials/Tutorials/WritingServiceClient

Prerequisito: 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
/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