丁嘉偉,聞凱,桂敬亮
(南京航空航天大學金城學院,江蘇南京,211156)
全自動多軸飛行器模擬搜救系統是一款主要飛行器系統與搜救系統兩大部分組成,其中飛行器系統以成熟的六軸飛行器為主要平臺,通過搭載pixhawk開源飛控系統進行相關設計,搜救系統主要由機械臂,機械爪組成,通過使用arduino開發系統進行控制處理,配合視覺識別處理技術提高系統感知能力與抓取可靠性。
飛控采用開源飛控pixhawk配合地面站軟件mission planner[1]。相較于市面上其他開源飛行控制器,此款飛控支持多種無人機機型,并能夠根據負載大小設定合適的無人機飛行參數,配合GPS全球定位模塊系統在地面端規劃飛行路徑以實現自主巡航,自主定位等相關功能。
機械臂采用多級結構設計,采用上下雙層結構,上層結構為支架和固定的45齒同步輪。支架選擇了堅固的2020型鋼,通過t型滑塊螺母魚5mm椴木板固定;45齒同步輪和和360°舵機連接的30齒同步輪進行配合,進行控制旋轉舵機板的轉動。
其設計目的主要是能夠讓機械臂能夠到達無人機正下方的任何地方,使得其不存在死角,使得后面能進行全方面的抓取。
機械爪部分分為滑塊直線軸承板,升降臂和機械爪滑塊直線軸承板就是通過2組同步帶輪帶動升降舵機掛板進行水平移動,豎直的一組是30齒主動輪帶動15齒從動輪從動,從動輪再將動力借由光軸帶動水平齒輪移動從而控制升降舵機掛板,在確定好位置以后通過齒輪機械臂升降,最后經由機械爪抓取,機械爪如圖1所示是由四組機械只抓,舵機,限位擋板組成,限位擋板如圖2所示是由2組完全一樣的螺旋曲線構成,將機械只抓固定好相應的位置,舵機旋轉帶動只抓的開合,從而控制爪的抓取。

圖1 機械爪

圖2 限位擋板
由上位機運行視覺代碼對回傳的實時畫面進行識別處理,將處理后獲取的位姿信息發送給下位機下位機接收上位機的數據對機械臂進行控制,整體流程如圖3所示。

圖3 流程圖
攝像頭采用普通1080P USB攝像頭,拍攝目標為黑白棋盤網格紙。
參考張正友標定法原理,相機內外參數標定方法有多種標定方法。到目前為止使用最多的是經典標定法中的張氏相機標定法,它相對經典標定法解決了標定物制作精度要求高的問題,其精度比自標定法的更高,且制作模板更容易,降低了成本低、便于實現、魯棒性好、精度高,任何人都可以快速、方便、準確地獲取到相機的畸變參數以及各內外參數。Open CV視覺庫以及Matlab視覺處理庫都是基于張正友標定原理來求解相機參數的[2]。
將攝像頭拍攝的25張棋盤網格照片導入MATLAB獲取相機畸變參數,其需要參數為五個,分別為3個徑向畸變(k1,k2,k3)以及2個切向畸變(P1,P2)。

調用Open CV 開源視覺庫展原圖象如圖4所示和標定后的圖象如圖5所示。

圖4 標定前圖象

圖5 標定后圖象
可明顯的觀測到標定后的圖象更接近于現實中人眼所看到的圖象,其邊部不在有由畸變而引起的彎曲。標定目的是方便運用相機獲取物體實際的物理信息。
先根據目標對象和機械爪的特征分別鎖定其在畫面中的二維坐標,再根據標定后無畸變的圖象搭配pnp算獲法獲取目標對象和機械爪的三維坐標點,從而計算出目標對象相對機械爪在實際中的相對物理差值。運用標定后的攝像機對機械爪和目標小球的位置進行實時獲取,再進行實時解算這樣就可以實時獲取機械爪相對目標物體的物理偏差值,這樣就可以在機械臂移動出現誤差時進行及時的回調補救。
根據目標對象和機械爪的相對位給下位機發送指令,如:當機械臂與目標物的X軸和Y軸的相對值為0時,向下位機發送下降機械臂的指令。當Z軸相對值為一定值a(機械爪可抓取目標)時發送抓取命令。最后將相對位置差和相對的控制命令打包成數據包運用串口通信發送給下位機。每一幀循環都執行發送流程從而達到實時調控的效果。
使用Arduino Mega2560作為下位機主控,程序編寫使用Arduino IDE,根據機械結構建立極坐標系,單片機通過無線串口接收數據后,處理上位機視覺識別發送過來的數據包,進行相應的動作,為避免發生聯動錯亂,控制順序為轉動,滑動,抓取。
轉動結構使用360度可持續旋轉舵機,單片機調用pwm庫,產生小于1500us的脈寬逆時針旋轉,大于1500us順時針旋轉,差值越大轉速和扭矩越大。根據轉速計算時間達到控制轉動到指定角度的效果。


滑動結構選用42步進電機,采用霍爾編碼器讀取直流電機脈沖數,結合位置式PID算法公式,配合驅動來控制電機輸出準確脈沖數[3]。當發出位置指令后,控制步進電機旋轉指定位置,并計算出誤差進行補償。
其調試過程相對復雜與繁瑣,但卻是及其重要的一個環節,整個機械臂的實際抓取準確率和靈活度都取決于調試時的優化。本次調試主要分為三步:第一步,視覺代碼優化,提高其識別的準確率和識別精度。第二部,電控代碼優化,對上位機的數據進行一個濾波處理,提高機械臂的靈活度。第三步,視覺與電控聯動調試,調整其機械臂實際抓取的偏差。在實際調試中依次按上述步驟反復進行,從而達到整體系統的最優化。
對實際抓取進行測試其抓取次數和抓取成功次數如圖6所示,其相對應的抓取成功率如圖7所示

圖6 抓取與抓中次數

圖7 抓取成功率成功率
其視覺算法與電控的算法相對于傳統的視覺識別控制,不再是識別后等待機械臂執行完成后再次發送修正指令,該視覺設計可以實時監控機械臂對其控制進行實時修正。
由以上測試可知在實際測試的過程中仍會存在一些實際偏差。雖然并不會如理想環境下那么精確。但在其自主識別抓取的前提下,其平均抓取成功率依然能夠達到76%的準確率。其主要原因還是其視覺算法的實時調控起到了關鍵性的作用,使得機械臂在實際操作的過程中如果出現視覺可識別的誤差能夠及時修正。
在理想狀態下,其準確率是可以達到95%的,其產生實際主要誤差的原因分別是機械臂的結構和電控使得機械臂在轉動中仍然存在一些位置的偏移,另一個則是其視覺識別的效果受設備和環境的各種影響,其實際識別率會存在一個誤差,使得即使標定后其測定得的實際相對位置差值也會存在一定誤差。從而使得實驗測試中的平均抓取成功率只有76%。其相應的解決方案分別是提高機械臂機械結構的制作精度,優化視覺和控制算法的代碼,以及選用拍攝效果更好識別精度更高的攝像頭或者使用雙目攝像頭也能大幅的提高可識別精度,識別率則可以增加深度學習算法對機械爪和目標對象進行一個訓練,這樣整體系統的識別與抓取效果就可以有一個很大的提升以及具有很高的魯棒性。
本文主要介紹設計一款全自主自動飛行的多軸飛行器的模擬搜救系統,通過對其飛控系統,模擬搜救系統,視覺處理系統以及控制系統的相關設計方案進行了闡述與研究,分析了實際過程中可能遇到的問題并提出了相應的解決方法,對多軸飛行器模擬搜救的實際設計與應用具有較高的參考價值[4]。