今天我們來講一講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模式飛機開始跟蹤,並注意在意外情況下控制飛機切到自穩或者定點模式。
更多詳細的資料
可參考wiki手冊:
- End -
技術發展的日新月異,阿木實驗室將緊跟技術的腳步,不斷把機器人行業最新的技術和硬件推薦給大家。看到經過我們培訓的學員在技術上突飛猛進,是我們培訓最大的價值。如果你在機器人行業,就請關注我們的公衆號,我們將持續發佈機器人行業最有價值的信息和技術。
本文由博客一文多發平臺 OpenWrite 發佈!