Ubuntu18.04安装ROS melodic下面安装Cartographer,cartographer_ros,ceres-solver遇到的问题与解决方案
2020年12月12日 亲测有效!!!
#Ubuntu18.04ROS melodic安装cartographer,cartographer_ros,ceres-solver
注意:这里是18.04 ROS melodic的下载cartographer方法
不是16.04的kinetic 大概应该是一样的安装与编译的方法 只是在编译出prof不一样的方法
先创建工作环境
1、安装工具
$ sudo apt-get update
$ sudo apt-get install -y python-wstool python-rosdep ninja-build stow
2、初始化工作空间(创建工作空间)
$ mkdir -p ~/carto_ws
$ cd carto_ws
$ wstool init src
3、加入cartographer、cartographer_ros、ceres-solver的功能包并更新依赖
$ wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
$ wstool update -t src
!!!注意:
如果你要添加ceres-solver;如果你输入了$ wstool update -t src也没事,克隆完cartographer,cartographer_ros,在重新在添加ceres-solver,直接跳到到博主后面去安装ceres-solver,进行编译进行.
方法一:
$ cd carto_ws/src
获取源码:$ wget ceres-solver.org/ceres-solver-1.13.0.tar.gz
2、解压:$ tar xvf ceres-solver-1.13.0.tar.gz
3、切换到源目录:$ cd ceres-solver-1.13.0
4、编译:$ mkdir build
$ cd build
$ cmake …
$ make
5、安装:
$sudo make install
$ cd ~/carto_ws
$ sudo rosdep init
$ rosdep update
$ rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
使用需要使用此脚本手动安装的abseil-cpp库,在carto_ws路径下输入:
src/cartographer/scripts/install_abseil.sh
$ catkin_make_isolated --install --use-ninja
$ echo source install_isolated/setup.bash
以下是博主遇到的问题与解决方法.
1.下面是添加ceres-solver的编译的包进来
注意:添加的版本一定是Ceres-solver-1.13.0,不然会出现博主后面的报错的情况.博主下面使用的Ceres-solver-1.14.0报错讲解情况,后面是博主添加报错的步骤与解决情况
$
sudo gedit /home/ros/carto_ws/src/.rosinstall
2.可以手动添加下载(克隆)ceres-solver网址:
- git:
local-name: ceres-solver
uri: https://github.com/ceres-solver/ceres-solver.git
version: master
或者复制下面全面替换你的/home/ros/carto_ws/src/.rosinstall文件
# THIS IS AN AUTOGENERATED FILE, LAST GENERATED USING wstool ON 2020-12-12
- 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: master
$ wstool update -t src
(这里需要小漫长的等待的过程,说明你距离安装成功又进了一步)
安装完成之后出现运行
4安装依赖并下载cartographer相关的功能包
需要安装cartographer_ros依赖项。首先,我们使用安装所需的包。如果自安装 ROS 以来已执行该命令,则命令"sudo rosdep init"将打印错误。(可以忽略此错误)
$ sudo rosdep init
$ rosdep update
但是我这个人要求完美,遇到问题就喜欢干他。
在安装18.04 ROS meldioc系统的时候,很多人都掉进这个坑,博主也不例外,有的人说,用了手机开热点,就能解决问题。还有的人说,开热点移动解决不了,换了电信就解决了,其实,说白了就是网络信号的问题;博主连接学校的校园WiFi搞定的,多输入几次 $rosdep update
最终还是解决问题,如果你们没搞定,可以忽略。不影响后面操作。
ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down
$ sudo gedit /etc/hosts
在文件尾部添加:
151.101.84.133 raw.githubusercontent.com
保存退出就行,如果还出现,多次输入$
sudo rosdep init
就能解决这个问题
如果出现下面的报错,产生了相同的文件20-default.list,二者发生冲突,用下面这条命令删除一个进行了
$ sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re