本周成功的在JetSon TX2上移植了Vins-Mono与RTAB-Map,并使用摄像头RealSense D435顺利跑通了这两个框架。中间遇到了各种各样神奇的问题,踩坑无数,现整理记录一下整体流程,便于后续查询与复现。
JetSon系列是Nvidia公司推出的面向人工智能领域的嵌入式平台,这块嵌入式板子的出现使得我们可以在移动设备上处理复杂数据。
一、在JetSon TX2上运行VINS-Mono
已有环境配置:我这里JetSon TX2上已经刷好了系统版本
JetPack3.2.1
。
具体刷机流程后面会深入学习一下,到时候再写一篇博客记录下来。
1、配置Vins-Mono的编译环境
在JetSon TX2上安装与编译Vins-Mono框架时,主要流程与Ubuntu 16.04系统下的搭建流程基本一致,具体可以参考本人之前的博客:搭建Vins-Mono环境与评估EuRoc定位精度、安装RealSense ZR300、D435驱动 中的安装流程。
需要安装的依赖项有:ROS Kinetic,OpenCV 3.3.1,Eigen 3.3.4,Ceres-Solver。
其中有两点与Ubuntu 16.04系统下不太一样的地方,需要留意一下:
(1)ROS Kinetic在JetSon TX2上的安装:
直接运行如下命令行安装ROS Kinetic:
mkdir -p ~/ROS
cd ~/ROS
git clone https://github.com/ncnynl/installROSTX2.git
# 打开脚本文件
cd installROSTX2
gedit installROS.sh
#将ros-kinetic-ros-base,更改为:ros-kinetic-desktop-full
#安装
./installROS.sh
安装完,运行:roscore
查看是否安装成功。
(2)ceres-solve在JetSon TX2上的安装:
在TX2上安装ceres-solver时,如果先安装了Eigen 3.3.3的版本,则会出现以下错误:
– Found installed version of Eigen: /usr/lib/cmake/eigen3
– Found Eigen version 3.2.92: /usr/include/eigen3
CMake Error at CMakeLists.txt:240 (message):
– Ceres requires Eigen version >= 3.3.4 on aarch64. Detected version of
Eigen is: 3.2.92.
因此需要升级Eigen版本。在Eigen官网下载大于或等于3.3.4的版本,解压后使用cmake安装。
2、安装Realsense D435摄像头驱动与IMU驱动
由于Vins-Mono算法里融合了IMU惯导数据,所以需要带惯导信息的摄像头才能运行,例如Intel RealSense ZR300,RealSense D435i等。Intel Realsense D435摄像头不含惯导信息,于是我们购买了IMU芯片,与Realsense D435摄像头一起使用。
参考博客:
https://blog.csdn.net/u013595260/article/details/86522385
https://blog.csdn.net/weixin_44580210/article/details/89789416
(1)安装Realsense D435的相机驱动 (librealsense SDK 2.0)
----mod 2021.01.20---
本步骤在后文有更新,之前博文安装的版本太旧会有问题,建议直接从后面----mod 2021.01.20---
处查看。
Realsense官方提供的SDK安装方法无法在arm架构上安装成功,于是JetSonhacks提供了针对JetSon TX2的Realsense D400系列SDK安装脚本。
github官方链接:https://github.com/jetsonhacks/buildLibrealsense2TX
本次安装使用的是v0.9版本,发布日期为July,2018,配置要求: L4T 28.2 / L4T 28.2.1 (JetPack 3.2.1)
如果系统不满足上述要求,需要对JetSon TX2重新安装系统。
将源码zip下载并解压,执行如下命令行进行安装:
#重新构建内核
./buildPatchedKernel.sh
#安装SDK
./installLibrealsense.sh
在安装过程中发生如下错误:
原因是没有安装CUDA,需要安装CUDA-8.0并添加环境变量,安装命令行如下:
wget http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/013/linux-x64/cuda-repo-l4t-8-0-local_8.0.84-1_arm64.deb
sudo dpkg -i cuda-repo-l4t-8-0-local_8.0.84-1_arm64.deb
sudo apt-get update
sudo apt-get install cuda-toolkit-8-0
在根目录下执行命令 nvcc -V
。如果执行命令后的结果不是CUDA的版本信息而是提示有问题,则需要在