浅谈Ros中使用launch启动文件的方法(三):更多launch文件示例(详细讲解)--Ros入门21讲-第19讲笔记(持续更新)
2020-07-29 18:12
513 查看
浅谈Ros中使用launch启动文件的方法(三):更多launch文件示例
首先附上古月居老师的教程地址:古月居
古月居老师《Ros入门21讲》的全部代码在资源链接中分享给大家共同学习
1.turtlesim_parameter_config.launch(对应《Ros入门21讲》第16讲有关内容
<launch> <param name="/turtle_number" value="2"/> <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"> <param name="turtle_name1" value="Tom"/> <param name="turtle_name2" value="Jerry"/> <rosparam file="$(find learning_launch)/config/param.yaml" command="load"/> </node> <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_teleop_key" output="screen"/> </launch>
实现功能:
- 设置名为"/turtle_number"的参数,赋值为2,将参数名与参数值以一个字典值的形式存入Ros的参数服务器中;
- 启动Ros中的"小乌龟"turtlesim_node节点,在节点运行后设置两个参数并赋值;
- 利用rosparam标签加载参数文件param.yaml中的所有参数并上传到参数服务器;
- 启动小海龟的键盘控制节点用于控制其运动。
附说明:
1.param.yaml参数文件内容(可直接在功能包内新建config/param.yaml复制使用),其中,A、B参数无命名空间,C、D设置在命名空间group中,用以避免资源冲突:
A: 123 B: "hello" group: C: 456 D: "hello"
2.通过launch文件存入参数服务器中的参数,可运行以下命令全部显示出来。
rosparam list
可以通过以下命令输出参数值:
rosparam get + 参数名称
3.在node标签内外使用param标签定义参数的不同之处在于参数前是否会带加上节点名的前缀,如下图中的turtle_name1(标签内默认加上)和turtle_number(标签外无前缀),类似命名空间的实现效果。
4.执行效果:
2.turtlesim_parameter_config.launch(对应《Ros入门21讲》第18讲有关内容)
<launch> <!-- Turtlesim Node--> <node pkg="turtlesim" type="turtlesim_node" name="sim"/> <node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/> <node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle1" name="turtle1_tf_broadcaster" /> <node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle2" name="turtle2_tf_broadcaster" /> <node pkg="learning_tf" type="turtle_tf_listener" name="listener" /> </launch>
<launch> <!-- Turtlesim Node--> <node pkg="turtlesim" type="turtlesim_node" name="sim"/> <node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/> <node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle1" name="turtle1_tf_broadcaster" /> <node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle2" name="turtle2_tf_broadcaster" /> <node pkg="learning_tf" type="turtle_tf_listener" name="listener" /> </launch>
实现功能:
记得在第18讲中,古月居老师利用一个简单的小乌龟跟随移动案例,来介绍在Ros中常用的坐标变换及坐标变换tf功能包的编程和使用方法,相信学过这部分案例的同学都记得当时为了运行相关代码,实现海龟跟踪的效果,打开了5个独立的Terminal才实现相关功能,而在下面的介绍中,仅使用一个launch文件即可实现全部步骤流程。
该launch文件实现了以下功能:
- 启动海龟仿真器;
- 启动海龟仿真器的键盘控制节点;
- 运行learning_tf功能包下的两个广播器turtle1_tf_broadcaster和turtle2_tf_broadcaster(args:为程序主函数输入的参数);
- 运行learning_tf功能包下的监听器listener。
执行效果:
2.turtlesim_remap.launch(remap重映射操作)
<launch> <include file="$(find learning_launch)/launch/simple.launch" /> <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"> <remap from="/turtle1/cmd_vel" to="/cmd_vel"/> </node> </launch>
实现功能:
- 利用include标签导入另一个launch文件(在上一个文章中有simple.launch文件介绍)
- 启动仿真器节点
- 将仿真器中代表海龟运行速度的参数/turtle1/cmd_vel去掉前缀重命名为/cmd_vel
相关文章推荐
- 19.launch启动文件的使用方法
- go语言学习笔记——godoc的使用(超详细,含示例文件)
- iTEXT生成PDF文件使用方法 实例 示例 Servlet输出PDF文档方法
- Delphi中资源文件使用方法详细讲述
- jQuery学习笔记--jqGrid的使用方法(编辑,删除,更新,新增)
- 详细讲解Java中log4j的使用方法【转自www.bitsCN.com】
- Yii框架中CGridView的使用方法以及详细示例
- roslaunch使用示例
- Eclipse中maven环境搭配,使用jetty启动后不能更改css,js文件的解决方法
- 使用AD 启动脚本的方法来分发部署Office产品相关的补丁/更新
- SPL spl_autoload_register与__autoload方法使用示例浅谈
- 比较常用的Properties配置文件的使用方法示例
- zend framework 中使用dbadapter操作数据库的几种方法(持续更新)
- Yii框架中CGridView的使用方法以及详细示例
- HTML 5 应用程序缓存(Application Cache)cache manifest 文件使用 html5 中创建manifest缓存以及更新方法 一个manifest文件会创建一份缓存,不同的manifest文件其缓存的内容是互不干扰的
- Android Studio 使用笔记:文件查询方法总结
- 使用CentOS 遇到的问题以及解决方法(持续更新)
- windowmaker (wmaker)使用笔记> >持续更新
- windows2003 IIS 服务启动失败,提示‘另一个程序正在使用此文件,进程无法访问',解决方法
- [笔记].关于使用Nios II Flash Programmer下载后无法从EPCS启动的一种解决方法;sof+elf>flash>hex>jic