在运行时(当我调用roslaunch时),我想在已知的目录中创建一个新的子目录,并将该路径作为rosparam传递给两个不同的节点。使用ros launch创建一个目录,然后将它的路径传递给不同的节点
如何编辑我的.launch文件来做到这一点?
例如,我有文件夹~/datacapture
。每当我使用roslaunch时,我想创建一个基于当前时间的子目录(即~/datacacpture/20161129_1352/
),并使用rosparams将它传递给几个节点。
为了进一步解释什么是我想要做的,这里有一个例子roslaunch文件:
<launch>
<node
name="node_A"
pkg="pkg_A"
type="A"
output="screen"
>
<param name="dataDumpFolder" value="???" />
</node>
<node
name="node_B"
pkg="pkg_B"
type="B"
output="screen"
>
<param name="dataDumpFolder" value="???" />
</node>
</launch>
什么,我希望它看起来就像是这样的:
<launch>
#1) create a new folder using current date.
#2) pass it's filepath into a variable. let's call the variable, NEW_FOLDER_FILE_PATH
<node
name="node_A"
pkg="pkg_A"
type="A"
output="screen"
>
<param name="dataDumpFolder" value="NEW_FOLDER_FILE_PATH" />
</node>
<node
name="node_B"
pkg="pkg_B"
type="B"
output="screen"
>
<param name="dataDumpFolder" value="NEW_FOLDER_FILE_PATH" />
</node>
</launch>
看起来更简单的方法是编写一个shell脚本来创建具有合适名称的文件夹,然后在[参数化启动文件](http://wiki.ros.org/roslaunch)上调用'roslaunch'/XML/ARG)。 – mikkola