做外鏈的網(wǎng)站如何推廣app
Ardupilot開源無人機之Geek SDK進展2024-2025
- 1. 源由
- 2. 狀態(tài)
- 3. TODO
- 3.1 【進行中】跟蹤目標(biāo)框
- 3.2 【暫停】onnxruntime版本
- 3.3 【完成】CUDA 11.8版本
- 3.4 【完成】pytorch v2.5.1版本
- 3.5 【未開始】Inference性能
- 3.6 【未開始】特定目標(biāo)集Training
- 4. Extra-Work
- 4.1 【完成】CUDA 12.3版本
- 4.2 【暫?!縏ensorRT 8.6
- 4.3 【完成】Jetpack6.2(Jetson Orin Nano Super)
- 5. 同步工作
- 6. 參考資料
- 7. 問題
- 7.1 風(fēng)扇啟動全速噪音問題
- 7.2 Jetson Orin Nano Super性能升級
- 7.3 Jetpack5 TensorRT 8.5不可升級版
1. 源由
前期搭建《Ardupilot開源無人機之Geek SDK》,主要目的是:
- 基于:《ArduPilot開源飛控系統(tǒng) - 無人車、船、飛機等》
- 驗證:《Ardupilot & OpenIPC & 基于WFB-NG構(gòu)架分析和數(shù)據(jù)鏈路思考》可行性
- 框架:打通硬實時、軟實時的控制面和數(shù)據(jù)面鏈路,提供一個簡單、多樣、高效的驗證平臺 jetson-fpv
2. 狀態(tài)
-
簡單示例
-
框架成型:jetson-fpv
-
支持特性:
-
FPV features (FPV功能)
- MSPOSD for ground station (OSD)
- video-viewer (視頻圖像,可以達到120FPS)
- Adaptive wireless link (鏈路自適應(yīng))
-
Jetson video analysis (Jetson推理功能)
- detectnet for object detection
- segnet for segmentation
- posenet for pose estimation
- imagenet for image recognition
-
yolo for object detection (YOLO目標(biāo)檢測)
-
Real time video stabilizer
-
DeepStream analysis (DeepStream目標(biāo)跟蹤分析)
- ByteTrack
- NvDCF tracker
-
-
硬件形態(tài)
3. TODO
優(yōu)先級:
- 【0101暫定】3.2 onnxruntime版本 > 3.1 跟蹤目標(biāo)框 > 3.5 Inference性能 > 3.6 特定目標(biāo)集Training > 3.3 CUDA 11.8版本 > 3.4 pytorch v2.5.1版本
- 【0109變更】3.3 CUDA 11.8版本 > 3.4 pytorch v2.5.1版本 > 3.2 onnxruntime版本 > 3.1 跟蹤目標(biāo)框 > 3.5 Inference性能 > 3.6 特定目標(biāo)集Training
- 【0117變更】目前NVIDIA主要支持L4T36.x(ubuntu22.04),對L4T35.x(ubuntu20.04)支持力度日漸轉(zhuǎn)弱,進度很慢(盡管官方論壇說沒有停止支持)。將不連續(xù)幀跟蹤目標(biāo)框持續(xù)OSD輸出的問題盡快提上日程。
└──> 【完成】3.3 CUDA 11.8版本│ └──> 【完成】4.1 CUDA 12.3版本└──> 【完成】3.4 pytorch v2.5.1版本└──> 【進行中】4.2 TensorRT 8.6├──> 【進行中】3.2 onnxruntime版本└──> 【進行中】3.1 跟蹤目標(biāo)框└──> 3.5 Inference性能└──> 3.6 特定目標(biāo)集Training
- 【0120變更】鑒于目前NVIDIA閉源,雖然尚未宣布Jetpack5的EOL時間,但是實際在版本支持和研發(fā)投入上,已經(jīng)明顯出現(xiàn)乏力(詳見:7.3)!而目前來說Super版本似乎從性能上是一個改觀,為此我們后續(xù)將投入BSP6.2版本,順便調(diào)整優(yōu)先級,廢棄一些閉源升級問題帶來的折騰。
├──> 【完成】3.3 CUDA 11.8版本│ │ └──> 【完成】4.1 CUDA 12.3版本│ └──> 【完成】3.4 pytorch v2.5.1版本│ └──> 【暫停】4.2 TensorRT 8.6│ └──> 【暫?!?.2 onnxruntime版本└──> 【完成】4.3 Jetpack6.2(Jetson Orin Nano Super)└──> 【進行中】3.1 跟蹤目標(biāo)框└──> 3.5 Inference性能└──> 3.6 特定目標(biāo)集Training
3.1 【進行中】跟蹤目標(biāo)框
- DeepStream-Yolo - How to keep the bounding boxes when interval is NOT zero? #604
- NVIDIA - How to keep the bounding boxes when interval is NOT zero?
3.2 【暫停】onnxruntime版本
- Yolov8s no bounding box on default settings #597
- NVIDIA - Build onnxruntime v1.19.2 for Jetpack 5.1.4 L4T 35.6 Faild
- microsoft/onnxruntime - Build onnxruntime v1.19.2 for Jetpack 5.1.4 L4T 35.6 Faild #23267
- [Build] Trying to build on a embedded device that doesn’t support BFLOAT16 #19920
- mlas: fix build on ARM64 #21099
通過上面的問題溝通,逐步鎖定源頭和原因:ARCH對bf16的硬件支持 vs gcc版本問題。
- arm64: force -mcpu to be valid #21117
基于Jetpack5.1.4升級gcc11版本
升級CUDA版本11.4.315 到11.8.89
提升3.3 CUDA 11.8任務(wù)優(yōu)先級
需要考慮OpenCV對CUDA的版本依賴問題
- [Build] v1.19.2 abseil_cpp failed: 2 with JP5.1.4 gcc/g++13 #23286
- Build onnxruntime 1.19.2 fail due to API HardwareCompatibilityLevel
3.3 【完成】CUDA 11.8版本
- How to install CUDA 11.8 on Jetpack 5.1.4 L4T 35.6?
- Linux 35.5 + JetPack v5.1.3@CUDA安裝和版本切換
目前,了解到支持的版本狀況:CUDA Toolkit Archive
- Ubuntu 20.04 支持到 CUDA 12.3 (同時支持Ubuntu 22.04)
- 從CUDA 12.4開始僅支持Ubuntu 22.04
安裝deb文件
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/arm64/cuda-ubuntu2004.pin
$ sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-tegra-repo-ubuntu2004-11-8-local_11.8.0-1_arm64.deb
$ sudo dpkg -i cuda-tegra-repo-ubuntu2004-11-8-local_11.8.0-1_arm64.deb
復(fù)制CUDA密鑰
$ sudo cp /var/cuda-tegra-repo-ubuntu2004-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings///more specific
$ sudo cp /var/cuda-tegra-repo-ubuntu2004-11-8-local/cuda-tegra-95320BC3-keyring.gpg /usr/share/keyrings/
安裝cuda及其依賴組件
$ sudo apt-get update
$ sudo apt-get -y install cuda
3.4 【完成】pytorch v2.5.1版本
- pytorch v2.5.1 build for nvidia jetson orin nano 8GB #143624
- Linux 35.6 + JetPack v5.1.4之 pytorch編譯
- Linux 35.6 + JetPack v5.1.4之 pytorch升級
- Release pytorch-v2.5.1+l4t35.6-cp38-cp38-aarch64
pytorch 2.5.1 編譯:
$ cat ./build.sh
#!/bin/bash# git clone https://github.com/SnapDragonfly/pytorch.git
# git checkout nvidia_v2.5.1
# git submodule update --init --recursiveexport USE_NCCL=0
export USE_DISTRIBUTED=0
export USE_QNNPACK=0
export USE_PYTORCH_QNNPACK=0
export TORCH_CUDA_ARCH_LIST="8.7"
export PYTORCH_BUILD_VERSION=2.5.1
export PYTORCH_BUILD_NUMBER=1
export L4T_BUILD_VERSION=35.6
export USE_PRIORITIZED_TEXT_FOR_LD=1
export USE_FLASH_ATTENTION=0
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATHpython3 setup.py bdist_wheel
pytorch 2.5.1 二進制安裝:
$ wget https://github.com/SnapDragonfly/pytorch/releases/download/v2.5.1%2Bl4t35.6-cp38-cp38-aarch64/torch-2.5.1+l4t35.6-cp38-cp38-linux_aarch64.whl
$ sudo pip3 install torch-2.5.1+l4t35.6-cp38-cp38-linux_aarch64.whl
torchvision安裝:
$ git clone https://github.com/SnapDragonfly/vision.git torchvision
$ cd torchvision
$ git checkout nvidia_v0.20.1
$ export BUILD_VERSION=0.20.1
$ sudo python3 setup.py install --user
$ cd ..
升級JetPack5.1.4 L4T35.6后的版本信息:
Software part of jetson-stats 4.2.12 - (c) 2024, Raffaello Bonghi
Model: NVIDIA Orin Nano Developer Kit - Jetpack 5.1.4 [L4T 35.6.0]
NV Power Mode[0]: 15W
Serial Number: [XXX Show with: jetson_release -s XXX]
Hardware:- P-Number: p3767-0005- Module: NVIDIA Jetson Orin Nano (Developer kit)
Platform:- Distribution: Ubuntu 20.04 focal- Release: 5.10.216-tegra
jtop:- Version: 4.2.12- Service: Active
Libraries:- CUDA: 11.8.89- cuDNN: 8.6.0.166- TensorRT: 8.5.2.2- VPI: 2.4.8- Vulkan: 1.3.204- OpenCV: 4.9.0 - with CUDA: YES
DeepStream C/C++ SDK version: 6.3Python Environment:
Python 3.8.10GStreamer: YES (1.16.3)NVIDIA CUDA: YES (ver 11.4, CUFFT CUBLAS FAST_MATH)OpenCV version: 4.9.0 CUDA TrueYOLO version: 8.3.33Torch version: 2.5.1+l4t35.6Torchvision version: 0.20.1a0+3ac97aa
DeepStream SDK version: 1.1.8
3.5 【未開始】Inference性能
- DeepStream-Yolo - Anyway to boost yolo performance on Jetson Orin? #605
- NVIDIA - Anyway to boost yolo performance on Jetson Orin?
A: DeepStream-Yolo - INT8 calibration (PTQ)
B: NVIDIA - NvDCF tracker plugin
3.6 【未開始】特定目標(biāo)集Training
TBD.
4. Extra-Work
4.1 【完成】CUDA 12.3版本
在CUDA 11.8基礎(chǔ)上遇到了 Build onnxruntime 1.19.2 fail due to API HardwareCompatibilityLevel問題,貌似API版本不兼容,那么就升到最高支持的12.3嘗試下。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/sbsa/cuda-ubuntu2004.pin
$ sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda-repo-ubuntu2004-12-3-local_12.3.2-545.23.08-1_arm64.deb
$ sudo dpkg -i cuda-repo-ubuntu2004-12-3-local_12.3.2-545.23.08-1_arm64.deb
$ sudo cp /var/cuda-repo-ubuntu2004-12-3-local/cuda-5B67C214-keyring.gpg /usr/share/keyrings/
$ sudo apt-get update
$ sudo apt-get -y install cuda-toolkit-12-3
- 版本信息
Software part of jetson-stats 4.2.12 - (c) 2024, Raffaello Bonghi
Model: NVIDIA Orin Nano Developer Kit - Jetpack 5.1.4 [L4T 35.6.0]
NV Power Mode[0]: 15W
Serial Number: [XXX Show with: jetson_release -s XXX]
Hardware:- P-Number: p3767-0005- Module: NVIDIA Jetson Orin Nano (Developer kit)
Platform:- Distribution: Ubuntu 20.04 focal- Release: 5.10.216-tegra
jtop:- Version: 4.2.12- Service: Active
Libraries:- CUDA: 12.3.107- cuDNN: 8.6.0.166- TensorRT: 8.5.2.2- VPI: 2.4.8- Vulkan: 1.3.204- OpenCV: 4.9.0 - with CUDA: YES
DeepStream C/C++ SDK version: 6.3Python Environment:
Python 3.8.10GStreamer: YES (1.16.3)NVIDIA CUDA: YES (ver 11.4, CUFFT CUBLAS FAST_MATH)OpenCV version: 4.9.0 CUDA TrueYOLO version: 8.3.33PYCUDA version: 2024.1.2Torch version: 2.5.1+l4t35.6Torchvision version: 0.20.1a0+3ac97aaDeepStream SDK version: 1.1.8
onnxruntime version: 1.16.3
onnxruntime-gpu version: 1.18.0
4.2 【暫?!縏ensorRT 8.6
- TensorRT 8.6 GA for Ubuntu 20.04 and CUDA 12.0 and 12.1 DEB local repo Package
- Guide for Upgrading TensorRT
- How to translate xx/x scripts of TensorRT installation?
- How to upgrade tensorrt to latest version for Jetpack 5.1.4?
4.3 【完成】Jetpack6.2(Jetson Orin Nano Super)
參考:Linux 36.3@Jetson Orin Nano之系統(tǒng)安裝
- 下載Jetpack6.2
- 安裝Linux36.4.3 - Jetson Linux Developer Guide (online version)
- 準(zhǔn)備安裝環(huán)境
$ wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.3/release/Jetson_Linux_r36.4.3_aarch64.tbz2
$ wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.3/release/Tegra_Linux_Sample-Root-Filesystem_r36.4.3_aarch64.tbz2
$ tar xf Jetson_Linux_r36.4.3_aarch64.tbz2
$ sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_r36.4.3_aarch64.tbz2 -C Linux_for_Tegra/rootfs/
$ cd Linux_for_Tegra/
$ sudo ./tools/l4t_flash_prerequisites.sh
$ sudo ./apply_binaries.sh
- 調(diào)整IPV6環(huán)境
$ sudo vi /etc/sysctl.confor
$ sudo sysctl net.ipv6.conf.all.disable_ipv6=0
$ sudo sysctl net.ipv6.conf.default.disable_ipv6=0
- 燒錄固件(燒錄模式)
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \-c tools/kernel_flash/flash_l4t_t234_nvme.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" \--showlogs --network usb0 jetson-orin-nano-devkit internal
- 接上顯示器、鍵盤、鼠標(biāo)
啟動Jetson Orin Nano,按照桌面提示設(shè)置系統(tǒng),更新系統(tǒng):
$ sudo apt-get update
$ sudo apt-get upgrade
5. 同步工作
- Open FPV VTX開源之DIY硬件形態(tài)
6. 參考資料
【1】Ardupilot & OpenIPC & 基于WFB-NG構(gòu)架分析和數(shù)據(jù)鏈路思考
【2】ArduPilot開源飛控之MAVProxy深入研讀系列 - 2蜂群鏈路
【3】Ardupilot開源飛控之FollowMe計劃
【4】Ardupilot開源飛控之FollowMe驗證平臺搭建
【5】Ardupilot開源無人機之Geek SDK討論
【6】OpenIPC開源FPV之工程框架
【7】OpenIPC開源FPV之重要源碼啟動配置
【8】wfb-ng 開源代碼之Jetson Orin安裝
【9】wfb-ng 開源代碼之Jetson Orin問題定位
【10】Linux 35.5 + JetPack v5.1.3@CUDA安裝和版本切換
【11】Linux 35.6 + JetPack v5.1.4@yolo安裝
【12】Linux 35.6 + JetPack v5.1.4@python opencv安裝
【13】Linux 35.6 + JetPack v5.1.4@DeepStream安裝
【14】Linux 35.6 + JetPack v5.1.4之RTP實時視頻Python框架
【15】Linux 35.6 + JetPack v5.1.4之 pytorch編譯
【16】Linux 35.6 + JetPack v5.1.4之 pytorch升級
【17】OpenIPC開源FPV之Adaptive-Link工程解析
【18】NVIDIA DeepStream插件之Gst-nvtracker
【19】Linux 36.3@Jetson Orin Nano之系統(tǒng)安裝
7. 問題
7.1 風(fēng)扇啟動全速噪音問題
- Crazy loud noise fan early before NVIDIA logo display
- How to set fan pwm io low/high in the early boot stage?
7.2 Jetson Orin Nano Super性能升級
Jetson Orin Nano Super DevKit硬件上稍有差異,但是Jetson Orin Nano只要BSP升級到Jetpack6.2 就具備了67 TOPS性能
- What’s the difference between Jetson Orin Nano vs Jetson Orin Nano Super?
- NVIDIA Jetson Orin - Next-level AI performance for next-gen robotics and edge solutions
7.3 Jetpack5 TensorRT 8.5不可升級版
鑒于目前NVIDIA反饋在Jetpack5.1.4上TensorRT僅支持到8.5版本,但是從TensorRT 版本發(fā)布上看,確實也能看到8.6GA版本【懷疑存在諸多未言明問題】。
雖然,開源也有不少問題,但是隨著我們的投入,逐步解決了開源系統(tǒng)的升級編譯,但是對于閉源系統(tǒng),確實非常無奈!
- Has JetPack 5 reached its end of life (EOL), or is there an EOL planned for it?
- How to translate xx/x scripts of TensorRT installation?