ROS_Kinetic_27 在ROS中使用Cartographer进行SLAM
ROS_Kinetic_27 在ROS中使用Cartographer进行SLAM
Cartographer是谷歌新開源的通用的2D和3D定位與構圖同步的SLAM工具,並提供ROS接口。
论文Real-Time Loop Closure in 2D LIDAR SLAM下载地址:
http://download.csdn.net/detail/zhangrelay/9648192
资料汇总请参考:http://blog.csdn.net/zhangrelay/article/details/52748648
视频: 1 http://v.youku.com/v_show/id_XMTc1MzI1MTYyNA
2 http://v.youku.com/v_show/id_XMTc1MzI1MDQwNA
3 http://v.youku.com/v_show/id_XMTc1MzI1MDgyMA
1. 編譯和安裝:
官網提供了基於Ubuntu 14.04(Trusty)和ROS(indigo)測試和安裝說明,這裏在Ubuntu 16.04(Xenial)和ROS(Kinetic)安裝並測試。建議使用wstool和rosdep,並在編譯時使用Ninja。注意這裏是cartographer_ros,
如果只使用cartographer,請参考: https://google-cartographer.readthedocs.io/en/latest/
安裝wstool和rosdep:
~$ sudo apt-get install -y python-wstool python-rosdep ninja-build
新建工作空間,這裏使用catkin_ctg:
~$ mkdir catkin_ctg
~$ cd catkin_ctg
~/catkin_ctg$ wstool init src
從github下載,當然也可以使用:
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
Github下載地址:https://github.com/googlecartographer
~/catkin_ctg$ wstool update -t src
~/catkin_ctg$ rosdep install --from-paths src --ignore-src --rosdistro=${kinetic} -y
#All required rosdeps installedsuccessfully
~/catkin_ctg$ catkin_make_isolated --install --use-ninja
編譯需要10分鍾以上,休息一下。
如果報錯,如下:
確保網絡正常後,重試。也可以手動安裝ceres_solver非線性優化庫, https://github.com/ceres-solver/ceres-solver
編譯完成後不要忘記source:
~/catkin_ctg$ source install_isolated/setup.bash
到這裏,編譯和安裝就基本結束了。
2. 測試demo:
在保證cartographer和cartographer_ros都安裝好,可以下載數據記錄包,啓動demo,
這裏只測試了1(493.4MB)和3(3.2MB),2和4數據記錄包太大了,分別爲8GB和3GB,有興趣可以下載測試。
使用roslaunch會自動啓動roscore和rviz。
~$ roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/cartographer_paper_deutsches_museum.bag
~$ roslaunch cartographer_ros demo_revo_lds.launch bag_filename:=${HOME}/cartographer_paper_revo_lds.bag
附原汁原味的论文:
-End-
ROS_Kinetic_27 在ROS中使用Cartographer进行SLAM的更多相关文章
- 对比几种在ROS中常用的几种SLAM算法
在此因为要总结写一个文档,所以查阅资料,将总结的内容记录下来,欢迎大家指正! 文章将介绍使用的基于机器人操作系统(ROS)框架工作的SLAM算法. 在ROS中提供的五种基于2D激光的SLAM算法分别是 ...
- 将ROS中的/sensor_msgs/NavSatFix数据导入google earth显示轨迹
将ros中的gps_msg数据导入google earth显示轨迹 [TOC] 1. 获取GPS数据 将ros中发布的gps topic输出到文本中 rostopic echo -p /gpsData ...
- ROS_Kinetic_07 ROS中机器人三维物理引擎高保真仿真利器gazebo 7.0
ROS_Kinetic_07 ROS中机器人三维物理引擎高保真仿真利器gazebo 7.0 ROS kinetic中的gazebo版本是7.0,有很多新的特性. 首先,启动gazebo: ~$ gaz ...
- ROS中的CMakeLists.txt
在ROS的编程过程中,如果CMakeLists.txt如果写不好,编译就很难成功.如果看不懂CMakeLists.txt那么很多错误你也不知道时什么回事.所以深入了解它是很有必要的.现在我们就来看看它 ...
- ROS中利用V-rep进行地图构建仿真
V-rep中显示激光扫描点 在VREP自带的场景中找到practicalPathPlanningDemo.ttt文件,删除场景中多余的物体只保留静态的地图.然后在Model browser→comp ...
- ROS中发布激光扫描消息
激光雷达工作时会先在当前位置发出激光并接收反射光束,解析得到距离信息,而后激光发射器会转过一个角度分辨率对应的角度再次重复这个过程.限于物理及机械方面的限制,激光雷达通常会有一部分“盲区”.使用激光雷 ...
- 如何在ROS中使用PCL(2)
记录关于我们运行roslaunch openni_launch openni.launch 命令时生成的话题以及这些话题的数据类型便于后期的处理,只有知道它们的数据结构,才能很好的对数据进行处理,我 ...
- 如何在ROS中使用PCL—数据格式(1)
在ROS中点云的数据类型 在ROS中表示点云的数据结构有: sensor_msgs::PointCloud sensor_msgs::PointCloud2 pcl::PointCl ...
- ROS中的CMakeLists.txt (转)
在ROS的编程过程中,如果CMakeLists.txt如果写不好,编译就很难成功.如果看不懂CMakeLists.txt那么很多错误你也不知道时什么回事.所以深入了解它是很右必要的.现在我们就来看看它 ...
随机推荐
- Scrapy选择器的用法
1.构造选择器: >>> response = HtmlResponse(url='http://example.com', body=body) >>> Sele ...
- codevs 3061 质子撞击炮②
提交地址:http://codevs.cn/problem/3016/ 3016 质子撞击炮 II 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描 ...
- 基于webpack的React项目搭建(二)
前言 前面我们已经搭建了基础环境,现在将开发环境更完善一些. devtool 在开发的过程,我们会经常调试,so,为了方便我们在chrome中调试源代码,需要更改webpack.config.js,然 ...
- [USACO 12JAN]Mountain Climbing
Description Farmer John has discovered that his cows produce higher quality milk when they are subje ...
- 51nod 1364 最大字典序排列(线段树)
1364 最大字典序排列基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字 ...
- hdu 5011(博弈)
题意:在许多堆石子中,两人轮流取,1.在一堆中取至少一个 2.将这一堆分成两堆 思路:NIM游戏,所有值的异或,当其为0时失败 nim游戏: 假设只有两堆,游戏人取得胜利并不在于N1和N2的值具体是 ...
- HDU 1729
给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置 她在行走过程中,不能转太多弯了,否则她会晕倒的. (每次在一个方向上一直走到底,并push ...
- [BZOJ]1095 Hide捉迷藏(ZJOI2007)
一道神题,两种神做法. Description 捉迷藏 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiajia.Wind和孩子们决定在家里玩捉迷藏游戏.他们的家很大且构造很奇特 ...
- 笔记13 AOP中After和AfterReturning的区别
AOP中 @Before @After @AfterThrowing@AfterReturning的执行顺序 public Object invoke(Object proxy, Method met ...
- jquery 元素控制(追加元素/追加内容)介绍及应用
http://blog.csdn.net/gisredevelopment/article/details/41126533 一.在元素内部/外部追加元素 append,prepend:添加到子元素 ...