無人機目標跟蹤系統設計

 

視頻鏈接:

https://www.bilibili.com/video/av24220271

https://www.bilibili.com/video/av24220271

https://www.bilibili.com/video/av24181594

去年電賽的經歷,讓我對此深有體會,包括電賽的尋線和追小車,我們都是使用的openmv,首先我要承認openmv的確不錯,至少在色塊檢測中幫了我們很大的忙,關鍵是容易上手,調試方便快捷。但是其處理性能實在不敢恭維,尤其是做人臉識別,手勢識別,光流定點之類的,性能不夠用,我尤其是想做特徵點檢測的,但是openmv根本實現不了那些高大上的功能,而且距離也受限制。思考再三我們打算採用樹莓派,但是實際測試尤其是跑光流的時候,也是比較卡,那就更不用說人臉識別和特徵點檢測之類的了。目前看來只有使用電腦處理了,但是電腦在現在的電賽中一般是不允許使用的,如果是真愛,你就不會爲了比賽而比賽

 

 

無人機目標追蹤代碼編寫
考慮到部分同學可能不知道怎麼修改基於無人機地面站追蹤的飛控程序,特此做了一個比較詳細的教程。代碼已經成功移植到飛控上,而且就在昨天3月25號已經測試了,代碼可用,但是PID控制參數需要優化。僅供大家參考。以下程序適合市面上所有開源的無人機飛控。大家只需要把一個c文件和一個h頭文件添加到你的飛控程序,然後按照下面的步驟修改即可。第一步向飛控程序裏面添加c文件和.h頭文件

 

這兩個文件也是小編整理的哦,花了我一天時間呢。可以直接添加到任何開源飛控,不依賴於任何飛控平臺。當然變量和函數的命名不能和你的自身飛控代碼定義的衝突哈!其實這個代碼我們電賽教學視頻裏面講解的巡線和追蹤思路一樣,巡線和追車其都是屬於位置控制。具體內容請結合電賽教學視頻。

 

 

 

第二步向飛控程序裏面添加串口接收程序:
我這裏以串口5爲例。
首先在main函數初始化程序部分先初始化串口
 
其次粘貼串口部分:
初始化串口的函數


接下來寫串口接收中斷部分
 

 

 

 

好啦,寫到這個位置我們的串口數據接收部分就完成了,那麼接下來就該寫我們拿這個數據來進行位置控制,
第三步 找到你的飛控程序的任務調度部分,添加第一步.c文件裏面的位置控制函數

位置控制函數在我們的.c 文件裏面寫好了哦

最後通過PID控制就把我們自己的postion_Roll和Position_Pitch計算好了哦。
第四部姿態控制部分
找到你的飛控程序的串級姿態控制的的外環(角度環),添加我們的姿態控制角度

好的,所有的都寫完了,我們3月26號測試了一下數據的正確性,然後測了一下高空追蹤追蹤效果可以,但是PID參數不夠好需要進一步優化,沒時間啦,月底就出去工作了,剩下的就交給大家去調試吧。
哦忘了第五步了模式切換,通過六通道,也就是輔助2通道的閾值來進行模式切換。找到你的飛控程序的遙控接收部分,設置一下Mode的值吧
 
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章