有没有办法调用另一个文件夹中的可执行文件?

Is there a way to call a executable file in another folder?

我是 ros 的新手,python 我想知道当我在另一个文件夹中时是否有调用可执行文件的方法。 换句话说,我有一个名为 A 的 ros 节点(发布到节点 B)和另一个名为 B 的节点(从节点 A 接收数据)这两个节点在同一个文件夹中。

我想在我的节点 B 中调用一个可执行脚本来修改收到的数据,但这个可执行脚本位于我的工作区之外。我想用启动文件启动所有东西,这可能吗? 谢谢!

如果您将所有 executables/data 保存在 ros 可以找到它的 catkin 工作区中(例如 roscd my_pkg,那么在您的启动文件中您可以找到文件的路径。参见 roslaunch/xml syntax.

<param name="path_to_my_exe" value="$(find my_pkg)/bin/my_exe.sh"/>

您也可以只从 roslaunch 文件 运行 可执行文件 "as a node",因为所有节点都称为可执行文件。 或者,如果您想通过 cmd 行传递路径,您可以将路径硬编码为参数或自变量。

<arg name="path_to_my_exe" default="~/catkin_ws/my_pkg/bin/my_exe.sh"/>
<node ...>
  <param name="path_to_my_exe" value="$(arg path_to_my_exe)"/>
</node>

命令行,参数可选:roslaunch my_pkg main.launch path_to_my_exe:=~/diff/folder/other_exe.sh