1. 板卡环境搭建
板卡使用 Rock 5B+ (RK3588),后续飞无人机时也将使用此板卡。
第一步:安装系统
参考官方教程将系统安装到 MicroSD 卡或 NVMe。推荐使用 Debian 12 (Bookworm) 内核 6.1 镜像,与 Ubuntu 22.04 类似。
档记录了在 Rock 5B+ (RK3588) 板卡上部署 MAVSDK 控制无人机的完整流程。内容包括 Linux 系统安装、Python 虚拟环境配置、ZeroTier 网络穿透设置、SSH 与 VNC 协同调试。同时介绍了 WSL2 环境下运行 PX4 仿真与 Gazebo 的集成方案,以及 Windows 端 QGC 控制界面的连接配置。针对网络延迟、防火墙拦截、视频流传输等常见问题提供了具体的 Shell 命令与代码修正方案,并包含本地 Flight Review 日志分析工具的部署指南。
板卡使用 Rock 5B+ (RK3588),后续飞无人机时也将使用此板卡。
参考官方教程将系统安装到 MicroSD 卡或 NVMe。推荐使用 Debian 12 (Bookworm) 内核 6.1 镜像,与 Ubuntu 22.04 类似。
按照教程配置中文输入法、SSH 和 VNC。
常见问题: 系统约 15 分钟可能自动休眠黑屏。解决方法是在系统设置 - 节能中关闭所有选项,重启后生效。
按照官方文档安装 Python 虚拟环境及 YOLOv11。
在 RK3588 上,YOLOv11n 模型能跑到 12 帧左右,NPU 占用约为 40%。
sudo cat /sys/kernel/debug/rknpu/load # NPU load: Core0: 41%, Core1: 0%, Core2: 0%
判断桌面管理器(如 GDM3),开启图形界面自动登录。
systemctl status display-manager
sudo nano /etc/gdm3/daemon.conf
# 在 [daemon] 段添加:
AutomaticLoginEnable=True AutomaticLogin=radxa
sudo systemctl restart gdm
创建启动脚本并注册为 systemd 服务。
sudo tee /usr/local/bin/start-vnc.sh >/dev/null <<'EOF'
#!/bin/sh
/usr/bin/vncserver -localhost no -geometry 1280x720 -depth 24
EOF
sudo chmod +x /usr/local/bin/start-vnc.sh
sudo tee /etc/systemd/system/start-vnc.service >/dev/null <<'EOF'
[Unit]
Description=Start VNC once at boot
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
User=radxa
ExecStart=/usr/local/bin/start-vnc.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now start-vnc.service
调整分辨率可使用 xrandr。
Rock 5B Plus 的 2.5G 网卡通常走 PCIe。若掉驱动,可手动加载模块。
lspci -nn | grep -i -E 'ethernet|realtek|network'
dmesg -T | grep -i -E 'r8125|r8169|realtek|ethernet|pci' | tail -n 80
lsmod | grep -i -E 'r8125|r8169'
sudo modprobe r8169 || true
sudo modprobe r8125 || true
ip -br link
配置开机自动加载:
sudo tee /etc/modules-load.d/r8169.conf >/dev/null <<'EOF'
r8169
EOF
使用 ZeroTier 建立虚拟局域网,实现板卡、地面站间的 P2P 穿透。
curl -s https://install.zerotier.com | sudo bash
sudo systemctl enable zerotier-one
sudo systemctl start zerotier-one
sudo zerotier-cli join <NetworkID>
SSH 登录后需指定 DISPLAY 变量以输出 GUI 窗口至 VNC。
export DISPLAY=:1
python your_script.py
永久保存可在 ~/.bashrc 末尾添加 export DISPLAY=:1。
基于 MAVSDK 编写,主要修改 IP 和端口配置。
RK3588 负责无人机控制代码,PX4 和仿真在 WSL2 内实现。Windows 运行 QGC 和控制界面。 建议关闭 Windows 防火墙以获得更好的连接体验。
注意修改涉及 IP 地址的代码。
代码会用 tmux 打开 Gazebo 默认世界和 PX4 节点。默认从 14540 开始。
mavlink start -u 14600 -t 169.254.12.100 -p 14550 -w
注:端口 14600 避免占用仿真口导致循环调用错误。
板卡上 runtime 脚本中的 connect 函数需修改为:
await drone.connect(system_address="udpin://0.0.0.0:14550")
为防止视频流积压,需添加 ZeroMQ 配置:
sock.setsockopt(zmq.CONFLATE, 1)
sock.setsockopt(zmq.RCVHWM, 1)
在 Windows 端设置端口转发:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=5561 connectaddress=127.0.0.1 connectport=5561
netsh advfirewall firewall add rule name="ZMQ 5561" dir=in action=allow protocol=TCP localport=5561
此时能看到无人机连到 Windows 控制界面。
修改 Ultralytics 导入方式及模型路径:
from ultralytics import YOLO
model = YOLO("./yolov11n-visdrone_rknn_model")
同样需在 run_zmq_inference 方法中加入 ZeroMQ 配置。
思翼 A8mini 默认 IP 是 192.168.144.25,端口 8554。 VLC 延迟较高,建议使用 FFmpeg 降低延迟:
ffplay -fflags nobuffer -flags low_delay -framedrop -rtsp_transport tcp rtsp://192.168.144.25:8554/main.264
RTSP 典型延迟为 300-500ms,取决于关键帧间隔 (GOP)。
P2P 路径有超时机制,长时间无通信会过期。可通过定时 ping 维持连接,但效果有限。
测试时发现 Gazebo 仿真环境占用大量带宽。解决方法是定义 GZ_IP 绑定到本地回环。
export GZ_IP=127.0.0.1
在启动脚本中固定 GZ_IP 参数。
WSL2 镜像模式下,外部设备发往 WSL 的入站流量可能被 Hyper-V 防火墙拦截。
解决方案: 在 Windows 宿主机开放允许流量入站 WSL 的端口。
Set-NetFirewallHyperVVMSetting -Name '{VM_ID}' -DefaultInboundAction Allow
New-NetFirewallHyperVRule -Name "WSL-UDP-57002" -Direction Inbound -Protocol UDP -LocalPorts 57002
测试方法:在 WSL 中启动 UDP 监听程序,并在板卡侧发送数据验证。
网页版日志分析较慢,可部署离线版本进行复盘。
sudo apt update
sudo apt install -y git python3 python3-venv python3-pip sqlite3 libfftw3-bin libfftw3-dev
git clone --recursive https://github.com/PX4/flight_review.git
cd flight_review/app
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python setup_db.py
启动服务:
python serve.py --show
在浏览器访问 http://localhost:5006 即可查看日志。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online