运行roslaunch turtlebot3_gazebo slam.launch,启动slam
roslaunch turtlebot3_gazebo slam.launch
slam.launch文件如下:
<launch>
<!-- Arguments -->
<!-- <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/> -->
<arg name="configuration_basename" default="turtlebot3_lds_2d.lua"/>
<arg name="set_base_frame" default="base_footprint"/>
<arg name="set_odom_frame" default="odom"/>
<arg name="set_map_frame" default="map"/>
<!-- Gmapping -->
<node pkg="gmapping" type="slam_gmapping" name="turtlebot3_slam_gmapping" output="screen">
<param name="base_frame" value="$(arg set_base_frame)"/>
<param name="odom_frame" value="$(arg set_odom_frame)"/>
<param name="map_frame" value="$(arg set_map_frame)"/>
<rosparam command="load" file="$(find turtlebot3_slam)/config/gmapping_params.yaml" />
</node>
</launch>
在rviz中添加map
运行rosrun teleop_twist_keyboard teleop_twist_keyboard.py,手动控制机器人探索地图
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
最后运行下面的命令保存地图
rosrun map_server map_saver -f ~/catkin_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/map