ROS参数服务器(参数使用详细介绍) 您所在的位置:网站首页 订阅日历的服务器代码是什么 ROS参数服务器(参数使用详细介绍)

ROS参数服务器(参数使用详细介绍)

#ROS参数服务器(参数使用详细介绍)| 来源: 网络整理| 查看: 265

       参数服务器是可通过网络访问的共享的多变量字典。它是节点存储参数的地方、用于配置参数、全局共享参数。参数服务器使用互联网传输,在节点管理器中运行,实现整个通信过程。它使用XMLRPC数据类型为参数赋值,包括以下类型:32位整数、布尔值、字符串、双精度浮点、ISO 8601日期、列表(List)、基于64位编码的二进制数据。

       参数服务器的配置方式非常的简单灵活,总的来讲有三种方式:命令行维护、launch文件内读写、node源码。

 

命令行维护

 ROS中关于参数服务器的工具是rosparam。其支持的参数如下所示:

命令

作用

rosparam list

列出了服务器中的所有参数

rosparam get [parameter]

获取参数值

rosparam set [parameter] [value]

设置参数值

rosparam delete [parameter]

删除参数

rosparam dump [file]

将参数服务器保存到一个文件

rosparam load [file]

加载参数文件到参数服务器

launch文件内读写

在前面讲到launch文件时,提到launch文件有很多标签,其中有和,以激光雷达驱动lidar.launch文件为例:

 可以看出,param是设置单个参数。

以导航驱动move_base.launch文件为例:

 可以看出,rosparam是用于加载参数文件的,而参数文件可以包含许多参数。

node源码

 param的操作非常轻巧,非常简单。关于param的API,roscpp提供了两套:ros::param namespace和ros::NodeHandle;它们的操作完全一样。

#include int main(int argc, char **argv){ ros::init(argc, argv, "param_demo"); ros::NodeHandle nh; int param1, param2, param3, param4, param5; //Get Param的三种方法 //① ros::param::get()获取参数“param1”的value,写入到param1上 bool test1 = ros::param::get("param1", param1); //② ros::NodeHandle::getParam()获取参数,与①作用相同 bool test2 = nh.getParam("param2",param2); //③ ros::NodeHandle::param()类似于①和② //但如果get不到指定的param,它可以给param指定一个默认值(如1) nh.param("param3", param3, 1); //Set Param //① ros::param::set()设置参数 param4 = 4; ros::param::set("param4", param4); //② ros::NodeHandle::setParam()设置参数 param5 = 5; nh.setParam("param5",param5); //Check Param //① ros::NodeHandle::hasParam() bool ifparam5 = nh.hasParam("param5"); //② ros::param::has() bool ifparam6 = ros::param::has("param6"); //Delete Param //① ros::NodeHandle::deleteParam() bool ifdeleted5 = nh.deleteParam("param5"); //② ros::param::del() bool ifdeleted6 = ros::param::del("param6"); }

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有