目录
一、jetson orin nano简介
版本系列:Jetson Orin Nano 4GB 和 8GB
处理器架构:aarch64
Jetson Orin Nano 系列规格 | ||
---|---|---|
Jetson Orin Nano 4GB | Jetson Orin Nano 8GB | |
AI 性能 | 20 TOPS | 40 TOPS |
GPU | 搭载 16 个 Tensor Core 的 512 核 NVIDIA Ampere 架构 GPU | 搭载 32 个 Tensor Core 的 1024 核 NVIDIA Ampere 架构 GPU |
GPU 最大频率 | 625 MHz | |
CPU | 6 核 Arm® Cortex®-A78AE v8.2 64 位 CPU 1.5MB L2 + 4MB L3 | |
CPU 最大频率 | 1.5 GHz | |
显存 | 4GB 64 位 LPDDR5 34 GB/s | 8GB 128 位 LPDDR5 68 GB/s |
存储 | (支持外部 NVMe) | |
视频编码 | 1080p30,由 1-2 个 CPU 核心提供支持 | |
摄像头 | 多达 4 个摄像头(通过虚拟通道最多可支持 8 个***) 8 通道 MIPI CSI-2 D-PHY 2.1(高达 20 Gbps) | |
PCIe* | 1 x4 + 3 x1 (PCIe 3.0,根端口和端点) | |
USB* | 3x USB 3.2 2.0 (10 Gbps) 3x USB 2.0 | |
网络* | 1x GbE | |
显示接口 | 1x 4K30 多模 DP 1.2 (+MST)/eDP 1.4/HDMI 1.4** | |
其他 I/O | 3x UART、2x SPI、2x I2S、4x I2C、1x CAN、DMIC 和 DSPK、PWM、GPIO | |
功率 | 7 瓦 - 10 瓦 | 7 瓦 - 15 瓦 |
规格尺寸 | 69.6 毫米 x 45 毫米 260 引脚 SO-DIMM 连接器 |
如图所示, Jetson Orin Nano 展示了带有 NVIDIA 安培架构 GPU 的 NVIDIA -Orin 架构。它有多达 8 个流式多处理器( SM ),1024 个 CUDA 核和多达 32 个用于 AI 处理的张量核组成。
![]() |
![]() |
NVIDIA Ampere Architecture 第三代 Tensor Cores 的每瓦特性能优于前一代,并在支持稀疏性的情况下带来更高的性能。通过稀疏性,可以利用深度学习网络中的细粒度结构化稀疏性,将 Tensor Core 操作的吞吐量提高一倍。
为了加速应用程序管道的所有部分, Jetson Orin Nano 还包括一个 6 核 Arm Cortex-A78AE CPU 、视频解码引擎、 ISP 、视频图像合成器、音频处理引擎和视频输入块。
Jetson Orin Nano 模块占地面积小,为 70x45mm , 260 针 SODIMM ,包括各种高速接口:
- 最多七条 PCIe Gen3 通道
- 三个高速 10 Gbps USB 3.2 Gen2 端口
- 八通道 MIPI CSI-2 摄像头端口
- 各种传感器 I / O
二、烧录镜像
注意:我是用固态硬盘烧录的,因此需要买一个固态硬盘,如果你有用过的固态一定要格式化(工具推荐DiskGenius)!!!
1、下载SDK Manager,需要注册NVIDIA账号。
2、推荐使用VMware虚拟机和Ubuntu18.04系统
注意:因为文件比较大,建议虚拟机存储大于50G。
3、安装VMware Tools
4、拖拽下载好的SDK Manager到虚拟机的linux系统,然后安装。
安装命令如下:
sudo apt-get -f install
sudo dpkg -i sdkmanager_1.9.3-10904_amd64.deb
5、安装好以后,点击sdkmanage图标
打开软件,登录NVIDIA账号。
- 短接FC_REC和GND(第二三引脚),接上TypeC数据线,然后接通电源
- 选择“连接到虚拟机”,确保出现NVIDIA APX被勾选
![]() | ![]() |
6、这个过程一定要网络稳定,网速好,我是用手机开的热点
- STEP 01 取消勾选Host Machine,点击CONTINUE
-
- STEP 02 只勾选Jetson Linux,选择I accept the terms and conditions of the license agreements,点击Create,然后CONTINUE,输入虚拟机密码,等待下载完成,如果中间出现问题,就是有些没有下载下载,更换网络后,重新登录下载(重新登录是必要的)
-
-
- 安装过程,出现以下界面,OEM Configuration下拉选择runtime
-
- 等待安装完成,中间可能卡住,点击继续,安装过程很慢,需要耐心
- 显示FINISH,移除杜邦线,接上屏幕,按照系统提示一步步安装就行。注意:这里有个bug,orin nano 系统环境语言一定要是英文,不然后面通过网络安装CUDA,OpenCV环境时会提示密码错误
7、使用SDK Manager安装CUDA 和Open CV环境
- 确保虚拟机可以 ping 通orin nano
-
ifconfig #查看orin nano的IP地址
ping 192.168.x.xxx
- 打开SDK Manager,Orin Nano模块不需要检测链接,后面我们用IP互联搞定。选择好后点击下一步,我们不需要烧录系统,只需要安装驱动组件,所以取消勾选Jetson Linux,选择Jetson Runtime Components和Jetson SDK Components,同时接收协议。然后点击下一步
- 弹出这个窗口后connection选择Ethernet, 配置好后,点击install
-
- 开始安装,你只需要等待,中间如果出错,只能重新开始
-
8、验证安装结果
安装jtop
sudo -H pip install -U jetson-stats
sudo systemctl restart jtop.service
sudo jtop
9、修改显存
sudo gedit /etc/systemd/nvzramconfig.sh
'''
修改mem = $((("${totalmem}"/2/"${NRDEVICES}")*1024))
为mem = $((("${totalmem}"*2/"${NRDEVICES}")*1024)) # 不要复制粘贴,可能会导致修改不成功
'''
即将2前面的/改为* ,保存修改后重启
重启之后
free -h #可以看到"交换"已经不是0,我这里变成14G
三、安装ROS
ros的安装一直以来都是想学习ros的同学面对的第一道难关,但鱼哥的一键安装,真的会给我们初学者很大的便利,命令如下:
wget http://fishros.com/install -O fishros && . fishros
依次进行:
- 选择一键安装:ROS
- 一定要更换系统源
- 还有rosdep记得安装,如果找不到rosdepc,使用如下命令:
pip install rosdepc
安装完成运行小王八检测是否安装成功
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
安装完成使用:
sudo apt update
sudo apt upgrade
四、配置CUDA
打开文档
sudo gedit ~/.bashrc
在文档末尾添加,通过这种方法烧录的系统已经自动配置好了,直接查看即可。
export CUDA_HOME=/usr/local/cuda-11.4
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-11.4/bin:$PATH
保存并查看配置
source ~/.bashrc
nvcc -V #如果配置成功可查看CUDA的版本号
五、源码编译Open CV
因为我需要用到GPU,所以重新编译安装OpenCV
sudo apt-get purge libopencv*
jtop
切换到INFO,Open CV显示 MISSING
执行以下命令
sudo rm -r /usr/bin/python3.9
1、安装依赖
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev
2、下载opencv-4.4.0和opencv_contrib-4.4.0源码(需要科学上网,下载对应的分支)
mkdir ~/opencv440
cd ~/opencv440
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
mkdir ~/opencv440/opencv/build
此时目录结构:
~/opencv440/opencv/build
~/opencv440/opencv_contirb
3、接下来安装CMake-gui,在终端输入
sudo apt install cmake-qt-gui
4、然后执行
cd ~/opencv440/opencv/build
cmake-gui ..
5、然后会弹出CMake的图形化界面,在上方的两个路径里面
where is the source code选择opencv所在文件夹的路径,即~/opencv440/opencv/
where is to build the binaries选择build所在文件夹的路径,即~/opencv440/opencv/build
6、点击左下方的Configure按钮,选择Unix Makefiles,选择Use default native compilers(默认),然后点击Finish
窗口的中间部分即配置列表,这里和使用cmake命令直接生成makefile文件一致的。正如上文所述,这里通过图形界面的方式来进行配置,更加直观方便。
7、这里需要对几个地方进行修改:
OPENCV_EXTRA_MODULES_PATH选择输入目录(单击这一行后方空白处即可选中),选择opencv_contrib文件夹中的modules文件夹
WITH_CUDA 一定要勾选
8、点击Generate生成配置文件,这一步应该比较快就完成了。(这里一般都会报错)
错误以及修改如下:
错误1:
CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when available. Run “cmake --help-policy CMP0072” for policy details. Use the cmake_policy command to set the policy and suppress this warning.
FindOpenGL found both a legacy GL library:
解决:在cmakelist文件中加入下面内容:
if (POLICY CMP0072)
set(OpenGL_GL_PREFERENCE LEGACY)
endif()
错误2:
WeChatQRCode:Can't get detect caffemodel file for wechat qrcode.
解决:此方法适用于后续的问题,后文不再赘述。
打开日志:/home/orin/opencv440/opencv/build/CMakeDownloadLog.txt
sudo gedit /home/orin/opencv440/opencv/build/CMakeDownloadLog.txt #打开你自己的日志
自己去github或是GitHub Proxy把这些文件下载下来,然后放到下面标出的路径下/home/orin/opencv440/opencv/.cache/wechat_qrcode/,并重命名为:238e2b2d6f3c18d6c3a30de0c31e23cf-detect.caffemodel,如果自己无法下载,我把需要的文档放在我的百度网盘里,需要的自取。如果找不到.cache文件,按住ctrl + h就会出现。
错误3:
Face:Can't get model file for face alignment.
解决:
和错误2解决方案相同,将face_landmark_model.dat重命名为7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat放入/home/orin/opencv440/opencv/.cache/data文件夹。
错误4:
出现fatal error: boostdesc_bgm.i: No such file or directory。
解决:缺失boostdesc_bgm.i,boostdesc_bgm_bi.i,boostdesc_bgm_hd.i,boostdesc_binboost_064.i,boostdesc_binboost_128.i,boostdesc_binboost_256.i,boostdesc_lbgm.i,vgg_generated_48.i,vgg_generated_64.i,vgg_generated_80.i,vgg_generated_120.i等文件,从我的百度网盘下载到本地。
然后放到opencv_contrib/modules/xfeatures2d/src目录下就可以了。
9、再次点击Generate生成配置文件,详细检查确定不报错之后,关闭cmake-gui,在build文件夹执行以下代码,先查看自己的线程数
nproc
sudo make -j6 #6就是线程数
过程非常慢,得一个小时左右,可以开一局
sudo make install
10、配置环境变量
安装成功后还需要设置opencv的环境变量。打开文件:
sudo gedit /etc/ld.so.conf.d/opencv.conf
将以下内容添加到最后:
/usr/local/lib
接下来配置库:
sudo ldconfig
更改环境变量:
sudo gedit /etc/bash.bashrc
在文件后添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,在运行下面的例程之前,需要重新开启终端来使配置生效。
jtop
就可以看到Opencv4.4.0 CUDA YES
六、源码编译cv_bridge
1、下载源码,一定要选择对应的分支cv_bridge noetic
2、初始化cv_bridge_ws编译工作空间
mkdir -p ~/cv_bride_ws/src
cd ~/cv_bride_ws/src
catkin_init_workspace
cd ..
catkin_make
3、下载cv_bridge源码
cd ~/cv_bridge_ws/src
git clone https://github.com/ros-perception/vision_opencv.git
4、编译
cd ../
catkin_make install -DPYTHON_EXECUTABLE=/usr/bin/python3
5、更新环境变量
sudo gedit ~/.bashrc
source /home/orin/cv_bridge_ws/devel/setup.bash --extend #/home/orin/是我的绝对路径
6、测试
打开终端输入python3
python3
import cv_bridge
from cv_bridge.boost.cv_bridge_boost import getCvType
没有报错即成功编译,下班干饭。