首先,给出一个简单的launch文件的例子:
<launch>
<arg name="rgb_image_topic" default="/camera_imitation/rgb_image" />
<arg name="output_frame" default="/camera_color_optical_frame" />
<node name="rgb_image_node" pkg="camera_imitation" type="rgb_image_node" output="screen">
<remap from="camera_image" to="$(arg rgb_image_topic)" />
<param name="output_frame" type="string" value="$(arg output_frame)" />
</node>
...
</launch>
launch
文件的作用是同时启动多个node
,它本身是一个超文本。每个<node></node>
都代表一个node
的启动配置,这些node
是同时启动的。
name="rgb_image_node" pkg="camera_imitation" type="rgb_image_node"
name
是节点名,pkg
是包名,type
是源文件名。
<arg name="output_frame" default="/camera_color_optical_frame" />
<param name="output_frame" type="string" value="$(arg output_frame)" />
arg
是launch文件内参数,param
是ROS
参数服务器参数,可以通过get_param()
调用。
<remap from="camera_image" to="$(arg rgb_image_topic)" />
remap
用于重定向topic