所需硬件设备如下:
在这里插入图片描述

实现原理:

  1. 视频流获取:从大疆无人机获取实时视频流。
  2. 数据传输:将视频流传输至 Jetson 平台。
  3. 目标检测处理:在 Jetson 上运行目标检测算法对传入的视频帧进行分析

EPort开发套件

大疆官网给出了 M350 RTK 飞行器与 EPort 连接的教程:
https://developer.dji.com/doc/payload-sdk-tutorial/cn/quick-start/quick-guide/jetson-nano.html

在这里插入图片描述

无人机与Eport连接图:

在这里插入图片描述

Jetson开发板

  • USB 转 TTL 串口模块: 此模块通常用于低级别的硬件调试和通信。在这个上下文中,它可能被用来与 E-Port开发者套件建立串行通信链路,以便发送命令或接收来自负载的数据

  • USB-C USB 连接线: 用于连接飞行器的调参接口,这允许用户对飞行器及其负载进行固件升级或者通过PC上的模拟器来进行测试。

  • Micro USB 连接线: 可能用于连接 Jetson Nano 和 E-Port 开发者套件,以实现数据传输或其他形式的通信。

  • USB-C OTG 转接线: OTG(On-The-Go)转接线可以让 Jetson Nano充当主机角色,从而连接其他USB设备。在这种情况下,它可能用于增强Jetson Nano与其他硬件组件之间的兼容性。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

更新软件库

sudo apt-get update 
sudo apt-get upgrade 
sudo apt-get install automake 
sudo apt-get install libaio-dev

Opus安装

Opus 是一种开源的的音频编解码器,设计用于实时语音传输
首先下载opus的安装包,可以直接采用apt安装(推荐):

sudo apt-get install libopus-dev 

当然,也可以考虑使用源码文件安装,不用太纠结于版本,使用最新版即可:

https://github.com/xiph/opus/releases/tag/v1.5.2

在这里插入图片描述

#解压文件
tar -xzvf opus-1.5.1.tar.gz   
cd opus-1.3.1/ 
autoreconf -f -i 
./configure 
make -j16 
sudo make install 

检查是否安装成功,这里采用的是apt安装,其默认版本是1.3.1

 pkg-config --modversion opus

在这里插入图片描述

FFmpeg安装

FFmpeg 是一个强大的开源音视频处理工具集,可以用来:
转换音视频格式(如 MP4 → AVIMP3 → WAV
剪辑、合并、分割视频
提取音频或封面图
实时推流(RTMPHLS),这里推荐使用apt安装

sudo apt-get install ffmpeg 

如果不行,可以采用源码安装

tar -zxvf ffmpeg-4.3.2.tar.gz 
./configure --enable-shared 
make && make install 

使用如下命令检验是否安装成功

# 安装完成后检查 ffmpeg 是否安装 
ffmpeg -version 

在这里插入图片描述

OpenCV、CUDA、cudNN配置

这里需要注意的是OpenCV的版本一定要在4.9以上,好吧,请直接从git上下载源码,安装的是4.13版本,亲测有效,4.94.11版本均不可用
git clone https://github.com/opencv/opencv.git

详情参照博主这篇博文:https://blog.csdn.net/pengxiang1998/article/details/149073838

Jetson边缘计算主板:Ubuntu 环境配置 CUDA 与 cudNN 推理环境 + OpenCV 与 C++ 进行目标分类

在这里插入图片描述

这里Jetpack的版本找不到了,但其实并不影响,只会报一个warning而已

在这里插入图片描述

安装USB配置文件

libusb-1.0-0-dev 提供了在 Linux 上直接与 USB 设备进行通信所需的开发文件,通过这个包可以实现与 USB 设备通信

sudo apt-get install libusb-1.0-0-dev 

检查内核模块

使用如下命令即可:

# 确保usb gadget和usb转串⼝的驱动都装了
# 检查 USB Gadget 相关模块 
lsmod | grep usb

在这里插入图片描述

  1. USB Gadget 相关:通常会显⽰ libcomposite 等模块(这是 USB Gadget 功能的核⼼依赖)。
  2. USB 转串⼝相关:常⻅的模块包括: usbserial:通⽤ USB 转串⼝驱动框架
    ftdi_sio:FTDI 芯片的驱动
    pl2303:Prolific PL2303 芯片的驱动
    cp210x:Silicon Labs CP210x 芯片的驱动
    ch341:沁恒
    CH340/CH341 芯片的驱动
  3. usb 转串⼝对应的设备是/dev/ttyUSB0

源码下载

将源码下载到如下地址,并将其解压,得到文件如下:

在这里插入图片描述

设置开机自启服务

设置开机自启服务:这是为了让无人机启动后既可以自动执行我们的导线追踪算法

切换到/home/laiease/Payload-SDK-master/目录下,使用root 权限将service文件安装到/etc/systemd/system⽬录下 :

sudo mv djixunxian.service /etc/systemd/system/ 

在这里插入图片描述

随后切换到/home/laiease/Payload-SDK-master/jetson-usb/,然后将如下服务文件也移动到对应位置

在这里插入图片描述

sudo mv jetsongadget.service /etc/systemd/system/

将对应的服务文件放置到系统路径下后,需要让 systemd “知道”有新的或更改的服务存在:

新建了一个服务(如 djixunxian.service)
修改了某个服务的配置文件(比如路径、启动命令、环境变量等)

# 重新加载systemd     其会让systemd 重新加载所有的服务单元配置文件(比如 .service 文件)
sudo systemctl daemon-reload   

随后执行以下几个步骤进行设置自启:

# 允许两个服务开机⾃启 
sudo systemctl enable djixunxian.service

djixunxian.service 已成功启用开机自启

在这里插入图片描述

sudo systemctl enable jetsongadget.service

jetsongadget.service 已成功启用开机自启

在这里插入图片描述

# 启动两个服务 
sudo systemctl start jetsongadget.service
sudo systemctl start djixunxian.service 

启动完成效果如下:

在这里插入图片描述

编译startup_bulk

切换到 jetson-usb 路径

cd /home/laiease/Payload-SDK-master/jetson-usb 
make

效果如下:

在这里插入图片描述

项目编译

cd ./Payload-SDK-master 
mkdir build 
cd build 
make -j4 

重启服务,要先启动jetsongadget,然后再启动djixunxian

systemctl restart jetsongadget
systemctl restart djixunxian

检查服务状态

systemctl status djixunxian

当然,也可以使用 journalctl | grep -i dji 查看状态:

推流正常:

在这里插入图片描述
推理正常:
在这里插入图片描述

推理效果如下:

在这里插入图片描述

报错处理

在启动服务时报错:

Process: 11087 ExecStart=/home/laiease/Payload-SDK-master/build/bin/dji_sdk_demo_linux_cxx (code=dumped, signal=ABRT)
Main PID: 11087 (code=dumped, signal=ABRT)

在这里插入图片描述

这是由于USB_bulnk找不到导致的,当出现找不到USB0时,这是由于没有CH34驱动的,可以下载一个驱动:

git clone https://github.com/juliagoda/CH341SER.git

随后切换到CH41SER目录

然后执行make命令

在这里插入图片描述

ls /dev/ttyUSB*

在这里插入图片描述

完整的执行过程:

在这里插入图片描述

此时USB bulk便可以了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/92659.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/92659.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/92659.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Typora激活与使用

Typora下载 下载地址:Typora 官方中文站 Typora(1.9.5及其以前的版本) 工具:待补充 流程 1.解压工具 2.将license-gen.exe、node_inject.exe两个文件放于typora安装目录下 3.在typora安装目录下运行cmd(可以打开…

图片拆分工具,自定义宫格切割

软件介绍 今天推荐一款实用的图像处理工具——lmage Splitter,支持图像拆分与格式互转功能,无广告干扰,操作简单流畅,满足多样化图片编辑需求。 软件优势 该工具为绿色版设计,无需安装即可直接运行,下载…

23种设计模式解析--创建型模式

创建型模式(造物主的智慧) 单例模式 模式定义 单例模式(Singleton)确保一个类仅有一个实例,并提供该实例的全局访问点。核心思想是通过私有化构造函数和静态成员实现受控的对象创建。核心实现要点 私有构造函数&#x…

全面解析软件工程形式化说明技术

一、形式化说明技术概述:从模糊到精确的跨越 在软件工程的发展历程中,需求说明技术始终是确保软件系统成功开发的关键环节。从早期依赖自然语言的非形式化描述,到如今基于数学和逻辑的形式化方法,这一领域经历了从模糊到精确的深…

百度网盘自动启动如何关闭,关闭智能看图

#某度软件引起的奔溃#在日常办公中,有时候双击图片,会自动打开了某度的网盘,很奇怪莫名其妙的为什么会关闭网盘后又自动打开了。如何发现是某度的牛虻软件在搞鬼的?我右键图片,选择打开方式,发现有“智能看…

疏老师-python训练营-Day40训练和测试的规范写法

浙大疏锦行 知识点回顾: 彩色和灰度图片测试和训练的规范写法:封装在函数中展平操作:除第一个维度batchsize外全部展平dropout操作:训练阶段随机丢弃神经元,测试阶段eval模式关闭dropout 作业:仔细学习下测…

【重磅发布】flutter_chen_keyboard -专注于键盘相关功能

flutter_chen_keyboard 一个功能强大且易于使用的 Flutter 键盘增强库,专为提升移动应用的键盘交互体验而设计。 📖 库简介 flutter_chen_keyboard 是一个专注于键盘相关功能的 Flutter 工具库,旨在为开发者提供更流畅、更智能的键盘交互解决…

idea设置注释--带日期和作者和描述

最终效果 在File Header中添加如下内容: /*** author ${USER}* date ${DATE} ${TIME}* description ${DESCRIPTION}*/${USER}:IDEA 里设置的用户名 ${DATE}:当前日期 ${TIME}:当前时间 可以加自定义变量,比如 ${DESCRI…

【Linux】Socket编程——UDP版

📝前言: 这篇文章我们来讲讲Linux——udpsocket 🎬个人简介:努力学习ing 📋个人专栏:Linux 🎀CSDN主页 愚润求学 🌄其他专栏:C学习笔记,C语言入门基础&#…

RabbitMQ面试精讲 Day 14:Federation插件与数据同步

【RabbitMQ面试精讲 Day 14】Federation插件与数据同步 开篇 欢迎来到"RabbitMQ面试精讲"系列第14天,今天我们将深入探讨RabbitMQ Federation插件与跨集群数据同步机制。在分布式系统架构中,如何实现消息队列集群间的数据同步是确保业务连续…

AI编程工具 | Trae介绍

描述需求就可以自动创建可运行的完整项目了,确实很强! 终端中的报错信息都可以快速作为上下文输入,点击确认就可以自动修改,贼好使! Trae 编程工具详细介绍 一、产品简介 Trae 是字节跳动于 2025 年 1 月 19 日推出的…

【第11话:感知算法基础3】目标检测:深度学习目标检测模型介绍入门及常用模型详解

深度学习目标检测模型介绍入门及常用模型详解 目标检测是计算机视觉的核心任务,需同时完成目标定位(输出边界框坐标)和目标分类(识别类别)。深度学习通过端到端训练显著提升了检测精度和效率,主要分为两类架…

稿定科技:多云架构下的 AI 存储挑战与 JuiceFS 实践

稿定科技(gaoding.com)是一家专注于为企业和个人提供视觉内容创新方案的科技公司,致力于打造全新的设计方式,帮助更多用户轻松掌控设计,创造价值。 随着 AI 技术的加速发展,数据存储和管理成为支撑公司创新…

徘徊识别场景误报率↓77%:陌讯动态时序建模方案实战解析

原创声明本文为原创技术解析,核心技术参数与架构设计参考自《陌讯技术白皮书》,转载请注明来源。一、行业痛点:徘徊识别的现实困境在安防监控领域,徘徊行为识别是保障公共安全的关键技术(如商场防盗窃、园区防闯入等场…

C# 通过第三方库INIFileParser管理INI配置文件

C# 通过第三方库INIFileParser管理INI配置文件目录前言一、添加动态库二、添加接口类代码总结前言 很多时候我们是直接调用系统的C库中的GetPrivateProfileString和WritePrivateProfileString接口来实现管理INI文件的,这个接口最久可以追溯到上个世纪80年代&#x…

政府数字化大屏系统 - Flask实现方案

下面我将设计一个基于Flask的政府数字化大屏系统,包含数据可视化、实时监控和统计分析功能,全套代码下载看底部。 设计思路 使用Flask作为后端框架提供数据接口 前端采用响应式设计,适配大屏展示 使用ECharts实现多种数据可视化 模拟实时…

2025年主流开源音视频播放项目深度解析

音视频技术作为多媒体领域的核心支撑,其开源生态在近年来呈现爆发式发展。从底层编解码引擎到跨平台播放器应用,开源项目已形成完整的技术栈,满足从个人娱乐到企业级流媒体服务的全场景需求。本文将深入剖析2025年最具影响力的五大开源音视频…

【C++详解】AVL树深度剖析与模拟实现(单旋、双旋、平衡因⼦更新、平衡检测)

文章目录一、AVL树的概念二、AVL树的实现AVL树的结构AVL树的插⼊AVL树插⼊⼀个值的⼤概过程平衡因⼦更新更新原则更新停⽌条件插入结点及更新平衡因子的代码实现旋转旋转的原则右单旋右单旋代码实现左单旋左单旋代码实现左右双旋左右双旋代码实现右左双旋代码实现判断旋转中序遍…

C++ 中的 enable_shared_from_this 详解

# C 中的 enable_shared_from_this 详解enable_shared_from_this 是 C 标准库中的一个模板类,用于解决在类的成员函数中需要获取指向自身的 shared_ptr 的问题。## 基本概念当一个对象由 shared_ptr 管理时,如果你想在对象的成员函数中获得一个指向自身的…

day11 - 浮动

1. 标签之间的空白问题 1.1. 问题重现 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Document</title><style>img {width: 100px;}</style> </head> <body><a…