王曉光, 管港云, 徐嘉銘, 李俊呈
(1. 吉林大學(xué) 公共計(jì)算機(jī)教學(xué)與研究中心, 長(zhǎng)春 130012; 2. 吉林大學(xué) 電子科學(xué)與工程學(xué)院, 長(zhǎng)春 130012; 3. 長(zhǎng)春理工大學(xué) 光電工程學(xué)院, 長(zhǎng)春 130022)
近年來(lái), 隨著傳感器技術(shù)的發(fā)展和GPS在控制系統(tǒng)中的廣泛應(yīng)用, 微型無(wú)人機(jī)系統(tǒng)迅速發(fā)展, 無(wú)人機(jī)作為微型機(jī)電系統(tǒng)的產(chǎn)物, 非常適合在曠野城區(qū)等近地面環(huán)境中執(zhí)行任務(wù), 具有廣闊的應(yīng)用前景. 在人工智能技術(shù)中, 利用航拍圖像實(shí)現(xiàn)對(duì)特定目標(biāo)進(jìn)行跟蹤與自動(dòng)識(shí)別的技術(shù)受到廣泛關(guān)注, 其借助可編程的硬件突破了邏輯電路的固件性, 算法靈活.
基于GPS和計(jì)算機(jī)圖像識(shí)別的無(wú)人機(jī)導(dǎo)航系統(tǒng)利用計(jì)算機(jī)視覺(jué)技術(shù), 旨在設(shè)計(jì)無(wú)人機(jī)高精度定位導(dǎo)航系統(tǒng). 使用該系統(tǒng)的無(wú)人機(jī)需要有攝像頭硬件匹配, 當(dāng)無(wú)人機(jī)利用GPS定位到達(dá)目標(biāo)地點(diǎn)附近卻因GPS定位精度較低不足以精準(zhǔn)定位目標(biāo)時(shí), 無(wú)人機(jī)立即開(kāi)啟攝像頭進(jìn)入圖像識(shí)別定位模式, 通過(guò)圖傳模塊在計(jì)算機(jī)端完成目標(biāo)檢測(cè)與路徑規(guī)劃, 并控制無(wú)人機(jī)相應(yīng)運(yùn)動(dòng), 實(shí)現(xiàn)無(wú)人機(jī)自主完成高精度識(shí)別目標(biāo)降落任務(wù)的功能. 本文利用開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)(OpenCV)為無(wú)人機(jī)設(shè)計(jì)基于計(jì)算機(jī)視覺(jué)的定位系統(tǒng)與控制系統(tǒng)[1], 并采用GPS定位與計(jì)算機(jī)視覺(jué)識(shí)別相結(jié)合的技術(shù)實(shí)現(xiàn)更高效、 準(zhǔn)確的定位導(dǎo)航系統(tǒng).
本文根據(jù)無(wú)人機(jī)自主飛行定位導(dǎo)航任務(wù), 采用STM32無(wú)人機(jī)核心主板, 在GPS定位與飛行模式控制的基礎(chǔ)上, 數(shù)傳模塊與圖傳模塊通信傳輸, 在計(jì)算機(jī)上完成視覺(jué)識(shí)別精準(zhǔn)定位. 任務(wù)需求由如圖1所示的4個(gè)分系統(tǒng)協(xié)調(diào)合作實(shí)現(xiàn). 首先圖像捕獲系統(tǒng)將視頻流采集到PC端[2], 圖像處理系統(tǒng)再將收集到的圖像做預(yù)處理, 進(jìn)行圖形擬合并計(jì)算出圖形的幾何中心坐標(biāo)值; 然后由路徑規(guī)劃系統(tǒng)計(jì)算目標(biāo)圖形幾何中心與無(wú)人機(jī)的坐標(biāo)差值; 最后飛行控制系統(tǒng)傳輸相應(yīng)的運(yùn)動(dòng)期望指令, 使無(wú)人機(jī)到達(dá)預(yù)設(shè)的位置[3].
圖1 無(wú)人機(jī)導(dǎo)航系統(tǒng)組成Fig.1 Composition of UAV navigation system
在圖像形狀特征的提取上, 對(duì)于相對(duì)簡(jiǎn)單的目標(biāo)圖像, 可采用輪廓特征算法提取得到形狀特征[4]; 而對(duì)于復(fù)雜目標(biāo)圖像的處理, 則需先重新進(jìn)行邊緣檢測(cè), 再使用輪廓特征算法完成圖像形狀特征的提取[5]. 在定位系統(tǒng)上, 本文使用更精準(zhǔn)的基于計(jì)算機(jī)視覺(jué)系統(tǒng)的定位方式. 利用計(jì)算機(jī)視覺(jué)庫(kù)完成基于計(jì)算機(jī)視覺(jué)的無(wú)人機(jī)定位系統(tǒng)與控制系統(tǒng)的程序設(shè)計(jì), 解決了無(wú)人機(jī)在空中快速飛行下的圖像數(shù)據(jù)采集及預(yù)處理, 其他圖形或地面輪廓干擾下的標(biāo)志識(shí)別, 遠(yuǎn)距離無(wú)人機(jī)配合識(shí)別精確位置控制的問(wèn)題.
本文設(shè)計(jì)了基于STM32單片機(jī)和GPS模塊兩者之間的通信, GPS模塊在系統(tǒng)中作為通信的橋梁, 通過(guò)接收衛(wèi)星發(fā)射的無(wú)線(xiàn)電信號(hào)實(shí)現(xiàn)對(duì)定位信息的獲取, 并由GPS模塊對(duì)接收到的數(shù)據(jù)進(jìn)行分析解讀, 轉(zhuǎn)換為終端設(shè)備可識(shí)別的位置信息, 然后使STM32單片機(jī)對(duì)無(wú)人機(jī)發(fā)出適當(dāng)?shù)闹噶? 最后無(wú)人機(jī)執(zhí)行指令到達(dá)目的地. 相應(yīng)的模塊關(guān)系如圖2所示.
圖2 模塊關(guān)系Fig.2 Module relationships
GPS定位解析可實(shí)現(xiàn)經(jīng)緯度測(cè)定、 海拔高度測(cè)定、 速度計(jì)算與方向指示、 路徑存儲(chǔ)和最短路徑計(jì)算.
2.2.1 串口通信設(shè)計(jì)
STM32單片機(jī)對(duì)GPS模塊的控制通過(guò)通用異步收發(fā)傳輸器(UART)實(shí)現(xiàn), 當(dāng)串口初始化結(jié)束后, UART讀取或?qū)懭氪鎯?chǔ)器內(nèi)的數(shù)據(jù), 當(dāng)?shù)却邮站彺鎱^(qū)為空時(shí), USART即可接收GPS數(shù)據(jù). 系統(tǒng)的串口通信模塊可分為串口初始化模塊、 串口讀取模塊和串口寫(xiě)入模塊.
2.2.2 GPS數(shù)據(jù)接收程序設(shè)計(jì)
GPS模塊用于從串口讀取GPS信號(hào)信息, 判斷是否檢測(cè)定位到GPS信號(hào), 進(jìn)而獲得GPS的位置、 速度、 時(shí)間數(shù)據(jù)等信息, 并進(jìn)行相應(yīng)的處理. GPS信號(hào)接收過(guò)程如圖3所示.
圖3 GPS信號(hào)接收過(guò)程Fig.3 GPS signal receiving process
2.2.3 GPS數(shù)據(jù)格式解析協(xié)議
選用GPRMC數(shù)據(jù)幀模式, 其具有特定的信息存儲(chǔ)形式, 包含經(jīng)緯度、 速度、 時(shí)間等所需內(nèi)容. 系統(tǒng)程序接收到處理標(biāo)識(shí)后, 根據(jù)GPRMC格式, 從中獲取所有關(guān)鍵數(shù)據(jù)[6]. 以GPRMC信號(hào)為例: 首先創(chuàng)建一個(gè)GPS數(shù)據(jù)結(jié)構(gòu)體, 然后解析GPRMC數(shù)據(jù), 得到經(jīng)緯度、 日期時(shí)間、 速度、 航向, 如果數(shù)據(jù)有效, 則分析分離緯度、 分離經(jīng)度、 速度等.
在無(wú)人機(jī)飛行控制系統(tǒng)中引入前置反饋, 改善系統(tǒng)的實(shí)時(shí)性, 進(jìn)入微分環(huán)節(jié), 改善動(dòng)態(tài)特性, 提升飛行控制系統(tǒng)的整體性能, 以便無(wú)人機(jī)適應(yīng)飛行過(guò)程中的各種復(fù)雜狀況.
陀螺儀選取MPU6050進(jìn)行姿態(tài)角的探測(cè), MPU6050加速度陀螺儀傳感器內(nèi)有三軸加速度傳感器、 三軸陀螺儀和一個(gè)I2C接口, 可連接外部地磁傳感器, 并利用自身帶的DMP(數(shù)字運(yùn)動(dòng)處理器)硬件加速引擎, 利用I2C接口將完整9軸融合演算的數(shù)據(jù)輸出到應(yīng)用端. 軟件設(shè)計(jì)選用STM32讀取傳感器信息, 解算姿態(tài)角, 將姿態(tài)角作為控制量與遙控參量融合, 將輸出的控制信號(hào)傳送到動(dòng)力系統(tǒng)中, 實(shí)現(xiàn)無(wú)人機(jī)的飛行控制.
蟻群算法(ACO)是一種模擬螞蟻尋找食物過(guò)程中如何發(fā)現(xiàn)最短路徑的算法. 如果在柵格圖[7]中要尋找從起點(diǎn)S到終點(diǎn)D的最優(yōu)路徑, 則所有可能走的節(jié)點(diǎn)組成集合Possible. Possible表示螞蟻接下來(lái)可能會(huì)走的下一個(gè)節(jié)點(diǎn)的集合;α是體現(xiàn)搜索路徑重要性的因子[8],α越大表示螞蟻?zhàn)叩氖瞧渌浵佔(zhàn)哌^(guò)路徑的可能性越大;β為反應(yīng)螞蟻協(xié)作性強(qiáng)度的因子[9],β值越大, 說(shuō)明狀態(tài)轉(zhuǎn)移概率越接近貪心規(guī)則[10].因此, 當(dāng)求解一個(gè)問(wèn)題時(shí), 通常能做出目前最優(yōu)的選擇.
每通過(guò)一段路徑, 螞蟻就需要去更新信息素的值.已知t時(shí)間時(shí), 信息素值為τij(t), 則信息素的值在t+n時(shí)間可表示為
τij(t+n)=(1-ρ)τij(t)+Δτij(t),
(1)
其中ρ為信息素?fù)]發(fā)系數(shù), 定義域?yàn)?0,1).因?yàn)橄伻核惴ㄔ谑褂肁nt-Cycle模型時(shí)的性能更好, 因此本文使用Ant-Cycle模型[11], 表示為
(2)
蟻群算法使用分布式計(jì)算方法, 進(jìn)程和線(xiàn)程同時(shí)執(zhí)行實(shí)現(xiàn)算法的性能; 該算法易與其他算法相結(jié)合, 且魯棒性較好, 不需做過(guò)多修改即可使用.但該算法用時(shí)較長(zhǎng), 易陷入局部最優(yōu)解.
考慮到無(wú)人機(jī)自身的約束條件, 如飛行高度、 最大航跡長(zhǎng)度等因素, 設(shè)現(xiàn)有一條飛行路徑R, 無(wú)人機(jī)在飛行過(guò)程中經(jīng)過(guò)點(diǎn)(X1,Y1,Z1),(X2,Y2,Z2),…,(XN,YN,ZN), 則適應(yīng)度值函數(shù)F為
(3)
其中α和β為系數(shù), 其值大小分別表示路徑長(zhǎng)度和無(wú)人機(jī)飛行高度在路徑規(guī)劃中的重要程度.
選擇X方位為主方位, 沿著X軸方向從XS到XD劃分成n=(|XS-XD|+1)個(gè)平面, 分別命名為Π1,Π2,…,Πn, 無(wú)人機(jī)路徑即分成(n-1)段.假設(shè)無(wú)人機(jī)飛行到第i個(gè)平面Πi中的點(diǎn)(Xi,Yi,Zi), 則易知下一個(gè)到達(dá)的柵格即在Πi+1上, 平面Πi+1上任意一柵格(X,Y,Z)成為下面要運(yùn)行的柵格, 其概率表示為
(4)
其中:τ(X,Y,Z)為面Πi+1中點(diǎn)(X,Y,Z)的柵格信息素?cái)?shù)值;H(X,Y,Z)為平面Πi+1中坐標(biāo)為(X,Y,Z)所對(duì)應(yīng)柵格的啟發(fā)函數(shù), 其計(jì)算公式為
H(X,Y,Z)=D(X,Y,Z)ω1S(X,Y,Z)ω2Q(X,Y,Z)ω3,
(5)
D(X,Y,Z)為到(X,Y,Z)的路徑長(zhǎng)度, 使螞蟻盡可能選擇距離目前點(diǎn)最近的點(diǎn),
(6)
S(X,Y,Z)為表示安全性的重要因素, 使螞蟻去選擇安全點(diǎn),
(7)
Q(X,Y,Z)表示柵格(X,Y,Z)到終點(diǎn)柵格(XD,YD,ZD)的距離, 可使螞蟻選擇離終點(diǎn)柵格近的柵格, 計(jì)算公式為
(8)
式(5)中ω1,ω2,ω3為系數(shù), 其大小表示上述因素是否重要, 該項(xiàng)越重要, 對(duì)應(yīng)的系數(shù)值越大, 反之則表明不重要.
在蟻群算法中, 所有柵格都有一個(gè)信息素值, 信息素有兩部分: 局部更新和全局更新.局部更新會(huì)在有螞蟻經(jīng)過(guò)該柵格時(shí)進(jìn)行更新.全局信息素只改變最小適應(yīng)度值的路徑通過(guò)的所有柵格的信息素值, 信息素更新的計(jì)算公式為
(9)
其中l(wèi)ength(m)表示螞蟻m走過(guò)的路徑長(zhǎng)度,K表示系數(shù),ρ表示信息素的揮發(fā)系數(shù)[12].
3.3.1 起始點(diǎn)位置確定
假設(shè)柵格地圖的原點(diǎn)坐標(biāo)是(XgridS,YgridS,ZgridS), 無(wú)人機(jī)放置的位置為(SX,SY,SH), 則與其所在柵格坐標(biāo)位置(XS,YS,ZS)的關(guān)系為
(10)
(11)
(12)
其中ceil表示在正無(wú)窮的方向上取整.
3.3.2 主方向的選取
選取經(jīng)度和緯度方向中柵格變化數(shù)較多方向?yàn)闊o(wú)人機(jī)路徑規(guī)劃的主方向, 則從Πi到Πi+1坐標(biāo)變化為
(13)
無(wú)人機(jī)視覺(jué)定位系統(tǒng)通常選擇生活中常見(jiàn)有辨識(shí)度的圖形作為視覺(jué)定位目標(biāo), 因?yàn)槭褂肞C端進(jìn)行實(shí)驗(yàn), 所以目標(biāo)圖形需滿(mǎn)足: 1) 現(xiàn)實(shí)生活中普遍存在且易計(jì)算中心值; 2) 易被識(shí)別的目標(biāo)圖形; 3) 目標(biāo)圖形的灰度值與其背景圖像有明顯區(qū)別, 易辨識(shí). 常選用“H”圖形.
在地面標(biāo)志識(shí)別算法和程序設(shè)計(jì)過(guò)程中, 為提高無(wú)人機(jī)對(duì)目標(biāo)圖形的檢測(cè)準(zhǔn)確性, 需要優(yōu)化對(duì)于角點(diǎn)識(shí)別的相關(guān)算法. 設(shè)計(jì)程序使無(wú)人機(jī)自動(dòng)尋找目標(biāo)物, 繪制地面標(biāo)志判斷的流程圖. 最后進(jìn)行地面標(biāo)志識(shí)別跟蹤定位實(shí)驗(yàn), 檢驗(yàn)飛行性能.
圖像預(yù)處理中首先使用灰度處理提高計(jì)算效率; 其次利用高斯濾波處理降噪[13]; 然后采用形態(tài)學(xué)梯度處理[14], 使圖像中的灰度級(jí)階躍更明顯, 凸顯邊緣; 最后使用Canny邊緣檢測(cè)算法提取內(nèi)部輪廓邊緣[15], 再進(jìn)行Hough圓檢測(cè)過(guò)程, 找到圓的區(qū)域半徑以及其幾何中心坐標(biāo), 從而進(jìn)行運(yùn)算得到相對(duì)坐標(biāo). 圖像預(yù)處理流程如圖4所示.
圖4 圖像預(yù)處理流程Fig.4 Image preprocessing process
級(jí)聯(lián)分類(lèi)器包含訓(xùn)練和檢測(cè)兩個(gè)過(guò)程. 其中訓(xùn)練分類(lèi)器本文采用OpenCV traincade程序. 程序支持Haar和局部二值模式(LBP)兩種特征, LBP特征是整數(shù)特征, 使訓(xùn)練和檢測(cè)速度更快且不影響其精確性. 對(duì)于分類(lèi)器的選擇, 本文使用Python中OpenCV的Adaboost分類(lèi)器, 將訓(xùn)練弱分類(lèi)器進(jìn)行迭代, 每次迭代后對(duì)獲得的局部最優(yōu)分類(lèi)器權(quán)重進(jìn)行求和, 得到強(qiáng)分類(lèi)器.
4.3.1 算法流程
1) 首先修改訓(xùn)練數(shù)據(jù)權(quán)重, 保證其遵循均勻分布的規(guī)律;
2) 學(xué)習(xí)訓(xùn)練數(shù)據(jù)集合Dm(m=1,2,…,M), 獲得一個(gè)簡(jiǎn)單分類(lèi)器, 計(jì)算分類(lèi)器在訓(xùn)練數(shù)據(jù)集合上的誤差率, 即錯(cuò)誤樣本數(shù)量;
3) 計(jì)算系數(shù), 即弱分類(lèi)器權(quán)重, 分類(lèi)錯(cuò)誤樣本越少, 弱分類(lèi)器權(quán)重越大, 分類(lèi)器的性能越好;
4) 更新訓(xùn)練數(shù)據(jù)集的權(quán)重分布, 可通過(guò)提高分類(lèi)錯(cuò)誤樣本權(quán)重的方法, 增強(qiáng)分類(lèi)器的性能;
5) 弱分類(lèi)器加權(quán)得到目標(biāo)分類(lèi)器.
4.3.2 訓(xùn)練級(jí)聯(lián)分類(lèi)器的步驟
訓(xùn)練級(jí)聯(lián)分類(lèi)器步驟如圖5所示. 訓(xùn)練過(guò)程概括為兩步: 1) 創(chuàng)建樣本, 樣本分為正、 負(fù)兩類(lèi), 正樣本是要檢測(cè)的目標(biāo)樣本, 負(fù)樣本是任意無(wú)關(guān)的圖片; 2) 對(duì)正、 負(fù)樣本分別建立描述文件, 為正樣本創(chuàng)建一個(gè)TXT文件(pos.txt), 將該文件與正樣本存儲(chǔ)在相同的路徑中, 負(fù)樣本則為另一個(gè)TXT文件(neg.txt), 與負(fù)樣本圖片存儲(chǔ)在相同路徑中.
圖5 訓(xùn)練級(jí)聯(lián)分類(lèi)器步驟Fig.5 Training cascade classifier steps
4.3.3 正樣本建立
選擇正樣本的要求: 1) 不嚴(yán)格規(guī)定圖片尺寸大小, 但必須與得到的正樣本矢量文件比例相同, 訓(xùn)練時(shí)可根據(jù)設(shè)置的比例自動(dòng)縮放; 2) 正樣本圖像背景干擾盡可能少, 避免背景特征干擾正樣本特征值的計(jì)算結(jié)果; 3) 正樣本來(lái)源應(yīng)豐富, 如果目標(biāo)圖像重合率相似率過(guò)大, 局部特征明顯一致, 訓(xùn)練擬合程度過(guò)高, 則會(huì)影響識(shí)別的準(zhǔn)確度, 不利于分類(lèi)器的廣泛使用.
正樣本建立步驟如下:
1) 獲得正樣本圖像, 首先要對(duì)正樣本歸一化處理, 采集時(shí)可直接從原圖按比例裁剪以便放縮;
2) 獲取正樣本路徑列表, 在文件夾中編寫(xiě)一個(gè)bat文件, 內(nèi)容為dir pos/b>pos.txt, 其中pos是文件夾名, 運(yùn)行bat文件, 生成dat文件, 刪掉dat文件中所有不是圖片的路徑, TXT中的位置信息是基于objectMaker程序生成的;
3) 獲取正樣本矢量集vec文件, 用OpenCV中的程序opencv_createsamples.exe獲取后放在當(dāng)前路徑下, 寫(xiě)入bat文件完成指令的輸入, 通過(guò)加-show顯示正樣本圖像, 根據(jù)需求更改num, -w和-h(數(shù)目、 寬度、 高度), 運(yùn)行bat.pos文件產(chǎn)生成正樣本矢量集文件.
4.3.4 負(fù)樣本建立
選擇負(fù)樣本的要求: 圖片中不允許有待檢測(cè)物; 負(fù)樣本同樣要求種類(lèi)數(shù)目繁多, 不能重復(fù); 不對(duì)負(fù)樣本的尺寸大小嚴(yán)格規(guī)定, 但負(fù)樣本尺寸需大于正樣本矢量集圖像的高和寬, 保存路徑與正樣本類(lèi)似, 內(nèi)容為dir neg/b>neg.txt, 其中neg為負(fù)樣本所在的圖像文件夾名, neg.txt中內(nèi)容不含框和位置信息. 經(jīng)上述步驟, 負(fù)樣本建立完成.
4.3.5 訓(xùn)練級(jí)聯(lián)分類(lèi)器
使用opencv_traincascade完成級(jí)聯(lián)分類(lèi)器的訓(xùn)練后, 將其存儲(chǔ)于cascade.xml文件中. 路徑中還存放許多中間量. 若在訓(xùn)練級(jí)聯(lián)分類(lèi)器的過(guò)程中被其他高優(yōu)先級(jí)程序中斷, 則只需再次加載即可讀入, 不用再次訓(xùn)練該分類(lèi)器. 訓(xùn)練完成后, 不需保存這些中間文件. 經(jīng)驗(yàn)證, 正負(fù)樣本數(shù)目為1∶3訓(xùn)練效果較好, 訓(xùn)練層數(shù)越多越好.
訓(xùn)練成功后, 如果能在文件夾下找到名為dt.xml的文件, 則說(shuō)明可進(jìn)入測(cè)試階段. 若在某處停止很久, 則大概率是因?yàn)樨?fù)樣本不足. 此時(shí)應(yīng)輸入中斷程序指令, 通過(guò)提高負(fù)樣本的數(shù)量和增加其豐富性, 得到分辨能力強(qiáng)弱不同的多個(gè)級(jí)聯(lián)分類(lèi)器; 或使用OpenCV的CVHaarDetectObjects函數(shù)對(duì)其檢驗(yàn).
無(wú)人機(jī)是雙向?qū)ΨQ(chēng)結(jié)構(gòu), 因此可將無(wú)人機(jī)的相對(duì)位置用俯仰、 橫轉(zhuǎn)、 偏航和升降4個(gè)輸入量定義. 以姿態(tài)角為被控量, 應(yīng)用PID算法, 并通過(guò)STM32單片機(jī)控制無(wú)人機(jī)4個(gè)電機(jī)的轉(zhuǎn)速分別控制無(wú)人機(jī)完成不同動(dòng)作, 從而達(dá)到控制實(shí)現(xiàn)無(wú)人機(jī)定向運(yùn)動(dòng)的目的. 無(wú)人機(jī)飛行控制流程如圖6所示.
圖6 無(wú)人機(jī)飛行控制流程Fig.6 Flow chart of UAV flight control
對(duì)于姿態(tài)角的計(jì)算, 采用積分的算法可能會(huì)降低動(dòng)態(tài)系統(tǒng)平衡性能, 嚴(yán)重時(shí)會(huì)導(dǎo)致閉環(huán)系統(tǒng)穩(wěn)定性較低, 所以積分不能過(guò)大. 若采用微分算法, 則可能因?yàn)槿藶椴僮髟蚨鴮?dǎo)致誤差過(guò)大, 從而影響系統(tǒng)穩(wěn)定性, 甚至使系統(tǒng)振蕩. 因此引入微分實(shí)現(xiàn)PID值計(jì)算時(shí), 只針對(duì)姿態(tài)角進(jìn)行微分而不對(duì)設(shè)定值進(jìn)行微分操作, 可提高系統(tǒng)動(dòng)態(tài)性能并增強(qiáng)系統(tǒng)可靠性.
利用數(shù)傳模塊將姿態(tài)角信息傳到計(jì)算機(jī), 通過(guò)計(jì)算機(jī)運(yùn)算觀察圖像與模擬姿態(tài), 得到擬定姿態(tài)角數(shù)據(jù). 系統(tǒng)數(shù)據(jù)傳送過(guò)程如圖7所示. 對(duì)于無(wú)人機(jī)的PID算法, 反復(fù)調(diào)節(jié)得到最優(yōu)參數(shù), 最終達(dá)到預(yù)期平衡狀態(tài). 使STM32單片機(jī)與GPS模塊連接, 將模塊的輸入輸出線(xiàn)和地線(xiàn)分別與STM32的輸入輸出線(xiàn)和地線(xiàn)相連. 整體系統(tǒng)搭建完成后, 可實(shí)現(xiàn)無(wú)人機(jī)的飛行只由用戶(hù)端程序控制, 將無(wú)人機(jī)的航點(diǎn)任務(wù)需求編入程序, 可在計(jì)算機(jī)上實(shí)現(xiàn)無(wú)人機(jī)導(dǎo)航系統(tǒng)切換多種模式調(diào)試的目的[16].
圖7 系統(tǒng)數(shù)據(jù)傳送流程Fig.7 Flow chart of system data transmission
無(wú)人機(jī)搭載攝像頭得到的數(shù)據(jù)信息不因環(huán)境而改變, 且可以直接從捕獲的圖像獲取感興趣區(qū)域(RIO), 利用訓(xùn)練好的分類(lèi)器進(jìn)行目標(biāo)比對(duì)與判定.
綜上所述, 本文在全球定位系統(tǒng)GPS的基礎(chǔ)上, 結(jié)合當(dāng)前計(jì)算機(jī)視覺(jué)識(shí)別與級(jí)聯(lián)分類(lèi)器智能化目標(biāo)檢測(cè)對(duì)無(wú)人機(jī)視覺(jué)定位系統(tǒng)進(jìn)行了研究與設(shè)計(jì), 其中攝像頭捕獲圖像傳回計(jì)算機(jī)一體化處理, 獲取一系列位置坐標(biāo)和路徑規(guī)劃, 自動(dòng)調(diào)整位置, 使無(wú)人機(jī)自主完成高精度識(shí)別目標(biāo)降落的任務(wù), 實(shí)現(xiàn)無(wú)人機(jī)對(duì)于常用標(biāo)識(shí)的跟蹤.