【萌新向】cartographer_ros最新安装指南 2019-12
首先说明,这篇文章于2019年12月写下,cartographer现在还在不断更新,也许这篇文档内容会失效,但是大体是一样的安装流程。
一、硬件条件
使用平台
- x86_64平台
ROS发行版
- Indigo
- Kinetic
- Lunar
- Melodic
二、编译安装
1. 先安装一些必要的安装工具:python-wstool、python-rosdep和ninja;
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
2. 创建一个cartographer_ros的工作空间,命名为"catkin_ws",并初始化。
mkdir catkin_ws
cd catkin_ws
wstool init src
# 这里先增加一个.rosinstall文件,修改内容如下一段
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
- 这里得提一下, 个别地区没方法访问googlesource.com,即谷歌的源代码仓库,上面第四句执行之后,修改 .rosinstall 文件到src目录:
- git: {local-name: cartographer, uri: 'https://github.com/googlecartographer/cartographer.git', version: '1.0.0'}
- git: {local-name: cartographer_ros, uri: 'https://github.com/googlecartographer/cartographer_ros.git', version: '1.0.0'}
- git: {local-name: ceres-solver, uri: 'https://github.com/ceres-solver/ceres-solver.git', version: '1.13.0'}
- !注:也可以直接复制上面的git源码地址uri,下载对应版本的源码到对应的工作空间src里面,就不需要wstool部分命令了。
- 顺便也提供了蓝奏云链接:https://www.lanzous.com/b0akgy6uh 密码:cmvf
3. 安装cartographer_ros的依赖项(proto3和deb软件包)。如果自安装ROS以来已经执行过初始化rosdep的命令,则命令'sudo rosdep init'将显示错误,该错误可以忽略。
# 脚本内容是配置了一些环境变量,然后用git下载proto3(肯定比较慢,可以手动下载),如果手动下载了proto3,里面需要改内容,内容在下一段。
src/cartographer/scripts/install_proto3.sh
# 这句初始化rosdep,一般正常安装ros都执行过,可以不用管。
sudo rosdep init
# 下面这两句,是常用来一键安装该工作空间下所有依赖包的,务必熟练使用
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
- !注意如果手动下载了3.4.1版本的proto3,建议还是用install_proto3.sh安装,不过需要修改内容为:
# 只是注释掉了git下载和切换的内容。
set -o errexit
set -o verbose
# VERSION="v3.4.1"
# Build and install proto3.
# git clone https://github.com/google/protobuf.git
cd protobuf
# git checkout tags/${VERSION}
mkdir build
cd build
cmake -G Ninja \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_BUILD_TYPE=Release \
-Dprotobuf_BUILD_TESTS=OFF \
../cmake
ninja
sudo ninja install
4. 构建并安装。
# 用ninja工具进行catkin的编译
catkin_make_isolated --install --use-ninja
注意:
- 到这里,执行完上面的步骤,没报错的话就安装成功了。
- 有些萌新因为git的配置问题报错下载失败,就按照报错提示百度一下解决;不想折腾git的话,也可以直接打开.rosinstall的那三个源码链接,下载对应版本的源码(version标注的内容)。
- git下载速度慢,基本上也是因为DNS污染的原因,这里修改一下hosts文件:
sudo gedit /etc/hosts
增加以下内容(给dns指定了github的服务器地址):
# 建议在http://ip.tool.chinaz.com/github.com查询以下三个网址对应的ip,这里是2019-12月的数据,可能会改变
github.com 13.250.177.223
assets-cdn.github.com 185.199.108.153
github.global.ssl.fastly.net 75.126.215.88
重启networking
sudo /etc/init.d/networking restart
三、跑数据集安装测试
1. 测试数据集
- 现在已经安装了Cartographer和Cartographer的ROS集成,可以下载封装成bag包形式的数据集。这里提供了德国博物馆的数据集。这个数据集是人类背着激光雷达录制的,效果也是不错。
- 首先,下载数据集,然后运行demo,会自动打开rviz。
# 这句命令把数据集下载到了Downloads文件夹,如果没有wget工具,可以自己安装
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
# 记得先配置工作空间到环境变量
echo "source ~/catkin_ws/install_isolated/setup.bash" >> ~/.bashrc
# 这句用roslaunch启动了放在对应目录的数据集
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
- 如果下载bag速度慢的话,可以用迅雷下载第一句命令的地址,即https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag,然后放在对应的文件夹;
- 另外如果不想手动输入bag文件名,直接把文件拖动到终端命令行界面有惊喜。
随便找了张图:
2. 其他bag数据集
- MIT提供的公共数据集(2D、3D):
https://www.ncnynl.com/archives/201810/2783.html
参考文献:
【萌新向】cartographer_ros最新安装指南 2019-12的更多相关文章
- NOI2019退役记 upd:2019.12.1
(我把原来写的东西全部删掉了) AFO. 我退役了,\(\mbox{yyb}\)退役了. 至少,在接下来的日子里,我得投身到文化课,度过快乐的高三生活了. 这两年的\(OI\)生涯给了我很多,让我学会 ...
- 手把手教你提交Jar包到Maven公共仓库 | 萌新写开源02
在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源. 之前,我的项目开源在Github上,大家想要用我的项目,还得把 ...
- 萌新笔记——C++里创建 Trie字典树(中文词典)(二)(插入、查找、导入、导出)
萌新做词典第二篇,做得不好,还请指正,谢谢大佬! 做好了插入与遍历功能之后,我发现最基本的查找功能没有实现,同时还希望能够把内存的数据存入文件保存下来,并可以从文件中导入词典.此外,数据的路径是存在配 ...
- 萌新的IDEA_web开发笔记(未完)
萌新IDEA_web开发笔记 按兴趣自己搞的网页: http://47.94.140.98:8080/ow_web/my_web/web/ 暂时还没做完. 部署在租的服务器上面,背景视频加载可能有点慢 ...
- Unity萌新日记—开发小技巧与冷知识(脚本篇)
在学习unity的过程中,总会遇到很多零碎的知识点和小技巧,在此把它们记录下来,方便日后查看. 第一篇是关于脚本的一些你可能不知道的小知识. 还是个正在学习的萌新,如果写的不好,请谅解. Unity版 ...
- 萌新带你开车上p站(番外篇)
本文由“合天智汇”公众号首发,作者:萌新 前言 这道题目应该是pwnable.kr上Toddler's Bottle最难的题目了,涉及到相对比较难的堆利用的问题,所以拿出来分析. 登录 看看源程序 程 ...
- linux 命令行 拯救萌新精简版
装上linux 真机而不会命令行简直是太难了(这是什么人间疾苦) 于是,来几个非常基础的命令行,给(像我这样)的萌新们一点点前进的动力,也给奋斗在linux路上的大佬们一点点来自萌新的敬意吧. 一个非 ...
- 给萌新HTML5 入门指南
本文由葡萄城技术团队原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. HTML5的发展改变了互联网技术趋势,前端热度依旧不减,所以对于应用开发人员 ...
- 萌新笔记——C++里创建 Trie字典树(中文词典)(三)(联想)
萌新做词典第三篇,做得不好,还请指正,谢谢大佬! 今天把词典的联想做好了,也是比较low的,还改了之前的查询.遍历等代码. Orz 一样地先放上运行结果: test1 ID : char : 件 w ...
随机推荐
- HZOJ Dash Speed
测试点1-2:暴力. 测试点3-4:可以将边按r从大到小排序不断加入,然后用并茶几维护深度.好像也可以用猫树做. 好吧其他的部分分并没有看懂. 正解: 线段树分治,求出每个速度的答案. 对于速度区间$ ...
- 容器化ICT融合初体验
[编者的话]本次将分享的容器化ICT融合平台是一种面向未来ICT系统的新型云计算PaaS平台,它基于容器这一轻量级的虚拟化技术以及自动化的"微服务"管理架构,能够有效支撑应用快速上 ...
- vue页面内监听路由变化
beforeRouteEnter (to, from, next) { // 在渲染该组件的对应路由被 confirm 前调用 // 不!能!获取组件实例 `this` // 因为当钩子执行前,组件实 ...
- oracle 表空间/用户 增加删除
create temporary tablespace user_temp tempfile 'C:\dmp\user_temp.dbf' size 50m autoextend on next 50 ...
- 2019-8-31-dotnet-通过-WMI-获取设备厂商
title author date CreateTime categories dotnet 通过 WMI 获取设备厂商 lindexi 2019-08-31 16:55:59 +0800 2019- ...
- @NOI模拟2017.06.30 - T3@ Right
目录 @description@ @solution@ @part - 1@ @part - 2@ @accepted code@ @details@ @description@ JOHNKRAM 和 ...
- Uniapp使用iconfont
看别人的项目有各种各样的图标既好看占用内存还小 后来才知道原来有icon图标这个东西,原谅我真的一直处于混沌的状态. 刚好最近项目使用了uniapp框架,引入iconfont的方式和之前有些不太一样 ...
- fastclick使用与 fastclick ios11.3相关bug原因(ios输入框点击变得不灵敏,ios input失焦后,页面上移,点击不了)
FastClick 移动设备上的浏览器默认会在用户点击屏幕大约延迟300毫秒后才会触发点击事件,这是为了检查用户是否在做双击.为了能够立即响应用户的点击事件,就有了FastClick. 安装fastc ...
- java super关键字和调用父类构造方法
表示父类对象的默认引用 如果子类要调用父类被覆盖的实例方法,可用super作为调用者调用父类被覆盖的实例方法. 使用super调用父类方法 使用super调用父类的构造方法 调用构造方法 本类中调用另 ...
- SpringBoot2.0 使用AOP统一处理Web请求日志(完整版)
一,加入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...