#ROS服务

ros服务

services(服务)是节点之间通信的另外一种方式,服务允许节点发送一个请求(request)并获得一个响应(response)

roseservice list

ex:input: roseservice list
output:
/clear
/kill
/reset
/rosout/get_loggers
/rosout/set_logger_level
/spawn
/teleop_turtle/get_loggers
/teleop_turtle/set_logger_level
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/get_loggers
/turtlesim/set_logger_level

rosservice type

ex:input:rosservice type /clear
output:std_srvs/Empty
服务的类型为empty(空)表示调用这个服务不需要参数(也就是说他在发出请求(request)不发送数据,在接受响应(response)时也不接受数据)

rosservice call

rosservice call [services] [args]

rosservice call /clear
因为服务类型为空,所以args为空

可以观察到清楚了小海龟的运动轨迹
有参数的情况
ex:input:rosservice type /spawn | rossrv show
output:
float32 x
float32 y
float32 theta‘
string name

string name
ex:input: rosservice call /spawn 2 2 0.2 “”
output:name: “turtle2”
该调用返回了新产生的乌龟的名字

rosparam

rosparam能让我们在ros参数服务器(parameter server)上存储和操作数据。参数服务器能够存储整形(int)、float、bool、字典(dicitionaries)、列表(list)

rosparam list

ex:input:rosparam list
output:
/rosdistro
/roslaunch/uris/host_b_desktop__45881
/rosversion
/run_id
/turtlesim/background_b
/turtlesim/background_g
/turtlesim/background_r

rgb三个来表示颜色的参数

rosparam set/get

ex:input: rosparam set /turtlesim/background_r 150 #设置颜色
rosservice call /clear 调用服务使参数生效
观察窗口颜色变换
ex:input:rosparam get /turtlesim/background_r
out: 150
ex:input:rosparam get / #显示参数服务器上的所有内容
out:
osdistro: 'melodic


roslaunch:
uris: {host_b_desktop__45881: ‘http://b-desktop:45881/’}
rosversion: '1.14.13


run_id: ae9cb730-2d0a-11ee-8fc7-00e04c59c853
turtlesim: {background_b: 255, background_g: 86, background_r: 150}

rosparam dump /load

将所有参数写入 params.yaml文件
b@b-desktop:~$ rosparam dump params.yaml
将 params.yaml文件参数载入新的命名空间
b@b-desktop:~$ rosparam load params.yaml copy_turtle
b@b-desktop:~$ rosparam get /copy_turtle/
/copy_turtle/rosdistro
/copy_turtle/roslaunch/uris/host_b_desktop__45881
/copy_turtle/rosversion
/copy_turtle/run_id
/copy_turtle/turtlesim/background_b
/copy_turtle/turtlesim/background_g
/copy_turtle/turtlesim/background_r

b@b-desktop:~$ rosparam get /copy_turtle/turtlesim/background_r
150

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值