ROS服务和参数

根据小海龟的例子讲解ROS服务和参数。
首先启动:roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
一:ROS服务
服务是节点相互通信的另一种方式。服务允许节点发送请求并接收响应。
二:rosservice的使用
rosservice list //列出当前的所有服务个数
rosservice call //回应服务
rosservice type / /print service type
rosservice find // find services by service type
rosservice uri //print service ROSRPC uri
当我们使用rosservice list命令时,终端的输出如下:

/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命令。
rosservice type命令的格式如下:
roservice type [service]
例如:
rosservice type /clear
输出结果为:
txj@txj:~$ rosservice type /clear
std_srvs/Empty
可以看出,输出的服务数据类型是空的,表示当它发送请求的时候,没有发送数据,接收响应的时候,也没有接收到数据。
下一步,我们使用rosservice call命令
该命令的语法格式为:
rosservice call [service]
例如:
rosservice call /clear
输出结果是,我们发现小海龟的运动轨迹被清除了。

三:使用rosparam
rosparam允许你在ROS参数服务器上存储和操纵数据。参数服务可以存储整型、浮点型、布尔型、字典和列表等类型的数据。
用法:
rosparam set set parameter
rosparam get get parameter
rosparam load load parameters from file
rosparam dump dump parameters to file
rosparam delete delete parameter
rosparam list list parameter names

首先,我们来看一下有哪些参数存储在参数服务器上?
rosparam list
输出的结果为:
txj@txj:~$:rosparam list
/background_b
/background_g
/background_r
/rosdistro
/roslaunch/uris/host_txj__33805
/rosversion
/run_id
可以看出,turtlesim节点有3个参数在参数服务器上用于设置窗口的背景色,现在我们使用rosparam set来改变一个参数的值看一下有什么变化。
rosparam set /background_r 150
上面的命令改变了参数的值,现在我们还需要调用/clear服务来使更改的参数值生效。
rosservice call /clear
可以看到小海龟的背景颜色改变了。

我们还可以将参数服务器上的所有内容转储到自命名的文件中:
rosparam dump params.yaml
params.yaml文件被保存在当前终端目录下。

如果直接打开文件改变里面的参数,然后在终端下运行:rosparam load params.yaml 和rosservice call /clear 可以看到小海龟的背景颜色也是会改变的。

我们还可以将params.yaml文件的内容加载到新的命名空间:
roaparam load params.yaml copy
接着,我们来获取新的命名空间中的参数的值:
rosparam get /copy/background_b
输出结果为:
txj@txj:~$ rosparam get /copy/background_g
86

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值