当前位置:首页 » 《资源分享》 » 正文

Ubuntu 18.04 20.04 在 ROS 1 下安装 Cartographer 和 Cartographer_ROS【方法与避坑~】

26 人参与  2024年05月16日 10:10  分类 : 《资源分享》  评论

点击全文阅读


文章目录

前言一、安装 ROS二、安装依赖三、安装 Protobuf 31. 先卸载 ROS 自带的 Proto2 :2. 安装 Protobuf 3.6.0(1) 克隆源码:(2) 编译与安装: 四、创建并配置一个 ROS 工作空间五、安装 Ceres Solver六、安装、编译 Cartographer 及其依赖 Abseil七、编译 cartographer_rosThe End~


前言

环境版本:完全纯净的

Ubuntu 18.04 arm64 + ROS 1 Melodic

Ubuntu 20.04 arm64 + ROS 1 Noetic


一、安装 ROS

有了小鱼老师的一键安装ROS,真的是巨省事儿了。地址在这里,一行代码搞定~

链接: 小鱼的一键安装系列

二、安装依赖

sudo apt-get update
sudo apt-get install -y \    cmake \    g++ \    git \    google-mock \    libboost-all-dev \    libcairo2-dev \    libeigen3-dev \    libgflags-dev \    libgoogle-glog-dev \    liblua5.2-dev \    libsuitesparse-dev \    libwebp-dev \    ninja-build \    protobuf-compiler \    python-sphinx

Ubuntu 20.04 下补充一波依赖:

sudo apt-get install -y \    clang \    libcurl4-openssl-dev \    lsb-release \    stow

最后,无论哪个系统,再补充 gmock、PCL 和 pcl_conversions 三个依赖,不然最后编译 cartographer_ros 时可能报错~

sudo apt install libgmock-devsudo apt install libpcl-dev// Ubuntu 18.04 + ROS 1 Melodic 执行如下命令:sudo apt-get install ros-melodic-pcl-conversions// Ubuntu 20.04 + ROS 1 Noetic 执行如下命令:sudo apt-get install ros-noetic-pcl-conversions

三、安装 Protobuf 3

1. 先卸载 ROS 自带的 Proto2 :

sudo apt-get remove libprotobuf-devwhich protoc// 运行 which protoc 后会显示 protoc 所在的路径rm /usr/local/bin/protoc// remove的具体路径以 which protoc 显示的为准,也有可能是usr/bin/protoc // 至此,低版本的 Protobuf 卸载完成。

2. 安装 Protobuf 3.6.0

(1) 克隆源码:

git clone -b v3.6.0 https://github.com/protocolbuffers/protobuf.gitcd protobufgit submodule update --init --recursive// 该命令克隆 Protobuf 的子模块,这句话很必要,否则后面有的你报错咯

(2) 编译与安装:

完成上面的代码后,现在应该是已经在 protobuf 目录之中了。接下来:

./autogen.sh./configuremakemake checksudo make installsudo ldconfigprotoc --version// 此时若能输出 Protobuf 版本信息则表示安装成功which protoc// 查看 Protobuf 的安装位置,其默认下载位置为 /usr/local/bin/protoc 。但 cartographer 搜索 protoc 的路径为 /usr/bin/protoc,因此我们这里直接copy过去~sudo cp /usr/local/bin/protoc /usr/bin

四、创建并配置一个 ROS 工作空间

在自己希望的地方建立工作空间文件夹,这里我命名为 carto_ws。进入 carto_ws 路径,并再创建src文件夹。

mkdir carto_wscd carto_wsmkdir src

回到工作空间路径,并编译:

cd ~/carto_wscatkin_make

回到根目录下,并 source 编译好的 devel 文件夹下的 setup.bash 文件:

cdsource ~/carto_ws/devel/setup.bashgedit ~/.bashrc

在打开的 .bashrc 文件最后的 “source /opt/ros/noetic/setup.bash” 语句后加入刚才的 "source ~/carto_ws/devel/setup.bash"语句,如图。

请添加图片描述

完成~

五、安装 Ceres Solver

Ceres Solver 是 Cartographer 的重要依赖,但注意新版的 Ceres 安装后会导致 Cartographer 编译报错,这里建议使用 1.13.0 版本:

从以下链接下载 Ceres Solver 1.13.0:
链接: https://codeload.github.com/ceres-solver/ceres-solver/tar.gz/refs/tags/1.13.0

下载后将文件夹移至希望存放的目录下,我这里是放在了与工作空间平行的位置:

请添加图片描述

接下来编译 Ceres Solver:

cd ceres-solver-1.13.0mkdir buildcd buildcmake ..makemake testsudo make install

六、安装、编译 Cartographer 及其依赖 Abseil

首先进入希望存放 Cartographer 的目录,我这里同样是放在了与工作空间平行的位置。

git clone https://github.com/cartographer-project/cartographer.gitcd cartographersudo gedit package.xml

删除 package.xml 文件中的这一行:

<depend>libabsl-dev</depend>

继续运行:

cd scripts./install_abseil.sh

配置 rosdep:
这里也建议用小鱼老师的一键配置 rosdepc,方法与上面一键安装一样,输入鱼香ROS一键安装命令后选择 [3] 即可。

再运行:

rosdepc update

→→→ Ubuntu 18.04 安装的 ROS1 版本应该是 Melodic,因此命令为:

cd carto_wsrosdep install --from-paths src --ignore-src --rosdistro=melodic -y// 如果不按上面的先删除代码再运行脚本安装 abseil 的话,本步可能会报 "cartographer: [libabsl-dev] defined as “not available“ for OS version [bionic]"错误

→→→ Ubuntu 20.04 安装的 ROS1 版本应该是 Noetic,因此命令为:

cd carto_wsrosdep install --from-paths src --ignore-src --rosdistro=noetic -y

运行后应显示:#All required rosdeps installed successfully

接下来编译 Cartographer:

cd cartographermkdir buildcd buildcmake .. make// 如果 Ceres Solver 用的是最新版本,则此处 make 大概率会花式 (literally~) 报各种错误make testsudo make install

七、编译 cartographer_ros

!!! 注意,在 arm64 架构处理器下,catkin_make 会报"危险的重寻址,不支持的重定位" “recompile with -fPIC dangerous relocation: unsupported relocation” 错误。解决方案是在 abseil 包中添加 fPIC 编译选项。
找到刚才安装的 abseil 目录 abseil-cpp,在其中的 CMakeList.txt 文件的前部添加代码:

add_compile_options(-fPIC)

然后继续,进入刚刚创建的 ROS 工作空间的 src 文件夹中,克隆代码并编译工作空间:

cd ~/carto_ws/srcgit clone https://github.com/cartographer-project/cartographer_ros.gitcd ~/carto_wscatkin_make

The End~


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/109326.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 祖母寿宴,侯府冒牌嫡女被打脸了(沈屿安秦秀婉)阅读 -
  • 《雕花锦年,昭都旧梦》(裴辞鹤昭都)完结版小说全文免费阅读_最新热门小说《雕花锦年,昭都旧梦》(裴辞鹤昭都) -
  • 郊区41号(许洛竹王云云)完整版免费阅读_最新全本小说郊区41号(许洛竹王云云) -
  • 负我情深几许(白诗茵陆司宴)完结版小说阅读_最热门小说排行榜负我情深几许白诗茵陆司宴 -
  • 九胞胎孕妇赖上我萱萱蓉蓉免费阅读全文_免费小说在线看九胞胎孕妇赖上我萱萱蓉蓉 -
  • 为保白月光,侯爷拿我抵了债(谢景安花田)小说完结版_完结版小说全文免费阅读为保白月光,侯爷拿我抵了债谢景安花田 -
  • 陆望程映川上官硕《我的阿爹是带攻略系统的替身》最新章节阅读_(我的阿爹是带攻略系统的替身)全章节免费在线阅读陆望程映川上官硕
  • 郑雅琴魏旭明免费阅读_郑雅琴魏旭明小说全文阅读笔趣阁
  • 头条热门小说《乔书意贺宴临(乔书意贺宴临)》乔书意贺宴临(全集完整小说大结局)全文阅读笔趣阁
  • 完结好看小说跨年夜,老婆初恋送儿子故意出车祸_沈月柔林瀚枫完结的小说免费阅读推荐
  • 热推《郑雅琴魏旭明》郑雅琴魏旭明~小说全文阅读~完本【已完结】笔趣阁
  • 《你的遗憾与我无关》宋怀川冯洛洛无弹窗小说免费阅读_免费小说大全《你的遗憾与我无关》宋怀川冯洛洛 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1