说明 本文参考博客https://www.cnblogs.com/yhlx125/p/8025293.html 并将安装过程以及出现问题记录下来
1 建立ros工作空间catkin_ws
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
echo "source /home/name/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
2 下载源码cartographer、cartographer_ros、ceres源码。并存放在catkin_ws/src下
https:
/
/
github.com
/
ceres
-
solver
/
ceres
-
solver
https:
/
/
github.com
/
googlecartographer
/
cartographer
https:
/
/
github.com
/
googlecartographer
/
cartographer_ros
3 下载
proto3源码并编译安装了,路径任意
https://github.com/google/protobuf
4 安装其她依赖项:
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-indigo-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev
5 编译安装
cd ~/catkin_ws
catkin_make_isolated --install --use-ninja
6 添加环境变量
vi ~/.bashrc
source ~/catkin_ws/install_isolated/setup.bash
注:编译过程可能出现的问题
编译代码时出现/usr/include/boost/type_traits/detail/has_binary_operator.hp:50: Parse error at "BOOST_JOIN"错误
解决方法:
修改/usr/include/boost/type_traits/detail/has_binary_operator.hpp文件
将namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
..
}
改为
#ifndef Q_MOC_RUN
namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
#endif
...
#ifndef Q_MOC_RUN
}
#endif