一.下载必要的cartographer依赖以及SDK(引用自参照网址:https://community.bwbot.org/topic/136/google%E6%BF%80%E5%85%89%E9%9B%B7%E8%BE%BEslam%E7%AE%97%E6%B3%95cartographer%E7%9A%84%E5%AE%89%E8%A3%85%E5%8F%8Abag%E5%8C%85demo%E6%B5%8B%E8%AF%95/2)
1.安装依赖包
sudo apt-get update
sudo apt-get install -y \cmake \g++ \git \google-mock \libboost-all-dev \libcairo2-dev \libeigen3-dev \libgflags-dev \libgoogle-glog-dev \liblua5.2-dev \libprotobuf-dev \libsuitesparse-dev \libwebp-dev \ninja-build \protobuf-compiler \python-sphinx

2.安装ceres_solver

cd  ~/Documents
git clone https://github.com/BlueWhaleRobot/ceres-solver.git
cd ceres-solver
mkdir build
cd build
cmake ..
make -j
sudo make install

3.安装prtobuf 3.0

cd  ~/Documents
git clone https://github.com/google/protobuf.git
cd protobuf
git checkout 3.6.x
mkdir build
cd build
cmake  \-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DCMAKE_BUILD_TYPE=Release \
  -Dprotobuf_BUILD_TESTS=OFF \
  ../cmake
make -j 2
sudo make install

4.安装cartographer开发工具包

cd  ~/Documents
git clone https://github.com/BlueWhaleRobot/cartographer.git
cd cartographer
mkdir build
cd build
cmake ..
make -j
sudo make install

5.安装cartographer_ros(ROS的package 安装在ROS工作空间下即可)

cd ~/Documents/ros/src   #请修改路径到自己的ROS catkin工作空间
git clone https://github.com/BlueWhaleRobot/cartographer_ros.git
cd ..
catkin_make
注意
若以上编译过程出现类似报错:
CMake Error at /usr/local/share/cartographer/cmake/functions.cmake:101 (message):Compiling in Debug mode is not supported and can cause severely degradedperformance.  You should change the build type to Release.  If you want tobuild in Debug mode anyway, call CMake with -DFORCE_DEBUG_BUILD=True
Call Stack (most recent call first):cartographer_ros/cartographer_ros/CMakeLists.txt:42 (google_initialize_cartographer_project)

那么是编译时选择编译模式的问题,对此,解决的办法是在编译时采用DEBUG模式,即将对应的编译语句改为如下:

$ catkin_make -DFORCE_DEBUG_BUILD=True
$ cmake -DFORCE_DEBUG_BUILD=True ..

问题即可解决

二.安装激光雷达的ROS包(我的激光雷达为 思岚A2)

$ cd (你的ROS工作空间下)/src
$ git clone https://github.com/Slamtec/rplidar_ros.git(如果这个包不好用,百度一下其他的包,这个是思岚的)
$ cd ..
$ catkin_make
$ roslaunch rplidar_ros view_rpliar.launch

不出意外的话,可以看到弹出Rviz里面显示了激光雷达的识别结果,表示安装成功了

三.建图走起
1.首先启动激光雷达,以及 rosbag
$ roslaunch    rplidar_ros rplidar.launch

用rosbag 记录雷达发出的话题 /scan  的数据,用来建图

$ rosbag record /scan

2. 启动机器人的运动控制程序,让机器人围绕你想要建图的区域跑一圈或以上,在rosbag中记录数据,每个机器的运动控制不一样(手柄 手机 键盘...),此处不加代码了

3.机器人跑完一圈后,本地的rosbag应该也有了一份完整的地图数据源,可以关闭以上的rplidar_ros和数据录制了.将录制数据保存在 /home 下,重命名为 '1.bag'

4.回放刚刚保存的数据,建图

$ roslaunch    cartographer_ros    demo_xiaoqiang_rplidar_2d.launch bag_filename:=/home/xiaoqiang/ 1.bag(你存放地图的目录)

此时,你应该看到Rviz里面的建图画面:

下面,静静等待你的数据包回放完毕(终端会有提示),过程时间会根据你的电脑性能而有差异.
5.结束建图
将建图的结果(.pbstream)保存,文件可以在~/.ros/目录找到.操作如下:

#打开ros service调用工具
#在小车主机上新开一个命令终端
rosrun rqt_service_caller rqt_service_caller
#先调用/finish_trajectory服务结束建图
#接着调用/write_state服务,将cartographer_ros建图结果保存为pbstream文件,test.pbstream。

6.地图格式转换
将建好的地图保存为我们可以使用的 .yaml 文件
使用如下方法,其中-pbstream_filename后面为上面保存的pbstream文件的目录
-map_filestem为即将保存的ROS地图文件名和路径,此处不佳后缀
(如果提示参数不对,将 '=' 改为 ':=')
-resolution=0.05 为地图精度:一个栅格0.05m

rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=/home/xiaoqiang/map -pbstream_filename=/home/xiaoqiang/test.pbstream -resolution=0.05

如果成功的话,将会得到两个ROS的地图数据文件

使用激光雷达(rplidar A2)和 google cartographer_ros算法包建图(以及转换为yaml文件)相关推荐

  1. Gazebo-Ros搭建小车和场景并运行slam算法进行建图0--整体描述和资源

    Gazebo-Ros搭建小车和场景并运行slam算法进行建图0–整体描述和资源 **背景:**需要在具体场景下运行slam算法,由于网上资源都是比较复杂的综合型机器人,作为新手不会删减改动,便想从头开 ...

  2. SLAM | 视觉SLAM中的后端:后端优化算法与建图模板

    点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 前面的话 前面系列一中我们介绍了,VSLAM 是利用多视图几何理论,根据相机拍摄的图像信息 ...

  3. 面向固态激光雷达和惯导的里程计和建图

    点云PCL免费知识星球,点云论文速读. 文章:Towards High-Performance Solid-State-LiDAR-Inertial Odometry and Mapping 作者:K ...

  4. 谷歌cartographer使用速腾聚创3d激光雷达数据进行三维建图

    原链接: https://community.bwbot.org/topic/523 谷歌cartographer_ros请参考这篇安装教程:http://community.bwbot.org/to ...

  5. 基于固态激光雷达Livox的建图与定位系统!提供Docker自测!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨黄思渊 来源丨 计算机视觉life 今天介绍一个最新的SLAM开源算法,作者开源了一套完整易用的 ...

  6. LiLi-OM: 走向高性能固态激光雷达惯性里程计和建图系统

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 编辑丨当SLAM遇见小王同学 声明: 本文只是个人学习记录,侵权可删.论文版权与著作权等全归原作者所 ...

  7. 思岚RPLIDAR A2激光雷达使用及问题解决

    思岚RPLIDAR A2激光雷达使用及问题解决1.下载源码第一步,下载雷达源代码,第一种方法是输入下列网址:http://slamtec.com/rplidar/a2/download,界面有雷达的说 ...

  8. Rplidar A2 激光雷达使用hector_slam进行建图

    手头上有一个Rplidar A2 激光雷达,通过其进行slam建图,如下. 环境: 1.Rplidar A2 激光雷达: 2.笔记本电脑: 3.Ubuntu 16.04; 4.ROS Kinetic. ...

  9. ROS学习心得——正确运行RPLIDAR A2激光雷达(让它转起来吧!)

    ROS学习心得--正确运行RPLIDAR A2激光雷达 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 产品相关数据与官方文档:http:// ...

最新文章

  1. DevOps滚动部署
  2. JavaEE 要懂的小事:一、图解Http协议
  3. 25. Leetcode 143. 重排链表 (链表-基础操作类-重排链表)
  4. [综合面试] 大牛的面试神级总结之总结篇
  5. 密码学专题 密钥生成|分组加密的模式 ECB|CBC|CFB|OFB
  6. python动态执行语句_Python Language
  7. 在markdown中通过html语法实现表格中的有序列表和无需列表
  8. MySQL实验: 实践索引对全列匹配、最左前缀匹配、范围查询等条件的影响以及了解脏读、幻读等...
  9. HTML做一个简单漂亮的宠物网页(纯html代码)
  10. 郑树生与李一男的对望
  11. python星空画法教程,PS后期打造一张惊艳的星空风景照片后期调色教程
  12. 数据库中第一范式、第二范式、第三范式
  13. 微信利用小号和大号的好友聊天(基于wxpy库)
  14. 校园外卖系统 - 「农职邦」微信原生云开发小程序
  15. Qt Creator 添加大恒相机SDK库
  16. 微观经济学--第4章 供给与需求的市场力量
  17. 安装WampServer后无法打开localhost的问题
  18. 信息时代的必修课:冗余度(善用信息冗余成为沟通的高手)
  19. Hypermesh三维网格划分技能,以汽车发动机连杆结构为例
  20. 快加入「我的最爱」吧 Python 开发者不容错过的30 个Github 开源专案(下)

热门文章

  1. 我们为什么要参与到 GSoC/GSoD 的活动中?
  2. 手机怎么把视频压缩到最小
  3. adlds文件服务器,Windows轻型目录(AD LDS)的备份恢复
  4. php表格怎么自动排序,Excel表格怎么自动排名
  5. 可汗学院金融学(一)
  6. 群晖(Synology)NAS服务器硬盘莫名丢失存储空间的解决方法
  7. 数据仓库DW、ODS、DM及其区别
  8. 【标准】要点整理-软件服务商交付能力评估标准
  9. linux 启动 grub 修复工具,当Ubuntu无法启动时,如何修复GRUB2?
  10. KOL垂直化,品牌营销策略如何变更?