ROS launch 中的arg

2 篇文章 0 订阅

ROS launch 中的arg

比如在launch中启动以下节点,只传入一个参数pub1

<node pkg="tf2_DEMO" type="test02_pub_turtle" name="pub2" args="turtle1" output="screen"/>

但实际会有传入以下内容

argc 4

argv[0] /home/yh/ros_demo/demo1/devel/lib/tf2_DEMO/test02_pub_turtle

argv[1] turtle2

argv[2]=name:=pub2

argv[3]=log:=/home/yh/.ros/log/4f934af8-175c-11ec-88d3-434be08bbc8f/pub2-6.log

第1个是程序名

第2个是实际传入的参数

第3个是 launch中的name

第4个是log输出地址

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROSlaunch文件,可以使用arg标签定义参数,并将其传递给节点或其他launch文件。arg标签的语法如下: ```xml <arg name="参数名称" default="默认值"/> ``` 其,name属性表示参数的名称,default属性表示参数的默认值。使用该标签可以定义多个参数,并将其传递给节点或其他launch文件。 例如,以下是一个使用arg标签定义参数的示例: ```xml <launch> <!-- 定义参数 --> <arg name="foo" default="bar"/> <!-- 启动节点 --> <node name="my_node" pkg="my_package" type="my_node.py"> <!-- 传递参数 --> <param name="foo_param" value="$(arg foo)"/> </node> </launch> ``` 在上述示例arg标签定义了一个名为"foo"的参数,并将其默认值设置为"bar"。在启动节点时,使用param标签将参数传递给节点,并使用"$(arg foo)"的方式获取参数的值。 如果需要在命令行传递参数,可以使用以下方式运行launch文件: ```bash $ roslaunch my_package my_launch_file.launch foo:=value ``` 在上述命令,"foo:=value"表示将名为"foo"的参数的值设置为"value"。在launch文件,可以使用$(arg foo)的方式获取该参数的值。 除了使用arg标签定义参数外,还可以使用rosparam命令在终端设置参数的值,并在launch文件使用param标签获取该参数的值。例如,可以使用以下命令设置名为"foo"的参数的值: ```bash $ rosparam set foo value ``` 在launch文件,可以使用以下方式获取该参数的值: ```xml <param name="foo_param" value="$(arg foo)"/> ``` 以上是ROS launch文件定义参数的几种方式,开发者可以根据实际需要选择适合的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值