ROS理解roslaunch命令
roslaunch命令从launch文件中启动一个节点,它的使用方法如下:
roslaunch [package] [filename.launch]
首先切换到beginner_tutorials文件下:
roscd beginner_tutorials
提示:
If roscd says similar to roscd: No such package/stack 'beginner_tutorials'.
you will need to source the environment setup file like you did at the end of the create_a_workspace tutorial: $ cd ~/catkin_ws
$ source devel/setup.bash
$ roscd beginner_tutorials
创建launch文件夹,切换到该文件夹下:
mkdir launch
cd launch
注意:launch文件是在相应的包文件里面的.
然后在这个文件夹下新建一个launch文件,命名为turtlemimic.launch,并把下面的内容复制进去.
新建文件,输入:
gedit 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 turtlemimic.launch
这时就能看到两只小乌龟,但是这时用rosnode list查询,能看到新增三个节点。/mimic,/turtlesim1/sim,/turtlesim2/sim.
在一个新打开的终端中输入:
rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
就可以看到两只乌龟都在转圈。
下面来解释一下原因,分析一下刚才的那个launch文件:
<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>
上面的代码表示我们启动了两个乌龟节点,他们的名字都是sim,但是他们在不同的命名空间中,所以不会有相同名字的冲突。
<node pkg="turtlesim" name="mimic" type="mimic">
<remap from="input" to="turtlesim1/turtle1"/>
<remap from="output" to="turtlesim2/turtle1"/>
</node>
上面的这些代码中我们启动了mimic节点,同时把这个节点的input和output话题重命名为turtle1和turtle2。
这时通过rosrun rqt_graph rqt_graph显示的信息是:

上面的这些内容使turtlesim2模仿turtlesim1。所以虽然我们只向turtlesim1发布了话题,turtlesim2也做出了反应。
ROS理解roslaunch命令的更多相关文章
- SLAM+语音机器人DIY系列:(二)ROS入门——8.理解roslaunch在大型项目中的作用
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- ROS 新手教程 命令汇总
## 工作环境搭建 查看环境变量的配置: wangsan@wangsan-Y50:~$ export | grep ROS declare -x ROSLISP_PACKAGE_DIRECTORIES ...
- 深入理解linux-free命令原理(2)
linux free 命令用法说明 概述: 这篇文章比较深入的从free为起点 折射出的一些概念:比如 buff/cache是怎么一回事[涉及内存页等话题]: available这个参数与fre ...
- (转)理解maven命令package、install、deploy的联系与区别
我们在用maven构建java项目时,最常用的打包命令有mvn package.mvn install.deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命 ...
- 理解maven命令package、install、deploy的联系与区别
我们在用maven构建java项目时,最常用的打包命令有mvn package.mvn install.deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命 ...
- flask数据库迁移理解及命令
前言: 使用数据库迁移,可以直接建表,而不用我们自己写sql语句用来建表.就是将关系型数据库的一张张表转化成了Python的一个个类. 在开发中经常会遇到需要修改原来的数据库模型,修改之后更新数据库, ...
- 理解mvn命令
mvn clean package依次执行了clean.resources.compile.testResources.testCompile.test.jar(打包)等7个阶段. mvn clean ...
- Ros学习——roslaunch
roslaunch:启动定义在launch文件中的多个节点 1.launch文件解析 <launch> #以launch标签开头以表明这是一个launch文件 #两个节点分组并以'命名空间 ...
- ROS理解参数服务器param demo
param 是一个字典,存储一些变量 param_demo.cpp #include<ros/ros.h> int main(int argc, char **argv){ ros::in ...
随机推荐
- 13-7-1 做了一个360优化大师的主页(就是一个主页UI)
模仿360优化大师做了一个下它的首页. 代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/re ...
- asp.net ImageMap控件
ImageMap 控件可创建包含定义的作用点区域的图像.当用户单击作用点区域时,该控件可生成到服务器的回发或导航到指定的 URL 首先是添加一个asp:ImageMap 选择asp:CircleHot ...
- .net通用权限框架B/S (四)--DAL数据层以及数据接口
数据层以及数据接口设计如下图(以g_orga组织机构和g_role角色)为例,这几个类可以通过.tt模版生成 设计参考学习http://www.cnblogs.com/hanyinglong/arch ...
- Nodejs随笔(一):Hello World!
声明:本人用的是Ubuntu 14.04 LTS 系统. 一.Nodejs安装: <1>直接apt-get安装,最简单:sudo apt-get install nodejs <2& ...
- 查询EBS在线用户SQL(R12)
SELECT U.USER_NAME, APP.APPLICATION_SHORT_NAME, FAT.APPLICATION_NAME, FR.RESPONSIBILITY_KEY, FRT.RES ...
- js对JSON数据排序
一.适用于数字排序和字幕排序json 的排序方法有很多种,这是其中最简单的一种方法. 代码如下: var sortBy = function (filed, rev, primer) { rev ...
- php正则的使用[替换,匹配]
// 隐藏电话的中间四位 echo parseMobile('15836365252'); function parseMobile($mobile, $start = 4, $len = 4){ $ ...
- MongoDB 安装(一)
windows 8安装 mongodb 1.下载安装包 http://www.veryhuo.com/down/html/mongodb.html 2.解压到D:/MongoDB目录下. 3.把D:/ ...
- Linux中的那些英文缩写和她的含义们
系统 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print working directory 打印工作路径. su:Swith user 切换用户,切换到roo ...
- CSS自学笔记(6):CSS的模型
CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边距.边框和外边距的方式. 图片来源:w3school.com.cn 元素(element)是一个html文档的实际内容区域,依次由 ...