ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Nvidia Xavier NX安装并测试Cartographer

2021-05-24 14:02:42  阅读:540  来源: 互联网

标签:Cartographer sudo cartographer NX bag Nvidia ninja ros 安装


这里写自定义目录标题

前言

最近成功在Nvidia Xavier NX和Nvidia Xavier AGX安装并测试了谷歌的开源激光slam算法Cartographer,在此记录下过程中的一些坑。

安装过程

  1. 首先需要安装ROS,需要注意的是Nvidia Xavier NX和Nvidia Xavier AGX都是安装的Ubuntu18.04系统,所以安装对应的ROS版本:Ros-melodic。安装教程参考ROS官网。
    Cartographer大部分教程可以参考官网,链接如下:
    Cartographer官网

  2. 安装依赖库

sudo apt-get update
sudo apt-get install -y \
    clang \
    cmake \
    g++ \
    git \
    google-mock \
    libboost-all-dev \
    libcairo2-dev \
    libcurl4-openssl-dev \
    libeigen3-dev \
    libgflags-dev \
    libgoogle-glog-dev \
    liblua5.2-dev \
    libsuitesparse-dev \
    lsb-release \
    ninja-build \
    stow
  1. 安装abseil
git clone https://github.com/abseil/abseil-cpp.git
cd abseil-cpp
git checkout d902eb869bcfacc1bad14933ed9af4bed006d481
mkdir build
cd build
cmake -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DCMAKE_INSTALL_PREFIX=/usr/local/stow/absl \
  ..
ninja
sudo ninja install
cd /usr/local/stow
sudo stow absl

abseil是google开源的C++基础库。ninja是google自己的编译器,速度更快,如果没有安装翻墙软件的话,可能有的时候下载不再来,或者下载速度很慢,可以考虑在Window平台上下载并拷贝到Nvidia平台上。

安装步骤最好按照这个来做,否则容易造成问题,如下所示,在编译cartographer_ros时提示的错误。
在这里插入图片描述
过程如下所示:
在这里插入图片描述
我在执行make和cmake时,一开始是在build文件夹下执行sudo cmake …/ 和sudo make sudo make install 操作,在后面执行cd /usr/local/stow sudo stow absl命令时出现了问题,如下所示。
在这里插入图片描述
所以在编译时还是要加上官网给出的编译条件。

  1. 安装Ceres
VERSION="1.13.0"

# Build and install Ceres.
git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver
git checkout tags/${VERSION}
mkdir build
cd build
cmake .. -G Ninja -DCXX11=ON
ninja
CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

Ceres我是在Window平台上的Github上下载的,下载1.13.0版本即可。
5. 安装proto3

VERSION="v3.4.1"

# Build and install proto3.
git clone https://github.com/google/protobuf.git
cd protobuf
git checkout tags/${VERSION}
mkdir build
cd build
cmake -G Ninja \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DCMAKE_BUILD_TYPE=Release \
  -Dprotobuf_BUILD_TESTS=OFF \
  ../cmake
ninja
sudo ninja install

protobuf(Google Protocol Buffers)是Google提供一个具有高效的协议数据交换格式工具库(类似Json),但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的3-5倍。注意要下载对应的版本。
我一开始参考了如下链接:
protobuf

在这里插入图片描述
但是没有安装成功,在后面编译cartographer_ros时,总是提示Protocol版本不对。后来按照官网的教程,一次就安装成功了。
6. 安装cartographer
需要注意的是注意安装cartographer和cartographer_ros的顺序,要先安装cartographer,再编译cartographer_ros才可以,因为cartographer_ros依赖cartographer。需要注意cartographer的版本和cartographer_ros的版本要对应一致。我在一开始编译cartographer_ros的过程中导致找不到cartographer的一些文件,就是版本没有对应一致。错误如下图所示:
在这里插入图片描述

  1. 安装cartographer_ros

最终cartographer_ros如果编译没有问题,那就是cartographer安装成功了。
8. 下载bag包并测试

bag可以从下面链接下载。
bag包下载地址
下面测试bag包。
这一步不要忘记了,不然找不到ros路径。

echo "source ~/cartographer/cartographer_ros/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

执行roslaunch。

roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

HOME为home路径(~/),bag_filename为bag包所在的路径,软件会自动打开Rviz,显示定位和建图轨迹。

软件包

我把我用到的安装Cartographer所用到的软件,放在了如下百度网盘链接中。软件包包含abseil,Ceres,proto3,各个版本的cartographer_ros和cartographer,vscode,我安装中使用的是最新版本的cartographer_ros和cartographer。
提取码:1111 。
软件包百度网盘地址
下面是运行b0-2014-10-07-12-50-07.bag的建图结果。
在这里插入图片描述
下面是运行b0-2014-07-11-10-58-16.bag的建图结果。
在这里插入图片描述

标签:Cartographer,sudo,cartographer,NX,bag,Nvidia,ninja,ros,安装
来源: https://blog.csdn.net/waihekor/article/details/117221931

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有