File 如何在ROS中找到生成文件的程序?

File 如何在ROS中找到生成文件的程序?,file,ros,launch,File,Ros,Launch,我的启动文件使用ROS中的文件pivotFiles/art_to_kinect2_1.txt。如何找到生成此文件的程序,以便启动文件可以使用它 <param name="fileName" value="$(find pivotFiles/art_to_kinect2_1.txt" /> find命令将只查找您环境中可用的ROS包。因此,如果您的文本文件存储在ROS包中,例如: /home/user/catkin_ws/src/my_package/pivotFiles/art_t

我的启动文件使用ROS中的文件
pivotFiles/art_to_kinect2_1.txt
。如何找到生成此文件的程序,以便启动文件可以使用它

<param name="fileName" value="$(find pivotFiles/art_to_kinect2_1.txt" />

find命令将只查找您环境中可用的ROS包。因此,如果您的文本文件存储在ROS包中,例如:

/home/user/catkin_ws/src/my_package/pivotFiles/art_to_kinect2_1.txt 
然后,如果您只想将该文件的路径加载到ROS参数服务器,您可以这样做

<param name="fileName" value="$(find my_package)/pivotFiles/art_to_kinect2_1.txt"/>
<param name="fileContents" command="cat $(find my_package)/pivotFiles/art_to_kinect2_1.txt"/>
<param name="fileName" value="$(optenv CONFIG_PATH /home/user/some_folder/pivotFiles)/art_to_kinect2_1.txt"/>
roslaunch my_package my_launch_file.launch config_path:=/home/user/some_other_folder
然后,您可以根据需要配置环境变量
CONFIG\u PATH
。我通常喜欢的选项是
arg
,因为在运行roslaunch时可以从命令行传入路径。在您的启动文件中,您可以

<arg name="config_path" default="/home/user/some_folder/pivotFiles"/>

这将切换启动文件中使用的配置路径
opt_env
基本上也在做同样的事情,但是通过环境变量,当我可以将它直接传递到参数中缺少a)的文件时,我通常不想弄乱这些变量。“生成文件”是什么意思?此文件不是自动生成的,但已存在。使用“param”后,您在ROSparam服务器上创建了一个名为“fileName”的参数,该值是我猜输入文件的位置。同时检查:您的启动文件以何种方式使用该文本文件?@LakshmiDevarajNair我认为说您的启动文件进行这些计算并覆盖是误导的,您的意思是启动文件启动执行此处理的节点吗?生成的文件似乎独立于启动文件。启动文件所做的就是启动节点和加载参数等等。你基本上只是想知道你的计算机上的哪个程序正在生成这个文本文件?
roslaunch my_package my_launch_file.launch config_path:=/home/user/some_other_folder