cartographer安装_cartographer的安装(ubuntu16.04,ros-kinetic)

小白操作!!!楼主智商常年不在线,各种各样的坑都偏爱于我....特写此教程记录我的辛酸史///(猛女嘤嘤嘤)

前提:

1.首先确保自己已经安装好了ubuntu16.04+ROS-kinetic,并配置好了ros环境。

2.最好连手机热点,网速越快越好。

一、安装工具:

sudo apt-get update 
sudo apt-get install -y python-wstool python-rosdep ninja-build

二、工作区设置:

这里建议新建工作区,

不要放在原来自己建的工作区中,因为一遍安不好的话删除比较麻烦..

创建:mkdir 工作区名,我起名为carto_ros,所以:

mkdir carto_ros

初始化:

cd carto_ros 
wstool init src

这一步结束之后,在主目录下会出现一个carto_ros的工作区,该区下多了一个空的src目录

c3da032df83f8847d2c09a6423d26691.png

注意:接下来的步骤直到下次提醒,都是在carto_ros目录下进行的。

三、下载.rosinstall文件,将其放到src目录下:

官网提供的指令:

wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall

注意:国内可能无法访问,在这一步终端会报错。

3d667117b3762bf3a9bdd6b2fa900c72.png

所以需要我们自己创建一个.roinstall文件:

sudo gedit src/.rosinstall

会用vim编辑器的也可以用这个创建:

vi src/.rosinstall

在这个文件中填入:

- 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://ceres-solver.googlesource.com/ceres-solver.git', version: '1.13.0'}

但!ceres-solver的又无法下载,所以还要修改.roinstall文件中最后一行ceres-solver的uri为https://github.com/ceres-solver/ceres-solver.git

用gedit打开的如图:保存关闭即可。

fe6b97c0a9323fb2fe072b5194a5e60e.png

用vim打开的如图:保存退出即可。

2a1249789d1b1c7c654bdc7e570c89b5.png

四、更新依赖:

wstool update -t src

结果如下就说明这一步成功啦:

70f4714a59d1706bdbbde38a192212d4.png

现在src目录下应该是这样的:

5b1d4741106340800ed8bd3c1c93c8d9.png

五、安装proto:

src/cartographer/scripts/install_proto3.sh

六、安装依赖:

这一步我有报错,但不要紧(我也不知道要不要紧,至少现在没影响):

rosdep update 

f46571b64fcedb67314a5b08cea95281.png

注意:

楼主在这一步rosdep update出错时,根据网上教程修改如下

sudo gedit /etc/resolv.conf

注释掉原来的nameserver一行,然后添加下面两行:

nameserver 8.8.8.8 #google域名服务器

nameserver 8.8.4.4 #google域名服务器

然后保存退出。

说是再次执行:

sudo  apt-get update
rosdep update

问题就会解决。

但是!我没有!!还给后面的操作埋下了隐患。这一步虽然出错了,但是对后面的安装没影响,直接下一步:

rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y

七、编译安装了!

catkin_make_isolated --install --use-ninja

这里会漫长些,可以稍微休息一会儿.....

8eabe8aabfa6acb809d0ccd135611038.png

成功之后如上图!

现在我们的工作区中应该包含这几个文件:

ecc1dd04e1f64aba59b1a266d6838560.png

八、刷新环境:

注意:接下来要回到主目录下操作啦。

cd
vi .bashrc

在最后添上,保存退出:

source ~/carto_ros/install_isolated/setup.bash

九、开始测试:下载测试包+启动

1.下载测试用的2D包到Downloads目录下(没有该目录会自动创建):

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag

注意:这一步若出现如下↓这两种情况,都是网络不太顺畅的原因,可以ctrl+c终止然后再重复这一步。直到他可以很快(画圈处为保存速度)保存数据为止。

4aa62008c6d2bc6542a38b226928404c.png

另一注意:我前面在rosdep update时所说的隐患!因为我修改了域名服务器,所以在执行这步时出现

843f0ce9e48115555ee6b81a65386bbc.png

检查发现ping不通了,在输入

ping www.baidu.com

时出现ping:unknown host http://www.baidu.com问题。

嗯....才注意到之前修改的/etc/resolv.conf文件有写入覆盖功能,虽然我在那步操作无效果之后已经改回去了,但于事无补。

如下是无需重启就可以配置好的方法。

sudo gedit /etc/resolvconf/resolv.conf.d/base

在这个空文件中写入:(域名是和之前/etc/resolv.conf文件中一致的)

nameserver  域名

保存退出,执行:

sudo resolvconf -u

这时就恢复到从前的状态啦。可以用这种方式测试一下:

ping www.baidu.com

如果可以ping通,说明DNS配置成功。

c371659cf26ca058024258346f136b44.png

成功图如下:

ce66fed4ccff11f953dd52d0b95201e3.png

c3b56c306cf697f43100df11d93ca755.png

2.启动文件:

roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

现在有playbag的进程死掉了:

2124ac85f0ea2f4614feced26fe24440.png

自动打开的rviz没有显示:可以看到机器人模型的状态有问题。

e4aa7c9e664327ea162f79cba09703ec.png

咋整??尝试修复一下:

rosbag reindex ~/Downloads/cartographer_paper_deutsches_museum.bag

哦豁~好了哦!

362186848d7d0478dfffb4f97b906a59.png

后面的操作跟着官网教程就可以啦。

官网地址:

https://google-cartographer-ros.readthedocs.io/en/latest/index.html​google-cartographer-ros.readthedocs.io
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值