将arg添加到启动文件

时间:2016-06-22 13:27:16

标签: parameter-passing command-line-arguments launch ros depth

我没有使用命令行运行包,而是创建了一个启动文件

Commande line:

rosrun image_view image_saver image:=/the-rgb-image-topic

启动档案:

<launch>
  <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME">
    <remap from="image" to="/camera/rgb/image_raw"/>
  </node>
</launch>

现在我想为此做同样的事情:

rosrun image_view image_saver image:=/camera/depth/image _encoding:=16UC1

如何将参数添加到启动文件中..

我想我应该像那样开始

<launch>
  <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME">
    <remap from="image" to="/camera/rgb/image_raw"/>

  <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME">
    <remap from="image" to="/camera/depth/image"/>
  </node>
</launch>

1 个答案:

答案 0 :(得分:2)

要将任意参数传递给launch-files中的节点,您可以使用node tagargs属性:

<node name="image_saver" pkg="image_view" type="image_saver" args="_encoding:=16UC1" ...>

但是,在这种特定情况下,有一种更好的方法:_encoding不仅仅是一些任意参数,而是由ROS Parameter Server处理的参数。虽然使用args属性可能会有效,但更好的方法是使用param tag

<node name="image_saver" pkg="image_view" type="image_saver">
    <remap from="image" to="/camera/depth/image" />
    <param name="encoding" value="16UC1" type="string" />
</node>