环境:ubuntu18.04(melodic)
电脑
(1)安装编译工具
我来编译cartographer_ros,我们需要用到wsool和rosdep。为了加快编译,我们使用ninja工具进行编译。
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
(2)创建存放cartographer_ros的专门工作空间
mkdir catkin_ws_carto
cd catkin_ws_carto
wstool init src
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
特别说明,在执行wstool update -t src之前,需要将src/.rosinstall文件修改成以下内容,以解决ceres-solver下载不了的问题,如图19。
- git: {local-name: cartographer, uri: 'https://github.com/cartographer-project/cartographer.git', version: 'master'}
- git: {local-name: cartographer_ros, uri: 'https://github.com/cartographer-project/cartographer_ros.git', version: 'master'}
- git: {local-name: ceres-solver, uri: 'https://github.com/ceres-solver/ceres-solver.git', version: '1.13.0'}
构建ceres
cd ceres-solver
mkdir build
cd build
cmake ..
make
sudo make install
(3)安装依赖项
安装cartographer_ros的依赖项proto3、deb包等。如果执行sudo rosdep init报错,可以直接忽略。
src/cartographer/scripts/install_proto3.sh
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
(4)编译和安装
上面的配置和依赖都完成后,就可以开始编译和安装cartographer_ros整个项目工程了。
catkin_make_isolated --install --use-ninja
特别提醒,以后对cartographer_ros中的配置文件或源码有改动时,都需要执行这个编译命令使修改生效。
(5)测试
2D:roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=跟上bag的路径
3D:roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=跟上bag的路径