文章只是个人学习过程中学习笔记,主要参考ROS教程1 2 。
1、概述
参数服务器(Parameter Server 3):是可以通过网络 API 访问的共享的多变量字典。在运行时节点(Nodes)使用此服务器去存储和检索参数。(类似于全局变量,存储多个节点共享的数据。)
Tips:参数服务器不是为高性能(high-performance)而设计的,因此最好用于静态、非二进制的数据,如配置参数。
2、参数服务器通信机制
参数服务器通信 是ROS通信中一种比较特殊又比较简单的通信方式。参数服务器在ROS Master内部运行。

3、参数命令rosparam
rosparam 4 能让我们在ROS参数服务器(Parameter Server)上存储和操作数据。参数服务器能够存储整型(integer)、浮点(float)、布尔(boolean)、字典(dictionaries)和列表(list)等数据类型。
| 命令 | 功能 |
|---|---|
rosparam set |
设置参数 |
rosparam get |
获取参数 |
rosparam load |
从文件中加载参数 |
rosparam dump |
向文件中转储参数 |
rosparam delete |
删除参数 |
rosparam list |
列出参数名 |
Tips:
rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:1是整型,1.0是浮点型,one是字符串,true是布尔型,[1, 2, 3]是整型组成的列表,{a: b, c: d}是字典。
4、参数服务器通信实操 – 修改海龟模拟器的背景颜色
通过ROS内置的 海龟模拟器(turtlesim) 来进行参数服务器通信的实操,这里我们以修改海龟模拟器背景颜色举例:背景颜色修改为紫色(RGB: 160 32 240)。
实现的步骤如下:
步骤1:在新终端中启动roscore
roscore
步骤2:在新终端中启动海龟模拟器的节点turtlesim_node
rosrun turtlesim turtlesim_node
步骤3:在新终端中使用rosparam命令获取参数列表。
rosparam list

步骤4:通过调试工具rqt工具箱和编程的方式修改海龟模拟器的背景颜色。

4.1 调试工具实现
在新终端中输入rqt命令打开rqt工具箱,然后在菜单栏中打开参数和服务插件,分别为Plugins/Configuration/Param Edit和Plugins/Services/Service Caller,如图4-3所示。

在Param Edit中将海龟模拟器turtlesim的背景颜色background_x的值改为紫色,如图4-4所示①;然后在Service Caller中选择调用clear服务,如图4-4所示②;最后点击右上角Call使已被修改的参数生效。

4.2 编程实现(C++)
在beginner_tutorials软件包的src目录下创建修改海龟模拟器的背景颜色的源文件:
roscd beginner_tutorials
cd src
touch turtle_set_param.cpp
4.2.1 程序代码(turtle_set_param.cpp)
#include "ros/ros.h"
#include <std_srvs/Empty.h>
int main(int argc, char **argv)
{
setlocale(LC_ALL,"");
/* 初始化ROS节点 */
ros::init(argc,argv,"turtle_set_param");
/* 为这个节点创建句柄 */
ros::NodeHandle nh("turtlesim")

本文介绍ROS参数服务器的基础知识,包括其通信机制及如何利用rosparam命令进行参数的获取、设置等操作。并通过修改海龟模拟器背景颜色的实例,演示如何使用C++和Python编程实现参数的动态修改。
最低0.47元/天 解锁文章
1691

被折叠的 条评论
为什么被折叠?



