学习大纲:
1. ROS 服务
ROS 服务是一种节点之间的通信方式,允许一个节点发送请求并接收响应。它采用的是同步机制,即一个节点会发送请求,等待另一个节点处理并返回结果。这个机制适合需要及时反馈的情况。rosservice 是 ROS 提供的一个工具,专门用来与服务进行交互。它可以列出、查询、调用和管理服务。由于我的 ROS 安装在 /opt/ros/noetic/share/ros 路径下,因此命令执行需要确保我的环境变量正确配置。
以下是 rosservice 常用的命令格式:
rosservice list:列出当前运行的所有服务。
rosservice call:调用某个服务并传递必要的参数。
rosservice type:查询服务的类型。
rosservice uri:获取服务的 ROSRPC 地址。
示例:列出当前服务
在确保 turtlesim_node 正在运行的情况下,使用以下命令来查看当前所有的服务:
$ /opt/ros/noetic/bin/rosservice list
输出的服务列表包括 reset、clear、spawn、kill 等服务。这些服务允许我们对模拟乌龟进行重置、生成、删除等操作。
查看服务类型
使用 rosservice type 命令可以查看服务的类型。比如我们可以查看 /clear 服务的类型:
$ /opt/ros/noetic/bin/rosservice type /clear
输出结果显示 std_srvs/Empty,表示这个服务不需要参数,调用时不会传递任何数据。
调用服务
对于没有参数的服务,比如 clear,我们可以直接调用它来清除 turtlesim 的背景:
$ /opt/ros/noetic/bin/rosservice call /clear这将清除背景。
对于需要参数的服务,例如 /spawn 服务,可以用下面的命令生成一个新的乌龟在指定位置:
$ /opt/ros/noetic/bin/rosservice call /spawn 2 2 0.2 ""
这个命令会生成一个新的乌龟,位置在 (2, 2),角度为 0.2,并返回新乌龟的名字。
2. 使用 rosparam
ROS 参数服务器是一个中心化的存储机制,允许节点之间共享全局的配置信息或数据。数据类型可以是整数、浮点数、布尔值、字典或列表等。rosparam 是与 ROS 参数服务器交互的命令行工具。通过 rosparam,我们可以设置、获取和删除参数,还可以将参数保存到文件中或从文件中加载参数。常用命令包括:
rosparam set:设置参数值。
rosparam get:获取参数值。
rosparam list:列出当前所有参数。
rosparam dump:将参数保存到文件。
rosparam load:从文件加载参数。
A.可以使用以下命令列出当前所有参数:
$ /opt/ros/noetic/bin/rosparam list
这个命令会列出所有在参数服务器上存储的参数,包括一些系统相关的参数和 turtlesim 节点的参数,例如背景颜色的 RGB 通道 /turtlesim/background_r、/turtlesim/background_g 和 /turtlesim/background_b。
B.设置和获取参数
我们可以使用rosparam set来更改参数值,例如更改背景红色通道的值,并调用 /clear 服务让更改生效:
$ /opt/ros/noetic/bin/rosparam set /turtlesim/background_r 150
$ /opt/ros/noetic/bin/rosservice call /clear
之后,turtlesim 的背景颜色将发生变化。
要获取某个参数的值,可以使用 rosparam get:
$ /opt/ros/noetic/bin/rosparam get /turtlesim/background_g
输出将显示当前绿色通道的值。
C.保存和加载参数
如果需要保存当前参数设置,可以使用 rosparam dump 将参数保存到 YAML 文件中:
$ /opt/ros/noetic/bin/rosparam dump params.yaml
稍后可以通过以下命令重新加载参数:
$ /opt/ros/noetic/bin/rosparam load params.yaml
这将把之前保存的参数重新加载到参数服务器中。
标签:noetic,opt,1.1,Beginner,Level,rosparam,rosservice,参数,ros From: https://blog.csdn.net/2301_79441716/article/details/144194835