黃永吉,翁發祿,韋 輝,侯磊磊
(江西理工大學,江西 贛州 341000)
四旋翼無人機質量輕,體積小,可垂直起降及懸停,在執行飛行任務時具有很強的機動性和很高的靈活性[1-2]。近些年來,不管是在學校的教學試驗、電力巡線、森林火情,還是在基礎工程施工等諸多領域中,人們都能發現四旋翼無人機的身影[3-5]。本文主要以STM32系列高性能的STM32F407芯片為控制芯片,利用豐富的串口連接GPS和OpenMV等外設,進而通過GPS的位置信息和OpenMV的視覺模塊,協同完成四旋翼多點飛行、巡航等自主飛行任務及避障動作,達到智能控制的效果,并通過實驗說明其有效性。
四旋翼無人機智能控制系統主要包含點對點自主飛行和智能避障。點對點自主飛行是基于GPS的定點飛行。其利用無線通訊模塊將四旋翼無人機和PC端進行連接,通過地面站向四旋翼發送飛行模式指令、目標位置坐標及行程軌跡,從而指導無人機完成相應的飛行任務。智能避障考慮的是無人機在飛行過程中遇到障礙物時,能夠通過視覺模塊識別障礙物,并做出規避障礙物的飛行動作,最終完成飛行任務的過程。本文在系統設計中主要完成了以上功能的硬件及軟件設計。
四旋翼無人機的硬件主要有核心板(包含STM32F407、MPU6050、磁力計、氣壓計、EEPRO等芯片)、電源(標稱電壓為11.1 V的可充電鋰離子航模電池)、5 V穩壓、電調(空模無刷馬達電子調速器)、無刷電機、遙控器(含接收機)和GPS等。核心控制芯片STM32F407是一種高性能、低成本、低功耗,且帶有DSP和FPU的控制芯片,能夠輕松應對無人機飛行過程中數據處理與傳輸需求。MPU6050是一6軸運動處理組件,能夠利用其判斷四旋翼無人機飛行姿態。通過MPU6050配合三軸磁力計(AKM8975),可形成完整的9軸運動,進而實現四旋翼無人機偏航角度判斷。無人機定高主要基于高精度氣壓計(SPL06)采集氣壓值來判斷無人機的飛行高度。2.4 GHz的6通道遙控器為無人機調試過程中的輔助工具,用于調試無人機起降、橫滾、俯沖、偏航和模式切換等動作,同時用于判別上位機給予信號時能否依據指令完成相應動作,達到確保無線模塊正常通訊的目的。GPS主要用于得到無人機當前坐標位置?;贕PS得到坐標位置實現無人機定點飛行及軌跡跟蹤等任務。系統選用輸出電流20A,瞬時電流25 A的高性能電調,其具備輸入電壓異常保護、電池低壓保護、過熱保護、油門信號丟失保護等多種保護功能。系統基于OpenMV完成圖像處理,進而實現障礙物識別。無人機與地面站的通訊采用2.4 GHz頻段全雙工通訊方式,保證了圖像與監控信號及時傳送與接收。硬件連接及連接方式如圖1所示。

圖1 硬件框圖
1.2.1 控制程序
四旋翼無人機控制程序主要包括中斷優先級組別配置、時鐘配置、系統初始化、與地面站的通訊和系統循環檢測與控制。系統主要通過NVIC_PriorityGroup Config()函數實現中斷優先級配置,優先級組別為2(其中占先優先級2位/4級,副優先級2位/4級)。時鐘配置主要由SysTick_Configuration()函數完成。ALL_Init()函數完成初始化所有接口及外設。初始化完成且經過短暫延時后,向地面站發送GPS位置信息,并轉入系統循環檢測與控制,系統控制流程如圖2所示。

圖2 控制程序流程圖
控制模式主要包括遙控器控制下的姿態模式、定點模式、定高模式,上位機控制下的定點模式、定高模式、多點模式(依據坐標信息多點依次自主飛行)、巡航模式(依據坐標及半徑,做圓周自主飛行)??刂葡到y可以根據指令選擇與上位機建立通訊,并接收上位機飛行模式選擇指令。在通訊建立后,上位機發送無人機飛行的坐標位置、高度等數據信息給無人機控制系統。同時,控制系統根據所接收的信息完成相應的飛行任務,并將姿態數據、當前位置信息實時傳輸回上位機。當上位機通訊信號意外中斷時,無人機控制系統先判斷GPS信號是否正常。若GPS信號正常,無人機將飛至預先設定的返航點;若GPS信號異常,控制系統將控制無人機就地降落上鎖,同時保存最后位置信息??刂瞥绦蛑饕贙eil 5完成編寫、編譯及燒錄??刂瞥绦虻闹骱瘮等缦?。


1.2.2 地面站
地面站為四旋翼的監控端及人機交互接口,主要包括如下功能:①地面站向四旋翼發送控制數據,同時接收四旋翼傳回的飛行狀態數據;②依托通訊協議對收到的四旋翼狀態數據進行解析,并將解析后的數據通過地面站界面顯示;③接收操作員輸入的控制信息,并將信息轉換成無人機控制指令發送給四旋翼,實現控制要求;④信號丟失報警、障礙物距離報警及發出規避控制命令。地面站主界面如圖3所示。本文主要基于C#語言等[6]編程軟件完成地面站程序的設計與實現。

圖3 地面站主界面
1.2.3 避障程序
避障部分主要實現障礙物識別、四旋翼與障礙物之間距離判斷及數據傳輸。在避障判斷的過程中,系統主要依據攝像組件及OpenMV實現障礙物抓取。避障流程如圖4所示。在飛行器飛行過程中,攝像組件不斷掃描前方是否有障礙物。若是掃描到障礙物,OpenMV將進入圖像智能識別階段,主要判斷障礙物的大小及與飛行器的距離。多次實驗發現障礙物距離飛行軌跡的最短距離大于40 cm時為安全距離。因此,當識別到飛行軌跡距離障礙物小于40 cm時,便判定該障礙物為危險障礙物,并對障礙物的寬(X)和高(Y)進行比較。當寬(X)比高(Y)大時,便向核心板發送“3B”,命令四旋翼向上避讓;當寬(X)比高(Y)小時,通過判斷障礙物偏離四旋翼正前方情況進行避讓。當障礙物偏右時,核心板發送“3A”控制無人機向左避讓;當障礙物偏左時,核心板發送“3C”控制無人機向右避讓。通過測試,攝像模組能夠識別到障礙,并識別出障礙物的高和寬,如圖5(a)所示。對于大小不一的障礙物,攝像模組也能夠對其進行準確識別,并與核心板及時通訊,如圖5(b)所示。

圖4 避障判斷與執行

圖5 障礙物識別與避讓測試
本文主要討論了四旋翼飛行器智能控制方法設計,利用了GPS定位技術和OpenMV的圖像處理功能,實現了無人機多點飛行任務,能夠自主躲避飛行過程中遇到的障礙物,確保了四旋翼無人機的飛行安全,并通過實驗說明了相關控制方法的有效性。但是本文沒有涉及多無人機的協同智能控制及路徑優化等相關領域,這些將是筆者在今后的研究中需要進一步完善之處。