案例一
//使用启动标记启动启动文件,以便将文件标识为启动文件
<launch>
//在这里,我们启动两个组,其名称空间标签为turtlesim1,turtlesim2为turtlesim节点,名称为sim。
//这允许我们在没有名称冲突的情况下启动两个模拟器。
<group ns="turtlesim1">
<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
</group>
<group ns="turtlesim2">
<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
</group>
//在这里,我们启动模拟节点,主题输入和输出重命名为turtlesim1和turtlesim2。
//这个重命名将导致turtlesim2模仿turtlesim1。
<node pkg="turtlesim" name="mimic" type="mimic">
<remap from="input" to="turtlesim1/turtle1"/>
<remap from="output" to="turtlesim2/turtle1"/>
</node>
//将关闭启动文件的xml标记
</launch>
案例二:包含其他launch文件
<launch>
<node name="wyp_play" pkg="rosbag" type="play" args="--clock $(find get_midline)/../../bag/19-2.bag" />
</launch>
<launch>
<!--<node name="get_midline" pkg="get_midline" type="get_midline" output="screen" >
</node>-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find get_midline)/rviz_cfg/get_midline.rviz" />
<!-- launch文件 -->
<include file="$(find get_midline)/launch/play_bag.launch" />
</launch>
案例三:参数配置
<?xml version="1.0"?>
<launch>
<arg name="dist" default="0"/>
<arg name="cam" default="$(find ccmslam)/conf/vi_euroc.yaml"/>
<group ns="ccmslam">
<node pkg="tf" type="static_transform_publisher" name="linkC0_broadcaster" args="-100 300 5 -1.571 0 -2 world odomC0 100" />
<node pkg="ccmslam" type="ccmslamClientNode" name="ccmslamClientNode0" args="$(find ccmslam)/conf/ORBvoc.txt $(arg cam)" output="screen">
<!-- ++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Agent Specific Params - !!!MUST BE ADJUSTED!!! -->
<param name="~FrameId" type="string" value="odomC0" />
<param name="~ClientId" type="int" value="0" />
<param name="~TopicNameCamSub" type="string" value="/cam0/image_raw" />
<param name="~MapInTopicName" type="string" value="MapOutServer0" unless="$(arg dist)" />
<param name="~MapInTopicName" type="string" value="MapOutServer0Disturbed" if="$(arg dist)" />
</node>
</group>
</launch>