ROS参数服务器深度解剖(二)

相关课程视频下载链接
和彩云 网盘链接:
链接:和彩云网盘
提取码:qo1z
简介:
和彩云网盘是中国移动旗下的网盘,目前对免费用户下载不限速,只要简单注册一个账号就可以下载

迅雷云盘 网盘链接:
迅雷网盘链接
提取码:h22t
简介:
迅雷网盘 免费用户下载虽然限速,但是比百度网盘要好

百度网盘:
链接:百度网盘链接
提取码:HHZN
简介:
如果你是VIP那就用百度网盘吧。

ROS参数服务器中使用的命令

rosparam 命令行工具:

rosparam 命令参数选项有(set, get, load, dump, delete, list),其中load, dump, delete选项同时可在luanch文件运行有效, 向set,get,load,list 选项应用前提是ros参数服务器中有参数,否则不能使用,当然参数一定要加上命名空间,下面是详解:

  • set:假设节点有一个PI参数,参数默认值为3.14,那么运行节点PI的初始值是3.14,当执行rosparam set /node_name/PI 3.1415926 后(假设命名空间为“node_name”),当节点下次用到PI的值时已经被换成3.1415926了;
  • get:rosparam get /node_name/PI 获取命名空间下PI的值;
  • load: 加载yaml配置文件,rosparam load [file_name] [namespace];
  • dump: rosparam dump xxx.yaml [namespace]文件,转存指定的命名空间参数到xxx.yaml文件中;
  • delete: rosparam delete /node_name/PI 删除在参数服务器中PI参数;
  • list : rosparam list 参数目前参数服务器中有哪些参数。

在终端,我们运行roscore 启动ros master,那么对应的参数服务器也就启动起来了。我们可以使用rosparam list 查看当服务器中的参数列表,默认ros参数服务器会自动添加这样的类似参数:

/rosdistro
/roslaunch/uris/host_honghu__37429
/rosversion
/run_id

我们可以通过rosparam load xxx.yaml,如果没有报错,说明yaml语法没错,此时可以通过rosparam list查看我们刚刚加载的参数列表,并且可以通过rosparam get xxx查看 xxx 参数的数值。至于其他参数delete,dump就很简单了。

ROS 参数服务器在launch文件中

下面重点讲下load,dump,delete 在launch文件中使用,因为load, dump都是针对yaml文件的,所有后续讲yaml文件时还会回顾这节内容。前面所讲的阐述传递都是单个元素的参数变量,如果需要传递数据结构体型的变量参数,就是要使用yaml文件,当然launch文件也可以通过rosparam传递list结构数据。如下:

在launch文件中<node>的元素内加上:
<rosparam param="list">[1,23,4,5]</rosparam>  <!--一维数组的使用 -->
然后在C++文件中获取:
std::vector<int> v;
nh.param(“list”,v,v);  //说着使用nh.getParam() ,ros::param::get() 或者需要使用参数的完整名称

luanch 文件中使用二维或者多维数组,邻接矩阵、list等完整代码

<launch>
    <arg name ="topic_name_arg" default="aaa"/>
    <!-- <param name="topic_name" type = "str" value = "$(arg topic_name_arg)"/> -->
    <node pkg = "param_pkg" type = "param_node" name = "param_node" output="screen">
       <param name="topic_name" type = "str" value = "/$(arg topic_name_arg)"/>
       <rosparam param="list">[1,23,4,5,456,6,7,9,222]</rosparam>
       <rosparam param="v">
       [[1,2]
       [1,23,45,67],
       [11,22,33,44,55]]
       </rosparam>  <!-- 此处同一个维度内内存不对齐的邻接矩阵 ,可以定义常见矩阵-->
       <rosparam param="alpha">0.03</rosparam>
       <rosparam file= "$(find param_pkg)/config/p.yaml" command="load"/>
    </node
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值