劉軒宇,李浩陽(yáng),胡子琨
(北京信息科技大學(xué),北京,100089)
四旋翼無(wú)人機(jī)是一架由遙控站管理、不搭載操作人員的一種動(dòng)力空中飛行器,四旋翼無(wú)人機(jī)系統(tǒng)一般包括地面系統(tǒng)、支撐和外觀系統(tǒng)、飛行控制系統(tǒng)、動(dòng)力系統(tǒng)、任務(wù)載荷。
動(dòng)力系統(tǒng):電動(dòng)機(jī);電子調(diào)速器;電調(diào)連接板;槳葉;電池。
支撐和外觀系統(tǒng):支撐和外觀系統(tǒng)是指無(wú)人機(jī)的承載平臺(tái),無(wú)人機(jī)上所有設(shè)備都是用機(jī)架承載起來(lái)飛上天上的,無(wú)人機(jī)的機(jī)架好壞,很大程度上決定了這部無(wú)人機(jī)的使用壽命?,F(xiàn)在常見(jiàn)的無(wú)人機(jī),機(jī)架的組成大同小異,主要由中心板、力臂、腳架組成。
飛控系統(tǒng):四旋翼飛行器的控制系統(tǒng)分為兩個(gè)部分:飛行控制和無(wú)刷直流電機(jī)調(diào)速系統(tǒng)。
飛行控制系統(tǒng)通過(guò)IMU慣性測(cè)量單位(陀螺傳感器和加速度傳感器組成),用于監(jiān)測(cè)飛行姿態(tài),通過(guò)無(wú)線通訊模塊與地面遙感通訊。
4個(gè)無(wú)刷直流電機(jī)調(diào)速系統(tǒng)總線與飛行控制器通信,通過(guò)4個(gè)無(wú)刷直流電機(jī)的轉(zhuǎn)速來(lái)改變飛行姿態(tài),整個(gè)系統(tǒng)采用低壓電池供電。四旋翼飛行器是通過(guò)調(diào)節(jié)四個(gè)電機(jī)轉(zhuǎn)速來(lái)改變旋翼轉(zhuǎn)速,實(shí)現(xiàn)升力的變化,從而控制飛行器的姿態(tài)和位置,是一種六自由度的垂直升降機(jī)。
地面系統(tǒng):典型的地面站由一個(gè)或多個(gè)操作控制分站組成,主要實(shí)現(xiàn)對(duì)飛行器的控制、任務(wù)控制、載荷操作、載荷數(shù)據(jù)分析和系統(tǒng)維護(hù)等。
(1)系統(tǒng)控制站:在線監(jiān)視系統(tǒng)的具體參數(shù),包括飛行期間飛行器的健康狀況、顯示飛行數(shù)據(jù)和告警信息。
由表3可知,當(dāng)反應(yīng)時(shí)間達(dá)到3 h時(shí)酶解基本完全,此時(shí)的提取率最高。反應(yīng)時(shí)間過(guò)長(zhǎng),可能導(dǎo)致水解蛋白質(zhì)變性分解,當(dāng)反應(yīng)時(shí)間達(dá)到3 h時(shí)最佳。
(2)飛行器操作控制站:它提供良好的人機(jī)界面來(lái)控制無(wú)人機(jī)飛行,其組成包括命令控制臺(tái)、飛行參數(shù)顯示、無(wú)人機(jī)軌道顯示和一個(gè)可選的載荷視頻顯示。
(3)任務(wù)載荷控制站:用于控制無(wú)人機(jī)所攜帶的傳感器,它由-個(gè)或幾個(gè)視頻監(jiān)視儀和視頻記錄儀組成。
(4)數(shù)據(jù)分發(fā)系統(tǒng):用于分析和解釋從無(wú)人機(jī)獲得的圖像。
(5)數(shù)據(jù)鏈路地面終端:包括發(fā)送上行鏈路信號(hào)的天線和發(fā)射機(jī),捕獲下行鏈路信號(hào)的天線和接收機(jī)數(shù)據(jù)鏈應(yīng)用于不同的UAV系統(tǒng),實(shí)現(xiàn)以下主要功能:用于給飛行器發(fā)送命令和有效載荷;接收來(lái)自飛行器的狀態(tài)信息及有效載荷數(shù)據(jù)。
(6)中央處理單元:包括一臺(tái)或多臺(tái)計(jì)算機(jī), 主要功能:獲得并處理從UAV來(lái)的實(shí)時(shí)數(shù)據(jù);顯示處理;確認(rèn)任務(wù)規(guī)劃并上傳給UAV;電子地圖處理:數(shù)據(jù)分發(fā);飛行前分析;系統(tǒng)診斷。
本項(xiàng)目的自動(dòng)巡線無(wú)人機(jī)主要以飛行控制模塊,OpenMV模塊,動(dòng)力模塊以及接收機(jī)構(gòu)成。當(dāng)無(wú)人機(jī)巡線飛行時(shí),OpenMV模塊中的攝像頭會(huì)將采集到的圖像進(jìn)行分析,判斷循跡線的位置,并通過(guò)相應(yīng)的串口通信把相應(yīng)飛行指令傳輸給飛控模塊。飛控模塊接收到指令后,向動(dòng)力模塊輸出PWM值,控制電機(jī)速度,改變無(wú)人機(jī)的當(dāng)前飛行姿態(tài),完成糾偏過(guò)程。整體結(jié)構(gòu)示意如圖1。
圖1 無(wú)人機(jī)總計(jì)結(jié)構(gòu)
巡線模塊采用OpenMV開(kāi)發(fā)板。OpenMV是一款低功耗,小巧靈活,低成本的單片機(jī)攝像頭,旨在搭建一種簡(jiǎn)單,便捷的單目機(jī)器視覺(jué)模塊。其核心為STM32H743VI ARM Cortex M7 處理器,480 MHz ,1MB RAM,2 MB flash. 所有的 I/O引腳輸出 3.3V 并且 5V 耐受。其搭載可拆卸的攝像頭模塊系統(tǒng),可選擇不同的感光元件模組。
無(wú)人機(jī)飛控,即無(wú)人機(jī)飛行控制系統(tǒng),器采用了STM32F765VI單片機(jī),STM32F765VI 采用ARM Cortex-M7為內(nèi)核,內(nèi)置陀螺儀(用作飛行姿態(tài)的感知),加速幾,地磁感應(yīng),氣壓傳感器,超聲波傳感器,光流傳感器,GPS模塊,控制電路組成。無(wú)人機(jī)飛控保證了無(wú)人機(jī)的姿態(tài)控制及其正常飛行。
圖像采集或傳輸過(guò)程會(huì)產(chǎn)生噪聲干擾,為了保證我們處理時(shí),圖像的完好性、抑制干擾,以及增強(qiáng)某些對(duì)后續(xù)處理重要的圖像特征,我們首先需要對(duì)圖像進(jìn)行預(yù)處理,進(jìn)行灰度化處理與濾波噪音。接下來(lái),基于我們確定的某種循跡線的顏色,在OpenMV IDE中的閾值編輯器設(shè)置相應(yīng)的閾值,來(lái)判斷像素是否在閾值threshold中,接著將圖像中的像素設(shè)置為白色或黑色(如果檢測(cè)到符合閾值,則設(shè)置為白色,非閾值中設(shè)置為黑色),這樣,我們就得到了一張只有黑色背景和白色循跡線的圖像。這一過(guò)程又叫做圖像的二值化。圖像二值化效果如圖一所示。
當(dāng)我們得到一幅二值化圖像后,我們需要調(diào)用get_regression線性回歸的函數(shù),對(duì)圖像內(nèi)的所有閾值像素(白色部分)進(jìn)行線性回歸,線性回歸后的效果就是將圖像二值化分割為綠白兩部分(綠色為循跡線,白色為無(wú)關(guān)區(qū)域),其中magnitude函數(shù)可以表示我們線性回歸的效果,其值越大,表明線性回歸的效果越好。其中綠色的回歸線即為我們需要的line對(duì)象[2]。我們要利用這個(gè)得到的line對(duì)象來(lái)計(jì)算我們需用的兩個(gè)pid,來(lái)判斷無(wú)人機(jī)當(dāng)前位置。
當(dāng)我們得到經(jīng)過(guò)線性回歸得到line圖像后,我們需要通過(guò)對(duì)其引導(dǎo)參數(shù),判斷無(wú)人機(jī)的位置。通過(guò)函數(shù)計(jì)算和坐標(biāo)變換得到line對(duì)象角度的偏移和左右距離的偏離。接下來(lái),設(shè)置兩組pid,即rho_pid和theta_pid,將角度偏移距離傳遞theta_pid,左右距離的偏離傳遞rho_pid。我們用這兩組pid識(shí)別當(dāng)前位置,控制無(wú)人機(jī)運(yùn)動(dòng)。當(dāng)無(wú)人機(jī)向循跡線左邊方向偏離時(shí),距離偏移減小,循跡線處在視野左方。此時(shí)我們可以通過(guò)pid的調(diào)整使無(wú)人機(jī)向右偏航。同理,當(dāng)無(wú)人機(jī)向循跡線右邊方向偏離時(shí),距離偏移增大,循跡線處在視野左方。此時(shí)我們可以通過(guò)pid的調(diào)整使無(wú)人機(jī)向左偏航。
當(dāng)巡線模塊將計(jì)算的pid數(shù)據(jù)傳遞飛控時(shí),飛控需要將數(shù)據(jù)轉(zhuǎn)化成電機(jī)的pwm值,通過(guò)控制四個(gè)電機(jī)轉(zhuǎn)速差達(dá)到各種偏航動(dòng)作。本項(xiàng)目 針對(duì)電力巡線,故不存在直角轉(zhuǎn)彎情況,故將飛行分為以下3種(本項(xiàng)目無(wú)人機(jī)以“X模式飛行”)。
(1)當(dāng)巡線模塊正常識(shí)別到循跡線時(shí),無(wú)人機(jī)開(kāi)始向前直線飛行,此時(shí)電機(jī)M1,M2減速,M3,M4加速。
(2)向左偏離,當(dāng)無(wú)人機(jī)位于識(shí)別線左方,則無(wú)人機(jī)已經(jīng)向左偏離航線,此時(shí)應(yīng)在原有直線飛行的前提下提高M(jìn)2,M3轉(zhuǎn)速,無(wú)人機(jī)向右偏航,直至循跡線處在巡線視野中。
(3)向右偏離,當(dāng)無(wú)人機(jī)位于識(shí)別線右方,則無(wú)人機(jī)已經(jīng)向左偏離航線,此時(shí)應(yīng)在原有直線飛行的前提下(也可適當(dāng)降低航速)提高M(jìn)1,M4轉(zhuǎn)速,無(wú)人機(jī)向右偏航,直至循跡線處在巡線視野中。
無(wú)人機(jī)視覺(jué)研究的關(guān)注度越來(lái)越高,吸引了大批科研工作者前來(lái)研究[3]。而OpenMV作為一款入門(mén)級(jí)別的機(jī)器視覺(jué)開(kāi)發(fā)模塊,其便捷性及便利性也被人認(rèn)可。本文即通過(guò)OpenMV模塊無(wú)人機(jī)連接,最終實(shí)現(xiàn)自主巡線飛行。