Ubuntu18.04ROS melodic安装cartographer,cartographer_ros,ceres-solver

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-initialize

后再重新运行命令$ sudo rosdep init,就成功解决后出现下面的问题,直接输入rosdep update

Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run

	rosdep update

在这里插入图片描述$rosdep update

如果出现下面的情况,重复输入
$rosdep update就可以解决问题了

reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
ERROR: error loading sources list:
	('The read operation timed out',)

在这里插入图片描述
成功实现的图片
在这里插入图片描述
$ rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
在这里插入图片描述
使用需要使用此脚本手动安装的abseil-cpp库,在carto_ws路径下输入:

src/cartographer/scripts/install_abseil.sh

在这里插入图片描述
在这里插入图片描述
!!!注意别又掉坑哈!!!
只有 Ubuntu 16 / ROS Kinetic才输入下面的这条指令: src/cartographer/scripts/install_proto3.sh
但是博主是18.04Ubuntu ROS melodic系统,所以16.04 Ubuntu 的小伙伴注意了!!!
由于版本冲突,您可能需要使用:
$ sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp
5、编译并安装
$ catkin_make_isolated --install --use-ninja
会出现以下问题:

c++: internal compiler error: 已杀死 (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
[11/43] Building CXX object CMakeFiles/cartographer_ros.dir/cartographer_ros/msg_conversion.cc.o
ninja: build stopped: subcommand failed.
<== Failed to process package 'cartographer_ros': 
  Command '['/home/ros/carto_ws/install_isolated/env.sh', 'ninja', '-j2', '-l2']' returned non-zero exit status 1

Reproduce this error by running:
==> cd /home/ros/carto_ws/build_isolated/cartographer_ros && /home/ros/carto_ws/install_isolated/env.sh ninja -j2 -l2

Command failed, exiting.

在这里插入图片描述

<font color="#729FCF"><b>==&gt;</b></font><b> Building with env: &apos;/home/ros/carto_ws/install_isolated/env.sh&apos;</b>
build.ninja exists, skipping explicit cmake invocation...
<font color="#729FCF"><b>==&gt;</b></font><b> ninja build.ninja</b> <font color="#555753"><b>in</b></font> &apos;<b>/home/ros/carto_ws/build_isolated/ceres-solver/install</b>&apos;
ninja: no work to do.
<font color="#729FCF"><b>==&gt;</b></font><b> ninja -j2 -l2</b> <font color="#555753"><b>in</b></font> &apos;<b>/home/ros/carto_ws/build_isolated/ceres-solver/install</b>&apos;
[1/5] Building CXX object examples/CMakeFiles/nist.dir/nist.cc.o
FAILED: examples/CMakeFiles/nist.dir/nist.cc.o 
/usr/bin/c++  -DCERES_EXPORT_INTERNAL_SYMBOLS -DGFLAGS_IS_A_DLL=0 -Iconfig -I/home/ros/carto_ws/src/ceres-solver/include -isystem /usr/include/eigen3 -Wmissing-declarations -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-missing-field-initializers -O3 -DNDEBUG   -std=gnu++14 -MD -MT examples/CMakeFiles/nist.dir/nist.cc.o -MF examples/CMakeFiles/nist.dir/nist.cc.o.d -o examples/CMakeFiles/nist.dir/nist.cc.o -c /home/ros/carto_ws/src/ceres-solver/examples/nist.cc
c++: internal compiler error: 已杀死 (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See &lt;file:///usr/share/doc/gcc-7/README.Bugs&gt; for instructions.
ninja: build stopped: subcommand failed.
<font color="#EF2929"><b>&lt;==</b></font> Failed to process package &apos;<font color="#729FCF"><b>ceres-solver</b></font>&apos;: 
  Command &apos;[&apos;/home/ros/carto_ws/install_isolated/env.sh&apos;, &apos;ninja&apos;, &apos;-j2&apos;, &apos;-l2&apos;]&apos; returned non-zero exit status 1
<font color="#CC0000">Reproduce this error by running:</font>
<font color="#8AE234"><b>==&gt; </b></font>cd /home/ros/carto_ws/build_isolated/ceres-solver &amp;&amp; /home/ros/carto_ws/install_isolated/env.sh ninja -j2 -l2

试过很多方法,更改G++版本,使得G++版本更高了,或者使用ceres-solver.tar文件均发生该错误,均无法解决。原来是博主在前面Ubuntu18.04安装的是Ceres-solver-1.14.0-版本,后来直接下载Ceres-solver-1.13.0版本,安装和编译成功了

1.先到carto_ws删掉把bulid_isolated,devel_isolated,inatall_isolated这三个文件.删除前:在这里插入图片描述
删除后:在这里插入图片描述
2.再到carto_ws/src把下面删除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
$ catkin_make_isolated --install --use-ninja
$ source install_isolated/setup.bash
(注:为了避免以后操作麻烦,可以直接添加环境变量的配置脚本到终端的配置文件中:
$echo "source ~/catkin_ws/install_isolated/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
查询终端的环境:$gedit ~/.bashrc
在这里插入图片描述
在这里插入图片描述

下载并启动 2D 背包演示(内存500M):

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

如果运行上面这条指令出现下面的报错,说明你没有添加工作环境。需要重新添加工作环境就行。$:source install_isolated/setup.bash

RLException: [demo_backpack_2d.launch] is neither a launch file in package [cartographer_ros] nor is [cartographer_ros] a launch file name The traceback for the exception was written to the log file

在这里插入图片描述
在这里插入图片描述

下载并启动 3D 背包演示(内存2G):

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/with_intensities/b3-2016-04-05-14-14-00.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag

这个3D建图就不搞了,2G内存.

有错的话 可以评论区交流,第一次写,不足之处,多多交流 希望对有需要的朋友有用
欢迎给予评论 加油 小伙子

[1] http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference

  • 20
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值