ROS学习笔记7(理解ROS服务和参数)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

本教程介绍了ROS 服务和参数的知识,以及命令行工具rosservicerosparam的使用方法。

1 什么是ROS服务

service服务是节点之间的另外一种通信方式。

service服务允许一个节点发送一个请求 request 和接受一个回复 response

2 rosservice用法

rosservice命令可以在client/service之间的框架中,快速显示服务。

rosservice的用法为:

$ rosservice list         # print information about active services
$ rosservice call         # call the service with the provided args
$ rosservice type         # print service type
$ rosservice find         # find services by service type
$ rosservice uri          # print service ROSRPC uri

2.1 rosservice list

运行小海龟:

$ roscore
$ rosrun turtlesim turtlesim_node   
$ rosrun turtlesim turtle_teleop_key

输入查看rosservice list命令:

/clear										# 清除
/kill										# 终止
/reset										# 重置
# rosout节点提供的服务
/rosout/get_loggers
/rosout/set_logger_level
/rqt_gui_py_node_6571/get_loggers
/rqt_gui_py_node_6571/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

2.2 rosservice type

标准用法:

$ rosservice type [service]

例如:

$ rosservice type /turtlesim/get_loggers 
# echo
roscpp/GetLoggers

2.3 rosservice call

标准用法:

$ rosservice call [service] [args]

例如:
在这里插入图片描述

$ rosservice call /clear

在这里插入图片描述

发现路径被清除了。

➜  ~ rosservice type /spawn  | rossrv show
# echo
float32 x
float32 y
float32 theta
string name
---
string name

spawn命令可以在特定的位置(x, y)和方位theta重生一只小海龟

➜  ~ rosservice call /spawn 2 2 0.2 "liukai_turtle"  
# echo
name: "liukai_turtle"

现在看起来应该是这样子,有2只小乌龟了
在这里插入图片描述

3 rosparam用法

rosparam使得我们能够存储并操作ROS参数服务器Parameter Server上的数据。参数服务器能够存储整型、浮点、布尔、字符串、字典和列表等数据类型。

rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:
1 是整型, 1.0 是浮点型, one是字符串, true是布尔, [1, 2, 3]是整型列表, {a: b, c: d}是字典。

rosparam有很多指令可以用来操作参数,如下所示:

使用方法:

rosparam set            设置参数
rosparam get            获取参数
rosparam load           从文件读取参数
rosparam dump           向文件中写入参数
rosparam delete         删除参数
rosparam list           列出参数名

3.1 rosparam list

$ rosparam list

我们可以看到turtlesim节点在参数服务器上有3个参数用于设定背景颜色:

/background_b
/background_g
/background_r
/rosdistro
/roslaunch/uris/host_pc__46837
/rosversion
/run_id

3.2 rosparam set 和 rosparam get

标准用法:

rosparam set [param_name]
rosparam get [param_name]

例如设置背景颜色:

➜  ~ rosparam set /background_r 150
➜  ~ rosparam set /background_g 150
➜  ~ rosparam set /background_b 150
➜  ~ rosservice call /clear 

在这里插入图片描述

# 直接获取所有参数
➜  ~ rosparam get / 
# echo
background_b: 150
background_g: 150
background_r: 150
rosdistro: 'kinetic'
roslaunch:  uris: {host_pc__46837: 'http://pc:46837/'}
rosversion: '1.12.14'
run_id: 77171690-9d38-11e9-8214-40a5eff3ee5c

3.3 rosparam dump 和 rosparam load

标准用法:

rosparam dump [file_name] [namespace]
rosparam load [file_name] [namespace]

把我们刚才的这些参数保存下来:

$ rosparam dump params.yaml

清除所有参数:

# 清除所有参数:
$ rosparam delete /  
# 重新运行一次服务
$ rosservice call /clear

在这里插入图片描述

查看保存的参数文件:

$ rosparam list
# echo
/background_b
/background_g
/background_r
/rosdistro
/roslaunch/uris/host_pc__46837
/rosversion
/run_id

再把我们刚才保存的params.yaml加载进来:

# 加载保存好的参数
$ rosparam load params.yaml 
# 重新运行一次服务
$ rosservice call /clear

又回到了刚才这个背景颜色
在这里插入图片描述

七、ROS常用命令(二):rosservicerossrv、rosparam 阅读详情

相关推荐

ROS学习笔记六:理解ROS服务参数

主要介绍ROS服务参数,同时使用命令行工具rosservicerosparamROS serviceservice是节点之间互相通信的另一种方式,services允许节点发送一个请求并接收一个回应。使用rosservicerosservice -h Commands: rosservice args print service arguments rosservice call

祝 枫 7307

ROS基础教程学习笔记4-理解ROS的节点

1.安装模拟器 sudo apt-get install ros-kinetic-ros-tutorial 2.图概念概述 Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。 Messgaes:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。 Topic:话题,节点可以发布消息到话题,也可以订阅话题以接收消息。 M...

zbr794866300的博客 595

ROS学习笔记五:理解ROS topics

ROS学习笔记五:理解ROS topics本节主要介绍ROS topics并且使用rostopicrqt_plot命令行工具。例子展示roscore首先运行roscore系列服务,这是使用ROS所必需的基础roscoreturtlesim这里还要用到turtlesim例子,先运行其节点:rosrun turtlesim turtlesim_nodeturtle键盘遥控操作我们可以运行一个例程,然后

祝 枫 3万+

ROS-Tutorials笔记07理解ROS服务参数

在这一节里面,我们将介绍ROS服务参数以及使用rosservicerosparam。 首先,我们需要理解什么是ROS服务,它是节点之间相互通信的另外一种方式,如果你学习了上一节的内容,那么你应该知道节点之间是可以通过基于话题的消息来进行节点之间的通信的。而服务的通信机制是允许节点发送请求响应请求。服务基于话题的消息通信的本质区别是: 话题的通信机制是:多对多的; 服务的通信机制...

193

ROS5—理解ROS节点

这篇教程会介绍ROS图概念并讨论roscore、rosnoderosrun命令的使用。1.预备条件这里会使用轻量级的模拟器,先安装$ sudo apt-get install ros-<distro>-ros-tutorials 将替换成你的ROS版本名称。2.图概念的快速概览 节点(nodes):节点是一个利用ROS来与其他节点通信的可执行文件。 消息(messages):在顶阅或推送一个主题

InfinityForever的博客 2310

ROS学习笔记7-理解服务(services)参数(parameter)

本文内容来自官方wiki:http://wiki.ros.org/ROS/Tutorials/UnderstandingServicesParams ROS服务(service)服务也是ROS中一种通信机制,但是不同于主题的发布订阅,服务采取了一种“请求(request)-响应(response)”的机制来进行数据交换。服务有关的功能可以使用rosservice命令来进行。 ...

angelangel2014的博客 639

ROS理解参数服务器param demo

param 是一个字典,存储一些变量param_demo.cpp#include&lt;ros/ros.h&gt; int main(int argc, char **argv){ ros::init(argc, argv, "param_demo"); ros::NodeHandle nh; int parameter1, parameter2,...

Nikki_o3o的博客 3746

理解ROS参数服务动态参数

介绍ROS中如何传输参数相关的设置,还有其特有的动态参数的介绍

非晚非晚的博客 4064

ROS总结——ROS服务参数

理解ROS服务参数本博客是对http://wiki.ros.org/上ROS教程的学习总结,欢迎大家交流学习。本节讲解ROS 服务参数的知识,以及命令行工具rosservice rosparam的使用方法。1. 运行turtlesim 运行turtlesim可参考ROS总结——ROS话题,在不同的终端分别运行:$ roscore $ rosrun turtlesim turtlesim

YongqiangGao的专栏 3396

ROS7理解ROS服务参数

这篇教程介绍ROS服务参数以及使用rosservicerosparam命令行工具。假设前面的turtlesim节点还在运行。1.ROS服务服务(Services)是另一种节点间相互通信的方法。服务允许节点发送请求(request)并接收回应(response)。2.使用rosservicerosservice能简单地将服务添加到ROS的客户/服务框架中,它有很多命令能在话题中使用,如下所示:ro

InfinityForever的博客 1676

ROS参数服务

最轻松的让你理解ros参数服务器,带着ros参数是什么,作用是什么,怎么是使用这三个问题,学会ros 参数配置

u014587147的专栏 2264

ROS: 理解ROS服务参数

理解ROS服务参数ROS Services使用rosservicerosservice listrosservice typerosservice callUsing rosparamrosparam set and rosparam getrosparam dump and rosparam load ROS Services 服务(services)是节点之间通讯的另一种方式。服务允许节点发送请求(request) 并获得一个响应(response) 使用rosservice rosservice l

GungnirsPledge的博客 630

ROS2官网教程学习笔记理解ROS2参数服务器篇

ROS2官网教程学习笔记理解ROS2参数服务器篇背景准备条件学习内容1. 运行节点2. ros2 param list3. ros2 param get4. ros2 param set总结 学习目标:了解如何获得、设置、保存修改参数 背景 参数是节点的配置参数值。你可以认为参数是节点配置的一部分。参数为整数,浮点数,布尔值,字符串列表。在ROS2中,每个节点都有自己的参数。所有参数都是可动态重...

dckwin的博客 1688

7.理解ROS服务参数

确保turtlesim_node开启。 7.1 ROS Services 服务是节点之间另外一种通信方式。也就允许节点发送请求(request)并获得一个响应(response) 7.2使用rosservice 使用方法: rosservice list 输出可用服务的信息 ros...

chenglanxiang6356的博客 228

ROS基础学习笔记

本篇是对ROS基础学习的一个总结。初学者可通过本篇博文对ROS有一个总体上的了解,也可获取一些学习资料,但是无法代替详尽的学习教程;有一定ROS基础者,可以通过本篇博文对ROS的基础知识进行一个回顾,需要用到相关资料时可以进行查阅(ROS大神可以自动忽略本篇博文)。 1. 学习资料推荐 ROS官方教程(中文版):http://wiki.ros.org/cn/ROS/Tutorials ROS学习笔...

思我所 2万+

ROS系统基本功能的使用详解(基本指令/节点/服务/启动文件/动态参数

本文从创建工作空间功能包开始,介绍了其创建步骤编译方法,并详细汇总了ros的常用指令。 然后分别通过具体案例详细讲解了节点、服务、启动文件以及动态参数的创建方法使用效果。

个人博客 9985

理解ROS服务参数---ROS学习第6篇

文章目录1.ROS服务2.使用rosservice2.1 rosservice list2.2 rosservice type2.3 rosservice call3. 使用rosparam3.1 rosparam list3.2 rosparam setrosparam get3.3 rosparam dumprosparam load 1.ROS服务 服务时节点之间通讯的另一种方式。服务允许节点发送一个请求(request)并获得一个响应(response)。 2.使用rosservice ross

LoongEmbedded的专栏 3143

ROS入门(七)理解ROS服务参数

ROS Services 服务(services)是节点之间通讯的另一种方式。服务允许节点发送请求(request) 并获得一个响应(response) 使用rosservice rosservice可以很轻松的使用 ROS 客户端/服务器框架提供的服务rosservice提供了很多可以在topic上使用的命令,如下所示: 使用方法: rosservice list 输出可用服...

小鱼儿飞丫飞 638

3.6 理解 ROS 服务参数

本节我们来介绍一下服务参数,它们也是 ROS 中常用的概念。我们将利用 ROS 中一些常用工具来帮助大家理解服务是如何组织节点间的通信的。

敏而好学,不耻下问 738
上一篇: 使用MATLAB分析处理csv数据
下一篇: ROS学习笔记8(使用 rqt_console, rqt_graph 和 roslaunch)
刘凯KAI
博客等级 码龄15年 663粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值