Turtlebot2 + RplidarA2(一)Gmapping手动建图

Turtlebot2 + RplidarA2(一)Gmapping手动建图

  • 实验准备
  • 1.安装Turtlebot2底盘驱动
    • 1.1安装对应版本的底盘驱动
    • 1.2安装turbot功能包集
    • 1.3安装turtlebot_apps功能包集
    • 1.4Turtlebot底盘测试
  • 2.安装Rplidar A2雷达驱动
    • 2.1安装雷达驱动
    • 2.2设置USB串口权限
    • 2.3配置环境
    • 2.4雷达驱动测试
  • 3.Gmapping手动建图
  • 参考文献

实验准备

根据课程要求,本实验涉及的设备及软件环境如下:

  1. 带有Kobuki底盘的Turtlebot2移动机器人
  2. Rplidar-A2激光雷达
  3. 一台可放置在机器人上方的笔记本电脑(本实验并未采用上网本-工作站双计算机远程控制,而是将全部的功能包配置到一台计算机中,在其中执行全部命令)
  4. Ubuntu16.04操作系统(物理机、虚拟机均可),注意换国内镜像源
  5. ROS Kinetic版本

1.安装Turtlebot2底盘驱动

这一步骤将使Turtlebot2机器人的底盘能够正常启动、运行,使之能进行移动。

1.1安装对应版本的底盘驱动

$ sudo apt-get update
$ sudo apt-get install ros-kinetic-turtlebot

1.2安装turbot功能包集

$ makedir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ git clone https://github.com/ncnynl/turbot
$ cd …
$ catkin_make

接下来的Gmapping建图实验主要用到其中的turbot_bringup turbot_slam turbot_rviz等功能包。

1.3安装turtlebot_apps功能包集

$ cd ~/catkin_ws/src
$ git clone https://github.com/ncnynl/turtlebot_apps
$ cd …
$ catkin_make

其中的turtlebot_navigation是本实验所需的关键功能包。

1.4Turtlebot底盘测试

完成上面的软件安装并保证硬件端口连接的情况下,可以通过下面的命令检查kobuki端口连通情况:

$ ls /dev/kobuki

如果当前设备中未显示kobuki,则执行如下命令:

$ rosrun kobuki_ftdi create_udev_rules

并重新拔插底盘连接到笔记本的USB串口线,再次执行检查命令,可以看到显示有kobuki连接。

此后,执行如下命令启动底盘:

$ roslaunch turbot_bringup minimal.launch

如果底盘成功驱动,会播放一串开机音乐。
打开一个新终端,执行命令:

$ rosrun turbot_tools test_move

如果小车缓慢向前移动,则证明安装底盘驱动的步骤成功完成。

2.安装Rplidar A2雷达驱动

这一步骤将使机器人上的Rplidar A2激光雷达能够正常启动、运行,感知周围环境。

2.1安装雷达驱动

$ cd ~/catkin_ws/src
$ git clone https://github.com/robopeak/rplidar_ros
$ cd …
$ catkin_make

2.2设置USB串口权限

此步骤非常关键,忽略的话会导致雷达不能运行。执行命令:

$ sudo gedit /etc/udev/rules.d/70-ttyusb.rules

在打开的界面中输入如下内容并保存:

$ KERNEL==“ttyUSB[0-9]*”, MODE=“0666”

执行如下命令查看权限,包含两个 rw 即可:

$ ls -l /dev |grep ttyUSB*

2.3配置环境

执行如下命令,对工作空间路径、雷达别名进行配置:

$ echo “export TURTLEBOT_LASER_SENSOR=rplidar” >> ~/.bashrc
$ echo “source /home/ubu/turbot_ws/devel/setup.bash” >> ~/.bashrc
$ roscd rplidar_ros
$ ./scripts/create_udev_rules.sh

2.4雷达驱动测试

此前下载安装的雷达驱动中包含了3个launch文件,可以通过rplidar.launch测试雷达:

$ roslaunch rplidar_ros rplidar.launch

雷达开始旋转运行则证明安装成功。终止此进程之后,可以再通过turbot功能包测试雷达:

$ roslaunch turbot_tools rplidar.launch
$ roslaunch turbot_tools test_rplidar.launch

若Rviz可视化界面打开并呈现出雷达扫描的点云,则证明安装成功。

3.Gmapping手动建图

接下来调用功能包完成Gmapping手动二维建图,分别打开4个新终端执行如下命令:

1.启动机器人底盘:

$ roslaunch turbot_bringup minimal.launch

2.调用Gmapping算法,启动雷达、构建地图:

$ roslaunch turbot_slam laser_gmapping_demo.launch

3.启动rviz,可视化实时建图情况:

$ roslaunch turbot_rviz nav.launch

4.启动键盘控制(需要将光标聚焦到该终端),控制机器人移动建图:

$ roslaunch turbot_teleop keyboard.launch

Turtlebot2 + RplidarA2(一)Gmapping手动建图_第1张图片

将建好的地图保存到指定文件夹(如 ~/map):

$ rosrun map_server map_saver -f ~/map/rplidar_a2_gmapping

可以看到有两个后缀分别为.yaml和.pgm的文件在此位置。

基于Gmapping算法建图时,如果周围环境较为复杂,则其在Rviz界面中会呈现出大片杂乱的蓝紫色噪点,在导航等实验中极大地影响操作,因此后续我们尝试了Cartographer算法,它的实际效果很好。

参考文献

Turtlebot及相关软件安装
实现gmapping建图(Rplidar A2版)
Turtlebot + Rplidar A2使用Gmapping建图与导航

你可能感兴趣的:(slam)