2016-06-22 43 views
1

而不是使用命令行運行的程序包的,我做了一個啓動文件添加ARG啓動文件

COMMANDE行:

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

看看到[roslaunch XML文檔(http://wiki.ros.org/roslaunch/XML ),特別是[''標籤](http://wiki.ros.org/roslaunch/XML/arg)。 – alextoind

+0

@alextoind:如果我理解正確,OP想要在啓動文件中設置參數。啓動時會使用'arg'標記將參數傳遞給啓動文件。 – luator

+0

@luator,可能你是對的,但你也可以使用''標籤的'default'屬性來提供默認行爲,如你的答案和對該參數的外部訪問(如果需要的話)。 – alextoind

回答

1

傳遞任意參數在發射後的文件節點,你可以使用的args屬性在node tag

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

然而,在這種特殊情況下有更好的辦法:_encoding不只是一些隨意的說法,但它是一個參數這是h由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>