在ROS中如何从终端启动ros节点?例如,我正在寻找启动节点/camera/camera_nodelet_manager
,但我不知道如何?我是否使用rosrun,如果是这样的话?
答案 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的建议很好,roslaunch
和rosrun
是ROS的命令行功能,可以启动可执行代码。