版本
代码包 | 版本 |
---|---|
cartographer_ros | master |
cartographer | master |
ceres-solver | 1.13.0 |
工具
sudo apt-get update
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow
sudo apt-get install python3-pip
pip3 install sphinx
环境制作
mkdir carto_ws
cd carto_ws
wstool init src
cd src
git clone https://github.com/googlecartographer/cartographer_ros.git
git clone https://github.com/googlecartographer/cartographer.git
git clone https://github.com/ceres-solver/ceres-solver.git
//注意:其中的版本一定要适配,我放一个百度网盘的链接里面是我使用的版本,你直接粘贴到src/文件夹下面(记得解压[捂脸笑])
链接:https://pan.baidu.com/s/1mMyHC-1Mip_0cME-Pu82jQ 提取码:2024
依赖
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
//注意:第二句命令会报错:[libabsl-dev]
找不到,没事,去刚刚下载的cartographer文件夹下的package.xml里面删掉第46行的<depend>libabsl-dev</depend>
安装abseil-cpp 库
src/cartographer/scripts/install_abseil.sh
// 注意:如果如果系统本身存在abseil-cpp 库
,需要移除,防止冲突使用命令sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp
,如果使用该命令发生报错如下:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package ros-noetic-abseil-cpp
说明你本来没有abseil-cpp 库
,也可以直接进入下一步
ceres-solver 编译
apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
cd ceres-solver
mkdir build
cd build
cmake ..
make -j4
make install
carto_ws 编译
catkin_make_isolated --install --use-ninja -DPYTHON_EXECUTABLE=$(which python3)
测试
先下载,后测试
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag