ros项目中,从launch文件中读取参数,启动节点

1、param 标签的使用:

该标签所设置的参数都是全局参数,保存在参数服务器中,功能节点可以通过参数服务器的相关函数进行读取,可以把该标签的参数理解为功能节点的配置参数,作用于功能,一般不修改其值

<node pkg="功能包名" name="节点名" type="可执行节点名">
 <param name="参数名" value="参数值" />
</node >

2、arg 标签:不同于 param 标签,arg 参数作用于 Launch 文件,类似于以往的命令行参数,

也可以理解为 C 语言中的 define 所定义的变量,在执行时会进行替换。因此这类参数并不保存在参数服务器上,而是使用“$(arg 参数名)”的方式来应用变量,使用方法如下

定义个三个参数:

<arg name="speed" default="1" />
<arg name="distance" default="5" />
<arg name="is_forward" default="True" />

定义一个功能节点,并使用 node 标签的 args 属性载入 arg 参数:

 <node pkg="功 能 包 名" name="节 点 名" type="可 执 行 节 点 名"
 args="$(arg speed) $(arg distance) $(arg is_forward)"/>

需要注意的是,当执行代码 Launch 文件时,功能节点接收到的参数并不是三个参数,而是
六个参数,共三部分组成,第一部分是第一个参数表示当前执行中的可执行节点名的完整路径,第
二部分是 arg 定义的参数列表,第三部分是 node 标签中定义的节点名 name 和该节点运行时的 log 文件存放地址

3、执行Launch文件

 roslaunch 功能包名 XXX.launch

等价于如下指令:

 rosrun 功能包名  可执行节点名  参数1...参数N 节点名 log文件存放地址
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值