作者: 小帅龙
代码仓库:GitHub - xiaoshuaidragon/2025_ruiqing_rtt
1. 应用实现功能
1.本应用基于睿擎派,实现了对无人机目标的实时跟踪,并将跟踪结果用于驱动两轴转台完成自动指向。主要功能包括:使用 FD-SST 算法在视频流中实时跟踪无人机目标,输出目标在图像中的坐标。
2.通过 UDP 将视频流传输给上位机。
3.通过 RPMsg 将坐标共享给 RT-Thread,RT-Thread 通过 RS485 协议与转台进行交互。
2. RT-Thread 使用情况概述
●本应用基于 RK3506 的 AMP 架构:Linux 核: 负责高计算量任务,如视频处理、FD-SST 跟踪、通讯协议栈等。
●RT-Thread 实时核 (RTOS): 负责实时性要求高的控制逻辑,例如转台控制指令下发。
1.RT-Thread 在本系统中承担关键作用,主要用于实时获取坐标、解析、生成指令,并通过 RS485 以固定周期、稳定时序发送给转台内部伺服控制器。我们希望 RS485 命令发送周期稳定,延迟一致,不被其他任务阻塞以及串口发送时序可靠。因为一旦发送间隔不稳定,转台可能会表现为抖动、向目标指向延迟变大等问题。RT-Thread 是轻量级嵌入式实时操作系统,具备以下优势:实时性强(低延迟、低抖动)。
2.任务调度是确定性的。
3.高优先级任务不会被非关键任务延迟。
4.中断响应非常迅速。
5.在本项目中,RT-Thread 的具体作用总结为:实时坐标接收 (RPMsg),保证坐标数据不延迟、不丢帧。
6.转台动作指令生成。
7.RS485 通信的稳定发送。
3. 硬件框架说明
●整体硬件框架如下:主控芯片: RK3506CPU0, CPU1:用于 Linux 核。
○CPU2:用于 RT-Thread 核。
●视频采集: 通过相机采集视频数据(由于睿擎派和红外相机适配问题,本项目采用将视频保存在本地的形式,作为 FD-SST 算法的输入),在 Linux 核上实现。
●数据通信: 通过网线、UDP 协议,把跟踪结果实时传递给上位机,在 Linux 核上实现。
●转台控制: 通过串口,根据坐标框在视频中的位置转换为相应指令,发送给转台,这部分在 RT-Thread 核上实现。
4. 软件框架说明
1.整体软件框架分为 Linux 部分和 RT-Thread 部分。Linux 部分:Linux 端运行于 RK3506 的 CPU0 和 CPU1,负责摄像头视频采集、FD-SST 单目标跟踪、数据共享中转、RPMsg 通信及 UDP 视频流转发。系统采用多进程 + 共享内存 + IPC 通信机制,实现图像、坐标与数据传输任务的解耦,使整个结构稳定、高效且易扩展。Linux 端包含以下三个独立进程:FD-SST 进程: 图像处理与目标跟踪核心进程。
2.RPMsg 发送进程: 向 RT-Thread 实时核传递坐标。
3.UDP 视频进程: 将视频帧发送到上位机显示。
4.Linux 端采用“三进程 + 共享内存”的高效架构,将图像采集与 FD-SST 跟踪、RPMsg 坐标发送、UDP 视频流发送三个核心任务彻底解耦。这种结构充分利用了多核资源,减少各任务之间的阻塞,提高整体系统的实时性与稳定性。RT-Thread 部分:RT-Thread 在本系统中主要承担实时控制与执行层的角色,通过定时调度机制实现对转台的稳定控制。整体软件框架可分为五个关键模块:主控制线程、RPMsg 通信模块、坐标队列与数据管理模块、控制策略模块、RS485 指令下发模块。整体流程如下所示:RPMsg 接收线程从 Linux 获取最新目标坐标 → 存入坐标缓存。
5.控制主线程每 20 ms 运行一次。
6.控制线程从缓存读取目标坐标。
7.调用控制策略模块计算需要输出的转台动作(角度)。
8.通过 RS485 模块将指令发送到转台伺服控制器。
9.转台执行动作 → 云台跟踪无人机。
10.下一个 20 ms 周期继续执行。

5. 软件模块说明
5.1 FD-SST 跟踪算法模块
●功能说明: 负责摄像头采集视频帧,并对每帧图像进行 FD-SST 单目标跟踪。考虑到 RK3506 板上资源有限且无 NPU,未采用 YOLO 等重型算法,而是直接给定框选初始目标区域 (ROI),之后持续进行跟踪。将每一帧的原始图像(用于 UDP 发送)和目标坐标(用于 RPMsg)写入系统共享内存供其他进程实时读取。
●算法原理: FD-SST (Feature-Driven Spatial-Selective Tracking) 是一种轻量级、鲁棒性强的单目标跟踪算法。它以模板匹配为核心,通过特征提取、候选区域生成、空间选择与自适应更新实现对高速移动目标的稳定跟踪。其核心思想是在上一帧目标位置附近快速搜索候选区域,通过特征相似度找到最优匹配区域,并按一定原则更新目标模板,以此减少运算量。
5.2 UDP 视频传输模块
●功能说明: 从共享内存中获取最新视频帧,将视频帧编码并通过 UDP 发送给上位机展示。会叠加跟踪框以提高可视化效果。该模块与 RPMsg 通道、FD-SST 进程互不阻塞,网络波动不会影响算法逻辑。
5.3 RPMsg 发送模块 (Linux → RT-Thread 坐标传递)
●功能说明: 每帧从共享内存中读取最新的目标中心坐标,将坐标进行数据打包后,通过 RPMsg 虚拟通道发送到 RT-Thread 实时核。保证坐标数据以低延迟方式抵达实时控制端。
5.4 实时转台控制模块 (RT-Thread 端)
●功能说明: 该模块实现了从“获取目标坐标 → 计算动作指令 → 控制转台执行”的完整实时闭环控制。模块通过 RPMsg 接收坐标并更新本地缓冲区。内部构建了一个高优先级控制线程,以固定 20 ms 的周期运行,读取最新坐标,根据目标偏差计算转台的角度或角速度指令,并通过 RS485 下发指令给转台伺服系统。
6. 演示效果
请访问原文获取视频:
https://club.rt-thread.org/ask/article/85cbbe0e6497989a.html
这里考虑到fdsst算法的输入是本地视频,转台的转动没有实际意义,因此转台控制部分只是简单做了一个定时发送485指令的效果。
7.代码地址
请访问原文获取地址:
https://club.rt-thread.org/ask/article/85cbbe0e6497989a.html
8. 总结
1.本项目基于睿擎派的 AMP 架构,通过在 Buildroot 系统配置中加入 OpenCV、H264、FFmpeg 等相关配置,实现了在 Buildroot 系统内对无人机目标的跟踪效果。同时利用 RPMsg 作为 RT-Thread 和 Linux 之间的交互手段,将需要严格定时控制的部分放在 RT-Thread 中,充分发挥其中断延迟低、任务切换快的优势。开发中遇到的问题与展望:内部存储空间较小,配置 Buildroot 后需调整parameter.txt中的内存分配。
2.RK3506 的算力资源有限,未来希望基于 RK3588 等带有 NPU 的芯片,以便部署神经网络图像算法。
版权声明: 本文为 RT-Thread 论坛用户「小帅龙」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
-
RTOS
+关注
关注
25文章
863浏览量
122619 -
无人机
+关注
关注
234文章
11144浏览量
193408 -
目标跟踪系统
+关注
关注
0文章
4浏览量
6077 -
RT-Thread
+关注
关注
32文章
1543浏览量
44295
发布评论请先 登录

基于FD-SST 的无人机目标跟踪系统的设计与实现|技术集结


评论