ROS学习(三)参数服务与launch文件

来源:互联网 发布:单片机485接口电路 编辑:程序博客网 时间:2024/05/21 06:18

参数与服务

当启动roscore的时候可以查看当前ros提供的服务。

当前节点没有启动的时候,使用rosservice list命令默认将看到:

/rosout/get_loggers
/rosout/set_logger_level

顾名思义可以通过使用这两项服务获取日志和设置日志输入等级(warn info等等)。

根据参数rosservice提供不同命令,在终端输入rosservice即可查看。

下面通过一个示例了解参数设置与ros服务。

启动小乌龟服务:

<span style="font-size:18px;">rosrun turtlesim turtlesim_node &</span>
使用spawn服务在同一个模拟器中产生第二只小乌龟:
<span style="font-size:18px;">rosservice call spawn 2 2 0.2 ""</span>
后面的参数分别为:坐标x,坐标y,theta值,新“乌龟”的名字(空值将使用:turtle2)

对于参数而言,ros提供命令rosparam命令,同样提供许多参数来实现不同的功能,在终端输入rosparam来查看。

在终端输入:

<span style="font-size:18px;">rosparam list</span>
查看当前节点的主要参数是模拟器背景的 b g r数据。

通过:

<span style="font-size:18px;">rosparam get /background_g </span>
获取绿色的bgr数据的参数。默认为255

现在来设置这个参数

<span style="font-size:18px;">rosparam set /background_g 0</span>
设置完成后需要调用clear服务来“刷新”参数

<span style="font-size:18px;">rosservice call clear</span>
此时点开模拟器发现背景颜色发生了明显的变化。

另外还可以通过rosparam dump将当前节点的所有参数导出到文件,修改参数后再通过rosparam load加载该文件或者其他的配置文件。

然后调用clear服务就可以加载新的参数。


launch文件

以XML文件的形式存在,可以启动特定的服务。

在文件中必须以<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>  <node pkg="turtlesim" name="mimic" type="mimic">    <remap from="input" to="turtlesim1/turtle1"/>    <remap from="output" to="turtlesim2/turtle1"/>  </node></launch>

在终端输入:

cd ~/catkin_wssource devel/setup.bashroscd beginner_tutorials
进入目录:~/catkin_ws/src/beginner_tutorials

创建并进入文件夹launch:

mkdir launchcd launch
创建文件turtlemimic.launch,并将上述xml文件复制进去

在终端输入:

roslaunch beginner_tutorials turtlemimic.launch
将出现两个模拟器turtlesim1  turtlesim2

此时在终端输入:

rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
两只小乌龟都会转圈,原因时其中一个节点将模仿另一个节点的行为。



0 0