下面安装cartographer好像需要python3,我觉得最好默认就是python3,之前我是没注意的
安装ros的导航包
sudo apt-get install ros-noetic-navigation
安装gmapping
sudo apt-get install ros-noetic-gmapping
安装hector-slam
sudo apt-get install ros-noetic-hector-slam
安装cartographer
这个好像需要git一下
先新建个工作空间,如果感觉需要的话
默认已经做了换源(最好别把官方的源删了,放后面)等工作
编译前工具
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow
建环境
mkdir catkin_ws
cd catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
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
注意,git clone通常会失败,这里有个小技巧是去gitee找一下镜像
下面是我搜到的一些替代
cd src
git clone https://gitee.com/wbr_git/cartographer_ros.git
git clone https://gitee.com/adamghzhong/cartographer.git
git clone https://gitee.com/ddddzkz/ceres-solver.git
在工作目录(如catkin_ws
)下开始安装依赖,ros distro表示发行版本,比如ros-noetic,就按下面写不改动也行
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
安装abseil-cpp,abseil是从Google内部代码块中抽取出来的一系列最基础的软件库。作为基本的组成部分,这些软件库支撑了几乎全部Google在运行的项目。
src/cartographer/scripts/install_abseil.sh
这里也有一个指向GitHub的git clone
用文本编辑器打开文件,注释这行,也换上gitee
接下来执行
sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp
但我好像没有,问题不大
开始编译
catkin_make_isolated --install --use-ninja
这个会编译一段时间,可以开另一个窗口执行下一步
下载2D测试包
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
运行测试包
编译完成后
运行
source install_isolated/setup.bash
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=~/Downloads/cartographer_paper_deutsches_museum.bag