操作演示,对参数服务器的理解:点击打开链接

rosparam使得我们能够存储并操作ROS 参数服务器(Parameter Server)上的数据。参数服务器能够存储整型、浮点、布尔、字符串、字典和列表等数据类型。rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:1 是整型, 1.0 是浮点型, one是字符串, true是布尔, [1, 2, 3]是整型列表, {a: b, c: d}是字典.

1. 使用 rosparam

1.1 rosparam list

启动 master,开启终端,输入 roscore,运行 turtle 节点,rosrun turtlesim turtlesim_node,新开启一个终端,输入

  1. rosparam list
  1.  

看到如下结果:

发现其中有三个参数是修改背景颜色的。

1.2 rosparam 设置 and rosparam 获取

在终端中输入:

  1. rosparam set background_r
  1.  

然后继续输入:

  1. rosservice call clear

发现背景颜色由

变为

获取背景绿色通道的值

  1. rosparam get background_g
  1.  

利用

  1. rosparam get /
  1.  

获取所有参数的值

1.3 rosparam dump

将所有的参数写入 params.yaml 文件

在终端输入:

  1. rosparam dump params.yaml
  1.  

将yaml文件重载入新的命名空间,比如说copy空间:

  1. rosparam load params.yaml copy
  2.  
  3. rosparam get copy/

运行结果:

2.  使用 rqt_console 和 roslaunch

2.1 使用 rqt_console

先运行:

  1. sudo apt-get install ros-<distro>-rqt ros-<distro>-rqt-common-plugins ros-<distro>-turtlesim
  1.  

确保已经安装了所需要的包。

rqt_console 属于ROS日志框架(logging framework)的一部分,用来显示节点的输出信息。rqt_logger_level 允许修改节点运行时输出信息的日志等级(logger levels)(包括 DEBUG、WARN、INFO和ERROR)。

继续运行小乌龟节点,输入:

  1. rosrun rqt_console rqt_console
  1.  

得到:

新开一个终端:输入:

  1. rosrun rqt_console rqt_console

得到:

再次启动:

  1. rosrun turtlesim turtlesim_node

然后 refresh 一下 rqt_logger_level 窗口 并将日志等级修改为 warn

再开启一个终端,运行:

  1. rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
  1.  

可见:

2.2  日志等级说明

Fatal是最高优先级,Debug 是最低优先级。通过设置日志等级可以获取该等级及其以上优先等级的所有日志消息。比如,将日志等级设为Warn时,会得到 Warn、Error和 Fatal 这三个等级的所有日志消息

2.3 使用roslaunch

关闭 turtlesim 节点。

进入

  1. cd ~/catkin_ws/src/beginner_tutorials/
  2.  
  3. mkdir launch
  4.  
  5. cd launch/
  6.  
  7. vim turtlemimic.launch

将以下代码写入:

  1. <launch>
  2.  
  3. <group ns="turtlesim1">
  4. <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  5. </group>
  6.  
  7. <group ns="turtlesim2">
  8. <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  9. </group>
  10.  
  11. <node pkg="turtlesim" name="mimic" type="mimic">
  12. <remap from="input" to="turtlesim1/turtle1"/>
  13. <remap from="output" to="turtlesim2/turtle1"/>
  14. </node>
  15.  
  16. </launch>
  1.  

运行:

  1. roslaunch beginner_tutorials
  1.  

下面对 launch 文件进行介绍:

<launch>

以launch标签开头以表明这是一个launch文件

  1. <group ns="turtlesim1">
  2. <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  3. </group>
  4.  
  5. <group ns="turtlesim2">
  6. <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  7. </group>

创建了两个节点分组并以'命名空间(namespace)'标签来区分,其中一个名为turtulesim1,另一个名为turtlesim2,两个组里面都使用相同的turtlesim节点并命名为'sim'。这样可以同时启动两个turtlesim模拟器而不会产生命名冲突

  1. <node pkg="turtlesim" name="mimic" type="mimic">
  2. <remap from="input" to="turtlesim1/turtle1"/>
  3. <remap from="output" to="turtlesim2/turtle1"/>
  4. </node>

在这里启动模仿节点,并将所有话题的输入和输出分别重命名为turtlesim1和turtlesim2,这样就会使turtlesim2模仿turtlesim1

  1. </launch>

结束标签

在一个新终端中输入:

  1. rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'

虽然发布命令只是给turtlesim1发送了速度设定消息,会看到两个turtlesims会同时开始移动

ROS参数服务器(Parameter Server)的更多相关文章

  1. ROS学习笔记(一) # ROS参数服务器

    参考 roscpp/Overview/Parameter Server 0. 概述 ROS参数服务器能够保存 string, int, float, double, bool, list, dicti ...

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

    本文内容来自官方wiki:http://wiki.ros.org/ROS/Tutorials/UnderstandingServicesParams ROS服务(service)服务也是ROS中一种通 ...

  3. Parameter server(参数服务器)

    特殊点在于参数服务器是节点存储参数的地方. 用于配置参数, 全局共享参数. 参数服务器使用互联网传输, 在节点管理器中运行, 实现整个通信过程. 1.命令行维护 load&&dump文 ...

  4. ROS理解参数服务器param demo

    param 是一个字典,存储一些变量 param_demo.cpp #include<ros/ros.h> int main(int argc, char **argv){ ros::in ...

  5. 参数探测(Parameter Sniffing)影响存储过程执行效率解决方案

    如果SQL query中有参数,SQL Server 会创建一个参数嗅探进程以提高执行性能.该计划通常是最好的并被保存以重复利用.只是偶尔,不会选择最优的执行计划而影响执行效率. SQL Server ...

  6. 【分布式计算】MapReduce的替代者-Parameter Server

    原文:http://blog.csdn.net/buptgshengod/article/details/46819051 首先还是要声明一下,这个文章是我在入职阿里云1个月以来,对于分布式计算的一点 ...

  7. MXNet之ps-lite及parameter server原理

    MXNet之ps-lite及parameter server原理 ps-lite框架是DMLC组自行实现的parameter server通信框架,是DMLC其他项目的核心,例如其深度学习框架MXNE ...

  8. 转:Parameter Server 详解

    Parameter Server 详解   本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 更多相关博客请猛戳:http://blog.csdn.net/c ...

  9. [Distributed ML] Parameter Server & Ring All-Reduce

    Resource ParameterServer入门和理解[较为详细,涉及到另一个框架:ps-lite] 一文读懂「Parameter Server」的分布式机器学习训练原理 并行计算与机器学习[很有 ...

随机推荐

  1. git 如何取消add操作

    可以直接使用命令    git reset HEAD 这个是整体回到上次一次操作 绿字变红字(撤销add) 如果是某个文件回滚到上一次操作:  git reset HEAD  文件名 红字变无 (撤销 ...

  2. hdu 3974 dfs时间戳+线段树

    题意: 一个公司里面每个员工都有一个顶头上司,一旦给某个员工分配任务后,这个员工以及该员工的所有下属都在做该任务. 有若干操作,分配给员工任务以及查询该员工正在执行的任务. 题解: 典型的更新字树的操 ...

  3. NRF52832 Mesh调试,使其同时支持串口打印和RTT打印

    查看开发环境里面,是否有这个文件,如果没有你的话,则添加文件. 然后要在sdk_config.h中添加使能 然后打开刚才添加的文件retarget.c,主意里面这些地方 这里它进行判断,要么使用RTT ...

  4. ABAP-会计凭证替代字段GB01设置

    1.GB01表字段设置 SM30:VWTYGB01 找到需要替代的字段,设置bexclude勾选为空 2.运行程序 RGUGBR00 激活

  5. 后台对象转JSON字符串传到前台,前台JSON字符串转对象绑定标签赋值

    /// <summary> /// 创建换货单-自动获取对应的数据(后端) /// </summary> [HttpGet] public ActionResult GetPr ...

  6. LNMP环境搭建BBS论坛及伪静态

    我们在mysql备份 LNMP环境中的数据库迁移为独立的服务器的基础上搭建BBS论坛:  [root@bqh-117 ~]# mysql -uroot -p123456 Welcome to the ...

  7. ORA-03113:通信通道的文件结尾 解决办法

    登录Oracle时出现错误:“ORA-03113:通信通道的文件结尾” 错误排查方法 Oracle出现错误,查看trace日志寻找问题根源:D:\oracle\diag\rdbms\orcl\orcl ...

  8. 运维开发笔记整理-QueryDict对象

    运维开发笔记整理-QueryDict对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 客户端发送数据请求有很多种,相信运维人员已经很清楚了,如果不太清楚的话可以参考我之前的学习笔 ...

  9. STM32 LoRaWAN探索板B-L072Z-LRWAN1中文用户手册

    UM2115用户手册 支持LoRaWAN和 LPWAN协议的STM32L0探索套件 前言 B-L072Z-LRWAN1探索套件采用了 Murata公司的CMWX1ZZABZ-091 LoRa模块.该探 ...

  10. SpringCloud之Eureka

    [前面的话]SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它配置简单,上手快,而且生态成 ...