(三)Jetson Xavier NX上编译运行Vins-Mono

一、库与源码的安装与编译

(1)多版本opencv安装与切换

由于jetpack4.5.1自带的opencv版本是4.1.1,不适用于vins,需要切换至opencv3,选择的版本号为3.4.16,其他版本应该也是可以的。
(1)首先去github上下载opencv3.4.16的源码,解压到任意文件夹
opencv github

(2)安装依赖

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libatlas-base-dev gfortran libgtk2.0-dev libjpeg-dev libpng-dev

(3)打开并进行安装

cd opencv-3.4.16
mkdir build & cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \Release 是指编译出来的程序是最终用于发布的版本,通常会启用各种优化以提高性能。
      -D CMAKE_INSTALL_PREFIX=/usr/local/opencv_3.4.16 \ 设置安装路径
      -D INSTALL_C_EXAMPLES=ON \安装 C 语言示例程序
      -D CUDA_ARCH_BIN='7.2' \ 指定了 CUDA 架构的版本,修改为你使用的电脑显卡的计算能力
      -D WITH_CUDA=ON \启用了对 CUDA 的支持。开启此选项将允许 OpenCV 使用 CUDA 进行加速计算。
      -D WITH_TBB=ON \TBB 是一个用于多线程编程的 C++ 库,开启此选项可以让 OpenCV 在某些情况下使用 TBB 来提高性能。
      -D WITH_V4L=ON \V4L 是 Linux 操作系统中用于处理视频设备的接口,开启此选项允许 OpenCV 与 V4L 兼容的设备进行交互。
      -D WITH_QT=ON \Qt 是一个跨平台的 C++ 应用程序开发框架,开启此选项允许 OpenCV 使用 Qt 进行图形用户界面(GUI)的开发。
      -D WITH_OPENGL=ON \OpenGL 是一个用于渲染 2D 和 3D 图形的跨平台图形库,开启此选项允许 OpenCV 使用 OpenGL 进行图像处理。
      -D OPENCV_EXTRA_MODULES_PATH=/YOU_PATH/opencv_contrib-x.x.x/modules \ #修改为你本机opencv_contrib的路径,不使用opencv_contrib就删掉这行
      -D BUILD_EXAMPLES=ON \表示要编译示例程序。设置为 ON 会编译一些示例程序,用于演示 OpenCV 的各种功能。
      -D OPENCV_GENERATE_PKGCONFIG=YES ..\pkg-config 是一个用于检查和配置编译链接参数的工具,生成这个文件可以方便其他程序在编译时找到 OpenCV 库。
make -j6/可以通过nproc来看自己的核心数
sudo make install

cmake的配置可以根据需求来,但是CMAKE_INSTALL_PREFIX和OPENCV_GENERATE_PKGCONFIG一定要设置,否则不会生成配置文件
所以如果没有特殊需求可以直接

cmake -D CMAKE_BUILD_TYPE=RELEASE 
      -D CMAKE_INSTALL_PREFIX=/usr/local/opencv_3.4.16 
      -D OPENCV_GENERATE_PKGCONFIG=YES  ..
make -j4
sudo make install

(4)配置环境变量

sudo gedit ~/.bashrc

在bashrc文件中添加

export PKG_CONFIG_PATH=/usr/local/opencv_3.4.16/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv_3.4.16/lib

最后使环境变量生效

source ~/.bashrc

(4)检查opencv版本,输出应该是3.4.16

pkg-config --modversion opencv

(2)安装Ceres Solver version 1.14.0

ceres安装作者推荐是1.14版本,更高版本可能会存在其他问题,这里我们采用推荐的版本进行安装
安装依赖

sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libsuitesparse-dev

编译安装

cd ceres-solver
mkdir build && cd build
cmake ..
make -j4
sudo make install

(3)安装Eigen

cd eigen-3.3.9
mkdir build && cd build
cmake ..
sudo make install

(4)安装编译VINS-Mono

注意点: 由于我们的OpenCV安装的并不是系统的默认位置,因此需要在cv_bridge中对opencv库的位置进行修改,不然后面会报错。
首先查看自己opencv的位置

pkg-config --cflags opencv

请添加图片描述
然后在ros cv_bridge所在包的位置进行修改:
在这里插入图片描述

cd /opt/ros/melodic/share/cv_bridge/cmake
sudo gedit cv_bridgeConfig.cmake

找到以下位置,并将set后面的内容修改为下图,对应为上面自己输出的位置
请添加图片描述
最后保存并退出。

下面开始下载编译VINS_Mono

mkdir -p vins_mono_ws/src
cd src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git
cd ..
catkin_make

二、jetson xavier nx上运行数据集

启动rviz节点

source ./devel/setup.bash
roslaunch vins_estimator vins_rviz.launch

启动estimator节点

source ./devel/setup.bash
roslaunch vins_estimator euroc.launch

播放ros包

rosbag play

三、jetson xavier nx上用D435i运行VINS-Mono

首先第一步要安装相机的驱动和一些必要的包,但是jeton xavier nx安装realsenseSDK和ros包非常依赖版本,尤其是官方对nx的开发板并没有测试(详见SDK安装的手册中,对TX,AGX和nano都有测试,唯独NX没有测试),如果版本不对或者采用apt安装方式大概率会导致imu没有消息输出从而导致vins运行失败。
可以去看我的另外两篇博客,亲自测试有效。

(一)jetson xavier nx刷机(可稳定运行D435i相机,解决D435imu没有输出的问题)
(二)jetson xavier nx安装D435i驱动和ros包(可稳定运行D435i相机,解决D435imu没有输出的问题)
假如已经安装好好了SDK和realsense-ros。

source ./devel/setup.bash
roslaunch vins_estimator vins_rviz.launch

启动estimator节点

source ./devel/setup.bash
roslaunch vins_estimator realsense_color.launch
### 回答1: Jetson Xavier NX是一款高性能的边缘计算设备,拥有强大的计算能力和AI推理能力,被广泛应用于智能安防、智能制造、自动驾驶等多个领域。Jetson Xavier NX源码编译是指对Jetson Xavier NX的操作系统和应用程序进行编译编译的过程需要使用一些工具和指令,如GCC编译器、make指令、CMake工具等。 首先,需要下载Jetson Xavier NX的源码,可以从官方网站上下载。然后,需要安装支持编译的软件,如make和CMake。在编译之前,需要根据实际需要选择编译的目标,例如编译内核、驱动程序和应用程序等。针对不同的目标,可能需要不同的编译方式和工具。 在编译过程中,需要按照一定的顺序依次执行编译指令,例如配置编译环境、编译内核、编译驱动程序、编译应用程序等。这些指令需要仔细阅读文档,并按照文档中的指示进行操作,以确保编译的成功。 Jetson Xavier NX源码编译的过程较为繁琐,需要有一定的编程知识和经验,并且需要耐心和细心,以确保编译的成功。编译完成后,可以在设备上安装和运行编译成功的程序,以满足实际需求。 ### 回答2: 《Jetson Xavier NX源码编译.pdf》是一份关于Jetson Xavier NX平台源代码编译的指南文档。该文档主要包括了Jetson Xavier NX平台的硬件特性、软件架构、源码下载、环境配置和编译指导等内容,是进行Jetson Xavier NX平台软件开发的重要参考资料。 文档中提到了Jetson Xavier NX平台的硬件特性,包括具有256核心NVIDIA GPU的AI超级计算机、6核心ARM A57 CPU、8GB LPDDR4x RAM、NVMe M.2 SSD和Gigabit以太网等。同时,文档还介绍了JetPack软件套件的架构和软件组件,包括CUDA、cuDNN、TensorRT、VisionWorks等工具箱。 在源代码的下载方面,文档提供了Jetson Xavier NX平台的官网链接和用户指南,并介绍了源代码的下载方式和解压方式,同时还提供了下载完成后相关文件夹的解释。 在环境配置方面,文档详细介绍了Ubuntu 18.04的安装和配置,包括软件源修改、系统升级和安装所需依赖库等步骤。 在编译指导方面,文档提供了基于Makefile的编译方法和CMakeLists.txt的编译方法,对于不同的开发需求,文档也提供了分步骤的详细编译指导,使得开发者能够快速上手开始开发工作。 总之,《Jetson Xavier NX源码编译.pdf》是一份非常实用的Jetson Xavier NX平台软件开发指导文件,对于想要深入学习和开发Jetson Xavier NX平台的开发者来说,是一份非常值得阅读和参考的资料。 ### 回答3: 《Jetson Xavier NX源码编译.pdf》是一份关于如何在Jetson Xavier NX开发板上进行源代码编译的文档。Jetson Xavier NX是一款高性能、低功耗的AI计算平台,使用者可以在其上进行深度学习、计算机视觉和机器人等领域的开发。 本文档详细阐述了如何在Jetson Xavier NX上进行Linux内核和驱动的源代码编译。它包括了在Ubuntu环境下安装所需的软件包,如gcc、make、cmake、git等,并提供了一些例子代码和编译命令。同时,本文档还介绍了如何使用JetPack SDK进行系统的烧写和配置。 值得注意的是,由于本文档的针对性较强,对于没有相关经验的用户来说,有可能会出现编译失败、系统崩溃等情况。因此,在操作前需要对该平台有一定的了解,并且仔细阅读本文档的内容,尤其是注意一些风险提示和注意事项。 总之,《Jetson Xavier NX源码编译.pdf》对开发者在Jetson Xavier NX上进行源代码编译提供了详尽的指导,有助于用户深入掌握这一强大的AI计算平台,快速实现自己的开发和研究计划。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值