说起来安装这个算法真是波折不断,从开始到完全安装成功用了两天多的时间,中间各种问题不断,后来直接把系统重装了,才安装成功。但是中间依然会出现一些问题。也看了很多博主的文章,帮助解决了很多问题。感谢几个帮助比较大的博主:
https://blog.csdn.net/weixin_44684139/article/details/104708387https://blog.csdn.net/qq_26482237/article/details/92676267https://blog.csdn.net/charyman/article/details/121300545
https://blog.csdn.net/TengYun_zhang/article/details/93753468
https://mp.weixin.qq.com/s/VGs8oWdhHH6XsHcx21lN4Q
https://blog.csdn.net/YOULANSHENGMENG/article/details/125059416
下面是我最后安装成功的方法,希望能给其他人一些借鉴。
1.安装一些必要的依赖包.
sudo apt-get install -y \
cmake \
g++ \
git \
google-mock \
libboost-all-dev \
libcairo2-dev \
libeigen3-dev \
libgflags-dev \
libgoogle-glog-dev \
liblua5.2-dev \
libsuitesparse-dev \
libwebp-dev \
ninja-build \
protobuf-compiler \
python-sphinx
2.卸载ROS原装的proto2.
sudo apt-get remove libprotobuf-dev
which protoc
//查看proto所在路径,输入命令后会出现一个路径
sudo rm 路径
//一般都是默认路径 /usr/bin/protoc,我的命令就是 sudo rm /usr/bin/protoc
然后低版本的protobuf也就卸载完了。
3.安装protobuf3.
cd ~/Downloads
git clone https://github.com/google/protobuf.git
cd protobuf
git checkout v3.6.1
mkdir build
cd build
cmake \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_BUILD_TYPE=Release \
-Dprotobuf_BUILD_TESTS=OFF \
../cmake
make -j4
sudo make install
然后看一下是否安装成功,并查看一下路径
protoc --version
//输出路径则说明安装成功
which protoc
//查看一下安装路径,由于carto的搜索路径为/usr/bin/protoc,所以我们需要改一下路径
sudo cp /usr/local/bin/protoc /usr/bin
//简单一点,直接复制过去
到此protobuf的准备工作就完成了:
4.安装cartographer.
(1).准备安装工具
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
(2)安装完之后,新开一个终端,创建工作空间。
mkdir -p carto_ws
cd carto_ws
wstool init src
(3)进入创建的文件夹(carto_ws)下,再进入src,可以看到文件“.rosinstall",如果没有,Ctrl+h,显示隐藏文件,将下列内容加入其中,保存退出即可。
- 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
wstool update -t src
//输入命令进行克隆,成功后工作空间内就会多出三个文件。
(4)安装依赖,并下载功能包。
rosdep update
进行该步时,可能会出现过时的问题,我试了好多方法,最后发现一种挺好用的。
如果出现过时的问题,可以查看下面文章,安装小鱼的rosdepc进行解决:
解决方法:
sudo pip install rosdepc
//如果找不到命令,不用管,直接往下,如果有直接跳到使用那一步
sudo pip3 install rosdepc
//如果找不到,也不管,往下走就好,如果有跳到使用就好
sudo apt-get install python3-pip
sudo pip3 install rosdepc
//到此也就安装完成了
使用:
sudo rosdepc init
rosdepc update
//用rosdepc update来替换rosdepc update
成功截图:
完成后进行下个命令。
rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
(5)编译。
catkin_make_isolated --install --use-ninja
这个过程比较慢,不过完成后,也就基本结束了。成功截图:
(6)仿真。
配置环境变量:
source install_isolated/setup.bash
下载2D数据包测试:
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
运行:
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
运行结果: