下面安装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
[还可以尝试加https://ghproxy.com/ 前缀]
在工作目录(如catkin_ws )下开始安装依赖,ros distro表示发行版本,比如ros-noetic,就按下面写不改动也行
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
可能运气不好会报错
所以参考这两篇文章
https://www.pythonheidong.com/blog/article/1034234/3dd1c045741b726b607b/
https://blog.csdn.net/learning_man/article/details/119766435 和这篇文章(最后没用到)
https://blog.csdn.net/weixin_44028876/article/details/120201324 如果操作过前两篇文章之一,就不要进行第三篇的操作,否则反而会带来报错
安装abseil-cpp,abseil是从Google内部代码块中抽取出来的一系列最基础的软件库。作为基本的组成部分,这些软件库支撑了几乎全部Google在运行的项目。
src/cartographer/scripts/install_abseil.sh
这里也有一个指向GitHub的git clone 用文本编辑器打开文件,注释这行,也换上gitee
#git clone https://github.com/abseil/abseil-cpp.git git clone https://gitee.com/dsl11/abseil-cpp.git
接下来执行
sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp
但我好像没有,问题不大
开始编译
catkin_make_isolated --install --use-ninja
以后如果修改了cartographer里的内容,也按照这个命令编译,不是用catkin_make 这个会编译一段时间,可以开另一个窗口执行下一步
下载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:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
注意点
我发现如果再src里增加一个文件(我增加了一个launch文件),再重新编译,就会报错,而且是目前我看来很离谱的报错,报错后就算新增的文件删除,也还是会继续报错。所以尽量只更改不增加,或者编译前自己先预留空白launch文件。 报错我目前唯一的解决方法是删掉三个isolated文件夹,重新编译。
|