Ubuntu18.04 cartographer安装:
1.安装依赖
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
sudo apt-get install cmake
sudo apt-get install build-essential
sudo apt-get install libgoogle-glog-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libsuitesparse-dev
sudo apt install lua5.2
2.按照书上创建和初始化工作空间
mkdir catkin_google_ws
cd catkin_google_ws
wstool init src
3.下载安装包
为了避免超时,下载慢等问题,我是自己去了GitHub上下载zip压缩包,然后解压放到工作空间src目录下
4.安装依赖并下载cartographer相关功能包(注意rosdistro=kinetic -y是根据自己ros的版本来的)
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
5.编译并安装
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash
6.下载demo进行测试
我是自己去官网下载然后进行测试的,这样下载更快:
编译格式:
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=跟上bag的路径
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=跟上bag的路径
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=/home/fairy/Downloads/b0-2014-07-11-11-00-49.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=/home/fairy/Downloads/b3-2016-03-01-13-39-41.bag
安装cartographer遇到的问题:
rosdep update时遇到的问题:
raceback (most recent call last):
File "/usr/bin/rosdep", line 6, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3088, in <module>
@_call_aside
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3072, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3101, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 576, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 589, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 778, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'rospkg>=1.3.0' distribution was not found and is required by rosdep
解决办法:sudo pip install rosdep
编译时缺少absl包:
CMake Error at CMakeLists.txt:32 (find_package):
By not providing "Findabsl.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "absl", but
CMake did not find one.
Could not find a package configuration file provided by "absl" with any of
the following names:
abslConfig.cmake
absl-config.cmake
Add the installation prefix of "absl" to CMAKE_PREFIX_PATH or set
"absl_DIR" to a directory containing one of the above files. If "absl"
provides a separate development package or SDK, be sure it has been
installed.
解决办法:1.sudo apt-get install stow
2.进入你建的工作空间下的src目录下的cartographer下的scripts:sudo chmod +x install_abseil.sh
3. ./install_abseil.sh
fatal error:lua.hpp没有那个文件或目录
解决办法:(具体错误信息忘记复制了)sudo apt install liblua5.3-dev
catkin_make_isolated --install --use-ninja编译出错:
Failed to process package 'cartographer_ros':
Command '['/root/catkin_google_ws2/install_isolated/env.sh', 'ninja', '-j4', '-l4']' returned non-zero exit status 1
Reproduce this error by running:
==> cd /root/catkin_google_ws2/build_isolated/cartographer_ros && /root/catkin_google_ws2/install_isolated/env.sh ninja -j4 -l4
Command failed, exiting.
这个问题没有解决,网上说是protoc版本有问题,要安装3的版本,当时安装了,但是还是这个问题,后面重装系统了,再安装一路顺畅。建议重新建立一个工作空间安装试一下,网上多看看protoc相关的问题,实在不行再重装系统。