六旋翼無(wú)人機(jī)自動(dòng)巡航與避障研究
為解決多旋翼飛機(jī)在飛行過(guò)程中所遇到的自動(dòng)巡航以及避障問(wèn)題提出能夠切實(shí)可行的思路,通過(guò)光流傳感器的測(cè)距原理以及超聲波測(cè)距模塊測(cè)距理論,構(gòu)成一整套綜合的測(cè)距模塊,再通過(guò)飛控板控制進(jìn)行避障;同時(shí)再通過(guò)機(jī)超視距飛行以及飛控板的特有的油門(mén)行程鎖定以及定高的功能,構(gòu)成一套完整的自動(dòng)巡航的系統(tǒng),針對(duì)于飛機(jī)所使用的2.4Ghz的發(fā)射機(jī)越障效果較差的弊端完成研究的自動(dòng)巡航的任務(wù)。
本文重點(diǎn)在于民用無(wú)人機(jī)以及工業(yè)無(wú)人機(jī)的研究,主要是通過(guò)針對(duì)于自動(dòng)巡航和避障進(jìn)行研究。如在4m以下高度精確度0.1m以?xún)?nèi)自動(dòng)巡航以及4m以上通過(guò)GPS以及氣壓計(jì)定高精確度0.2m以?xún)?nèi)進(jìn)行巡航作業(yè)。以及使用已有的優(yōu)秀感知障礙物的算法,綜合HC-SR04和光流傳感器同時(shí)進(jìn)行作業(yè)完成障礙物的感知,防止在飛行途中遇障礙物發(fā)生碰撞。
apm飛控板
APM飛控板就是本研究使用的飛控板,apm是由DIY DRONE公司研制的一種開(kāi)源飛控板,開(kāi)源顧名思義是開(kāi)放源代碼,使用者可以利用自己所掌握的電子知識(shí)對(duì)飛控板進(jìn)行改造。所編寫(xiě)的程序由于其本身的adurino型號(hào)芯片可以直接利用C語(yǔ)言編寫(xiě)程序,編譯方便。
飛控板硬件
apm飛控板的主核是adurino mega 2560型芯片,這種芯片能夠直接與USB相連并燒錄程序(燒錄器與飛控板合為一體),當(dāng)然其作為燒錄器的功能被淡化了,不再需要使用一定特性的下載燒錄板(如usbasp下載器等)。
apm飛控板是通過(guò)電子調(diào)速器模擬電源或者是usb供電(圖1),供電電壓統(tǒng)一為5V。apm的氣壓計(jì)受干擾比較大,所以要使用黑色或者是冷色調(diào)海綿進(jìn)行覆蓋。把原先的直針接頭更換成了彎針接頭,更好地適應(yīng)了F550內(nèi)部比較狹小的空間。此飛控板上的電路設(shè)計(jì)比較合理,一個(gè)短接JP1接頭已經(jīng)在被默認(rèn)是焊斷的,適合外接大量傳感器的飛機(jī)硬件要求。
飛控板固件
圖1 apm飛控板電路實(shí)物圖
固件部分選用apm的hexa X型固件,這種固件是適用于六軸飛行器的。X型飛行模式也屬于現(xiàn)在比較主流的六旋翼飛行方式。本研究所選用的是3.2.1固件,但穿插進(jìn)了適用于apm飛控板的HC-SR04超聲波測(cè)距模塊的程序,結(jié)合其本身多數(shù)用戶(hù)的體驗(yàn)升級(jí),飛行穩(wěn)定性也有較大的提高。其次為了控制在室內(nèi)大空間的飛行無(wú)法搜索到GPS的問(wèn)題,將自檢模塊中的GPS自檢去除,即為有無(wú)GPS飛行器均可升空飛行,但是GPS的工作不會(huì)被中斷。
Failsafe(圖2failsafe輸出檢測(cè)端與正常電子調(diào)速器信號(hào)輸出端一致)功能也屬于比較重要的功能之一,飛機(jī)失控是事故,而failsafe就像一把保險(xiǎn)的鑰匙一樣。同樣failsafe解鎖之后在usb供電的情況下還可以用于校驗(yàn)輸出的是否正常的問(wèn)題,不僅如此,failsafe還可以嚴(yán)格監(jiān)控電源電量的問(wèn)題,很好地避免了聽(tīng)不到報(bào)警聲的問(wèn)題出現(xiàn)。
飛控板地面站
開(kāi)源飛控的精髓也可以說(shuō)就是在地面站上面,地面站的豐富度大大提高,可以進(jìn)行開(kāi)發(fā)者選項(xiàng)的操作。Mission planner屬于本飛控板可以使用連接以及燒錄程序的重要應(yīng)用程序,在安卓操作系統(tǒng)中也有類(lèi)似的程序叫Droidplanner,添加了一個(gè)check的清單,主要是避免了在飛行之前沒(méi)有檢測(cè)清晰而發(fā)生的不必要的飛行麻煩。
每一次飛行中飛機(jī)的動(dòng)向至關(guān)重要,模式的調(diào)整也顯得很重要(比如這名模友就沒(méi)有安裝數(shù)據(jù)傳輸模型,所以沒(méi)有察覺(jué)到飛機(jī)的模式突然發(fā)生了改變,險(xiǎn)些發(fā)生飛行慘劇)。
圖2 failsafe自檢端口與輸出端口共用
圖3 傳感器工作原理
圖4 超聲波模塊工作程序框圖
飛控板配套裝備
飛控板配套的螺旋槳、電機(jī)、電調(diào)選擇也是十分重要的,電機(jī)的選擇和螺旋槳至關(guān)重要首先是電機(jī)KV值:大KV配小槳,小KV配大槳。KV值是每1V的電壓下電機(jī)每分鐘空轉(zhuǎn)的轉(zhuǎn)速,例如KV800,在1V的電壓下空轉(zhuǎn)轉(zhuǎn)速是800轉(zhuǎn)/ min。10V的電壓下是8000轉(zhuǎn)/min的空轉(zhuǎn)轉(zhuǎn)速。繞線匝數(shù)多的,KV值低,最高輸出電流小,但扭力大。繞線匝數(shù)少的,KV值高,最高輸出電流大,但扭力小。KV值越小,同等電壓下轉(zhuǎn)速越低,扭力越大,可帶更大的槳。KV值越大,同等電壓下轉(zhuǎn)速越高,扭力越小,只能帶小槳。相對(duì)的說(shuō)KV值越小,效率就越高。其次要考慮電調(diào)和電機(jī),電調(diào)出于安全考慮其電流必須大于電機(jī)最大電流,保證不會(huì)電機(jī)停車(chē)。
電子調(diào)速器是由mos管和單片機(jī)統(tǒng)一組合后的一種電路,主要在于能夠?qū)⑺邮艿碾娦盘?hào)轉(zhuǎn)化成控制電機(jī)的輸入電壓的信號(hào),進(jìn)而控制電機(jī)轉(zhuǎn)速的裝置。
電子調(diào)速器要油門(mén)航程校準(zhǔn),使得六個(gè)電機(jī)轉(zhuǎn)速轉(zhuǎn)動(dòng)幅度同步。
超聲波測(cè)距傳感器避障模塊
超聲波測(cè)距傳感器模塊簡(jiǎn)介
Hc-sr04型超聲波模塊適用方便只需要四個(gè)接頭就可以完成全部實(shí)驗(yàn)所需,供電在5v以?xún)?nèi),最遠(yuǎn)可以達(dá)到4m的精準(zhǔn)測(cè)量,但不巧的是HC-SR04的測(cè)距是使用TTL脈沖波的,但是apm飛控板本身并不識(shí)別這一種脈沖波,所以就要使用arduino pro mini型單片機(jī)進(jìn)行更改其信號(hào)模式,方可使得apm飛控板能進(jìn)行識(shí)別。
超聲波測(cè)距傳感器模塊工作原理:
超聲波傳感器首先會(huì)發(fā)出脈沖波(如圖3),根據(jù)聲波所具有的波的特性,觸碰到障礙物就會(huì)反彈,這是本身在HC-SR04中的單片機(jī)就會(huì)接收到這一信號(hào),根據(jù)返回信號(hào)與發(fā)出信號(hào)的時(shí)間差就可以得出障礙物與飛機(jī)的距離,同時(shí)本身在已經(jīng)與HC-SR04焊接好的arduino pro mini型單片機(jī)就會(huì)把所需要的信號(hào)轉(zhuǎn)化成apm飛控板可以識(shí)別的信號(hào),同時(shí)apm飛控板利用這一信號(hào)得出自己與障礙物的距離,直接將自己的狀態(tài)信息切換到定點(diǎn)模式(Poshold)當(dāng)障礙物消失之后或是規(guī)避障礙物之后才會(huì)取消這一模式。這期間的穩(wěn)定主要是通過(guò)已有的加速度計(jì)的校準(zhǔn)數(shù)據(jù)的提取直接對(duì)飛行端口輸出行程進(jìn)行更改,保證其穩(wěn)定性。(如圖4)
超聲波測(cè)距傳感器避障模塊改造
arduino pro mini型單片機(jī)是arduino旗下又一成功力作,這一種類(lèi)型的單片機(jī)配合上Hc-sr04就可以進(jìn)行精準(zhǔn)測(cè)距,價(jià)格也相對(duì)來(lái)說(shuō)比較便宜。同時(shí)可以利用ftdi下載小板直接進(jìn)行連接。
這里的模塊整合包括了組裝和調(diào)試組裝需要將整個(gè)Hc-sr04的板子出口除VCC和GND兩個(gè)接口以外的與arduino pro mini小板上的 trig連同echo連接在一起,再將arduino pro mini小板上的scl與sda兩個(gè)連接在I2c接口上,考慮到本身羅盤(pán)就已經(jīng)占據(jù)了I2C接口的大部分,所以就利用到了apm原本的數(shù)據(jù)接口A0來(lái)連接。
由于整架飛機(jī)是多旋翼構(gòu)造,多個(gè)螺旋槳工作時(shí)噪音會(huì)比較大,這樣的噪音可以通過(guò)濾波軟件出去,即便沒(méi)有軟件的時(shí)候測(cè)距雖然能照常進(jìn)行但是整個(gè)精度與范圍也會(huì)大打折扣。調(diào)試之前要將程序燒錄,把a(bǔ)rduino pro mini和ftdi小板焊接在一起。至于先前已經(jīng)在apm的程序里面加入了超聲波測(cè)距這一選項(xiàng),則在調(diào)參的過(guò)程中可以直接利用apm地面站即可。再打開(kāi)全面調(diào)參菜單中RNGFND_TYPE的修改為2:APM2-MaxbotixI2c,RNGFND_MAX_CM中設(shè)置最大距離為500(留出一定的空余),將RNGFND_ MIN_CM設(shè)置為4,即為最小值,通過(guò)GAIN可以索要調(diào)整高度的值。超聲波測(cè)距模塊相比于氣壓計(jì)利用了海拔高度引起氣壓變化而進(jìn)行定高成熟了許多,這種氣壓測(cè)高的方式在低速狀態(tài)下比較通用,但是飛機(jī)馬達(dá)聲噪音影響太過(guò)明顯,同時(shí)設(shè)計(jì)者在最開(kāi)始就沒(méi)有很好的考慮到飛機(jī)本身所具有的特性,而在較快的空速條件下,又因?yàn)樯舷铝黧w氣壓差而使得整部機(jī)器出現(xiàn)了較大的偏差。但是裝備了超聲波模塊會(huì)使得整架飛機(jī)的測(cè)距避障功能得到了一定的提升局限性還是比較大,比如上方的超聲波無(wú)法進(jìn)行有效的安裝,測(cè)距效果也不是甚好,包括側(cè)面的飛行也沒(méi)有達(dá)到一個(gè)很好的測(cè)距避障效果,現(xiàn)在良好的效果也就只有側(cè)下方以及正下方的測(cè)距避障效果比較好,但是如果距離落差極大或者是突然的斷崖式陡增或者是陡降現(xiàn)在都沒(méi)有很好的方式得以解決我個(gè)人認(rèn)為應(yīng)該有一套能活動(dòng)的超聲波測(cè)距模塊效果會(huì)更好,如在上10米多高的墻壁或者陡崖的時(shí)候超聲波傳感器從向下看一直移動(dòng)到向上看,這一點(diǎn)可以利用舵機(jī)完成。
圖5 成品圖
圖6 成品圖
光流測(cè)距傳感器
光流測(cè)距傳感器簡(jiǎn)介
光圈為3.6的定焦鏡頭能在30~1000cm進(jìn)行拍攝作業(yè),旨在與超聲波測(cè)距模塊進(jìn)行避障使用,當(dāng)然它也有不能向上進(jìn)行探測(cè),這里面的光流傳感器主要還是依托apm飛控板開(kāi)發(fā)的,主要是以圖像捕捉為主的一種測(cè)距避障新模式,當(dāng)然在30cm以?xún)?nèi)傳感器將會(huì)進(jìn)入無(wú)法對(duì)焦的尷尬境地,所以當(dāng)30cm以?xún)?nèi)時(shí)我設(shè)置了光流傳感器自動(dòng)關(guān)閉的選項(xiàng)。同樣傳感器一旦裝備必須固定不得旋轉(zhuǎn)(圖6成品圖)
光流測(cè)距傳感器工作原理
光流法檢測(cè)運(yùn)動(dòng)物體的基本原理是:給圖像中的每一個(gè)像素點(diǎn)賦予一個(gè)速度矢量,這就形成了一個(gè)圖像運(yùn)動(dòng)場(chǎng),在運(yùn)動(dòng)的一個(gè)特定時(shí)刻,圖像上的點(diǎn)與三維物體上的點(diǎn)一一對(duì)應(yīng),這種對(duì)應(yīng)關(guān)系可由投影關(guān)系得到,根據(jù)各個(gè)像素點(diǎn)的速度矢量特征,可以對(duì)圖像進(jìn)行動(dòng)態(tài)分析??傮w來(lái)說(shuō)這種方法的最好應(yīng)用領(lǐng)域就是鼠標(biāo)光流測(cè)距控制計(jì)算機(jī)。光流傳感器與apm結(jié)合情況下的測(cè)距功能主要來(lái)自于兩方面,第一種是平穩(wěn)狀態(tài)下的測(cè)距模式,就像是鼠標(biāo)的光流測(cè)距是一樣的不同的情況下會(huì)出現(xiàn)不同的光流值(如圖7,水平測(cè)量);
第二種模式:是彌補(bǔ)出現(xiàn)的偏差角問(wèn)題我們彌補(bǔ)飛行器側(cè)傾和俯仰變化在這幅圖中我們可以發(fā)現(xiàn)飛行器的側(cè)傾和俯仰的變化也將導(dǎo)致傳感器返回值的變化。與橫向運(yùn)動(dòng)的計(jì)算不同,這些都不依賴(lài)于可見(jiàn)物體的距離。在下面的圖片中,可以看到的飛行器已經(jīng)側(cè)傾了10度,但第一張圖中視角中心的兩個(gè)花都移到了第二張圖片的視角邊緣。那么就要進(jìn)行校準(zhǔn),直接讀取已知的apm飛控的傾斜角度在減去已有的傾斜角再求tan值完成校準(zhǔn)彌補(bǔ)偏差角。(如圖8)
自動(dòng)巡航的工作原理
自動(dòng)巡航利用的是GPS和已有的油門(mén)航程數(shù)據(jù)進(jìn)行巡航作業(yè)。(圖9程序框圖)
自動(dòng)巡航的操作
飛機(jī)所處狀態(tài)必須是auto的狀態(tài),而且整個(gè)飛行過(guò)程中必須按照已經(jīng)寫(xiě)好的腳本進(jìn)行飛行,同樣自動(dòng)模式種只會(huì)考慮GPS所提供的經(jīng)緯度不會(huì)考慮任何情況下的高度參數(shù),所以一定要注意飛行高度不要過(guò)高,否則飛機(jī)高度的改變量將由仍在6m以上工作的氣壓計(jì)進(jìn)行定高,而且氣壓計(jì)的參數(shù)不穩(wěn)定,出現(xiàn)10m以上的高度上下變化不是不可能。有兩種方法進(jìn)入自動(dòng)模式:在空中或者在地面上。如果飛行員要從地面使用自動(dòng)模式起飛,有個(gè)特殊的安全裝置防止任務(wù)腳本執(zhí)行,直到飛行員解鎖然后首次抬高油門(mén)。這是為了防止在不小心碰到模式開(kāi)關(guān)時(shí)飛行器就起飛了。從地面使用自動(dòng)模式起飛時(shí),那么最近一次的定高油門(mén)值作為油門(mén)控制的基準(zhǔn)。一旦飛行器起飛就會(huì)飛向第一個(gè)目標(biāo)高度,然后開(kāi)始執(zhí)行之后的任務(wù)腳本。當(dāng)飛行員已經(jīng)在空中的時(shí)候切換到自動(dòng)模式,會(huì)使飛行器前往第一個(gè)目標(biāo)高度,然后開(kāi)始執(zhí)行當(dāng)前的任務(wù)腳本。
圖7 水平測(cè)量
圖8 偏差角彌補(bǔ)
圖9 自動(dòng)巡航的程序框圖
但任務(wù)一旦結(jié)束,飛機(jī)一旦完成任務(wù)時(shí)不會(huì)再飛回來(lái)的,一定要下達(dá)RTL的命令并先前設(shè)定好家的位置。直到通過(guò)模式開(kāi)關(guān)重新獲得控制時(shí)飛機(jī)才會(huì)飛回來(lái)。如果想要你的飛行器飛回到家,可以添加一個(gè)RTL(回家)命令結(jié)束當(dāng)前的任務(wù)腳本。如果想要手動(dòng)降落然后鎖定電機(jī)(比預(yù)編程的自動(dòng)降落命令更好),必須切換到自穩(wěn)模式。
在任務(wù)腳本最后位置的RTL或是自動(dòng)降落會(huì)強(qiáng)制降落然后停止電機(jī)。不能在自動(dòng)模式手動(dòng)降落(否則直接鎖死),除非已配置以上兩個(gè)選項(xiàng)之一,因?yàn)橛烷T(mén)搖桿控制高度(高度也可以先前預(yù)設(shè)定),并不是直接控制電機(jī)。
利用光流傳感器以及超聲波傳感器的測(cè)距式避障模塊組合與apm開(kāi)源飛控板組合較為成功也達(dá)到了前期目的,使得在正下方以及正前方的障礙物能夠成功地被感知,能夠在一定條件下為學(xué)校大型活動(dòng)進(jìn)行航拍作業(yè)。即便在研究過(guò)程中有一些美中不足,比如說(shuō)如人機(jī)的避障模塊無(wú)上仰工作,面對(duì)落差較大的障礙物就會(huì)無(wú)能為力,在某些極端天氣情況下無(wú)法正常飛行,有的時(shí)候也不能完全做到100%的避障效果,但是總體來(lái)說(shuō)效果還是客觀的,至少解決了飛控上的避障與自主巡航聯(lián)動(dòng)操作的一大難關(guān)。
通過(guò)對(duì)于HC-SR04的知識(shí)應(yīng)用以及光流傳感器測(cè)距功能的學(xué)習(xí)與編寫(xiě)。包括將所得數(shù)據(jù)輸入到控制端,再?gòu)目刂贫颂崛〖铀俣扔?jì)數(shù)據(jù)以及已有命令再執(zhí)行,最后完成避障的工作。本方法規(guī)避了很多由于機(jī)械故障而引起的飛行事故??傮w來(lái)說(shuō)整架飛機(jī)的實(shí)用性,解決問(wèn)題的方便性,可操作性都是較為優(yōu)秀的。
10.3969/j.issn.1001- 8972.2016.18.018