首先说明,这篇文章于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

随便找了张图:

2. 其他bag数据集


参考文献:

  1. 官方手册 https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html

【萌新向】cartographer_ros最新安装指南 2019-12的更多相关文章

  1. NOI2019退役记 upd:2019.12.1

    (我把原来写的东西全部删掉了) AFO. 我退役了,\(\mbox{yyb}\)退役了. 至少,在接下来的日子里,我得投身到文化课,度过快乐的高三生活了. 这两年的\(OI\)生涯给了我很多,让我学会 ...

  2. 手把手教你提交Jar包到Maven公共仓库 | 萌新写开源02

    在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源. 之前,我的项目开源在Github上,大家想要用我的项目,还得把 ...

  3. 萌新笔记——C++里创建 Trie字典树(中文词典)(二)(插入、查找、导入、导出)

    萌新做词典第二篇,做得不好,还请指正,谢谢大佬! 做好了插入与遍历功能之后,我发现最基本的查找功能没有实现,同时还希望能够把内存的数据存入文件保存下来,并可以从文件中导入词典.此外,数据的路径是存在配 ...

  4. 萌新的IDEA_web开发笔记(未完)

    萌新IDEA_web开发笔记 按兴趣自己搞的网页: http://47.94.140.98:8080/ow_web/my_web/web/ 暂时还没做完. 部署在租的服务器上面,背景视频加载可能有点慢 ...

  5. Unity萌新日记—开发小技巧与冷知识(脚本篇)

    在学习unity的过程中,总会遇到很多零碎的知识点和小技巧,在此把它们记录下来,方便日后查看. 第一篇是关于脚本的一些你可能不知道的小知识. 还是个正在学习的萌新,如果写的不好,请谅解. Unity版 ...

  6. 萌新带你开车上p站(番外篇)

    本文由“合天智汇”公众号首发,作者:萌新 前言 这道题目应该是pwnable.kr上Toddler's Bottle最难的题目了,涉及到相对比较难的堆利用的问题,所以拿出来分析. 登录 看看源程序 程 ...

  7. linux 命令行 拯救萌新精简版

    装上linux 真机而不会命令行简直是太难了(这是什么人间疾苦) 于是,来几个非常基础的命令行,给(像我这样)的萌新们一点点前进的动力,也给奋斗在linux路上的大佬们一点点来自萌新的敬意吧. 一个非 ...

  8. 给萌新HTML5 入门指南

    本文由葡萄城技术团队原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. HTML5的发展改变了互联网技术趋势,前端热度依旧不减,所以对于应用开发人员 ...

  9. 萌新笔记——C++里创建 Trie字典树(中文词典)(三)(联想)

    萌新做词典第三篇,做得不好,还请指正,谢谢大佬! 今天把词典的联想做好了,也是比较low的,还改了之前的查询.遍历等代码.  Orz 一样地先放上运行结果: test1 ID : char : 件 w ...

随机推荐

  1. Knative 初体验:Eventing Hello World

    作者 | 阿里云智能事业群高级开发工程师 元毅 基于事件驱动是Serveless的核心功能之一,通过事件驱动服务,满足了用户按需付费(Pay-as-you-go)的需求.在之前的文章中我们介绍过 Kn ...

  2. 几种map的排序规则

    前几天在做理事会成员的时候遇到这个问题,需要根据职务的顺序,放入对应的成员,再把成员名字按首字母拼音顺序排序后,返回给前台解析,之前一直用TreeMap来存放这个排过序的List集合,发现就算我最先循 ...

  3. 解决 vs 出现Error MC3000 给定编码中的字符无效

    在 xaml 写中文注释,发现编译失败 Error MC3000 给定编码中的字符无效 我的 xaml 写了一句代码 <Grid> <!--林德熙--> </Grid&g ...

  4. uni-app中使用Echarts绘画图表

    enmnm...一般会使用npm下载echarts这个包,但是不知道是我自己的配置问题还是别的原因,一直出不来图线, 于是,把Hello uni-app模板里的那个组件抱过来,然后,成了! 首先, 1 ...

  5. Bert系列(三)——源码解读之Pre-train

    https://www.jianshu.com/p/22e462f01d8c pre-train是迁移学习的基础,虽然Google已经发布了各种预训练好的模型,而且因为资源消耗巨大,自己再预训练也不现 ...

  6. H3C 常用接口和线缆

  7. H3C 广域网连接方式

  8. Python--day72--SweetAlert插件

    引用:http://www.cnblogs.com/liwenzhou/p/8718861.html 补充一个SweetAlert插件示例 点击下载Bootstrap-sweetalert项目. $( ...

  9. 2019-9-2-win10-uwp-车表盘-径向规

    title author date CreateTime categories win10 uwp 车表盘 径向规 lindexi 2019-09-02 12:57:38 +0800 2018-2-1 ...

  10. Codeforces Round #189 (Div. 1 + Div. 2)

    A. Magic Numbers 不能出现连续的3个4,以及1.4以外的数字. B. Ping-Pong (Easy Version) 暴力. C. Malek Dance Club 考虑\(x\)二 ...