[TOC]
官方的教程在此:
不过因为墙的原因,获取工程包的时候就寄了(但是我vpn能用啊,为什么为什么???)
具体是在这一步的时候错了:
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
没办法只能自己一步步找资源,一共需要3个部分:
- ceres solver
- cartographer
- cartographer_ros
具体步骤如下:
-
下载相关依赖:
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
-
下载ceres solver
官方推荐的下法是直接git clone官方的资源,但还是被墙了┑( ̄Д  ̄)┍,因为以前配过一次,所以留下了压缩包,也上传到了github上:
下载完后在依次终端运行以下命令:
cd ceres-solver/build cmake .. make -j sudo make install
-
下载cartographer和cartographer_ros
话不多说,下面是github链接,直接把工作空间好了,移植的时候记得先把build和devel文件夹删除:
如果直接编译,可能会存在一些路径不匹配问题,假如遇到了,首先把cartographer文件夹里的build文件夹清空,再依次执行下列指令:
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow cd cartographer/build cmake .. -G Ninja ninja ninja test sudo ninja install
接着需要下载一个 abseil-cpp Library,启动cartographer内script文件夹里的install_abseil.sh文件即可:
src/cartographer/scripts/install_abseil.sh
src为工作空间的包目录
本人git上的为已经安装过的,不清楚在移植的时候是否会存在路径或版本冲突问题,若有,可以尝试官网的卸载教程:
接着直接编译整个工作空间即可:
catkin_make_isolated --install --use-ninja
题外话:
在上面的教程里出现了ninja这个东西,Ninja 是Google的一名程序员推出的注重速度的构建工具,一般在Unix/Linux上的程序通过make/makefile来构建编译,而Ninja通过将编译任务并行组织,大大提高了构建速度,u1s1这玩意是真的快,只用catkin_make_isolated编译起来非常慢
在配置好后来跑跑例程吧!
首先下载官方的示例bag,复制下列网址到浏览器,并使用下面的标签命名,bag约为470M,储存路径默认为 /home/username/Downloads
cartographer_paper_deutsches_museum.bag
source一下工作空间,launch例程:
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
在rviz中可以看到雷达的实时数据,添加add Map类型信息,订阅"/map" topic,显示结果如下: