作者: 小帥龍
代碼倉庫: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瀏覽量
122662 -
無人機
+關注
關注
234文章
11157瀏覽量
193680 -
目標跟蹤系統
+關注
關注
0文章
4瀏覽量
6078 -
RT-Thread
+關注
關注
32文章
1551瀏覽量
44351
發布評論請先 登錄

基于FD-SST 的無人機目標跟蹤系統的設計與實現|技術集結


評論