ROS的launch文件

ROS中可以把很多的命令以描述的形式写成launch文件,然后用 roslaunch命令执行launch文件。 它的使用方法如下:
roslaunch [package] [filename.launch]

比如:我们切换到 beginner_tutorials文件下:
roscd beginner_tutorials  

注:如果提示找不到文件或文件夹,就参照前面把环境变量设置一下。执行:
cd ~/catkin_ws/devel/


source setup.bash

在beginner_tutorials文件夹下, 创建launch文件夹,切换到该文件夹下:
mkdir launch


cd launch

输入:
gedit turtlemimic.launch  

用ubuntu默认的编辑器gedit创建一个launch文件。
然后在打开的的launch文件中复制入下面的内容:
[C]   纯文本查看   复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
<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>

保存退出就可以了。

     现在使用如下命令载入刚才创建的launch文件:


roslaunch beginner_tutorials turtlemimic.launch  


就可以看到新打开两个乌龟节点。

新打开一个终端,输入命令

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


使乌龟运动起来。就可以看到两只乌龟都在运动。

输入命令:
rosnode list

就可以看到启动了两个节点 /turtlesim1/sim和 /turtlesim2/sim。如图:
 


下面来解析一下launch文件的标签的意思:
<lanuch>

<lanuch>标签用来识别这是一个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>  

上面的内容表示我们启动了两只乌龟。分别名为turtlesim1和turtlesim2.


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

上面的内容使turtlesim2模仿turtlesim1。所以虽然我们只向turtlesim1发布了话题,turtlesim2也做出了反应。


本帖最后由 对折之内 于 2015-2-16 20:32 编辑

rosparam命令允许用户在ROS的参数服务器上操作和存储数据,参数服务器可以存储整数,浮点数,布尔类型,字典,列表。ROS使用YAML标记语言作为语法,在简单的情况下,YAML看起来是非常自然的:1是整数,1.0是浮点数,one是字符串,true是布尔类型,[1,2,3]是一个列表,{a:b,c:d}是一个字典。我们使用rosparam list 命令可以查看参数服务器上的内容,运行:
rosparam list  

返回结果:
[C]   纯文本查看   复制代码
?
1
2
3
4
5
6
7
/background_b
/background_g
/background_r
/rosdistro
/roslaunch/uris/host_ql_virtual_machine__47863
/rosversion
/run_id


可以看到turtlesim_node节点在参数服务器上存储的所有参数,其中有三个表示背景颜色的参数。

     使用rosparam set可以改变参数服务器上的参数,而rosparam get可以获取参数服务器上参数的值,它的使用方法如下:

rosparam set [param_name]  
rosparam get [param_name]  

我们来改变背景颜色,如下:
rosparam set background_r 150  

表示把turtlesim_node节点的background_r参数的值改为150.

命令执行完成后,再执行:

rosservice call /clear

clear命令刷新一下,就可以看见turtlesim_node节点乌龟的背景颜色已经发生了改变。

使用命令:

rosparam get /background_r  

就可以获得
background_r参数的值。

使用命令:

rosparam get /  

可以一次性获得所有参数的值。

[C] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
<font face= "Arial" ><font size= "4" >background_b: 255
background_g: 86
background_r: 69
rosdistro: 'indigo
 
   '
roslaunch:
   uris: {host_ql_virtual_machine__47863: 'http://ql-virtual-machine:47863/' }
rosversion: '1.11.9
 
   '
run_id: 2e1e1afc-b42a-11e4-937f-a9cbda70f5fb
</font></font>

使用命令rosparam dump可以将参数服务器的内容写到一个文件中,它的使用方法如下:
rosparam dump [file_name]  

例如:
rosparam dump params.yaml  

就将参数服务器的内容写到了params.yaml的文件中。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值