writer:lIcht email:lIcht.gzl@gmail.com date: 2019.12.8
由于先前用gmapping做SLAM出现的误差严重,建图效果不理想。所以想用不那么依赖里程计的cartographer做SLAM与之前的gmapping以及hector方法做一个对比。在安装cartographer的过程中遇到了很多问题以及浪费了很多时间所以记录一下安装以及配置的过程,方便自己查询。cartographer现在已经提供了ros里的二进制包,可以一键下载,但是在/opt下对配置文件的更改都极为不方便,所以想直接安装在工作目录下。
一键下载命令:
xxxxxxxxxx
sudo apt-get install ros-melidic-cartographer*
安装在自己工作空间流程:
1、安装依赖:
xxxxxxxxxx
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
2、安装Ceres-solver(版本1.13.0):
xxxxxxxxxx
wget ceres-solver.org/ceres-solver-1.13.0.tar.gz
tar xvf ceres-solver-1.13.0.tar.gz
cd ceres-solver-1.13.0
mkdir build
cd build
cmake ..
make
sudo make install
3、安装cartographer(一定要新建工作空间):
(1)安装工具:
xxxxxxxxxx
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
(2)创建新的ros工作空间并初始化src文件夹:
xxxxxxxxxx
mkdir -p cat_ws/src
cd cat_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
(3)替换下载源:gedit或者vim 你工作空间下src/.rosinstall 替换ceres-solver的下载源(uri)为:https://github.com/ceres-solver/ceres-solver
(4)安装依赖:
xxxxxxxxxx
src/cartographer/scripts/install_proto3.sh
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
(5)编译并安装:
xxxxxxxxxx
catkin_make_isolated --install --use-ninja
(6)添加环境变量:
xxxxxxxxxx
echo "source ~/YOUR_WORK_SPACE/install_isolated/setup.bash" >> ~/.bashrc
source ~/.bashrc
安装完成够可以跑跑官方的bag验证一下是否安装成功:
Revo LDS:
xxxxxxxxxx
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/revo_lds/cartographer_paper_revo_lds.bag
roslaunch cartographer_ros demo_revo_lds.launch bag_filename:=${HOME}/Downloads/cartographer_paper_revo_lds.bag
进行配置:
前提:
1、自己的工作空间和/opt下的包以及cartographer下的包不要有同名或者任何冲突
2、只需更改demo_revo_lds.launch 以及 revolution_lds.lua 两个配置文件
demo_revo_lds.launch :
一般只需修改雷达的topic就行,另外可以去掉rviz和bag节点的运行。
revolution_lds.lua:
只需修改前几个frame的名称就行了
不使用odom,只使用laser:
使用odom和laser:
参考文档: