標籤:基本 mod 開發 環境 lips 處理 程式設計語言 ad轉換 art
DIY一個基於樹莓派和Python的無人機視覺跟蹤系統
無人機通過圖傳將航拍到的映像儲存並即時傳送回地面站差點兒已經是標配。假設想來點進階的——在無人機上直接處理拍攝的映像並實現自己主動控制要怎麼實現呢?事實上視覺跟蹤已經在一些高端的消費級無人機上有了應用,只是玩現成的永遠沒有自己動手來勁;)。
前段時間DIY了一個無人機三軸雲台的視覺跟蹤系統,除去雲台花了¥370,本文將設計思路與實驗效果分享出來。
一、基本配置
1.1 硬體
- 計算平台:樹莓派3 (¥219.00)
- 網路攝影機:USB網路攝影機(¥108.00)
- 雲台:參考上一篇博文FY650的組裝
- JoyStick搖杆:用於測試和幹預雲台(¥8.00)
- Arduino UNO開發板:用於JoyStick輸出訊號的採集與AD轉換並與樹莓派串口通訊(¥35.00)
1.2 軟體
- 程式設計語言:Python
- 整合式開發環境1:Eclipse。在windows平台上的視覺演算法編程調試
- 整合式開發環境2:Geany,在Linux平台上的演算法與雲台聯調
1.3 準備知識
前面的幾篇博文分別介紹了這個系統用到的基本知識:
- 樹莓派機器視覺編程環境搭建(點我)
- Python機器視覺編程環境搭建
- 自己主動控制系統的PID調節
- 飛越650無人機的安裝
二、設計步驟
2.1 雲台調試
(1) 搭建一個用JoyStick控制雲台轉動的系統
由於樹莓派GPIO沒有類比輸入口。因此JoyStick接Arduino完畢輸入類比訊號的AD轉換。並將轉換後的訊號通過串口發送給樹莓派。
通過這個系統結合示波器,搞清楚了所用雲台轉動控制的原理和控制訊號特徵。雲台調試階段系統串連圖例如以下所看到的。終於通過樹莓派的GPIO控制雲台俯仰和水平轉動。一開始想用Gopro作為視頻採集裝置,但查了非常多資料也嘗試了各種方法發現臨時沒法實現(假設有的話請留言告訴我:)。因此換了個廉價的網路攝影機。
Gopro能夠通過wifi將映像即時傳給手機或pad。就是不能傳給樹莓派。
(2) 編寫雲台控制演算法
依據上一步得到的雲台控制訊號特徵。編寫雲台控制演算法。輸入是目標中心與映像中心的位移量△x,△y,輸出為雲台俯仰、水平的控制變數dx,dy。
是的,網路攝影機外殼是紙糊的-_-。
2.2 演算法調試
(1) 在windows平台上寫跟蹤演算法
USB網路攝影機接上電腦用Eclipse寫跟蹤演算法,輸出偏差量等參數調試。
(2) 拷貝演算法到樹莓派調試
由於樹莓派有多個GPIO可連雲台,因此雲台跟蹤控制必需要在樹莓派上調試。Python多平台部署的長處在這就體現出來了,直接將演算法複製到樹莓派就可以執行調試。調試過程稍有點複雜,一開始的效果不好。耐心調,耐心改演算法,效果也就慢慢出來了。
動起來的效果我們來看看以下的內容。
三、跟蹤示範
室內跟蹤效果視頻連結:http://www.tudou.com/programs/view/68JDFqex1yM/
跟蹤效果:
眼下雲台和網路攝影機已經裝上650無人機,航拍時的效果還有待實驗。歡迎留言或郵件[email protected]討論:)
轉載請註明出處(本文更新連結):http://blog.csdn.net/iracer/article/details/54837636
DIY一個基於樹莓派和Python的無人機視覺跟蹤系統