使用張明明大神修改編譯版
注意:中間出過很多錯誤,大部分是開源包eigen,protobuf的版本與該SLAM不匹配。
之前裝了eigen的,刪掉。protobuf我裝的是3.6.1
1.安裝依賴性:
sudo apt-get install -y google-mock libboost-all-dev libeigen3-dev libgflags-dev libgoogle-glog-dev liblua5.2-dev libprotobuf-dev libsuitesparse-dev libwebp-dev ninja-build protobuf-compiler python-sphinx ros-kinetic-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev
2.安裝ceres slover,版本1.11,如果裝過別的版本,建議刪掉重新裝
git clone https://github.com/hitcm/ceres-solver-1.11.0.git
cd ceres-solver-1.11.0
mkdir build
cd build
cmake ..
make -j4 //編譯的時候會和eigen3.3發生沖突,需要重新安裝eigen3.2
sudo make install
3.安裝protobuf
# 首先安裝protobuf
sudo apt-get install autoconf autogen
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure
make
# 這一步可能會報錯,無視就好
make check
sudo make install
sudo ldconfig # refresh shared library cache.
4.安裝Cartographer
git clone https://github.com/hitcm/cartographer.git
cd cartographer
mkdir build
cd build
cmake .. -G Ninja
ninja
ninja test
sudo ninja install
5.安裝Cartographer_ros
#初始化工作空間
mkdir -p ~/cartogra_ros/src
cd ~/cartogra_ros/src
catkin_init_workspace
echo "source cartogra_ros/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
#安裝cartographer_ros
cd ~/cartogra_ros/src
git clone https://github.com/hitcm/cartographer_ros.git
cd ~/cartogra_ros
catkin_make
5.數據測試
數據源:
運行launch文件即可
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/cartographer_3d_deutsches_museum.bag
6.Revo LDS demo
運行:roslaunch cartographer_ros demo_revo_lds.launch bag_filename:=${HOME}/Downloads/cartographer_paper_revo_lds.bag