Cartographer 是google于2016年9月开源的一套激光雷达slam算法,精度和效果在业界处于领先水准。点击查看最终效果。搜索资料大部分针对cartographer的安装都要使用catkin_make_isolated指令,此编译指令的安装会对系统造成莫名的影响。在此教程中找到常规编译指令编译http://doc.bwbot.org/en/books-online/xq-manual/topic/136.html#%EF%BC%91%EF%BC%8E%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%8C%85
1、安装依赖包
sudo apt-get update
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 \
libprotobuf-dev \
libsuitesparse-dev \
libwebp-dev \
ninja-build \
protobuf-compiler \
python-sphinx
python-sphinx 可以换成 sphinx-common
2.安装ceres solver
cd ~/Documents
git clone https://github.com.cnpmjs.org/ceres-solver/ceres-solver.git
cd ceres-solver
git checkout 1.14.x
mkdir build
cd build
cmake .. #git hook时间比较长,耐心等待
make -j
sudo make install
3.安装prtobuf 3.0
cd ~/Documents
git clone https://github.com.cnpmjs.org/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 -j 2
sudo make install
4.安装abseil
https://blog.csdn.net/Maker_pace/article/details/119025895
git clone https://github.com/abseil/abseil-cpp.git
mkdir build
cd build
cmake .. -DCMAKE_CXX_STANDARD=11
make -j8
sudo make install
5.安装cartographer
cd ~/Documents
git clone https://gitee.com/BlueWhaleRobot/cartographer.git
cd cartographer
mkdir build
cd build
cmake ..
make -j
sudo make install
6.安装cartographer_ros
cd ~/Documents/ros/src #请修改路径到自己的ROS catkin工作空间
git clone https://gitee.com/BlueWhaleRobot/cartographer_ros.git
cd ..
catkin_make
6.安装已完成,开始下载测试用的bag文件
点击下述链接下载文件,保存到桌面 下载链接
7.启动demo演示,正常可以看到rviz启动并开始建图
根据个人平台计算能力不同,本demo完整运行时间一般为半个小时到1个小时之间
roslaunch cartographer_ros offline_backpack_2d.launch bag_filenames:=${HOME}/Desktop/cartographer_paper_deutsches_museum.bag
8.提取建立的地图,结束测试
上面步骤7会生成一个pbstream文件,用cartographer_ assets_writer可以转换成栅格地图
roslaunch cartographer_ros assets_writer_ros_map.launch bag_filenames:=${HOME}/Desktop/cartographer_paper_deutsches_museum.bag pose_graph_filename:=${HOME}/Desktop/cartographer_paper_deutsches_museum.bag.pbstream
0_1531754676780_map_yaml.png