ROS参数服务器(Parameter Server)

ROS参数服务器(Parameter Server)

操作演示,对参数服务器的理解:点击打开链接
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,新开启一个终端,输入

rosparam list

 

 

看到如下结果:

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

 

1.2 rosparam 设置 and rosparam 获取

在终端中输入:

rosparam set background_r 150

 

 

然后继续输入:

rosservice call clear

 


发现背景颜色由

变为

 

获取背景绿色通道的值

rosparam get background_g

 

 

 

利用

rosparam get /

 

 

 

获取所有参数的值

 

1.3 rosparam dump

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

在终端输入:

rosparam dump params.yaml

 

 

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

 

rosparam load params.yaml copy

rosparam get copy/

 

运行结果:

 

 

2.  使用 rqt_console 和 roslaunch

2.1 使用 rqt_console

先运行:

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

 

 

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

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

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

rosrun rqt_console rqt_console 

 

 

得到:

新开一个终端:输入:

rosrun rqt_console rqt_console 

得到:

再次启动:

rosrun turtlesim turtlesim_node 

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

 

再开启一个终端,运行:

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

 

 

可见:

 

 

2.2  日志等级说明

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

 

 

2.3 使用roslaunch

关闭 turtlesim 节点。

进入

cd ~/catkin_ws/src/beginner_tutorials/

mkdir launch

cd launch/

vim turtlemimic.launch

 

将以下代码写入:

 <launch>

      <group ns="turtlesim1">
        <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
      </group>

      <group ns="turtlesim2">
        <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
      </group>

      <node pkg="turtlesim" name="mimic" type="mimic">
        <remap from="input" to="turtlesim1/turtle1"/>
        <remap from="output" to="turtlesim2/turtle1"/>
      </node>

    </launch>

 

 

运行:

roslaunch beginner_tutorials 

 

 

下面对 launch 文件进行介绍:

<launch>

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

 

 

<group ns="turtlesim1">
        <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
      </group>

      <group ns="turtlesim2">
        <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
      </group>

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

<node pkg="turtlesim" name="mimic" type="mimic">
        <remap from="input" to="turtlesim1/turtle1"/>
        <remap from="output" to="turtlesim2/turtle1"/>
      </node>

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

</launch>

结束标签

 

在一个新终端中输入:

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

 

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

 

posted @ 2018-06-06 21:22 Nikki_o3o 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值