首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Ardupilot开源无人机之Geek SDK进展2024-2025

  • 25-02-19 15:21
  • 3527
  • 5512
blog.csdn.net

Ardupilot开源无人机之Geek SDK进展2024-2025

  • 1. 源由
  • 2. 状态
  • 3. TODO
    • 3.1 【完成】跟踪目标框
    • 3.2 【暂停】onnxruntime版本
    • 3.3 【完成】CUDA 11.8版本
    • 3.4 【完成】pytorch v2.5.1版本 - Jetpack5
    • 3.5 【完成】Inference性能
    • 3.6 【进行中】特定目标集Training
  • 4. Extra-Work
    • 4.1 【完成】CUDA 12.3版本
    • 4.2 【暂停】TensorRT 8.6
    • 4.3 【完成】Jetpack6.2(Jetson Orin Nano Super)
      • 4.3.1 安装系统
      • 4.3.2 调整`sudo`继承环境变量
      • 4.3.3 隐藏`bar`菜单栏
      • 4.3.4 去掉`Panel`节省像素
      • 4.3.5 视频界面去掉`title bar`节省像素
      • 4.3.6 jetson-inference打补丁
      • 4.3.7 其他问题汇总
    • 4.4 【完成】pytorch + torchvision安装(Jetson Orin Nano Super)
    • 4.5 【完成】dsyolo/nvdsinfer/byteTrack安装(Jetson Orin Nano Super)
    • 4.6 【完成】wfb-ng网卡自动侦测
    • 4.7 【阻塞】jetson-fpv模块测试(Jetpack6.2)
    • 4.8 【进行中】jetson-fpv模块测试(Jetpack6.1)
      • 4.8.1 安装系统
      • 4.8.2 环境优化
      • 4.8.3 问题汇总
  • 5. 同步工作
    • 5.1 需求
    • 5.2 试飞
    • 5.3 问题
  • 6. 参考资料
  • 7. 问题
    • 7.1 风扇启动全速噪音问题
    • 7.2 Jetson Orin Nano Super性能升级
    • 7.3 Jetpack5 TensorRT 8.5不可升级版
    • 7.4 Ardupilot RTL(Return To Land) 高度

1. 源由

前期搭建《Ardupilot开源无人机之Geek SDK》,主要目的是:

  1. 基于:《ArduPilot开源飞控系统 - 无人车、船、飞机等》
  2. 验证:《Ardupilot & OpenIPC & 基于WFB-NG构架分析和数据链路思考》可行性
  3. 框架:打通硬实时、软实时的控制面和数据面链路,提供一个简单、多样、高效的验证平台 jetson-fpv

2. 状态

  • 简单示例

  • 框架成型:jetson-fpv

  • 支持特性:

    • FPV features (FPV功能)

      • MSPOSD for ground station (OSD)
      • video-viewer (视频图像,可以达到120FPS)
      • Adaptive wireless link (链路自适应)
    • Jetson video analysis (Jetson推理功能)

      • detectnet for object detection
      • segnet for segmentation
      • posenet for pose estimation
      • imagenet for image recognition
    • yolo for object detection (YOLO目标检测)

    • Real time video stabilizer

    • DeepStream analysis (DeepStream目标跟踪分析)

      • ByteTrack
      • NvDCF tracker
  • 硬件形态
    在这里插入图片描述在这里插入图片描述

3. TODO

优先级:

  • 【0101暂定】3.2 onnxruntime版本 > 3.1 跟踪目标框 > 3.5 Inference性能 > 3.6 特定目标集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 跟踪目标框 > 3.5 Inference性能 > 3.6 特定目标集Training
  • 【0117变更】目前NVIDIA主要支持L4T36.x(ubuntu22.04),对L4T35.x(ubuntu20.04)支持力度日渐转弱,进度很慢(尽管官方论坛说没有停止支持)。将不连续帧跟踪目标框持续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 跟踪目标框
                  └──> 3.5 Inference性能
                      └──> 3.6 特定目标集Training
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 【0120变更】鉴于目前NVIDIA闭源,虽然尚未宣布Jetpack5的EOL时间,但是实际在版本支持和研发投入上,已经明显出现乏力(详见:7.3)!而目前来说Super版本似乎从性能上是一个改观,为此我们后续将投入BSP6.2版本,顺便调整优先级,废弃一些闭源升级问题带来的折腾。
 ├──> 【暂停】【任务支线一:升级基础组件版本】
 │   └──> 【完成】3.3 CUDA 11.8版本
 │       │    └──> 【完成】4.1 CUDA 12.3版本
 │       └──> 【完成】3.4 pytorch v2.5.1版本
 │            └──> 【暂停】4.2 TensorRT 8.6
 │                └──> 【暂停】3.2 onnxruntime版本
 └──> 【完成】【任务支线二:升级系统Jetson Orin Nano Super,安装jetson-fpv】
     └──> 【完成】4.3 Jetpack6.2(Jetson Orin Nano Super)
         └──> 【完成】4.4 pytorch + torchvision安装(Jetson Orin Nano Super)
             └──> 【完成】4.5 dsyolo/nvdsinfer/byteTrack安装(Jetson Orin Nano Super)
                 └──> 【完成】4.6 wfb-ng网卡自动侦测
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 【0128变更】中国年,更新下进展,将升级Super系统,安装脚本任务完成,新开任务。
 └──> 【完成】【任务支线四:采用隔帧提升性能】
         └──> 【完成】3.1 跟踪目标框
             └──> 【完成】3.5 Inference性能
  • 1
  • 2
  • 3
  • 【0208变更】过年期间,进展更新。
 └──> 【完成】【任务支线三:调试每个模块,确保正常工作】
     └──> 【阻塞】4.7 jetson-fpv模块测试(Jetpack6.2)
  • 1
  • 2
  • 【0215更新】Jetpack6.2存在很多问题,且开源最新的大部分停留在Jetpack5.x/Jetpack6.1
 ├──> 【进行中】【任务支线六:调试每个模块,确保正常工作】
 │   └──> 【进行中】4.8 jetson-fpv模块测试(Jetpack6.1)
 └──> 【进行中】【任务支线五:采用特定训练集训练定制识别】
     └──> 【进行中】3.6 特定目标集Training
  • 1
  • 2
  • 3
  • 4

3.1 【完成】跟踪目标框

已解决NvDCF算法plugin下bbox连续性问题,详见:deepstream: add tiler to fix bbox issue。该版本Tracking bbox在DS7.1/Jetpack6.2上确实是连续的。据反馈6.3/7.1使用NvDCF应该都是连续的。

注:因为NVIDIA的软件栈有较多版本组合,稍有差异可能会出现各种异常问题。关于版本集成测试方面,需要大量的组合测试,耗时费力,不过这个是作为软件公司,产品开发必须过的一关。

  • 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?
  • Python deepstream-test2 substitue from file to H264 RTP source - Perofrmance low

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任务优先级
需要考虑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
  • 1
  • 2
  • 3
  • 4

复制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/
  • 1
  • 2
  • 3
  • 4

安装cuda及其依赖组件

$ sudo apt-get update
$ sudo apt-get -y install cuda
  • 1
  • 2

3.4 【完成】pytorch v2.5.1版本 - Jetpack5

  • 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 --recursive

export 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_PATH

python3 setup.py bdist_wheel
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

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
  • 1
  • 2

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 ..
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

升级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.3

Python Environment:
Python 3.8.10
    GStreamer:                   YES (1.16.3)
  NVIDIA CUDA:                   YES (ver 11.4, CUFFT CUBLAS FAST_MATH)
        OpenCV version: 4.9.0  CUDA True
          YOLO version: 8.3.33
         Torch version: 2.5.1+l4t35.6
   Torchvision version: 0.20.1a0+3ac97aa
DeepStream SDK version: 1.1.8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

3.5 【完成】Inference性能

DS7.1 Demo默认是INT8,且性能应该也较之前提升到67TB,1080P@60FPS无压力。

  • 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 【进行中】特定目标集Training

  • How to detect small object with deepstream?
  • How to Detect Small Objects: A Guide

4. Extra-Work

4.1 【完成】CUDA 12.3版本

在CUDA 11.8基础上遇到了 Build onnxruntime 1.19.2 fail due to API HardwareCompatibilityLevel问题,貌似API版本不兼容,那么就升到最高支持的12.3尝试下。

For JetPack 5, only CUDA is upgradable but up to v12.2,而这里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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 版本信息
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.3

Python Environment:
Python 3.8.10
    GStreamer:                   YES (1.16.3)
  NVIDIA CUDA:                   YES (ver 11.4, CUFFT CUBLAS FAST_MATH)
         OpenCV version: 4.9.0  CUDA True
           YOLO version: 8.3.33
         PYCUDA version: 2024.1.2
          Torch version: 2.5.1+l4t35.6
    Torchvision version: 0.20.1a0+3ac97aa
 DeepStream SDK version: 1.1.8
onnxruntime     version: 1.16.3
onnxruntime-gpu version: 1.18.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

4.2 【暂停】TensorRT 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?

For JetPack 5, only CUDA is upgradable but up to v12.2.
For JetPack 6, CUDA/cuDNN/TensorRT are upgradable.

  • How to upgrade tensorrt to latest version for Jetpack 5.1.4?

4.3 【完成】Jetpack6.2(Jetson Orin Nano Super)

参考:
【1】Linux 36.3@Jetson Orin Nano之系统安装
【2】Jetson Orin Nano Archive系统版本
【3】Linux 36.2@Jetson Orin Nano之基础环境构建

4.3.1 安装系统

  1. 下载Jetpack6.2
  2. 安装Linux36.4.3 - Jetson Linux Developer Guide (online version)
  3. 准备安装环境
$ 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 调整IPV6环境
$ sudo vi /etc/sysctl.conf

or
$ sudo sysctl net.ipv6.conf.all.disable_ipv6=0
$ sudo sysctl net.ipv6.conf.default.disable_ipv6=0
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 烧录固件(烧录模式)
$ 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
  • 1
  • 2
  • 3
  1. 接上显示器、键盘、鼠标

启动Jetson Orin Nano,按照桌面提示设置系统,更新系统:

$ sudo apt-get update
$ sudo apt-get upgrade
  • 1
  • 2

4.3.2 调整sudo继承环境变量

sudo 环境保持与用户环境一致

$ sudo visudo
  • 1

!!!继承所有环境变量(注意安全风险),修改为以下内容!!!

Defaults    !env_reset
  • 1

4.3.3 隐藏bar菜单栏

点击进入【Settings】-》【Appearance】-》【Auto-hide the Dock】,隐藏Dock。

在这里插入图片描述

4.3.4 去掉Panel节省像素

  • How to Hide GNOME Top Bar in Ubuntu 24.04, 22.04 or 20.04
  • Just Perfection for Download

在这里插入图片描述

$ mkdir just-perfection-desktop@just-perfection
$ cd just-perfection-desktop@just-perfection
$ unzip just-perfection-desktopjust-perfection.v26.shell-extension.zip
$ cd ..
$ mv just-perfection-desktop@just-perfection ~/.local/share/gnome-shell/extensions/
  • 1
  • 2
  • 3
  • 4
  • 5

重启GNOME

$ gnome-shell --replace &
  • 1

或者按 Alt + F2,输入 r,然后回车。

查看是否安装成功,并启用

$ gnome-extensions list | grep just-perfection
$ gnome-extensions enable just-perfection-desktop@just-perfection
$ gnome-extensions info just-perfection-desktop@just-perfection
just-perfection-desktop@just-perfection
  Name: Just Perfection
  Description: Tweak Tool to Customize GNOME Shell, Change the Behavior and Disable UI Elements
  Path: /home/daniel/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection
  URL: https://gitlab.gnome.org/jrahmatzadeh/just-perfection
  Version: 26
  State: ENABLED
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

4.3.5 视频界面去掉title bar节省像素

  • Pixel Saver for Download

在这里插入图片描述
解压GNOME插件

$ mkdir pixel-saverdeadalnix.me
$ mv pixel-saverdeadalnix.me.v29.shell-extension.zip pixel-saverdeadalnix.me
$ cd pixel-saverdeadalnix.me/
$ unzip pixel-saverdeadalnix.me.v29.shell-extension.zip
$ ls
app_menu.js  buttons.js  decoration.js  extension.js  metadata.json  pixel-saverdeadalnix.me.v29.shell-extension.zip  themes  util.js
$ cat metadata.json
{
  "_generated": "Generated by SweetTooth, do not edit",
  "description": "Pixel Saver is designed to save pixel by fusing activity bar and title bar in a natural way",
  "name": "Pixel Saver",
  "shell-version": [
    "3.34",
    "3.36",
    "3.38",
    "40",
    "41",
    "42",
    "43",
    "44"
  ],
  "url": "https://github.com/deadalnix/pixel-saver",
  "uuid": "[email protected]",
  "version": 29
}
$ cd ..
$ mv pixel-saverdeadalnix.me/ [email protected]
$ mv [email protected]/ ~/.local/share/gnome-shell/extensions/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

重启GNOME

$ gnome-shell --replace &
  • 1

或者按 Alt + F2,输入 r,然后回车。

使能插件

$ gnome-extensions list
[email protected]
just-perfection-desktop@just-perfection
[email protected]
[email protected]
[email protected]
[email protected]
native-window-placement@gnome-shell-extensions.gcampax.github.com
[email protected]
screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
$ gnome-extensions enable [email protected]
$ gnome-extensions info [email protected]
[email protected]
  Name: Pixel Saver
  Description: Pixel Saver is designed to save pixel by fusing activity bar and title bar in a natural way
  Path: /home/daniel/.local/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/deadalnix/pixel-saver
  Version: 29
  State: ENABLED
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

在这里插入图片描述

4.3.6 jetson-inference打补丁

使用链接中的补丁:Segnet/poseNet Segmentation fault (core dumped) for Jetpack6.2

$ git log -n 1
commit c038530ebf718e6867c4458c3e439406020732ff (HEAD -> master, origin/master, origin/HEAD)
Author: Dustin Franklin <[email protected]>
Date:   Wed Oct 16 06:56:03 2024 -0400

    updates for TRT10
$ git apply ../../patch/jetson-inference.1925.patch
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4.3.7 其他问题汇总

  • 问题A:[Done] nvautoflash不支持刷系统,仅支持刷bootloader - Nvautoflash r36.4.3 jetpack6.2 stucked
  • 问题B:Error writing to /home/daniel/.config/Ultralytics/settings.json: [Errno 13] Permission denied: '/home/daniel/.config/Ultralytics/settings.json'
$ sudo chown -R daniel:daniel /home/daniel/.config/Ultralytics
$ sudo chmod -R u+w /home/daniel/.config/Ultralytics 
  • 1
  • 2
  • 装完后的界面应该能够提供jetson-fpv类似全屏效果:

在这里插入图片描述

4.4 【完成】pytorch + torchvision安装(Jetson Orin Nano Super)

参考:Jetson Orin Nano Super之pytorch + torchvision安装

Software part of jetson-stats 4.3.1 - (c) 2024, Raffaello Bonghi
Model: NVIDIA Jetson Orin Nano Developer Kit - Jetpack 6.2 [L4T 36.4.3]
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 22.04 Jammy Jellyfish
 - Release: 5.15.148-tegra
jtop:
 - Version: 4.3.1
 - Service: Active
Libraries:
 - CUDA: 12.6.68
 - cuDNN: 9.3.0.75
 - TensorRT: 10.3.0.30
 - VPI: 3.2.4
 - Vulkan: 1.3.204
 - OpenCV: 4.11.0 - with CUDA: YES
DeepStream C/C++ SDK version: 7.1

Python Environment:
Python 3.10.12
    GStreamer:                   YES (1.20.3)
  NVIDIA CUDA:                   YES (ver 12.6, CUFFT CUBLAS FAST_MATH)
         OpenCV version: 4.11.0  CUDA True
           YOLO version: 8.3.65
         PYCUDA version: 2024.1.2
          Torch version: 2.5.1+l4t36.4
    Torchvision version: 0.20.0a0+afc54f7
 DeepStream SDK version: 1.2.0
onnxruntime-gpu version: 1.19.2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

4.5 【完成】dsyolo/nvdsinfer/byteTrack安装(Jetson Orin Nano Super)

  • jetson-yolo(deepstream-app)
  • libByteTracker.so
  • libnvdsinfer_custom_impl_Yolo.so

问题:

  • Missing NvDsPastFrameObjBatch in DeepStream 7.1

4.6 【完成】wfb-ng网卡自动侦测

  • [Feature] detect wfb-ng available cards for simple gs installation #399

4.7 【阻塞】jetson-fpv模块测试(Jetpack6.2)

阻塞原因:JP6.2版本兼容性问题:Different behavior (NOT good) of yolov11n on Jetson Orin Nano Super #19134
Jetpack属于闭源软件,其版本从目前看来,会导致稳定性。但是对于非开源类软件,着实没有其他更好的方法。

  • 测试环境
$ sudo ./wrapper.sh version
[sudo] password for daniel:

Software part of jetson-stats 4.3.1 - (c) 2024, Raffaello Bonghi
Model: NVIDIA Jetson Orin Nano Developer Kit - Jetpack 6.2 [L4T 36.4.3]
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 22.04 Jammy Jellyfish
 - Release: 5.15.148-tegra
jtop:
 - Version: 4.3.1
 - Service: Active
Libraries:
 - CUDA: 12.6.68
 - cuDNN: 9.3.0.75
 - TensorRT: 10.3.0.30
 - VPI: 3.2.4
 - OpenCV: 4.11.0 - with CUDA: YES
DeepStream C/C++ SDK version: 7.1

Python Environment:
Python 3.10.12
    GStreamer:                   YES (1.20.3)
  NVIDIA CUDA:                   YES (ver 12.6, CUFFT CUBLAS FAST_MATH)
         OpenCV version: 4.11.0  CUDA True
           YOLO version: 8.3.68
         PYCUDA version: 2024.1.2
          Torch version: 2.5.0a0+872d972e41.nv24.08
    Torchvision version: 0.20.0a0+afc54f7
 DeepStream SDK version: 1.2.0
onnxruntime     version: 1.20.1
onnxruntime-gpu version: 1.20.0

FPV Environment:
jetson-fpv Version: f52227a
    MSPOSD version: c28d645 20250205_151537
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 测试内容:
$ sudo ./wrapper.sh help
Invalid module: help
Usage: ./wrapper.sh <module_name> {start|restart|ostart|orestart|stop|status|help|<other_command>} [additional_arguments]

Commands:
  start           Start a module
  restart         Restart a module
  ostart          Start a module without msposd
  orestart        Restart a module without msposd
  stop            Stop a module
  status          Check the status of a module
  help            Display this help message
  <other_command> Pass any other command directly to the module script, such as test etc.

Available modules
  Special modules: version wfb
     Base modules: viewer pyviewer gstreamer
 Extended modules: imagenet detectnet segnet posenet stabilizer yolo deepstream dsyolo dstrack

    Version Module: Check depended component versions.
        Wfb Module: Wifibroadcast transmission module.
     Viewer Module: Use video-viewer to handle video stream.
   pyViewer Module: Use python jetson_utils to handle video stream.
  GStreamer Module: GST pipelines to process audio and video, offering flexible, plugin-based support for playback, streaming, and media transformation.
   Imagenet Module: Image classification using Imagenet model.
  Detectnet Module: Object detection using DetectNet.
     Segnet Module: Image segmentation using SegNet.
    Posenet Module: Pose estimation using PoseNet.
 Stabilizer Module: Stabilizes the camera or system.
       Yolo Module: Real-time object detection using YOLO.
 Deepstream Module: Framework from NVIDIA that enables video analytics and AI processing, using hardware-accelerated inference for deep learning models in real-time.
 Deepstream + YOLO: DeepStream integrates YOLO for real-time object detection and tracking.
 Deepstream  Track: DeepStream with it's integrated tracking plugin.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 模拟RTP视频源

H264视频源

$ video-viewer file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 rtp://@:5600 --input-loop=-1 --headless
  • 1

验证H264视频源

$ video-viewer --input-codec=h264 rtp://@:5600
or

  • 1
  • 2
  • 3

分析H264视频源

$ python3 ./utils/yolo.py rtp://@:5600
or
$ python3 ./utils/deepstream/deepstream_NvDCF.py -s -i rtp://@:5600
or 
$ python3 ./utils/deepstream/deepstream.py -s -i rtp://@:5600
or ... ...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 验证进度
 ├──> [✓] version
 ├──> [✓] wfb
 ├──> [✓] viewer
 ├──> [inference]
 │   ├──> [x] imagenet // Not supported, due to caffee model not supported
 │   ├──> [x] detectnet // Not supported, due to caffee model not supported
 │   ├──> [✓] segnet
 │   └──> [✓] posenet
 ├──> [✓] gstreamer
 ├──> [x] stabilizer // Not supported yet
 ├──> [ ] yolo // Under Test
 ├──> [deepstream]
 │   ├──> [✓] deepstream 
 │   └──> [✓] nvdcf
 └──> [x] dsyolo // Not supported, due to deepstream-app code can't handling RTP streaming source
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

遇到问题

  • [Done] Does DS6.3 configure file in Jetpack5 compatible with DS71. in Jetpack6.2
  • [Done] No resnet18_vehicletypenet_pruned.onnx_b16_gpu0_int8.engine generated in DS7.1
  • [Done] Python deepstream-test2 substitue from file to H264 RTP source - Perofrmance low
  • [Done] Is there any demo for python video raw file saving?
  • [Partially Done] TensorRT 10.3 does not support legacy caffe models for Jetpack6.2
  • [Partially Done] How to configure RTP source in deepstream-app 7.1?
  • NotImplementedError: Could not run ‘torchvision::nms’ with arguments from the ‘CUDA’ backend #18924

4.8 【进行中】jetson-fpv模块测试(Jetpack6.1)

当然,开源在于舍不舍得投入时间,资源。闭源的问题在于金钱。

鉴于4.7的问题,还是得开一个新的基于Jetpack6.1的任务(至少在Jetpack6.2尚未完全稳定之前是这样)。

  • Jetson Orin Nano Super之jetson-fpv开源代码下载

  • 验证进度(TBD)

 ├──> [ ] version
 ├──> [ ] wfb
 ├──> [ ] viewer
 ├──> [inference]
 │   ├──> [ ] imagenet // Not supported, due to caffee model not supported
 │   ├──> [ ] detectnet // Not supported, due to caffee model not supported
 │   ├──> [ ] segnet
 │   └──> [ ] posenet
 ├──> [ ] gstreamer
 ├──>  ] stabilizer // Not supported yet
 ├──> [ ] yolo
 ├──> [deepstream]
 │   ├──> [ ] deepstream 
 │   └──> [ ] nvdcf
 └──> [ ] dsyolo 
     ├──> [ ] deepstream 
     └──> [ ] nvdcf
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

4.8.1 安装系统

  • jetson-linux-r3640
  • QuickStart for flash NVM
$ wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.0/release/Jetson_Linux_R36.4.0_aarch64.tbz2
$ wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.0/release/Tegra_Linux_Sample-Root-Filesystem_R36.4.0_aarch64.tbz2
$ tar xf Jetson_Linux_R36.4.0_aarch64.tbz2
$ sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_R36.4.0_aarch64.tbz2 -C Linux_for_Tegra/rootfs/
$ cd Linux_for_Tegra/
$ sudo ./apply_binaries.sh
$ sudo ./tools/l4t_flash_prerequisites.sh
$ 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4.8.2 环境优化

  • Linux 36.3@Jetson Orin Nano之系统安装
  • Jetson Orin Nano Super之录屏软件安装
  • Linux 36.2@Jetson Orin Nano之基础环境构建
  • OpenIPC开源FPV之固件sysupgrade升级
  • Linux 35.6 + JetPack v5.1.4@python opencv安装
$ sudo apt-get install deepstream-7.1
  • 1

4.8.3 问题汇总

  • Different behavior (NOT good) of yolov11n on Jetson Orin Nano Super

鉴于NVIDIA L4T36.4.0(JP6.1) --> L4T36.4.3(JP6.2)直接一个apt-get upgrade就升上去了,而目前的问题是JP6.2有BUG,UBUNTU软件包升级通常采用apt-get upgrade,导致很多UBUNTU上的软件升级脚本会触发JP6.1升级,非常不便于维护。

若要验证,需要非常小心的手工安装!。

5. 同步工作

  • Open FPV VTX开源之DIY硬件形态
  • ArduPilot+OpenIPC+ELRS开源代码之RadioFailSafe

5.1 需求

  • [Closed] [Bug]: The command took too long to execute - Failed to Connect #81
  • [Closed] ssc30kq image inconsistency issue - master+3107679, 2025-02-14 #47
  • [Closed] [Feature]: Keep Router/OSD index consistent with popup text #82
  • [Closed] [Request] ssc338q_fpv_generic_link/ssc30kq_fpv_generic_link #45
  • [Partially Done] Is it possible to draw fec_r/lost/d_err on OpenIPC camera? #407
  • [Partially Done] [Bug]: 3536 update firmware failed #78

TBD:

  • [Feature] Add SNR icon support for ardupilot #52
  • [Bug]: SSC30KQ local firmware update failed #80
  • Can’t launch msposd on Groud stattion NVR Hi3536dv100 #18

5.2 试飞

  • 【OK】OpenIPC+ Ardupilot 4.5.6 + 模拟/数字同步 FPV OSD
  • 【OK】OpenIPC地面站OSD + Ardupilot 4.5.6 + 梅家坞山坳 FPV飞行
  • 【OK】树莓派3B+OV5647 30FPS/0.76mm/222°FOV 满血复活 - AKM ArduRover4.5.7
  • 【NG】Ardupilot 4.5.6+OpenIPC+ELRS RadioFailSafe

5.3 问题

  • Most Popular Open-Source Gimbal for ArduPilot in 2025
  • “EKF3 IMU1 MAG0 IN-FLIGHT YAW ALIGNMENT” makes auto yaw when takeoff
  • Why magfit’s output result is out of parameter range?
  • Copter in Acro (Freestle) experiencing RC signal lost Then …

6. 参考资料

【1】Ardupilot & OpenIPC & 基于WFB-NG构架分析和数据链路思考
【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之系统安装
【20】Linux 36.2@Jetson Orin Nano之基础环境构建
【21】Jetson Orin Nano Super之pytorch + torchvision安装
【22】Jetson Orin Nano Super之jetson-fpv开源代码下载
【23】Jetson Orin Nano Super之 onnxruntime 编译安装

7. 问题

7.1 风扇启动全速噪音问题

  • 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 版本发布上看,确实也能看到8.6GA版本【怀疑存在诸多未言明问题】。

虽然,开源也有不少问题,但是随着我们的投入,逐步解决了开源系统的升级编译,但是对于闭源系统,确实非常无奈!

  • 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?
    在这里插入图片描述

7.4 Ardupilot RTL(Return To Land) 高度

  • RTL_ALT

在这里插入图片描述

注:本文转载自blog.csdn.net的lida2003的文章"https://blog.csdn.net/lida2003/article/details/144977640"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

117
前沿技术
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top