Ubuntu18.04快速安装Cartographer以及Cartographer_ros

任务动机:快速完成基于Ubuntu18.04的Cartographer以及Cartographer_ros安装。

任务描述:分步安装验证后,将步骤合并成安装脚本。

Cartographer由谷歌一直在维护,从之前的tf1到现在melodic版本上的tf2_ros都有更新支持。而且cartographer所依赖的库也在一直更新,包括abseil-cpp,ceres-solver,protobuf等,其依赖的版本混乱,并不能相互兼容。经过测试,在2019年的某个版本解决好依赖问题之后,同样的方法在2020年clone新的官方代码就编译出错了。并且官方只更新代码,并没有对安装文档进行对应的更新,所以直接按照cartographer/scripts中的安装脚本操作,而又使用最新代码,是必然会出错的。为了解决此问题,本仓库固化依赖以及cartographer的版本,经过多次测试,该方法有效。

版本固化时间为2020年07月01日16:58:57。

1. 源码

  1. cartographer
  2. cartographer_ros

该仓库的cartographer以及cartographer_ros代码均为笔者固化版本时官方github最新代码,依赖调教好版本的依赖包也都已经放在dependencies文件夹,所有代码均使用cmake编译方式,无官方推荐的ninjia(对持续源码修改以及开发不方便),该仓库的方法不保证对后续谷歌更新的cartographer以及cartographer_ros有效,请使用本仓库下的代码版本。建议cartographer_ros将仓库克隆到catkin_ws/下与src平级目录,后续修改源码或者查看代码实现可直接跳转。

按照本文所介绍的安装方法你可以获得以下便利:

  1. 在ubuntu16.04上一键编译和安装cartographer和cartographer_ros
  2. cartographer库采用CMake方式编译,而非谷歌所使用的ninjia
  3. cartographer工程可在QtCreator中直接打开和编译
  4. 更改cartographer源码后可在之前的编译基础上继续编译,减少重复编译浪费时间
  5. cartographer_ros仓库可直接放到ROS工作空间一同编译和修改
  6. cartographer_ros可使用ros-qt-plugin在QtCreator中修改代码,可随意进行函数跳转
  7. cartographer_ros的代码在QtCreator中可直接跳转到所安装的cartographer仓库的代码(而非本系统安装的库),方便同步修改

2. 手动固化安装版本的过程

以下过程为笔者手动固化安装版本的详细过程,其中的脚本已集中放在了install.sh脚本中支持一键运行了,用户无需再进行该过程。

给出该过程是为了用户参考和了解所固化的具体版本号。

2.1 安装基础依赖

# Install the required libraries that are available as debs.
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 \
    libprotobuf-dev \
    libsuitesparse-dev \
    libwebp-dev \
    ninja-build \
    protobuf-compiler \
    python-sphinx \

2.2 安装abseil-cpp

版本:lts_2020_02_25

# Install abseil-cpp
cd  ~/Downloads
git clone https://github.com/abseil/abseil-cpp.git
cd abseil-cpp
git checkout lts_2020_02_25
mkdir build
cd build
cmake ..
make -j2
sudo make install

2.3 安装ceres solver

版本:1.13.0

# Install ceres solver
cd  ~/Downloads
git clone https://github.com/ceres-solver/ceres-solver.git
cd ceres-solver
git checkout 1.13.0
mkdir build
cd build
cmake ..
make -j2
sudo make install

2.4 安装protobuf

版本:master@d4c5992352aae1ed18f44c1a40d2149006bf8704

# Install prtobuf 3.0
cd  ~/Downloads
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git checkout d4c5992352aae1ed18f44c1a40d2149006bf8704
mkdir build
cd build
cmake ..
make -j2
sudo make install
sudo ldconfig

此处注意如果安装完没有执行sudo ldconfig指令时会报错找不到shared libraries protobuf.so.23。

2.5 安装cartographer

版本:master@e5894cce1f8047d5c807158711e468b3f5550f1a

# Install cartographer

cd  ~/Downloads
git clone https://github.com/cartographer-project/cartographer.git
git checkout e5894cce1f8047d5c807158711e468b3f5550f1a
cd cartographer
mkdir build
cd build
cmake ..
make -j2
sudo make install

2.6 安装cartographer_ros与编译

版本:master@be4332b3385b5eea2511d11de5cc6792ecb4af2e

# Install cartographer ros
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/cartographer-project/cartographer_ros.git
git checkout be4332b3385b5eea2511d11de5cc6792ecb4af2e
cd ~/catkin_ws
catkin_make -j2

此处进行编译时请使用catkin_make -j2,如果直接使用catkin_make则会全线程启动编译,会导致内存不足,从而报错编译器内部错误。

3. 一键安装

使用该脚本安装前请确保已安装ROS-Melodic。

./install.sh

为了避免与用户本机的ros工作空间中已存在的cartographer_ros包可能发生的冲突,安装脚本会在用户目录新建一个carto_ws的ROS工作空间,运行完成后用户可自行选择移到自己的工作空间中一同使用。

3.1 ARM64主板注意事项

一键安装脚本可直接在AMD64架构的板子上运行,在ARM64架构的板子上会报不存在/usr/lib/aarch64-linux-gnu/libGL.so,导致后续的cartographer_rviz编译失败,因而要链接生成,请注意取消脚本中line52的注释。

sudo ln -s /usr/lib/aarch64-linux-gnu/libGL.so.1 /usr/lib/aarch64-linux-gnu/libGL.so

4. 重编译脚本

修改cartographer源码后需要编译安装才能生效,从而提供给cartographer_ros使用。

cartographer重编译可直接运行:

./rebuild_install.sh

然后再去编译cartographer_ros所在的ROS工作空间。

5. 数据集

谷歌官方文档页面给出的数据集可直接使用本仓库的下载脚本get_carto_bags.sh将所有bag文件下载到本地~/data/carto_bags/中。

./get_carto_bags.sh

6. 安装脚本下载

https://download.csdn.net/download/zhzwang/12806260

  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 安装Cartographer需要以下步骤: 1. 首先,在Ubuntu 18.04上安装依赖项。打开终端并执行以下命令: ``` 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.3-dev libprotobuf-dev libsuitesparse-dev lsb-release ninja-build python-sphinx protobuf-compiler python3-dev python3-sphinx ros-melodic-tf2-sensor-msgs libceres-dev ``` 2. 安装Google的protobuf: ``` wget https://github.com/google/protobuf/releases/download/v3.8.0/protobuf-all-3.8.0.tar.gz tar -xf protobuf-all-3.8.0.tar.gz cd protobuf-3.8.0/ ./configure make sudo make install ``` 3. 克隆Cartographer存储库: ``` git clone https://github.com/googlecartographer/cartographer.git ``` 4. 创建并进入构建目录: ``` cd cartographer mkdir build cd build ``` 5. 运行CMake编译配置: ``` cmake .. make -j ``` 6. 安装Cartographer: ``` sudo make install ``` 完成安装后,您可以在终端中测试Cartographer: ``` cartographer_rosbag_validate -h ``` 这将显示Cartographer的命令行帮助。 ### 回答2: 在Ubuntu 18.04上安装Cartographer可以按照以下步骤进行操作: 1. 打开终端,使用命令sudo apt-get update来更新软件包。 2. 安装依赖项:sudo apt-get install -y google-mock libboost-all-dev libeigen3-dev libceres-dev liblua5.3-dev ninja-build protobuf-compiler python-sphinx libatlas-base-dev 3. 安装CMake:sudo apt-get install -y cmake 4. 进入要安装Cartographer的目录,例如/home/username/Documents。 5. 使用以下命令克隆Cartographer源代码: git clone https://github.com/cartographer-project/cartographer.git cd cartographer git checkout master git fetch --all git reset --hard origin/master git submodule init git submodule update 6. 创建一个用于构建的目录并进入该目录: mkdir build && cd build 7. 运行以下命令配置构建: cmake .. 8. 运行以下命令编译并安装Cartographer: make -j sudo make install 9. 安装完成后,可以使用以下命令验证Cartographer是否正确安装cartographer_assets_writer cartographer_grpc_assets_writer cartographer_info cartographer_pbstream_to_rosbag cartographer_ros cartographer_rosbag cartographer_rosver cartographer_turtlebot_3_localization 通过以上步骤,您应该可以成功在Ubuntu 18.04上安装Cartographer。可能需要一些时间来完成编译和安装过程,请耐心等待。如果遇到任何问题,可以参考Cartographer的官方文档或寻求相关技术支持。 ### 回答3: 在Ubuntu 18.04上安装Cartographer是一个相对繁琐的过程,以下是详细步骤: 1. 首先,你需要确认你的系统已经安装好了一些基本的开发工具。可以在终端中运行以下命令来安装这些工具: ``` sudo apt-get update sudo apt-get install -y build-essential cmake git ``` 2. 接下来,需要安装一些依赖项。运行以下命令进行安装: ``` sudo apt-get install -y 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 ``` 3. 安装和配置Java开发环境。Cartographer使用Java来构建文档,所以需要安装Java JDK: ``` sudo apt-get install -y openjdk-8-jdk ``` 然后设置Java环境变量: ``` export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH ``` 4. 现在,你可以从GitHub上克隆Cartographer的源代码库: ``` git clone https://github.com/googlecartographer/cartographer.git ``` 然后进入克隆下来的目录: ``` cd cartographer ``` 并且检出最新的稳定版本: ``` git fetch --all git tag git checkout tags/<tag_name> ``` 5. 创建一个构建目录,并切换到该目录: ``` mkdir build cd build ``` 6. 使用CMake来配置Cartographer的构建: ``` cmake .. ``` 7. 使用ninja构建Cartographer: ``` ninja ``` 8. 最后,运行测试来确保安装成功: ``` ninja test ``` 至此,你已经成功安装Cartographer。记得将Cartographer添加到你的系统路径中,以便在任何目录下都可以使用它: ``` export CARTOGRAPHER_PATH=<path_to_cartographer> export PATH=$CARTOGRAPHER_PATH:$PATH ``` 希望以上步骤对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值