Jetson AGX Orin上手与opencv安装配置

Nvidia Jetson AGX Orin是2022年Nvidia推出的开发套件,它的算力达到了200 TOPS左右。Jetson AGX Orin采用了NVIDIA Ampere架构GPU,根据这里可知,它的CUDA计算能力版本为“-gencode=arch=compute_87,code=sm_87”。自带的Linux为"arm64"架构。

该设备的上手及系统配置基本参考了这篇文章:

Nvidia Jetson AGX Orin 初体验 - 知乎 (zhihu.com)

顺便安装了miniconda测试了几个深度学习项目,安装过程参考了这篇文章:

Jetson AGX Orin安装CUDA+Anaconda+PyTorch+ROS_jetson agx orin cuda-CSDN博客


一段时间后为了测试一个半全局立体匹配(SGM)的GPU加速项目,需要配置opencv环境,接下来介绍配置环境的过程。

一、安装opencv

opencv的安装过程基本参考了这篇文章:

​​​​​​玩转Jetson AGX Orin——orin上安装gpu版本opencv4.6.0_opencv安装 nvidia orin-CSDN博客

step1.下载opencv-4.6.0源项目包(Sources),解压并新建build文件夹

step2.安装依赖环境

        在运行这条命令时报错404

sudo apt install libjpeg8-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libv4l-dev

        之后上网查了是没有更换国内下载源,于是运行下面命令修改sources.list文件

# 回到主目录,备份sources.list文件
sudo vim /etc/apt/sources.list
# 重写文件,添加下面的阿里源
    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
# 更新下载源
sudo apt-get update

       另外通过查看Linux的架构,在deb后面添加条件:

#查看架构
dpkg --print-architecture

#修改sources.list
deb [arch=arm64] http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src [arch=arm64] http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

        但是这样依然报错:

E: Failed to fetch http://mirrors.aliyun.com/ubuntu/dists/focal-proposed/main/binary-arm64/Packages 404 Not Found [IP: 117.185.132.27 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.

         在网上搜到解决方案为:修改 /etc/apt/sources.list,在每个镜像源链接最后加上-ports,如

deb [arch=arm64] http://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse
deb-src [arch=arm64] http://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse

         这之后运行apt-get update还是报错了:

N: Skipping acquire of configured file 'main/binary-amd64/Packages' as repository 'https://repo.download.nvidia.com/jetson/common r35.1 InRelease' doesn't support architecture 'amd64'
N: Skipping acquire of configured file 'main/binary-amd64/Packages' as repository 'https://repo.download.nvidia.com/jetson/t234 r35.1 InRelease' doesn't support architecture 'amd64'
E: Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/focal/main/binary-amd64/Packages 404 Not Found [IP: 185.125.190.36 80] E: Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/focal-updates/main/binary-amd64/Packages 404 Not Found [IP: 185.125.190.36 80]
E: Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/focal-backports/main/binary-amd64/Packages 404 Not Found [IP: 185.125.190.36 80]
E: Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/focal-security/main/binary-amd64/Packages 404 Not Found [IP: 185.125.190.36 80] E: Some index files failed to download. They have been ignored, or old ones used instead.

         之后搜到的解决方案是删掉系统的副架构(具体方法已经找不到了,大概过程就是一个命令查看系统的主架构(arm64)和副架构(amd64),删掉副架构的支持就行),目前还不知道有没有什么后患。。。经过不断apt-get update然后这条安装命令终于成功了!

        在安装这条依赖项时遇到了和作者一样的问题:

sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

        换成清华源之后可以:

sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
sudo apt update
sudo apt install libjasper1 libjasper-dev

         另外还有报错:

The following packages have unmet dependencies:
python-dev : Depends: libpython-dev (= 2.7.11-1) but it is not going to be installed
Depends: python2.7-dev (>= 2.7.11-1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

        查到解决方案如下:

1.安装aptitude
sudo apt-get install aptitude
2.利用aptitude来安装
sudo aptitude install python-dev

         至此,所有opencv依赖项安装成功!

step3.编译GPU版本时,查看CUDA_ARCH_BIN

step4. 安装扩展模块opencv-contirb-4.6.0

 step5.回到/opencv-4.6.0/build/文件夹下,cmake生成makefiles文件

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN="8.7" \
-D CUDA_ARCH_PTX="" \
-D WITH_CUBLAS=ON \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D ENABLE_NEON=ON \
-D WITH_LIBV4L=ON \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D BUILD_TIFF=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/zkhy/opencv-4.6.0/opencv_contrib/modules/ ..

        这一过程出现错误:

CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib‘

        找到解决办法为:将opencv_contrib中的modules中的cudev文件夹复制到opencv/modules里,之后再cmake就没这个问题了。

        但是貌似又有新的问题,只是问题分别在CMakeOutput.log和CMakeError.log文件中,看着十分复杂。

--   Python (for build):            /usr/bin/python2.7
-- 
--   Java:                          
--     ant:                         NO
--     JNI:                         NO
--     Java wrappers:               NO
--     Java tests:                  NO
-- 
--   Install to:                    /usr/local
-- -----------------------------------------------------------------
-- 
-- Configuring incomplete, errors occurred!
See also "/home/zkhy/opencv-4.6.0/build/CMakeFiles/CMakeOutput.log".
See also "/home/zkhy/opencv-4.6.0/build/CMakeFiles/CMakeError.log".

        然而隔一段时间重启并再次进入目录cmake之后,变成其他错误了:

   calib3d
   core
-> cudev
   dnn
   features2d
   flann
   gapi
   highgui
   imgcodecs
   imgproc
   java
   js
   ml
   objc
   objdetect
   photo
   python
   stitching
   ts
   video
   videoio
   world
   alphamat
   aruco
   barcode
   bgsegm
   bioinspired
   ccalib
   cnn_3dobj
   cudaarithm
   cudabgsegm
   cudacodec
   cudafeatures2d
   cudafilters
   cudaimgproc
   cudalegacy
   cudaobjdetect
   cudaoptflow
   cudastereo
   cudawarping
-> cudev
   cvv
   datasets
   dnn_objdetect
   dnn_superres
   dpm
   face
   freetype
   fuzzy
   hdf
   hfs
   img_hash
   intensity_transform
   julia
   line_descriptor
   matlab
   mcc
   optflow
   ovis
   phase_unwrapping
   plot
   quality
   rapid
   reg
   rgbd
   saliency
   sfm
   shape
   stereo
   structured_light
   superres
   surface_matching
   text
   tracking
   videostab
   viz
   wechat_qrcode
   xfeatures2d
   ximgproc
   xobjdetect
   xphoto
CMake Error at cmake/OpenCVModule.cmake:340 (message):
  Duplicated modules NAMES has been found
Call Stack (most recent call first):
  cmake/OpenCVModule.cmake:358 (_assert_uniqueness)
  cmake/OpenCVModule.cmake:385 (ocv_glob_modules)
  CMakeLists.txt:931 (ocv_register_modules)

        这下问题就很好解决了,在网上搜索到的解决方案是,opencv中modules文件夹中的一些模块和opencv_contrib的modules文件夹重复了,删掉contrib中的重复模块即可。现在再cmake生成makefiles文件,看样子应该是成功了。

-- -----------------------------------------------------------------
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/zkhy/opencv-4.6.0/build

step6. 开始编译,继续在build目录下执行如下命令进行编译安装,安装到/usr/local目录下

make -j8 
sudo make install

        完美,安装成功!!!

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Jetson AGX Orin是一款强大的嵌入式计算平台,可以轻松安装ROS 2以实现机器人及其他自动化系统的开发和运行。以下是使用300字中文回答Jetson AGX Orin安装ROS 2的步骤和注意事项。 首先,确保Jetson AGX Orin已经正常运行,并且您已经完成了基本的设置和配置。 接下来,从ROS 2官方网站(https://index.ros.org/doc/ros2/Installation/Foxy/Linux-Install-Debians/)下载适用于您的Jetson AGX Orin的ROS 2发行版,建议选择最新版本Foxy Fitzroy。下载完成后,将.deb文件保存到您的Jetson AGX Orin的本地存储中。 然后,在Jetson AGX Orin的终端中打开一个新的命令行窗口,以便在系统中进行安装。使用以下命令导航到.deb文件的目录: cd /path/to/deb/file 然后,使用以下命令安装ROS 2: sudo apt install ./ros-foxy-*.deb ROS 2的安装过程可能会花费一些时间,具体取决于您的Jetson AGX Orin的性能和网络连接速度。在安装过程中,请耐心等待,直到安装完成。 安装完成后,您需要设置ROS 2的工作环境。使用以下命令执行此操作: source /opt/ros/foxy/setup.bash 现在,您可以开始使用ROS 2在Jetson AGX Orin上进行开发和运行机器人应用程序了。请查阅ROS 2的文档和教程,以了解更多关于ROS 2在Jetson AGX Orin上的使用方法和功能。 总结一下,安装ROS 2到Jetson AGX Orin的过程包括下载适用于该平台的ROS 2发行版,并使用apt命令进行安装安装完成后,使用source命令设置ROS 2的工作环境。最后,您就可以开始使用ROS 2在Jetson AGX Orin上进行开发和运行机器人应用程序了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值