小强ROS机器人教程(16)_大范围激光雷达slam与实时回路闭合测试
借助谷歌的Cartographer配合slamtec的激光雷达,我们可以尝试对大型建筑建立平面图。先看我们自己的demo演示效果。
在本demo中,小强实际运行在一个5000平米的写字楼走廊里,走廊两侧存在大量的玻璃幕墙,大楼中央存在一个大面积空旷地,加上rplidar的测距范围只有6米,因此下图的最终效果还算理想(只使用激光雷达,没有开启IMU和底盘odometer,大回路路径仍然成功闭合)
本文操作思路:因为是大范围建图,wifi网络覆盖是一个问题,所以我们借助蓝牙手柄来遥控小车运动。期间通过rosbag录制激光雷达数据,手柄遥控小车在建图范围内跑一圈,最后重放bag建图。
注:以下所有操作在小车主机ubuntu上完成
准备工作:
1.安装rplidar驱动
对于2016年11月15日之后购买小强开发平台的用户,rplidar驱动已经配置好。 rplidar的驱动安装请参考这篇教程
2.安装ps3手柄驱动
对于2016年11月15日之后购买小强开发平台的用户,请跳过本步骤。 请参考这篇安装教程
3.安装cartographer_ros
请参考这篇安装教程:http://community.bwbot.org/topic/136/google激光雷达slam算法cartographer的安装及bag包demo测试
操作步骤:
1.新开一个窗口启动rplidar
roslaunch rplidar_ros rplidar.launch
2.新开两个窗口启动ps3手柄遥控程序,按手柄连接键连上小车 第一个窗口
sudo bash
rosrun ps3joy ps3joyfake_node.py
第二个窗口
roslaunch turtlebot_teleop ps3fakexiaoqiang_teleop.launch
3.新开一个窗口启动rosbag录制进程,开始录制激光雷达数据/scan
rosbag record /scan
4.用手柄遥控小车运动,绕建图区域一圈,也可以多圈
5.bag录制完成,关闭上文的1、2、3窗口 新录制的点bag文件在小强home目录下,将其重命名为1.bag
6.启动cartographer_ros开始bag回放建图
roslaunch cartographer_ros demo_xiaoqiang_rplidar_2d.launch bag_filename:=/home/xiaoqiang/1.bag
7.一切正常的话,现在可以看到下图的类似效果,等待bag包play完
8.用map_server保存地图,本文结束
rosrun map_server map_saver --occ 51 --free 49 -f work0