1. 相关依赖安装

  • turtlebot3 package 的安装
    sudo apt install ros-melodic-turtlebot3*

选择相对应的ros版本进行安装,本文使用的是melodic版本

  • SLAM算法包的安装

本文使用gmapping算法包:

sudo apt install ros-melodic-gmapping
  • navigation包安装
    sudo apt install ros-melodic-navigation

2. 加载gazebo仿真环境

打开终端,首先导入机器人模型(每次打开新终端都要执行):

export TURTLEBOT3_MODEL=burger

TURTLEBOT3_MODEL 有 burger, waffle 或 waffle_pi 三种

可以打开~/.bashrc文件,把这个命令添加到最后一行,就不用每次打开终端都执行一次了

启动 gazebo 仿真环境:

roslaunch turtlebot3_gazebo turtlebot3_house.launch

可以看到在Gazebo中加载出仿真环境:

3. 建图

打开新终端,运行:

roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

 

slam_method 这里选择 gmapping,也可选择 cartographer,hector 等,需要另行安装算法包。此时建图算法开始运行,并打开rviz:

打开新终端,运行键盘控制程节点:

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

按waxd等按键,观察rviz中base_link的移动是否一致,走完房间建立完整地图。

打开新终端,保存地图:

rosrun map_server map_saver -f ~/map

4. 导航

关闭键盘控制程序,关闭gmapping建图程序,打开新终端,运行:

roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

首先使用rviz中的2D Pose Estimate工具初始化机器人相对与地图的初始位姿,使点云与地图对齐:

使用2D Nav Goal工具设置目标位姿,机器人即可进行导航: