ROS 学习应用篇(九)ROS中launch文件的实现

19 篇文章 0 订阅

launch文件就好比一个封装好的命令库,我们按照在终端中输入的代码指令,全部按照launch语言格式封装在一个launch文件中,这样以后执行的时候,就可以不用开很多终端,一条一条输入代码指令。

lauch文件的语言风格很想我之前学爬虫的时候网页代码的风格。(rosmaster也不用单开了。)

launch

<launch>根元素用<launch>标签来定义<launch>

node

<node node中封装的时是启动节点/ >

语法:

<node pkg="package-name(功能包的名字)" type="executable-name(执行器名字。其实就是代码中定义的节点名字,之前我们在CMakeList中把cpp文件做成一个可执行文件,就是那个名字,py的程序就是多个.py)" name="(这里是,该节点运行后的节点名字,其实就终端执行时,__name):=新定义的节点的名字"/>

其余可选属性

以下可选属性是和name、pkg、type同级的,均用空格间隔即可。

output:控制打印当前节点信息到当前终端中
respawn:控制当节点出错是,是否重启节点的
required:控制某个节点是否一定要启动的
ns:全称是name space,给节点加命名空间前缀的,避免节点见的冲突。
args:给节点输入参数的。C++用这个,py用的param送入value值

C++                                                                               Python

参数设置

这一段特别的是在向一个节点送入参数的视乎,node最后没有/,在param语句结束后要加一行</node>

param

用于设置ROS系统中运行中的参数,并存在参数服务器中。

<param name="output_frame" value="odom" />

封装在节点内的参数,就在名称前多出来节点名那一段的命名空间,比如说turtle_name1前面有节点命名。

rosparam

用于加载参数文件中的多个参数。

<rosparam file="param.yaml" command="load" ns="params" />

arg

用于launch文件内部的局部变量,仅限于launch文件使用。注意它和全局参数param的区别,其实就是全局变量和局部变量的区别。定义方法如下:

<arg name="arg-name" default="arg-value"/>

哪么如何调用这个arg定义的参数呢。既然说了是launch文件内部的参数,自然也智能在文件内部调用。

<param name="foo" value="$(arg arg-name)" />

<node name="node" pkg="package" type="type" args="$(arg arg-name)" / >

remap

重映射,就是改那些带有/的名字,也就是那些消息,服务的名字,这通常使用在节点输出通讯联络节点变更导致的映射关系发生变化的情况下。from:原名,同:映射之后的命名。

<remap form="turtlebot/cmd_vel" to="/cmd_vel" />

include

像c++ 语言一样引入其他launch文件。

<include file="$(dirname)/other.launch" />

更多标签可见wiki.ros.org/roslaunch/XML

编译

roslaunch learning_launch simple.launch

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值