创建工作空间 进入工作空间安装rosdep先决依赖
mkdir -p ~/cartographer_ws/src
sudo apt install python3-pip python-pip -y
安装配置rosdep
##换源建议换阿里源+中科大ROS源
##安装rosdep 使用小鱼的rosdepc完美安装
pip3 install rosdepc
sudo rosdepc init
rosdepc update
安装编译cartographer的必要依赖
sudo apt install -y python-wstool python-rosdep ninja-build
从gitee上下载cartographer和cartographer_ros的源码 我这里随便找了两个人的下载了一下
cd ~/cartographer_ws/src
git clone https://gitee.com/c1h2/cartographer_ros.git
git clone https://gitee.com/Coxhuang/cartographer.git
###进入安装abseil
sudo apt-get install stow -y
cd ~/cartographer_ws/src/cartographer/scripts
./install_abseil.sh
cd ~/cartographer_ws
##这里的话会把依赖都安装上包括lua glog protobuf等
sudo rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
##编译安装cartographer 这里等待10分钟即可安装成功
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash
到这里就完美安装成功了。
附: (我没遇到过这个问题 如果遇到这个问题解决方法如下)
#在执行 "catkin_make_isolated --install --use-ninja" 时候,报出如下关于libgflags的错误。
/usr/local/lib/libgflags.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
<== Failed to process package 'cartographer_rviz':
#解决
#重新编译libgflags,在编译的时候使用 "export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1" 代替 cmake .. ,具体操作如下:
git clone https://github.com/gflags/gflags
cd ~/gflags
mkdir build
cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make -j
sudo make install
#然后重新 "catkin_make_isolated --install --use-ninja",并接着下边的操作完成cartographer的编译与运行。