一.下载turtlebot3、建立地图文件yaml和pgm
ROS:gazebo创建仿真地图,turtlebot3加载仿真地图进行建图,生成yaml和pgm地图信息_Charlesffff的博客-CSDN博客
二.创建目录
其中amcl.launch和move_base.launch目录在turtlebot3中:
其中turtlebot3_navigation.rviz目录在turtlebot3中:
worlds对应gazebo模型;maps对应rviz模型;
一定要注意此处文件名:
三.launch文件编写
amcl.launch和move_base.launch是不用修改的。
1、load_mapfile.launch 文件中对应修改内容如下:
1、 load_mapfile.launch 内容如下:
<launch>
<!-- Arguments:参数设置,包括:加载turtlebot3机器人模型、是否打开rviz、地图文件 -->
<arg name="model" default="burger" doc="model type [burger, waffle, waffle_pi]"/>
<arg name="configuration_basename" default="turtlebot3_lds_2d.lua"/>
<!--是否打开rviz -->
<arg name="open_rviz" default="true"/>
<!-- 设置地图文件yaml -->
<arg name="map_file" default="$(find robot_setup_tf)/maps/house.yaml" />
<!-- TurtleBot3:加载机器人模型 -->
<include file="$(find turtlebot3_bringup)/launch/turtlebot3_remote.launch">
<arg name="model" value="$(arg model)" />
</include>
<!--加载gazebo-->
<include file="$(find robot_setup_tf)/launch/load_gazebo.launch"/>
<!-- 启动导航系统,用作目标点路径规划,实现躲避小障碍物-->
<include file="$(find robot_setup_tf)/launch/load_navigation.launch">
<arg name="model" value="$(arg model)" />
<arg name="map_file" value="$(arg map_file)"/>
</include>
</launch>
2、load_gazebo.launch 文件中 对应修改内容如下:
2、load_gazebo.launch 内容如下:
<launch>
<!-- Arguments:参数设置,包括:加载turtlebot3机器人模型、是否打开rviz、地图文件 -->
<arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/>
<!--机器人初始位置-->
<arg name="x_pos" default="0.0"/>
<arg name="y_pos" default="0.0"/>
<arg name="z_pos" default="0.0"/>
<!--配置gazebo模型-->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="$(find robot_setup_tf)/worlds/house.world"/>
<arg name="paused" value="false"/>
<arg name="use_sim_time" value="true"/>
<arg name="gui" value="true"/>
<arg name="headless" value="false"/>
<arg name="debug" value="false"/>
</include>
<!--给gazebo加载turtlebot3模型-->
<param name="robot_description" command="$(find xacro)/xacro --inorder $(find turtlebot3_description)/urdf/turtlebot3_$(arg model).urdf.xacro" />
<!--运行gazebo结点-->
<node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf" args="-urdf -model turtlebot3_$(arg model) -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos) -param robot_description" />
</launch>
3、load_navigation.launch文件中对应修改内容如下:
3、load_navigation.launch内容如下:
<launch>
<!-- Arguments :机器人模型、地图文件、打开rviz、机器人运动-->
<arg name="model" default="burger" doc="model type [burger, waffle, waffle_pi]"/>
<arg name="map_file" default="$(find robot_setup_tf)/maps/house.yaml"/>
<arg name="open_rviz" default="true"/>
<arg name="move_forward_only" default="false"/>
<!-- Map server :加载地图文件-->
<node pkg="map_server" name="map_server" type="map_server" args="$(arg map_file)"/>
<!-- AMCL :定位-->
<include file="$(find robot_setup_tf)/launch/amcl.launch"/>
<!-- move_base :机器人运动-->
<include file="$(find robot_setup_tf)/launch/move_base.launch">
<arg name="model" value="$(arg model)" />
<arg name="move_forward_only" value="$(arg move_forward_only)"/>
</include>
<!-- rviz :打开riviz-->
<group if="$(arg open_rviz)">
<node pkg="rviz" type="rviz" name="rviz" required="true"
args="-d $(find robot_setup_tf)/rviz/turtlebot3_navigation.rviz"/>
</group>
</launch>
三.最终运行结果
终端运行:
roslaunch robot_setup_tf load_mapfile.launch
结果: