Ros笔记---cartographer的安装

1、cartographer的官方安装教程的地址链接
https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html
2、安装的问题记录
在按照官方的步骤进行安装的时候,出现了许多问题,在此一一记录:
2.1 运行命令出错

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

解决方法:
1)输入网址: IP查询网站查询 raw.githubusercontent.com 的IP地址
在这里插入图片描述
上图中显示查找到了该网站的多个ip地址,所以我们随便选一个就行,然后修改hosts文件如下所示:

sudo gedit /etc/hosts
进入到hosts文件中后,可以看到一些ip地址,我们需要将刚刚查询到的ip地址添加到该文件中去
185.199.108.133  raw.githubusercontent.com

2.2 运行命令出错

wstool update -t src

运行这个命令可能会出现错误,例如cartographer克隆失败或者cartographer_ros克隆失败
解决该问题的方法是重新运行命令。
2.3 运行命令错误

src/cartographer/scripts/install_abseil.sh

运行这个命令报错无法克隆成功
可以通过下面的方法解决:

sudo apt-get install stow
sudo chmod +x ~/cartographer_ws/src/cartographer/scripts/install_abseil.sh
 cd ~/cartographer_ws/src/cartographer/scripts
 ./install_abseil.sh

2.4 运行命令出错

catkin_make_isolated --install --use-ninja

导致这个问题的原因应该是protoc的版本不对,因为ubuntu16.04默认安装的protoc的版本是2.6.1,版本过低,cartographer安装的时候就会报错,所以,需要卸载protoc,再进一步的安装新版本的protoc
1)卸载ubuntu自己的protoc
查看当前的protoc信息:

which protoc
protoc --version

卸载protoc,第二条命令的路径以上面第一条命令的输出为准

sudo apt-get remove libprotobuf-dev
rm /usr/local/bin/protoc

2)安装依赖库

sudo apt-get install autoconf automake libtool curl make g++ unzip

3)克隆源码

git clone -b v3.6.0 https://github.com/protocolbuffers/protobuf.git
// 上述命令表示克隆版本为3.6.0的protobuf源码
cd protobuf
git submodule update --init --recursive
// 该命令表示克隆protobuf的子模块,主要是gtest
// 进入到克隆的protobuf目录,当然,如果之前就在这个目录下不必再次cd
cd protobuf
./autogen.sh
./configure
make
// 如果没有克隆子模块,make check会失败但是可以继续make install,但是使用某些功能时可能会出错
make check
sudo make install
sudo ldconfig
// 输出protobuf版本信息则表示安装成功
protoc --version
which protoc

查看位置的结果应该是:

/usr/local/bin/protoc

将/usr/local/bin/protoc copy到另外的一个路径下

sudo cp /usr/local/bin/protoc /usr/bin

另外一种错误可能是,你需要看一下是不是下载的各个安装包里面的CMakeList.txt是不是不支持C++语言来进行编译,一定要看好了。如果确实是由于这个问题导致的,你需要在cartographer文件夹,cartographer_ros文件夹下的cartographer_ros cartographer_rviz两个文件夹下一共三个CMakeList.txt中添加以下语句:

add_definitions(-std=c++11)

最好是在靠前面一点的位置添加。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值