劉軒宇,李浩陽,胡子琨
(北京信息科技大學,北京,100089)
四旋翼無人機是一架由遙控站管理、不搭載操作人員的一種動力空中飛行器,四旋翼無人機系統一般包括地面系統、支撐和外觀系統、飛行控制系統、動力系統、任務載荷。
動力系統:電動機;電子調速器;電調連接板;槳葉;電池。
支撐和外觀系統:支撐和外觀系統是指無人機的承載平臺,無人機上所有設備都是用機架承載起來飛上天上的,無人機的機架好壞,很大程度上決定了這部無人機的使用壽命。現在常見的無人機,機架的組成大同小異,主要由中心板、力臂、腳架組成。
飛控系統:四旋翼飛行器的控制系統分為兩個部分:飛行控制和無刷直流電機調速系統。
飛行控制系統通過IMU慣性測量單位(陀螺傳感器和加速度傳感器組成),用于監測飛行姿態,通過無線通訊模塊與地面遙感通訊。
4個無刷直流電機調速系統總線與飛行控制器通信,通過4個無刷直流電機的轉速來改變飛行姿態,整個系統采用低壓電池供電。四旋翼飛行器是通過調節四個電機轉速來改變旋翼轉速,實現升力的變化,從而控制飛行器的姿態和位置,是一種六自由度的垂直升降機。
地面系統:典型的地面站由一個或多個操作控制分站組成,主要實現對飛行器的控制、任務控制、載荷操作、載荷數據分析和系統維護等。
(1)系統控制站:在線監視系統的具體參數,包括飛行期間飛行器的健康狀況、顯示飛行數據和告警信息。
由表3可知,當反應時間達到3 h時酶解基本完全,此時的提取率最高。反應時間過長,可能導致水解蛋白質變性分解,當反應時間達到3 h時最佳。
(2)飛行器操作控制站:它提供良好的人機界面來控制無人機飛行,其組成包括命令控制臺、飛行參數顯示、無人機軌道顯示和一個可選的載荷視頻顯示。
(3)任務載荷控制站:用于控制無人機所攜帶的傳感器,它由-個或幾個視頻監視儀和視頻記錄儀組成。
(4)數據分發系統:用于分析和解釋從無人機獲得的圖像。
(5)數據鏈路地面終端:包括發送上行鏈路信號的天線和發射機,捕獲下行鏈路信號的天線和接收機數據鏈應用于不同的UAV系統,實現以下主要功能:用于給飛行器發送命令和有效載荷;接收來自飛行器的狀態信息及有效載荷數據。
(6)中央處理單元:包括一臺或多臺計算機, 主要功能:獲得并處理從UAV來的實時數據;顯示處理;確認任務規劃并上傳給UAV;電子地圖處理:數據分發;飛行前分析;系統診斷。
本項目的自動巡線無人機主要以飛行控制模塊,OpenMV模塊,動力模塊以及接收機構成。當無人機巡線飛行時,OpenMV模塊中的攝像頭會將采集到的圖像進行分析,判斷循跡線的位置,并通過相應的串口通信把相應飛行指令傳輸給飛控模塊。飛控模塊接收到指令后,向動力模塊輸出PWM值,控制電機速度,改變無人機的當前飛行姿態,完成糾偏過程。整體結構示意如圖1。

圖1 無人機總計結構
巡線模塊采用OpenMV開發板。OpenMV是一款低功耗,小巧靈活,低成本的單片機攝像頭,旨在搭建一種簡單,便捷的單目機器視覺模塊。其核心為STM32H743VI ARM Cortex M7 處理器,480 MHz ,1MB RAM,2 MB flash. 所有的 I/O引腳輸出 3.3V 并且 5V 耐受。其搭載可拆卸的攝像頭模塊系統,可選擇不同的感光元件模組。
無人機飛控,即無人機飛行控制系統,器采用了STM32F765VI單片機,STM32F765VI 采用ARM Cortex-M7為內核,內置陀螺儀(用作飛行姿態的感知),加速幾,地磁感應,氣壓傳感器,超聲波傳感器,光流傳感器,GPS模塊,控制電路組成。無人機飛控保證了無人機的姿態控制及其正常飛行。
圖像采集或傳輸過程會產生噪聲干擾,為了保證我們處理時,圖像的完好性、抑制干擾,以及增強某些對后續處理重要的圖像特征,我們首先需要對圖像進行預處理,進行灰度化處理與濾波噪音。接下來,基于我們確定的某種循跡線的顏色,在OpenMV IDE中的閾值編輯器設置相應的閾值,來判斷像素是否在閾值threshold中,接著將圖像中的像素設置為白色或黑色(如果檢測到符合閾值,則設置為白色,非閾值中設置為黑色),這樣,我們就得到了一張只有黑色背景和白色循跡線的圖像。這一過程又叫做圖像的二值化。圖像二值化效果如圖一所示。
當我們得到一幅二值化圖像后,我們需要調用get_regression線性回歸的函數,對圖像內的所有閾值像素(白色部分)進行線性回歸,線性回歸后的效果就是將圖像二值化分割為綠白兩部分(綠色為循跡線,白色為無關區域),其中magnitude函數可以表示我們線性回歸的效果,其值越大,表明線性回歸的效果越好。其中綠色的回歸線即為我們需要的line對象[2]。我們要利用這個得到的line對象來計算我們需用的兩個pid,來判斷無人機當前位置。
當我們得到經過線性回歸得到line圖像后,我們需要通過對其引導參數,判斷無人機的位置。通過函數計算和坐標變換得到line對象角度的偏移和左右距離的偏離。接下來,設置兩組pid,即rho_pid和theta_pid,將角度偏移距離傳遞theta_pid,左右距離的偏離傳遞rho_pid。我們用這兩組pid識別當前位置,控制無人機運動。當無人機向循跡線左邊方向偏離時,距離偏移減小,循跡線處在視野左方。此時我們可以通過pid的調整使無人機向右偏航。同理,當無人機向循跡線右邊方向偏離時,距離偏移增大,循跡線處在視野左方。此時我們可以通過pid的調整使無人機向左偏航。
當巡線模塊將計算的pid數據傳遞飛控時,飛控需要將數據轉化成電機的pwm值,通過控制四個電機轉速差達到各種偏航動作。本項目 針對電力巡線,故不存在直角轉彎情況,故將飛行分為以下3種(本項目無人機以“X模式飛行”)。
(1)當巡線模塊正常識別到循跡線時,無人機開始向前直線飛行,此時電機M1,M2減速,M3,M4加速。
(2)向左偏離,當無人機位于識別線左方,則無人機已經向左偏離航線,此時應在原有直線飛行的前提下提高M2,M3轉速,無人機向右偏航,直至循跡線處在巡線視野中。
(3)向右偏離,當無人機位于識別線右方,則無人機已經向左偏離航線,此時應在原有直線飛行的前提下(也可適當降低航速)提高M1,M4轉速,無人機向右偏航,直至循跡線處在巡線視野中。
無人機視覺研究的關注度越來越高,吸引了大批科研工作者前來研究[3]。而OpenMV作為一款入門級別的機器視覺開發模塊,其便捷性及便利性也被人認可。本文即通過OpenMV模塊無人機連接,最終實現自主巡線飛行。