目录
这是cartographer_ws 源文件中需要的3个包,分别是cartographer、cartographer_ros、ceres-solver。后面会说每个包如何修改。
如果嫌麻烦,可以直接下载我修改好的。
GitHub - ningbo99128/cartographer_ws
谷歌Cartographer学习(1)-快速安装测试 - hitcm - 博客园
大佬写的很全,我只说需要注意的地方。
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-melodic-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev
注意:ros-melodic-tf2-eigen 要根据自己ros版本填写。
编译ceres-solver-1.11.0会出错,但是ceres-solver-1.13.0版本就不会出错,建议换掉。
其余步骤依旧。
由于google的gmock和gtest 从 1.7.0-4升级到 1.8.0-2后,以前的步骤需要修改一下,否则会报错:
CMake Error at /usr/src/googletest/googletest/cmake/internal_utils.cmake:149 (add_library):
add_library cannot create target "gtest" because another target with the same name already exists. The existing target is a static library created in source directory "/usr/src/googletest/googletest". See documentation for policy CMP0002 for more details.
Call Stack (most recent call first):
/usr/src/googletest/googletest/cmake/internal_utils.cmake:172 (cxx_library_with_type)
/usr/src/googletest/googletest/CMakeLists.txt:90 (cxx_library)
解决方法:
进入到 /工作空间/src/cartographer/CMakeLists.txt,修改第55行。
用 /usr/src/googletest/googlemock 替代 /usr/src/gmock。
详细解决方法: 参考博客的第24个error
ROS学习之error解决记录_内有小猪卖的博客-CSDN博客
参考文章说:"谷歌官方提供的安装方法比较繁琐,我对原来的文件进行了少许的修改,核心代码不变,只是修改了编译文件。
下载到catkin_ws下面的src文件夹下面
然后到catkin_ws下面运行catkin_make即可。"
此处catkin_make换成catkin_make_isolated好一些。总的来说, catkin_make_isolated比catkin_make更好一点, catkin_make_isolated编译时,会认为每一个功能包都是一个独立的编译空间。
在ros下,如何添加环境变量呢?因为该命令将每个代码包独立编译以及创建开发目录,需要添加以下命令到.bashrc文件中, 才能保证使用rosrun等ros相关命令的时候, 才能找到相关的launch等文件。
source ~/cartographer_ws/install_isolated/setup.bash
或者
source ~/cartographer_ws/devel_isolated/pkg_name/setup.bash
2d数据,大概500M,用迅雷下载
https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
谷歌Cartographer学习(1)-快速安装测试 - hitcm - 博客园
ROS学习之error解决记录_内有小猪卖的博客-CSDN博客