帶你了解P600吊艙是如何實現對特定目標,進行框選追蹤跟隨的

明日情報 發佈 2022-03-03T07:20:29+00:00

Prometheus 600(P600)是一款准行業級無人機研發平台,適用於無人機行業應用開發與室外環境下的無人機算法驗證。

Prometheus 600(P600)是一款准行業級無人機研發平台,適用於無人機行業應用開發室外環境下的無人機算法驗證。P600作為Prometheus自主無人機開源項目在無人機應用領域的拓展型號,選擇了以長續航著稱的PX4開源無人機DP1000作為主體,搭載適配ROS機載系統Prometheus V1.0-stable的機載計算機;在擁有比肩行業級無人機穩定性與續航能力的同時,仍然具備基於PX4/ROS的二次開發潛力。P600可輕易地搭載雲台吊艙、雷射雷達與圖數傳一體組網鏈路等掛載設備,實現基於視覺的目標識別框選追蹤雷射雷達避障室外指點飛行等功能,和超視距多機組網+圖數傳通信的能力;相關功能的Demo與原始碼均發布在Prometheus開源項目中。此外,P600的三層拓展空間也支持RTK、全相視覺模塊、遠距離圖傳等第三方設備;可通過科迪威動力開源的飛控固件電路結構圖,定製服務不同方向的准行業級無人機。


今天我們來講一講P600室外無人機亮點功能之一「吊艙框選跟蹤」。該平台配置USB接口的Q10F十倍變焦單光吊艙,並開發了其專用ROS驅動;通過機載系統中內置的KCF框選追蹤算法,基於圖像視覺實現對特定目標(人/車/其他無人機等…)的框選、追蹤與跟隨。下面將分別從原理說明和實機操作兩方面進行描述。


一、原理說明

1、KCF原理

KCF(Kernelized Correlation Filters)是一種鑑別式追蹤方法,這類方法一般都是在追蹤過程中訓練一個目標檢測器,使用目標檢測器去檢測下一幀預測位置是否是目標,然後再使用新檢測結果去更新訓練集進而更新目標檢測器。而在訓練目標檢測器時一般選取目標區域為正樣本,目標的周圍區域為負樣本,當然越靠近目標的區域為正樣本的可能性越大。KCF相對於其他的tracking-by-detection方法速度得到了極大的提升,效果也相對較好。

KCF算法流程圖

2、節點圖

吊艙跟蹤節點圖如下圖所示:

3、跟蹤控制原理與主要消息流

控制說明:tracker_ros節點訂閱來自吊艙的圖像話題,得到xy偏移量和原本框大小和實際框大小,都在position_diff話題裡面。xy的偏移量在serial_node節點由PID得到吊艙偏航橫滾的控制量並通過串口二發給吊艙。原本框大小和實際框大小在target_tarcking節點由PID得到無人機x方向的期望速度。

吊艙控制

俯仰角控制:PID控制(誤差來自檢測框與相機圖像中心點上下偏離的距離)偏航角控制:PID控制(誤差來自檢測框與相機圖像中心點左右偏離的距離)吊艙俯仰角和偏航角的PID代碼如下:

無人機跟蹤控制

無人機偏航是讀取吊艙偏航,並和吊艙偏航保持一致。X方向速度控制:PID控制(誤差來自當前檢測框的大小和最初手動框選大小的差)X方向速度的PID控制代碼如下:

二、實機操作

室外測試需要使用NoMachine連接TX2的遠程桌面,同時在TX2上框選要跟蹤的目標在完成初步測試之後,讓飛手在自穩模式或定點模式下試飛飛機,飛機正常則返回地面繼續下面步驟啟動

fly_track_outdoor.sh

文件

/home/amov/track_ws/src/px4_command/sh/sh_for_P200/fly_tracking_outdoor.sh

觀察各個終端,確保都沒有錯誤在倒數第三個終端窗口輸入0選擇PID,輸入1選擇GO ON

在倒數第二個終端窗口輸入1選擇go on,輸入777選擇track

飛手嘗試切換offboard模式,能切換成功則在position模式下飛到一定高度。框選目標觀測速度數據是否正常,正常則繼續框選目標:

飛手切offboard模式飛機開始跟蹤,並注意意外情況下控制飛機切到自穩或者定點模式。



關鍵字: