首先我们安装cartogranpher最最经常遇见的问题我在写完步骤之后会说出,新手请耐心看完或者老手直接看~
安装前务必保证已经配置好ros系统
首先,大家可以参考这一篇,不过我按照这一片没有完全成功,我猜测是protobuf安装遇到大问题,请先看完下面的问题再进行上面这个方法的尝试
我们就可以按照这一篇进行了,先进行该文章的0准备工作,然后请回到此篇文章。大家可以按照该篇教程进行,遇到问题的时候,来这一篇进行即可
按照此方法,我们要先卸载protobuf,但是在执行指令:
sudo apt-get remove libprotobuf-dev
会出现不能卸载的状况,我的方法是把依赖的库卸载掉,但是请谨慎执行,如果你的电脑/虚拟机只用来测试cartographer,完全可以和我一样,再卸载之后会有一定的文件残留,按照下面的方法,执行即可
因为cartographer需要的版本是最少2.xx版本,所以建议先卸载已有的protobuf版本,因为几乎大部分人失败都是因为protobuf版本不兼容的问题,我直接把低版本的所有文件都删除了,所以我们无比要把所有和protobuf相关的文件都删除,请看指令:
查看自己的protoc版本:
protoc --version
查看路径
which protoc
我们所要删除的文件包括三个地方:
sudo rm /usr/bin/protoc
sudo rm /usr/local/bin/protoc
sudo rm /usr/local/lib/libproto*
如果此处是软连接的话,rm后面加上-rf即可:
sudo rm -rf /usr/bin/protoc
后面的就可以完全按照它的步骤
没必要非要让他自己git,如果使用的虚拟机,我们大可自己进入它的网站,下载相关文件的zip压缩包,然后解压放入相应的文件夹,但是,值得注意的是,解压后的文件命名和下载的不同,自行下载的会有xx-master,我们把解压文件名字里的-master去掉即可
如果非要自己进行安装,就按照加成里的修改/etc/resolv.conf文件
这一步我没有执行成功一次, 但是我在安装ros的时候已经执行成功一次,事实证明,只要成功过一次就可以,不用更新,
因为我们执行sudo rosdep init会在/etc/ros/rosdep/sources.list.d产生一个20-default.list的文件
执行rosdep update会在/home/xxx/.ros/rosdep/sources.cache(xxx是你的用户名)产生一个文件夹,里面有一堆缓存文件,我们可以进入该文件下查看我们是否已经执行过rosdep update:
cd /home/xxx/.ros/rosdep/sources.cache
ll
我的是这样的
总用量 1884
drwxrwxr-x 2 ros ros 4096 3月 26 21:57 ./
drwxrwxr-x 4 ros ros 4096 10月 8 22:39 ../
-rw------- 1 ros ros 118337 3月 26 12:59 0081d4b071d4e24ae37c96bf477eb7403ba143c2.pickle
-rw------- 1 ros ros 70124 10月 8 22:39 10be71ecf140657927f11aa700ec034e8f4759d7.pickle
-rw------- 1 ros ros 453813 3月 26 12:42 5d76dbb61bf5385acb00a1ffce292b2eb2e000a8.pickle
-rw------- 1 ros ros 216689 10月 8 22:39 6fbb8434ee1cd44cd9d6761573ef582820b8828f.pickle
-rw------- 1 ros ros 218729 3月 26 14:36 7cfbeed211a3f9a6507c86cebaeedb3e3c4387f8.pickle
-rw------- 1 ros ros 3235 3月 26 14:36 825fae71ab9ea366e0b22e8dbe1e2948232cb2e8.pickle
-rw------- 1 ros ros 362033 3月 26 12:42 92e5d8c5f0d9455fe3a14e3dd1f7b90ca9ae78a8.pickle
-rw------- 1 ros ros 12731 3月 26 21:57 a4b3c8956ab7a3e6d293ba33b57fac42799e69e6.pickle
-rw------- 1 ros ros 231248 3月 26 14:36 b4931581ca7c5741f7ee4ac9767a1174838296f7.pickle
-rw------- 1 ros ros 10718 3月 26 14:27 b67f64890f6d5269c51a68744711f115a8f207ae.pickle
-rw------- 1 ros ros 100477 3月 26 12:59 c99ebea198e2ecdbf200ba85d2a079950836d92b.pickle
-rw------- 1 ros ros 95675 10月 8 22:39 f535bb317ab409fe66ca87e8e04f167a57d05a5e.pickle
-rw------- 1 ros ros 1132 10月 8 22:39 index
rosdep update参考文章
也可以参照https://github.com/WLwind/cartographer_installation,同样遇到问题可以对照该文章解决!
Traceback (most recent call last):
File "/usr/bin/rosdep", line 6, in
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2927, in
@_call_aside
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2913, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 637, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 650, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 829, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'rospkg>=1.3.0' distribution was not found and is required by rosdep
找了半天也没找打哪里错了,因为我之前曾经已经编译成功了一次,这次出现了新的问题,找不到由于之前完成,我就跳过了,直接进行下一次编译,成功了即可,有知道这里什么错的大佬请指教!
因为我们在2021年3月25日安装成功的,并且成功跑通了所给的例子,但是由于是新手,考虑的问题不够全面,希望有问题的同学可以留言,我在安装的过程中遇到的问题不仅仅我在文中所写到的,解决问题的过程是痛苦的,但是跑成例子对我这样的小白而言是一个很大的激励,加油!
各位同学如有问题,欢迎留言,一起讨论!