许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Nvidia Xavier NX安装并测试Cartographer SLAM

Nvidia Xavier NX安装并测试Cartographer SLAM

阅读数 1
点赞 0
article_banner

最近成功在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的建图结果。
在这里插入图片描述


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删



相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空