Turtlebot2 + RplidarA2(一)Gmapping手动建图
实验准备
根据课程要求,本实验涉及的设备及软件环境如下:
- 带有Kobuki底盘的Turtlebot2移动机器人
- Rplidar-A2激光雷达
- 一台可放置在机器人上方的笔记本电脑(本实验并未采用上网本-工作站双计算机远程控制,而是将全部的功能包配置到一台计算机中,在其中执行全部命令)
- Ubuntu16.04操作系统(物理机、虚拟机均可),注意换国内镜像源
- 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
将建好的地图保存到指定文件夹(如 ~/map):
$ rosrun map_server map_saver -f ~/map/rplidar_a2_gmapping
可以看到有两个后缀分别为.yaml和.pgm的文件在此位置。
基于Gmapping算法建图时,如果周围环境较为复杂,则其在Rviz界面中会呈现出大片杂乱的蓝紫色噪点,在导航等实验中极大地影响操作,因此后续我们尝试了Cartographer算法,它的实际效果很好。
参考文献
Turtlebot及相关软件安装
实现gmapping建图(Rplidar A2版)
Turtlebot + Rplidar A2使用Gmapping建图与导航