【萌新向】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

随便找了张图:

2. 其他bag数据集


参考文献:

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

原文地址:https://www.cnblogs.com/futurelei/p/12118557.html

时间: 2024-07-29 21:41:07

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

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

萌新做词典第二篇,做得不好,还请指正,谢谢大佬! 做好了插入与遍历功能之后,我发现最基本的查找功能没有实现,同时还希望能够把内存的数据存入文件保存下来,并可以从文件中导入词典.此外,数据的路径是存在配置文件中的.甚至,还想尝试类似自动补全的功能.当然了,是做一个比较low的补全,比如传入"编程",能够得到"软件"."学习"."学习网站"."入门"四个字符串.但是传入"编"不会得到&quo

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

写了一个词典,用到了Trie字典树. 写这个词典的目的,一个是为了压缩一些数据,另一个是为了尝试搜索提示,就像在谷歌搜索的时候,打出某个关键字,会提示一串可能要搜索的东西. 首先放上最终的结果: input: 1 编程入门 2 编程软件 3 编程学习 4 编程学习网站 output: 1 char : 件 2 word : 编程软件 3 char : 习 4 word : 编程学习 5 char : 网 6 word : 编程学习网 7 char : 门 8 word : 编程入门 其实这里不应

2017新农合最新政策:报销比例、报销范围、报销标准及补偿标准

2017新农合最新政策:报销比例.报销范围.报销标准及补偿标准 2017年新农合报销比例是多少? 一.新农合门诊报销比例 1.农村卫生门室.卫生所报销比例60%: 2.镇卫生院报销比例40% 3.二级医院报销比例30% 4.三级医院报销比例20% 5.镇级合作医疗门诊报销限额5000元/年. 二.新农合住院报销比例 1.镇卫生院报销60%: 2.二级医院报销40%: 3.三级医院报销30%. 三.新农合大病报销比例 1. 门诊统筹乡.村补助比例分别提高到65%.75%. 2. 一级医疗机构住院费

萌新的旅行-

Description zstu的萌新们准备去自助旅行,他们租了一辆吉普车,然后选择了n个城市作为游览地点.然后他们惊喜的发现他们选择的城市刚好绕城一个环. 也就是说如果给所有城市按照0,1,2,--,n-1编号,0号城市和n-1号城市是相邻的,并且只能从i号城市去(i+1)%n号城市. 已知每个城市可以充油gas(i),从 i 到 (i+1)%n 城市耗油 cost(i). 假设这辆吉普车没有的油箱一开始是空的,并且没有上限. 没有油的话自然就不能继续旅行了,这个问题让萌新们非常困扰.作为优秀

Ingress 记萌新的第一次连多重(xjbl)

之前为了升七,ArtanisWei学长告诉我可以去紫金园雕塑[这是什么地方啊],顺带靠卖萌骗了一桶key 于是屁颠屁颠的跑去按照群里攻略开始连多重[馒头 by handsomepeach],连了一百年...这攻略怎么让人xjb跑啊QwQ 于是连出来这个 于是桃大就让绿军来炸 然后就没有然后了[躺],手机噼里啪啦一阵乱响爹地的江山就没了[哭唧唧] 晚上不服气又来了一次,矮油我滴妈晚上一个人真口怕,passerg就陪我摸了一遍就跑路了我勒个去 然后今天下定决心决定自己来连一次多重 于是萌新的第一次多

一个萌新的自白

浑浑噩噩的毕业已经过了半年,在这半年时光自己很没有方向感,都在尝试改变自己,但时光已不再,心却未能平静.一次偶然的机会想进IT行业来尝试自己是否能在这里让自己的心海不在一片涟漪.毕竟朦胧的青葱岁月早已逝去,是时候在这个青春真当时,让自己留下值得的回忆. IT行业是一个靠自己实力才能立足的行业,对于我来说是一个比较大的挑战,我是真正完全的电脑萌新,当时抱着很复杂的心态来学习,一边想着自己应该迈开这一步,或许会收到自己想要的那一份充实,另一方面有考虑自己是否能够适应,即使在学习第一节课时,我都在问自

萌新--关于vue.js入门及环境搭建

十几天闭关修炼,恶补了html跟css以及JavaScript相应的基础知识,恰巧有个群友准备做开源项目,愿意带着我做,但是要求我必须懂vue.js,所以开始恶补vue.js相关的东西. 在淘宝上买了相关视频,前两章简介听得懵懵懂懂的,能够勉强理解.到第三章,开始有案例之后,整个人就懵了,为啥老师的一个程序文件夹那么多东西,我就一个可怜兮兮的html??等等,老师说这node.js是什么? 不是另外一个框架吗?webpack又是啥?... 一连串懵逼之后,终于发现,视频不适合我.开始找其他的途径

RabbitMQ code=200, text="Goodbye"比较萌新的问题大佬绕道,乌拉~!

比较萌新的问题大佬绕道,乌拉~! 生产段代码: 消费端代码: 以上都是本萌新根据博客上面+官网的列子去搬运的,生产段的代码是能够执行并将消息保存到队列中的在消费端进行消费时抛出了一个错误,错误代码如下 Already closed: The AMQP operation was interrupted: AMQP close-reason, initiated by Application, code=200, text="Goodbye", classId=0, methodId=0

萌新web前端从零开始(1)——计算机入门

前言:这是一个萌新从零开始的学习之路,与大家分享自己的看法与见解,还请指出错误与遗漏点方便改正. 1.认识计算机. 计算机语言常见的有C,PHP,Ruby,Java,C#,Basic,JS,C++等,这里我用到的是C#语言,用到的软件是VisualStudio 2013版本.当用VS打开发现之前写的内容代码没有显示时可以点击右侧Program.cs进行显示. 默认情况下,编译文件位置在同名文件下bin文件下的Debug文件中的exe文件.如果要更迁移,复制粘贴新建项目的文件夹即可,在迁移后的文件