如何启动ros节点

时间:2014-11-25 19:26:12

标签: camera nodes ros

在ROS中如何从终端启动ros节点?例如,我正在寻找启动节点/camera/camera_nodelet_manager,但我不知道如何?我是否使用rosrun,如果是这样的话?

2 个答案:

答案 0 :(得分:0)

通常rosrun [package_name] [node_name]完成这项工作。但是,在许多情况下,节点需要命令行参数或通过*。launch(XML)文件传递的参数。 您可以通过执行roslaunch [package_name] [launch_file_name]来启动具有启动文件的节点。

roslaunch [package_name]上的标签页会列出包中的所有启动文件。

答案 1 :(得分:0)

对于您的具体情况,您似乎正在根据经理名称/camera/camera_nodelet_manager使用openni_launch。如果您只想进行openni_launch,可以

roslaunch openni_launch openni.launch

nodelet管理器是this executable。您可以通过查看openni.launch file

来解决这个问题
<!-- Start nodelet manager in top-level namespace -->
<arg name="manager" value="$(arg camera)_nodelet_manager" />
<arg name="debug" default="false" /> <!-- Run manager in GDB? -->
<include file="$(find rgbd_launch)/launch/includes/manager.launch.xml">
  <arg name="name"                value="$(arg manager)" />
  <arg name="debug"               value="$(arg debug)" />
  <arg name="num_worker_threads"  value="$(arg num_worker_threads)" />
</include>

在包second launch file中启动rgbd_launch,启动nodelet可执行文件:

<!-- Nodelet manager -->
<node pkg="nodelet" type="nodelet" name="$(arg name)" args="manager"
      output="screen" launch-prefix="$(arg launch_prefix)">
   <param name="num_worker_threads" value="$(arg num_worker_threads)" />
</node>

但是在一般情况下,@cassinaj的建议很好,roslaunchrosrun是ROS的命令行功能,可以启动可执行代码。