首页 > 系统相关 >装了一次没成功的前提下,ubuntu18.04+ros(melodic)安装 cartographer源码安装及测试---2024.07.03安装成功

装了一次没成功的前提下,ubuntu18.04+ros(melodic)安装 cartographer源码安装及测试---2024.07.03安装成功

时间:2024-07-03 19:58:26浏览次数:20  
标签:melodic cartographer Eigen 安装 sudo 源码 usr local

因为项目需要所以要安装cartographer,最开始也没仔细研究一下,随便找了一个csdn教程就跟着安装了,装了一下午,总是在最后编译的时候出错,晚上的时候心态崩了,咸鱼上找了个远程安装的,他好像是用小鱼的那个脚本安装,装了一个小时也没安装好。不死心的我又去咸鱼上找人,然后开口要两千块,两千块装一个cartographer家人们,看到这个价格突然就觉得我自己能装好了,连夜看了好多教程,最终参考了以下两位大神的教程,真的很感谢!!!

1、http://t.csdnimg.cn/CRLp8(解决好GitHub下载速度慢的问题)

2、http://t.csdnimg.cn/U24Oh(主要是参考这个教程安装的)

3、请注意:成功是有条件的,也就是你的melodic安装已完毕,并且rosdep update成功,才能使用该教程


前期准备

想要成功安装我觉得的先知道cartographer包含什么,需要什么依赖,以及他们之间有没有什么版本要求。

经过我这两天的摸爬滚打我了解到:cartographer所依赖库有abseil-cpp、ceres-solver、protobuf,此外运行cartographer_ros还需要将cartographer包安装到系统里。通俗点来说就是要先把三个依赖库安装好,然后单独建一个工作空间cato_ws然后在里面下载cartographer、cartographer_ros,最后编译即可。

然后一定要保证ceres_slover下载1.13.0版本的,还有就是ceres_slover安装会和Eigen库有关系,Ceres 1.13.0 推荐与 Eigen 3.3.3 及更高版本配合使用。

你可以通过下面的代码检查一下自己的Eigen库的版本,像我之前的库是3.4.0版本的,为了配合Ceres 1.13.0我卸载了它,重新安装了3.3.7版本的。

cat /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h | grep "#define EIGEN_WORLD_VERSION"
cat /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h | grep "#define EIGEN_MAJOR_VERSION"
cat /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h | grep "#define EIGEN_MINOR_VERSION"

一、卸载Eigen库3.4.0流程

sudo rm -rf /usr/local/include/eigen3


二、安装Eigen库3.3.7流程

1、下载Eigen 3.3.7版本的源码

wget https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz

2、解压下载的压缩包:

tar -xvzf eigen-3.3.7.tar.gz cd eigen-3.3.7

3、运行以下命令安装Eigen 3.3.7:

mkdir build
cd build
cmake ..
sudo make install

4、这几步结束后你可以再看一下自己Eigen库的版本

cat /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h | grep "#define EIGEN_WORLD_VERSION"
cat /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h | grep "#define EIGEN_MAJOR_VERSION"
cat /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h | grep "#define EIGEN_MINOR_VERSION"

三、然后因为我之前装了两三次都没有装好,为了防止abseil-cpp、ceres-solver、protobuf之间互相干扰,需要手动删除系统里面的abseil-cpp、ceres-solver、protobuf。

1、手动删除 abseil-cpp 文件

删除 /usr/local/include 中的 absl 文件夹

sudo rm -rf /usr/local/include/absl

删除 /usr/local/lib 下的 absl 相关文件,列出所有 absl 相关的库文件

ls /usr/local/lib | grep absl

删除这些文件,例如:

sudo rm /usr/local/lib/libabsl*.a

sudo rm /usr/local/lib/libabsl*.so

删除 /usr/local/lib/cmake/absl 文件夹(如果存在):

sudo rm -rf /usr/local/lib/cmake/absl

删除 /usr/local/share/absl 文件夹(如果存在):

sudo rm -rf /usr/local/share/absl

有时,安装过程中可能会有其他路径的文件。你可以使用 find 命令查找所有 abseil 相关文件并手动删除:

sudo find /usr/local -name "*absl*"

2、手动删除ceres文件

如果你记得安装时的路径,你可以手动删除所有相关文件。

通常这些文件会安装在 /usr/local 或 /usr 目录下。以下是一些可能的路径

sudo rm -rf /usr/local/lib/libceres*

sudo rm -rf /usr/local/include/ceres

sudo rm -rf /usr/local/lib/cmake/Ceres

3、卸载 protobuf

sudo apt-get remove libprotobuf-dev protobuf-compiler

确保上面这些都做完了,下面咱正式开始安装


安装第一步、解决github下载失败的问题

修改/etc/hosts文件加速GitHub下载

第一步:获取IP地址

  1. 打开一个浏览器,访问在线DNS解析工具或其他类似网站。
  2. 在工具中,分别输入以下三个域名并进行解析,获取其对应的IP地址:
    • github.com
    • github.global.ssl.fastly.net
    • codeload.github.com
  3. 记录解析结果中返回的IP地址。

第二步:编辑/etc/hosts文件

sudo vim /etc/hosts

在/etc/hosts文件中,添加获取到的IP地址和对应的域名。假设获取到的IP地址如下(请根据实际获取的IP地址进行替换):

140.82.114.4 github.com

199.232.69.194 github.global.ssl.fastly.net

140.82.113.10 codeload.github.com

第三步:重启网络服务

在终端中执行以下命令重启网络服务:

sudo /etc/init.d/networking restart

第四步:验证修改

通过ping命令验证是否能够快速访问GitHub相关域名:


ping github.com 
ping github.global.ssl.fastly.net 
ping codeload.github.com

注意事项

  • IP地址可能会变化,需要定期检查并更新/etc/hosts文件中的IP地址。
  • 如果/etc/hosts文件中的IP地址失效,可能会导致无法访问GitHub相关服务,需要及时更新IP地址。

安装第二步、安装相关依赖包

sudo apt-get update
 
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
 
sudo apt-get install -y python-wstool python-rosdep ninja-build stow

安装第三步、建立工作空间

初始化工作空间

mkdir catkin_google_ws
cd catkin_google_ws
wstool init src

从原作者的gitee上下载安装cartographer和cartographer_ros(如果了解决github下载失败的问题,到这一步会很快)

cd src
git clone https://gitee.com/liu_xiao_eu/cartographer.git
git clone https://gitee.com/liu_xiao_eu/cartographer_ros.git

安装第四步:安装ceres-solver

在工作空间cato_ws/src下面下载

wget ceres-solver.org/ceres-solver-1.13.0.tar.gz

下载不成功的话,可以使用下面的链接下载

版本为ceres-solver-1.13.0,对应的是ros-melodic的环境,激光--cartographer中使用-Linux文档类资源-CSDN下载

编译ceres-solver

cd ceres-solver-1.13.0
mkdir build
cd build
cmake  ..
make

使用该版本的就没有问题,最新版本的会出错误

测试是否通过,并安装到虚拟机下

make test

sudo make install

安装第五步:安装cartographer_ros的依赖项(proto3)

这块是用脚本来安装,在carto_ws/src/cartographer/scripts/install_proto3.sh里面会有脚本install_proto3.sh

直接运行脚本

./install_proto3.sh

安装成功后为

安装第六步:安装 abseil-cpp library

还是使用脚本安装,在cato_ws/src/cartographer/scripts/install_abseil.sh里面会有脚本install_abseil.sh

即可直接安装

./install_abseil.sh

8、编译Cartographer (博主整个过程没有遇到问题)

catkin_make_isolated --install --use-ninja

安装第七步:下载官方测试包测试一下

现在官网已经没法下载了,我找了个以前博主下载2d的,链接给大家放在这了

链接: https://pan.baidu.com/s/15t80qqhAvbd1pDZwvkjIYw?pwd=3c9y 提取码: 3c9y 

此时的应在工作空间的目录下,执行测试:

source install_isolated/setup.bash
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=/home/yxt/catkin_google_ws/src/b2-2016-04-05-14-44-52.bag

 测试结果如图所示:

标签:melodic,cartographer,Eigen,安装,sudo,源码,usr,local
From: https://blog.csdn.net/2201_75543838/article/details/140159787

相关文章

  • VMware安装CentOS7环境
    准备CentOS7的iso镜像下载链接:https://mirrors.aliyun.com/centos/7/isos/x86_64/配置步骤步骤一——创建虚拟机1、点击创建新的虚拟机2、选择典型3、选择镜像文件4、填写对应信息5、选择虚拟机存储的位置6、存储为单个文件7、创建步骤二——配置centos71、......
  • 适用于PyTorch 2.0.0的Ubuntu 22.04上CUDA v11.8和cuDNN 8.7安装指南
    将下面内容保存为install.bash,直接用shell执行一把梭解决#!/bin/bash###steps#####verifythesystemhasacuda-capablegpu#downloadandinstallthenvidiacudatoolkitandcudnn#setupenvironmentalvariables#verifytheinstallation######toverify......
  • SpringCloud Alibaba Nacos 配置动态更新源码学习总结
    众所周知,nacos两大核心功能,服务注册发现与动态配置支持服务注册发现的有:Eureka、Consul、Zookeeper、Nacos支持动态配置的有:SpringCloudConfig、Nacos、Apollo、Consul像支持分布式的框架,必须得借用第三方服务,比如定时任务调度xxl-job,分布式事务seata,都分为server端与client......
  • springboot实验报告管理系统-计算机毕业设计源码10596
    目录1绪论1.1选题背景与意义1.2国内外研究现状1.3论文结构与章节安排2系统分析2.1可行性分析2.2系统流程分析2.2.1系统开发流程2.2.2用户登录流程2.2.3系统操作流程2.2.4添加信息流程2.2.5修改信息流程2.2.6删除信息流程2.3 系统功能分......
  • springboot实验报告管理系统-计算机毕业设计源码10596
    目录1绪论1.1选题背景与意义1.2国内外研究现状1.3论文结构与章节安排2系统分析2.1可行性分析2.2系统流程分析2.2.1系统开发流程2.2.2用户登录流程2.2.3系统操作流程2.2.4添加信息流程2.2.5修改信息流程2.2.6删除信息流程2.3 系统功能分......
  • django西餐厅管理系统-计算机毕业设计源码10873
    摘要在现代餐饮行业中,高效的管理系统对于西餐厅的成功运营至关重要。为了满足西餐厅日益增长的管理需求,设计并实现了一款基于Python的西餐厅管理系统。Python作为一种简洁而易读的编程语言,具有广泛的应用领域,包括Web开发。结合Django这一强大的Web框架,我们可以快速构建......
  • Gitlab代码管理工具安装配置
    前言:没有真正的证书与域名建议使用http+ip的方式在内网使用,不建议使用假的域名地址一、安装前配置#更改主机域名hostnamectlset-hostnamegitlab.dome.combash#配置hosts底部添加下面内容vim/etc/hosts############################ipgitlab.dome.com########......
  • windows的桌面docker安装mysql5.7
    dockerrun-p3306:3306--namemysql^-vE:/mysql/data:/var/lib/mysql^-vE:/mysql/conf:/etc/mysql/conf.d^-vE:/mysql/log:/var/log/mysql^-eMYSQL_ROOT_PASSWORD=123456^-dmysql:5.7命令解析:dockerrun-p3306:3306--namemysql:创建一个docker容......
  • Kubernetes基于helm安装 harbor
    Kubernetes基于helm安装harbor之前harbor的安装都是借助docker完成一键安装部署,安装完成之后harbor组件均运行到一台机器上面,本文实践harbor在k8s环境中的部署。准备工作根据harbor官方要求:Kubernetescluster1.20+Helmv3.2.0+结合ingress-nginx版本要求,建议K8S版本大......
  • W外链 短网址系统API 源码,网址缩短API接口
    1、提供的接口W外链提供接口如下:2、签名简介使用前请了解如下事项:API 的签名主要是用于获取身份令牌 AccessToken 时所需必要认证参数在请求需要复杂认证接口的时候,系统会验证 AccessToken在请求获取 AccessToken 的接口时候,服务器会对用户请求合法性的 signature 进......