新建一个功能包
新建一个xxx.launch文件
//这个launch文件的主要功能是启动机器人仿真环境,使用Hector SLAM进行地图构建,
//并通过Rviz显示SLAM结果。同时,通过rqt_robot_steering提供运动控制的用户界面
<launch>
//启动另一个launch文件,载入 机器人 和 SLAM 的仿真场景 载入另一个launch文件,其中包含机器人和SLAM的仿真场景的设置,功能包的完整路径+功能包下launch文件的具体路径:$(find 功能包名)+/launch/wpb_stage_slam.launch/
<include file="$(find wpr_simulation)/launch/wpb_stage_slam.launch"/>
//启动单节点,Hector SLAM 启动Hector SLAM节点,用于进行SLAM的地图构建
<node pkg="hector_mapping" type="hector_mapping" name="hector_mapping">
//参数设置
<param name="tf_map_scanmatch_transform_frame_name" value="base_footprint" />
//距离阈值:机器人在移动多远距离后才会触发地图的更新
<param name="map_update_distance_thresh" value="0.1"/>
//角度阈值:机器人的方位变化多大时才会触发地图的更新
<param name="map_update_angle_thresh" value="0.1" />
//发布地图周期:机器人每间隔多久发布一次地图更新
<param name="map_pub_period" value="0.1" />
</node>
//启动单节点, Rviz 显示 启动Rviz节点,用于可视化SLAM的结果,通过args指定保存有之前配置的rviz文件来使用之前配置好的Rviz界面
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find wpr_simulation)/rviz/slam.rviz"/>
//启动单节点, 运动控制 启动rqt_robot_steering节点,用于提供运动控制的用户界面。
<node pkg="rqt_robot_steering" type="rqt_robot_steering" name="rqt_robot_steering"/>
</launch>