将 arg 添加到启动文件
Posted
技术标签:
【中文标题】将 arg 添加到启动文件【英文标题】:Add arg to launch file 【发布时间】:2016-10-24 11:36:36 【问题描述】:我没有使用命令行运行包,而是创建了一个启动文件
命令行:
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>
【问题讨论】:
看看roslaunch XML documentation,尤其是<arg>
tag。
@alextoind:如果我理解正确,OP 想要在启动文件中设置参数。 arg
标记将用于在启动时将参数传递给启动文件。
@luator,是的,您可能是对的,但您也可以使用<arg>
标签的default
属性来提供答案中的默认行为以及对该参数的外部访问,如果需要。
【参考方案1】:
要将任意参数传递给启动文件中的节点,您可以使用node
tag 的args
属性:
<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>
【讨论】:
以上是关于将 arg 添加到启动文件的主要内容,如果未能解决你的问题,请参考以下文章
如何将启动图像添加到 Sencha Touch 2 应用程序?
Cordova cli 使用 7.5mb 的默认启动屏幕/图标将 res 文件夹添加到 /www