大疆无人机连接Jetson主板
更新软件库
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安装
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以上
详情参照博主这篇博文: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

- USB Gadget 相关:通常会显⽰ libcomposite 等模块(这是 USB Gadget 功能的核⼼依赖)。
- USB 转串⼝相关:常⻅的模块包括: usbserial:通⽤ USB 转串⼝驱动框架
ftdi_sio:FTDI 芯片的驱动
pl2303:Prolific PL2303 芯片的驱动
cp210x:Silicon Labs CP210x 芯片的驱动
ch341:沁恒
CH340/CH341 芯片的驱动- 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 djixunxian.service
sudo systemctl start jetsongadget.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*

完整的执行过程:

此时USBbulk便可以了
