.launch文件分析
来源:互联网 发布:淘宝拼图模块怎么用 编辑:程序博客网 时间:2024/05/17 08:37
.launch文件分析
在我们的功能包中可以看到launch文件夹下有很多的.launch文件,这些文件写入了我们想要同时运行的节点,当我们需要有很多节点同时启动时,一个个启动它们会费时费力,这时我们可以写一个.launch文件把这些节点都包括进去,这样可以通过roslaunch命令来把这些节点都启动了。
到这里假设我们都已经知道怎样使用roslaunch命令了,这次重先简单介绍一下.launch文件的结构,然后重点说一下.launch文件中的重映射(remap)。
1 .launch文件的结构
<launch>
<node name="talker"pkg="rospy_tutorials" type="talker" >
</node>
</launch>
上面是.launch文件的最小例子。.launch文件开头是以<launch>为标签,让我们知道这是一个.launch文件,以</launch>为结尾。而中间就是写自己要启动的节点,是以<node> 开始,</node>结束,其中pkg="rospy_tutorials",这是自己要启动的节点所在的包;type="talker",这是自己写的节点.cpp程序通过编译生产的可执行文件的名字,你最初编译.cpp程序的时候要在CMakeLists.txt添加cpp程序编译的设置,这个可执行文件的名字在CMakeLists.txt中就可以找到;name="talker",这是节点的名字。
2.Roslaunch /XML/remap
1.元素
<node> 启动一个节点.
<param> 设置参数服务器上的参数
<remap> 声明一个名称的映射,允许你通过名称映射参数到ROS节点(通过更结构化的方式而不是直接设置节点参数属性来启动的节点)。
<machine> 声明启动要使用的机器.
<rosparam> 使用rosparam文件设置启动要用的ROS参数
<include> 包含roslaunch文件.
<env> 制定启动节点的环境变量
<test> 启动一个测试节点see rostest).
<arg> 声明参数
<group> 共享一个命名空间或映射的封闭的元素组。
2 .launch文件的重映射(remap)
据我理解,重映射就是甲节点得到相关的信息,通过重映射使乙节点得到甲节点一样的信息,从而使得乙节点模仿甲节点做出相应的响应。
<remap>标签适用于在其范围内随后的所有声明(<launch>, <node> or<group>)。
准备工作
需要用到rqt和tuetlesim这两个包.如果没有安装,请执行:
$ sudo apt-get install ros-hydro-rqtros-hydro-rqt-common-plugins ros-hydro-turtlesim
我的ros版本是hydro版本,如果不是hydro,则自行替换。
例子
首先自己在turtlesim/launch文件夹下建一个.launch文件,名字自己取,如multi_node.launch的文件,粘贴如下内容:
<launch>
<group ns="turtlesim1">
<nodepkg="turtlesim" name="sim"type="turtlesim_node"/>
</group>
<group ns="turtlesim2">
<nodepkg="turtlesim" name="sim"type="turtlesim_node"/>
</group>
<node pkg="turtlesim" name="turtle_mimic"type="mimic">
<remap from="input"to="turtlesim1/turtle1"/>
<remap from="output"to="turtlesim2/turtle1"/>
</node>
</launch>
属性
from="original-name" 你正映射的名称
to="new-name" 目标名称
你可以结合着turtlesim包中的mimic.cpp程序看上面的代码。用roslaunch运行上面刚写的launch文件,会出现turtlesim2模仿turtlesim1的动作。打开终端(ctrl+alt+T),输入下面命令(如果你有多个工作空间,请先source一下turtlesim所在的工作空间):
$source ~/ros_tutorial/devel/setup.bash
$roslaunch turtlesim multi_node.launch
新打开一个终端,输入:
$rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
再新打开一个终端,再输入:
$rqt_graph
出现如下结果:
如果想再映射一个小乌龟(或更多乌龟),可以在上面的.launch文件中的内容改为如下内容,通过对比,就可以知道,如何再添加一只小乌龟:
<launch>
<group ns="turtlesim1">
<nodepkg="turtlesim" name="sim"type="turtlesim_node"/>
</group>
<group ns="turtlesim2">
<node pkg="turtlesim"name="sim" type="turtlesim_node"/>
</group>
<groupns="turtlesim3">
<nodepkg="turtlesim" name="sim"type="turtlesim_node"/>
</group>
<node pkg="turtlesim" name="turtle_mimic"type="mimic">
<remap from="input"to="turtlesim1/turtle1"/>
<remap from="output"to="turtlesim2/turtle1"/>
</node>
<node pkg="turtlesim" name="turtle_mimic1"type="mimic">
<remap from="input" to="turtlesim1/turtle1"/>
<remap from="output"to="turtlesim3/turtle1"/>
</node>
</launch>
(改完.launch文件,如果有多个工作空间,记得source一下turtlesim所在的工作空间,再运行上面的命令)
运行结果如下:
更多有关Roslaunch /XML/,请看ros官网 :http://wiki.ros.org/roslaunch/XML
- .launch文件分析
- .launch文件分析
- Launch 文件
- Launch 文件
- ros源码分析(7)—roslaunch .launch 文件
- ros源码分析(8)—roslaunch .launch文件中的tag
- WINCE Launch函数分析
- ROS之launch分析
- Eclipses中的launch文件
- launch文件remap标签
- ROS的launch文件
- ros中launch文件
- ros.launch 文件学习
- 【ROS】launch启动文件
- launch 文件解析
- launch 文件解析
- Launch文件的学习:
- launch文件基础
- 优化cocostudio 导出资源样式
- strcpy函数详解及strcpy与strncpy比较
- Linux操作系统定时任务系统 Cron 入门
- Github使用指南
- [Shader学习笔记]一些向量的几何知识
- .launch文件分析
- ROR 基础
- iOS开发之tableView(自用贴)
- C#生成验证码
- http://www.jb51.net/article/37462.htm
- Python: scikit-image 彩色图像滤波
- TS科普9 传输流包层
- 将多条数据以横向排列生成报表
- sql server