基于raspberryPi的AGV視覺(jué)導(dǎo)航設(shè)計(jì)說(shuō)明_第1頁(yè)
基于raspberryPi的AGV視覺(jué)導(dǎo)航設(shè)計(jì)說(shuō)明_第2頁(yè)
基于raspberryPi的AGV視覺(jué)導(dǎo)航設(shè)計(jì)說(shuō)明_第3頁(yè)
基于raspberryPi的AGV視覺(jué)導(dǎo)航設(shè)計(jì)說(shuō)明_第4頁(yè)
基于raspberryPi的AGV視覺(jué)導(dǎo)航設(shè)計(jì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

50/55摘要移動(dòng)機(jī)器人集人工智能、智能控制、信息處理、圖像處理等專(zhuān)業(yè)技術(shù)于一體,成為當(dāng)今機(jī)器人研究領(lǐng)域的熱點(diǎn)之一。計(jì)算機(jī)視覺(jué)具有信息量豐富,信號(hào)探測(cè)圍廣,獲取信息完整等優(yōu)點(diǎn)。近年來(lái)廣泛應(yīng)用于自主移動(dòng)機(jī)器人領(lǐng)域,是自主移動(dòng)機(jī)器人導(dǎo)航和避障的一個(gè)主要發(fā)展方向。本課題研究的目的包括,設(shè)計(jì)并構(gòu)建基于RaspberryPi的視覺(jué)移動(dòng)AGV控制系統(tǒng),實(shí)現(xiàn)自主移動(dòng)機(jī)器人的視覺(jué)導(dǎo)航功能。本論文完成如下幾個(gè)方面的研究容。機(jī)器人視覺(jué)導(dǎo)航圖像處理算法設(shè)計(jì),驅(qū)動(dòng)部分設(shè)計(jì),跟蹤算法設(shè)計(jì)。設(shè)計(jì)開(kāi)發(fā)控制系統(tǒng),實(shí)現(xiàn)攝像機(jī)視頻流信息的獲取。對(duì)于獲取的攝像機(jī)的視頻流信息,通過(guò)圖像處理算法提取路面信息,并通過(guò)串口與下位機(jī)進(jìn)行通信,下位機(jī)根據(jù)路徑信息指定模糊控制算法。本論文設(shè)計(jì)了基于視覺(jué)導(dǎo)航的自主移動(dòng)機(jī)器人整體結(jié)構(gòu),包括機(jī)械結(jié)構(gòu)和差速驅(qū)動(dòng)控制系統(tǒng)的設(shè)計(jì)。為進(jìn)一步研究基于視覺(jué)導(dǎo)航的自主移動(dòng)機(jī)器人,提供了良好的實(shí)驗(yàn)平臺(tái)。關(guān)鍵詞:RaspberryPi;AGV;機(jī)器視覺(jué);串口AbstractMobilerobotintegratesofartificalintelligeninformationcollectingandimageprocessingtechnology.Itbecomesoneofthehotspotinthefieldoftherobotresearch.Computervisiontechnologyhasbeenwidlyusedinmobilerobotforprovidingrichinformation.Soitbecomesoneoftheimportantbranchesinrobotresearchfield.Thepurposeofthisresearchincludethedesignofvision-basednavigationAGVsystembasedontheRaspberryPiplatform,andthevisionnavigationmethodofautonomousmobilerobot.Thisthesiscompletedthefollowingafewaspectsoftheresearchcontent.Drivenrobotvisualnavigationimageprocessingalgorithmdesign,partdesign,trackingalgorithmdesign.Designanddevelopmentcontrolsystem,realizethecameravideoinformationretrieval.Extracttheroadinformationthroughtheimageprocessingalgorithms,andcommunicatewiththelowermachinethroughaserialportwith,lowermachinespecifiedfuzzycontrolalgorithmaccordingtothepathinformation.Inthisthesis,providingavision-basednavigationofautonomousmobilerobotsdesignincludingmechanicalstructureanddifferentialdrivecontrolsystemdesign.Thissystemprovidesagoodexperimentalplatformforfurtherstudyofvision-basednavigationofautonomousmobilerobots.Keywords:RaspberryPi;AGV;Vision-basednavigation;Serial目錄17292摘要 I21142Abstract II275121.緒論 1188221.1課題來(lái)源以與背景意義113301.2概述 284101.2.1導(dǎo)航技術(shù) 2126171.2.2路徑規(guī)劃和路徑跟蹤技術(shù) 4100981.2.3多傳感器集成與融合 465341.2.4多機(jī)器人協(xié)作技術(shù) 594251.3系統(tǒng)平臺(tái) 52061.3.1RaspberryPi 5194361.3.2Arduino 78361.4論文的主要容與研究方法 8126312.AGV視覺(jué)導(dǎo)航的總體設(shè)計(jì)方案1041572.1引言 10183962.2硬件平臺(tái) 10135682.2.1車(chē)體構(gòu)造10160632.2.2電氣裝置 11180332.2.3測(cè)速模塊 12141452.2.4無(wú)線模塊 12105092.2.5攝像頭模塊 13130892.3軟件平臺(tái) 14127802.4視覺(jué)導(dǎo)航機(jī)器人的性能指標(biāo)16276852.5本章小結(jié) 17124463.圖像處理 1812693.1數(shù)字圖像處理算法設(shè)計(jì) 18289563.2圖像處理算法實(shí)現(xiàn) 20178733.2.1圖像采集 20159153.2.2RGB圖像轉(zhuǎn)HSV圖像 21276173.2.3圖像濾波 24286373.2.4路徑提取 2621093.2.5信息傳輸 29120543.3本章小結(jié) 3150724.驅(qū)動(dòng)控制部分的設(shè)計(jì)與分析 3277444.1引言 32183784.2驅(qū)動(dòng)方式分析 32226714.3雙輪差分驅(qū)動(dòng)的運(yùn)動(dòng)學(xué)分析3316044.4測(cè)速模塊設(shè)計(jì) 3511624.5PID控制器的設(shè)計(jì) 36156674.6本章小結(jié) 39234775.基于模糊預(yù)瞄的控制算法實(shí)現(xiàn) 40158535.1引言 40226565.2模糊預(yù)瞄算法 4055695.3試驗(yàn)效果 4112775.4本章小結(jié) 446266結(jié)論 4530690致 465055參考文獻(xiàn) 47QUOTE\*GB2緒論課題來(lái)源以與背景意義自動(dòng)導(dǎo)航車(chē)(AutomatedGuidedVehicles,AGV)又名無(wú)人搬運(yùn)車(chē),出現(xiàn)于20世紀(jì)50年代,是一種自動(dòng)化的無(wú)人駕駛的智能化搬運(yùn)設(shè)備,屬于移動(dòng)式機(jī)器人系統(tǒng),能夠沿預(yù)先設(shè)定的路徑行駛,是現(xiàn)代工業(yè)自動(dòng)化物流系統(tǒng)如計(jì)算機(jī)集成制造系統(tǒng)中的關(guān)鍵設(shè)備之一。AGV具有靈活性、智能化等顯著特點(diǎn),可以方便的重組系統(tǒng),實(shí)現(xiàn)生產(chǎn)過(guò)程的柔性化運(yùn)輸。與傳統(tǒng)的人工或半人工的物料運(yùn)輸方式相比,AGV的系統(tǒng)減輕了勞動(dòng)強(qiáng)度,降低了危險(xiǎn)性,提高了生產(chǎn)效率,在各行各業(yè)能發(fā)揮重要作用[1]。嵌入式控制系統(tǒng)是AGV的核心,它的主要任務(wù)是控制AGV導(dǎo)向、啟動(dòng)、停車(chē)、運(yùn)行車(chē)速、選擇路線、安全監(jiān)控、避免碰撞和交通干涉、與交通控制器通訊、與其他物料搬運(yùn)設(shè)備和機(jī)器人等接口。以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件、硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積和功耗要求嚴(yán)格的專(zhuān)用計(jì)算機(jī)系統(tǒng)稱(chēng)為嵌入式系統(tǒng)。在控制功能比較單一,邏輯結(jié)構(gòu)比較簡(jiǎn)單的前提下,控制軟件的設(shè)計(jì)相對(duì)容易。而當(dāng)控制系統(tǒng)的功能日漸復(fù)雜,從新設(shè)計(jì)一個(gè)新的控制軟件系統(tǒng)的費(fèi)用和工作量就成倍地增長(zhǎng)。因此采用嵌入式操作系統(tǒng)將嵌入式控制軟件的通用部分提取出來(lái),屏蔽不同硬件系統(tǒng)和應(yīng)用軟件系統(tǒng)之間的不同,使他們彼此透明,就可以拋開(kāi)具體的硬件和資源管理的細(xì)節(jié),而專(zhuān)注于自身具體應(yīng)用功能的實(shí)現(xiàn),這就大大減輕了應(yīng)用軟件的開(kāi)發(fā)難度。但是于此同時(shí),針對(duì)于工業(yè)AGV實(shí)時(shí)性比較高的嵌入式系統(tǒng)價(jià)格一般都比較高昂,而一般的低端的嵌入式系統(tǒng)又很難滿足其一般要求。經(jīng)過(guò)對(duì)比,本系統(tǒng)才用了一款名為RaspberryPi的嵌入式系統(tǒng),雖然價(jià)格不高,但是卻能基本實(shí)現(xiàn)本設(shè)計(jì)的基本要求。RaspberryPi(RPi)是一款基于Linux的個(gè)人電腦,配置一枚700Mhz的處理器,512的存,支持SD卡和Ethernet,雖然其大小只有一般信用卡大小,但是其汲取OpenGL的GPU(BroadcomVideoCoreIV)賦予了其強(qiáng)大的圖像處理功能。操作系統(tǒng)基于debian,是遵循公共許可證(GPL)的開(kāi)放源代碼自由軟件。其具有完善的開(kāi)發(fā)平臺(tái)和函數(shù)庫(kù)。正因?yàn)槠溟_(kāi)源性,其成本可以壓縮到每塊35美元,與同類(lèi)型的嵌入式系統(tǒng)相比具有很強(qiáng)的性價(jià)比優(yōu)勢(shì)。同時(shí),Linux核完整的網(wǎng)絡(luò)協(xié)議,使得實(shí)現(xiàn)嵌入式系統(tǒng)的網(wǎng)絡(luò)功能非常方便[2-3]。概述導(dǎo)航技術(shù)導(dǎo)航技術(shù)是移動(dòng)機(jī)器人研究的關(guān)鍵技術(shù)之一[4],是其實(shí)現(xiàn)真正智能化和完全自主移動(dòng)的關(guān)鍵技術(shù),它通常包括自身和環(huán)境信息的獲取與理解、運(yùn)動(dòng)控制算法等。移動(dòng)機(jī)器人的導(dǎo)航問(wèn)題主要涉與Durrant.Whyte提出的三個(gè)問(wèn)題:“我現(xiàn)在何處?”,··我要往何處去?”,“要如何到該處去?’’[5]。其中第一個(gè)問(wèn)題是導(dǎo)航系統(tǒng)中的定位問(wèn)題,即確定移動(dòng)機(jī)器人在工作環(huán)境中相對(duì)于全局坐標(biāo)的位置與其本身的姿態(tài),第二、三個(gè)問(wèn)題是導(dǎo)航系統(tǒng)的路徑規(guī)劃與跟蹤。移動(dòng)機(jī)器人的導(dǎo)航方式根據(jù)機(jī)器人工作環(huán)境的復(fù)雜性、配備傳感器的種類(lèi)和數(shù)量的不同,分為以下幾種方式:l) 磁導(dǎo)航。磁導(dǎo)航是目前自動(dòng)導(dǎo)引車(chē)(automatedguidedvehicle,AGV)的主要導(dǎo)航方式。AGV是移動(dòng)機(jī)器人中的一種,同時(shí)AGV也是自動(dòng)化物流運(yùn)輸系統(tǒng)柔性生產(chǎn)組織系統(tǒng)的關(guān)鍵設(shè)備。磁導(dǎo)航方式要在AGV運(yùn)行路徑上,開(kāi)出深度為10mm左右,寬5mill左右的溝槽,在其中埋入導(dǎo)線。在導(dǎo)線上通以5~30kHz的交變電流,在導(dǎo)線周?chē)a(chǎn)生磁場(chǎng)。AGV上左右對(duì)稱(chēng)安裝了兩個(gè)磁傳感器,用于檢測(cè)磁場(chǎng)強(qiáng)度引導(dǎo)車(chē)輛沿所埋設(shè)的路徑行駛。這種導(dǎo)航方式在AGV中廣泛應(yīng)用,并且該方式技術(shù)成熟可靠,但對(duì)環(huán)境的適應(yīng)能力較差,而且在安裝維護(hù)成本、靈活性、抗干擾能力等方面尚有很大差距[6]。2) 里程計(jì)導(dǎo)航。里程計(jì)導(dǎo)航是根據(jù)機(jī)器人左右兩輪上里程計(jì)信息推算出當(dāng)前的位置和航向,初始位置和航向要已知[7]。它是實(shí)現(xiàn)相對(duì)定位最簡(jiǎn)單的方法且實(shí)現(xiàn)成本低廉,并且能夠?qū)崿F(xiàn)實(shí)時(shí)性。但是由于是通過(guò)對(duì)兩個(gè)輪子在時(shí)間上位移增量的累加來(lái)實(shí)現(xiàn)定位,因此在長(zhǎng)距離的導(dǎo)航時(shí),累積誤差將會(huì)增加,使得其準(zhǔn)確度下降[8]。3) 慣性導(dǎo)航。它利用機(jī)器人裝配的光電編碼器和陀螺儀計(jì)算機(jī)器人航程,從而推知機(jī)器人當(dāng)前的位置和下一步目的地。慣性導(dǎo)航系統(tǒng)的優(yōu)點(diǎn)是不需要外部參考,但是隨時(shí)間的漂移,經(jīng)積分后,任一小的常數(shù)誤差就會(huì)無(wú)限增長(zhǎng),所以慣性傳感器對(duì)于長(zhǎng)時(shí)間的精確定位是不適宜的[9]。4) GPS導(dǎo)航。全球定位系統(tǒng)(GPS)是適用于室外移動(dòng)機(jī)器人的一種全局定位系統(tǒng),是美國(guó)第二代軍用衛(wèi)星導(dǎo)航系統(tǒng),也是目前世界上最先進(jìn)的衛(wèi)星導(dǎo)航系統(tǒng)[10]。通過(guò)接收GPS衛(wèi)星信號(hào)并分析處理,確定導(dǎo)航對(duì)象在地表的位置,由于GPS定位系統(tǒng)的精度高、覆蓋圍廣,一般在軍事中發(fā)揮著巨大的作用。5) 視覺(jué)導(dǎo)航。機(jī)器人系統(tǒng)中的視覺(jué)子系統(tǒng)獲取當(dāng)前狀態(tài)下機(jī)器人周?chē)h(huán)境信息,通過(guò)分析確定環(huán)境對(duì)象和機(jī)器人在環(huán)境中的位置。視覺(jué)導(dǎo)航主要完成障礙物,路標(biāo)的探測(cè)與識(shí)別,根據(jù)路標(biāo)的不同,可分為人工路標(biāo)導(dǎo)航和自然路標(biāo)導(dǎo)航。視覺(jué)導(dǎo)航方式具有信號(hào)探測(cè)圍廣,獲取信息較其它傳感器更完整、信息量大等優(yōu)點(diǎn),是移動(dòng)機(jī)器人導(dǎo)航的一個(gè)主要發(fā)展方向。目前國(guó)外主要采用在移動(dòng)機(jī)器人上安裝車(chē)載攝像機(jī)的基于局部視覺(jué)的導(dǎo)航方式,如:D.L.Boley等研制的移動(dòng)機(jī)器人利用車(chē)載攝像機(jī)和較少的傳感器通過(guò)識(shí)別路標(biāo)進(jìn)行導(dǎo)航[11];A.Ohya等利用車(chē)載攝像機(jī)和超聲波傳感器研究了基于視覺(jué)導(dǎo)航系統(tǒng)中的避碰問(wèn)題[12]。視覺(jué)導(dǎo)航中圖像分割、邊緣檢測(cè)、特征提取等圖像處理方法計(jì)算量大且實(shí)時(shí)性較差,解決該問(wèn)題的關(guān)鍵在于怎樣設(shè)計(jì)一種快速實(shí)時(shí)的圖像處理方法或者采取多傳感器集成與融合的導(dǎo)航方式。6) 超聲波導(dǎo)航[13]。通過(guò)在移動(dòng)機(jī)器人車(chē)身上安裝超聲波的發(fā)射和接收裝置,測(cè)得移動(dòng)機(jī)器人到障礙物或者路標(biāo)的距離和方位從而估計(jì)機(jī)器人的位置。超聲波導(dǎo)航方法的優(yōu)點(diǎn)是硬件結(jié)構(gòu)簡(jiǎn)單,價(jià)格低廉,容易操作,但是因?yàn)槌暡▊鞲衅髯陨淼娜毕?,如:鏡面反射、有限的波束角等,給充分獲得周?chē)h(huán)境信息造成困難。在實(shí)際應(yīng)用中,往往采用其它傳感器來(lái)補(bǔ)償,或采用多傳感器融合技術(shù)提高檢測(cè)精度等。綜合以上幾種導(dǎo)航方式,本系統(tǒng)采用基于視覺(jué)的導(dǎo)航技術(shù),一方面視覺(jué)系統(tǒng)可以獲得巨大的信息量;另一方面,采用視覺(jué)導(dǎo)航可以最大程度的降低成本。路徑規(guī)劃和路徑跟蹤技術(shù)路徑規(guī)劃技術(shù)是機(jī)器人研究領(lǐng)域中的一個(gè)重要分支。路徑規(guī)劃是依據(jù)某種優(yōu)化準(zhǔn)則(如行走路線最短、行走時(shí)間最短、行走能量消耗最低等),在其工作空間中找到一條從起始位置到目標(biāo)位置,且能避開(kāi)障礙物的最優(yōu)路徑[14]。對(duì)移動(dòng)機(jī)器人的路徑跟蹤的研究主要集中在兩個(gè)方向上:一是路徑的設(shè)置與其信息的獲取;二是控制方法的研究。路徑的設(shè)置主要有兩種方法,即有線路徑和地圖路徑。移動(dòng)機(jī)器人有線路徑可以是埋在地下的電纜、鋪刷在地面上的磁性路徑或者有色亮帶、自然或人工擺設(shè)的墻壁等。地圖路徑可以是基于全局路徑規(guī)劃的路徑,也可以是示教的路徑。移動(dòng)機(jī)器人路徑跟蹤的控制方法有很多,從經(jīng)典的PID控制到各種智能控制,都可以來(lái)進(jìn)行移動(dòng)機(jī)器人的路徑跟蹤。由于移動(dòng)機(jī)器人的運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)模型較為復(fù)雜,加之一些非線性因素和不定因素的影響[15],使得移動(dòng)機(jī)器人的運(yùn)動(dòng)控制很復(fù)雜。因?yàn)楸鞠到y(tǒng)采用的低端的嵌入式系統(tǒng),為了盡可能的降低計(jì)算量,采用的是基于模糊控制的“預(yù)瞄跟隨”方法,這一方法將在第五章中詳細(xì)介紹。多傳感器集成與融合對(duì)移動(dòng)機(jī)器人來(lái)講,無(wú)論是導(dǎo)航控制,還是路徑規(guī)劃與路徑跟蹤控制,都要通過(guò)傳感器感知外部環(huán)境和自身狀態(tài)。受環(huán)境干擾因素的影響和自身性能的限制,單一傳感器提供的信息往往是不完備的,移動(dòng)機(jī)器人很難依此做出合理的判斷,因此限制了系統(tǒng)的感知能力和魯棒性。因此,移動(dòng)機(jī)器人常采用視覺(jué)、超聲、紅外和激光等多傳感器集成來(lái)獲得環(huán)境信息,這些信息在時(shí)間、空間、可信度、表達(dá)方式上不盡一樣。但是,這些信息都是同一環(huán)境下對(duì)目標(biāo)不同側(cè)面的反映,因此存在一定的相關(guān)性Il引。利用多傳感器信息融合技術(shù),對(duì)這些信息進(jìn)行綜合,獲得冗余的、互補(bǔ)的、完整的外界信息,使移動(dòng)機(jī)器人能夠做出合理的、高魯棒性的行動(dòng)決策。多傳感器信息融合比較確切的定義可概括為:利用計(jì)算機(jī)技術(shù)對(duì)按時(shí)序獲得的若干傳感器的觀測(cè)信息在一定準(zhǔn)則下加以自動(dòng)分析、優(yōu)化綜合以完成所需的決策和估計(jì)任務(wù)而進(jìn)行的信息處理過(guò)程[17]。把信息融合技術(shù)應(yīng)用到移動(dòng)機(jī)器人上的研究,雖然國(guó)外許多研究工作者己經(jīng)做了大量的工作,但由于移動(dòng)機(jī)器人平臺(tái)的多樣性,加上信息處理的復(fù)雜性和工作環(huán)境的不確定性等原因,對(duì)如何有效地、實(shí)時(shí)地進(jìn)行信息不同層次的采集、分析、融合,與信息的不確定推理、理解等方面仍舊沒(méi)有一個(gè)好的統(tǒng)一的解決方案。因此,深入研究多傳感器信息融合技術(shù)在全自主移動(dòng)機(jī)器人上的應(yīng)用,實(shí)現(xiàn)信息融合技術(shù)與機(jī)器人技術(shù)的完美結(jié)合,對(duì)智能機(jī)器人的研究和發(fā)展具有重要意義。利用多傳感器技術(shù)可以很好彌補(bǔ)視覺(jué)AGV系統(tǒng)在道路識(shí)別以與蔽障等問(wèn)題上的不足。多機(jī)器人協(xié)作技術(shù)近年來(lái),多機(jī)器人協(xié)作系統(tǒng)以其突出的柔性、魯棒性和自主性逐漸應(yīng)用于工業(yè)生產(chǎn)的各個(gè)領(lǐng)域[18]。通過(guò)多機(jī)器人的協(xié)作,可以完成單機(jī)器人難以完成的復(fù)雜作業(yè),提高機(jī)器人系統(tǒng)在作業(yè)過(guò)程中的效率;當(dāng)機(jī)器人工作環(huán)境發(fā)生變化或系統(tǒng)局部發(fā)生故障時(shí),多機(jī)器人之間通過(guò)其固有的自組織能力與協(xié)作機(jī)制重新確立協(xié)作關(guān)系,仍然可以完成預(yù)定作業(yè)。自上世紀(jì)90年代以來(lái),對(duì)多機(jī)器人系統(tǒng)的研究越來(lái)越受到重視[19]。多機(jī)器人系統(tǒng)的研究分為多機(jī)器人合作和多機(jī)器人協(xié)調(diào)兩大類(lèi),主要研究給定一個(gè)多機(jī)器人系統(tǒng)任務(wù)后,如何組織多個(gè)機(jī)器人去完成任務(wù),如何分解和分配任務(wù)以與如何保持機(jī)器入之間的運(yùn)動(dòng)協(xié)調(diào)一致。多機(jī)器人協(xié)作新的技術(shù)研究和應(yīng)用領(lǐng)域不斷出現(xiàn),多機(jī)器人協(xié)作仍然是一個(gè)剛剛起步的研究領(lǐng)域。在實(shí)際的工業(yè)環(huán)境中,如何協(xié)調(diào)多臺(tái)AGV的同時(shí)操作已經(jīng)成為AGV研究領(lǐng)域的重要問(wèn)題,合理的調(diào)度可以大大提高AGV機(jī)器人的執(zhí)行效率。系統(tǒng)平臺(tái)RaspberryPiRaspberryPi(中文名為“樹(shù)莓派”,簡(jiǎn)寫(xiě)為RPi,或者RasPi/RPi)是為學(xué)生計(jì)算機(jī)編程教育而設(shè)計(jì),只有信用卡大小的卡片式電腦,其系統(tǒng)基于Linux。它由注冊(cè)于英國(guó)的慈善組織“RaspberryPi基金會(huì)”開(kāi)發(fā),Eben·Upton/埃·厄普頓為項(xiàng)目帶頭人。2012年3月,英國(guó)劍橋大學(xué)埃本·阿普頓(EbenEpton)正式發(fā)售世界上最小的臺(tái)式機(jī),又稱(chēng)卡片式電腦,外形只有信用卡大小,卻具有電腦的所有基本功能,這就是RaspberryPi電腦板,中文譯名"樹(shù)莓派"!這一基金會(huì)以提升學(xué)校計(jì)算機(jī)科學(xué)與相關(guān)學(xué)科的教育,讓計(jì)算機(jī)變得有趣為宗旨?;饡?huì)期望這一款電腦無(wú)論是在發(fā)展中國(guó)家還是在發(fā)達(dá)國(guó)家,會(huì)有更多的其它應(yīng)用不斷被開(kāi)發(fā)出來(lái),并應(yīng)用到更多領(lǐng)域。在2006年樹(shù)莓派早期概念是基于Atmel的ATmega644單片機(jī),首批上市的10000“臺(tái)”樹(shù)莓派的“板子”,由中國(guó)和大陸廠家制造。截止至2012年6月1日,樹(shù)莓派只有A和B兩個(gè)型號(hào),主要區(qū)別:A型:1個(gè)USB、無(wú)有線網(wǎng)絡(luò)接口、功率2.5W,500mA;B型:2個(gè)USB、支持有線網(wǎng)絡(luò)、功率3.5W,700mA。它是一款基于ARM的微型電腦主板,以SD卡為存硬盤(pán),卡片主板周?chē)袃蓚€(gè)USB接口和一個(gè)網(wǎng)口,可連接鍵盤(pán)、鼠標(biāo)和網(wǎng)線,同時(shí)擁有視頻模擬信號(hào)的電視輸出接口和HDMI高清視頻輸出接口,以上部件全部整合在一僅比信用卡稍大的主板上,具備所有PC的基本功能只需接通電視機(jī)和鍵盤(pán),就能執(zhí)行如電子表格、文字處理、玩游戲、播放高清視頻等著多功能。RaspberryPiB款只提供電腦板,無(wú)存、電源、鍵盤(pán)、機(jī)箱或連線。樹(shù)莓派的生產(chǎn)是通過(guò)有生產(chǎn)許可的兩家公司:Element14/PremierFarnell和RSComponents。這兩家公司都在網(wǎng)上出售樹(shù)莓派。樹(shù)莓派配備一枚700MHz博通出產(chǎn)的ARM架構(gòu)BCM2835處理器,256MB存(B型已升級(jí)到512MB存),使用SD卡當(dāng)作儲(chǔ)存媒體,且擁有一個(gè)Ethernet,兩個(gè)USB接口,以與HDMI(支持聲音輸出)和RCA端子輸出支援。RaspberryPi只有一信用卡大小,體積大概是一個(gè)火柴盒大小,可以執(zhí)行像雷神之錘III競(jìng)技場(chǎng)的游戲和進(jìn)行1080p影片的播放。操作系統(tǒng)采用開(kāi)源的Linux系統(tǒng),比如Debian、ArchLinux,自帶的Iceweasel、KOffice等軟件能夠滿足基本的網(wǎng)絡(luò)瀏覽,文字處理以與計(jì)算機(jī)學(xué)習(xí)的需要,分A,B兩種型號(hào),其中售價(jià)分別是A型25美元,B型35美元?;饡?huì)從2012年2月29日開(kāi)始接受B型的訂貨。樹(shù)莓派基金會(huì)提供了基于ARM的Debian和ArchLinux的發(fā)行版供大眾下載。還計(jì)劃提供支持Python作為主要編程語(yǔ)言,支持BBC、BASIC、(通過(guò)RISCOS映像或者Linux的"BrandyBasic"克隆)、C和Perl等編程語(yǔ)言。Broadcom的BCM2835的700MHz的ARM1176JZFS處理器的FPU的VideoCore4GPU。GPU提供的OpenGLES2.0,硬件加速OpenVG的,和1080p30H.264解碼高調(diào)GPU是能夠的1Gpixel/秒,1.5Gtexel/s或24GFLOPs的紋理過(guò)濾和DMA基礎(chǔ)設(shè)施。512MBRAM10/100BaseT以太網(wǎng)插座HDMI插座USB2.0插槽(X2)RCA視頻插座RCA視頻插座microUSB插口供電3.5毫米音頻輸出插孔ArduinoArduino是一款便捷靈活、方便上手的開(kāi)源電子原型平臺(tái),包含硬件(各種型號(hào)的arduino板)和軟件(arduinoIDE)。它適用于藝術(shù)家、設(shè)計(jì)師、愛(ài)好者和對(duì)于“互動(dòng)”有興趣的朋友們。Arduino,是一個(gè)基于開(kāi)放原始碼的軟硬體平臺(tái),構(gòu)建于開(kāi)放原始碼simpleI/O介面版,并且具有使用類(lèi)似Java,C語(yǔ)言的Processing/Wiring開(kāi)發(fā)環(huán)境。圖1-1ArduinoArduino能通過(guò)各種各樣的傳感器來(lái)感知環(huán)境,通過(guò)控制燈光、馬達(dá)和其他的裝置來(lái)反饋、影響環(huán)境。板子上的微控制器可以通過(guò)Arduino的編程語(yǔ)言來(lái)編寫(xiě)程序,編譯成二進(jìn)制文件,燒錄進(jìn)微控制器。對(duì)Arduino的編程是利用Arduino編程語(yǔ)言(基于Wiring)和Arduino開(kāi)發(fā)環(huán)境(basedonProcessing)來(lái)實(shí)現(xiàn)的?;贏rduino的項(xiàng)目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運(yùn)行的軟件,他們之間進(jìn)行通信(比如Flash,Processing,MaxMSP)來(lái)實(shí)現(xiàn)。相對(duì)于同類(lèi)型單片機(jī),它具有如下優(yōu)勢(shì):開(kāi)放源代碼的電路圖設(shè)計(jì),程序開(kāi)發(fā)接口免費(fèi)下載,也可依需求自己修改。使用低價(jià)格的微處理控制器(AVR系列控制器),可以采用USB接口供電,不需外接電源,也可以使用外部9VDC輸入。Arduino支持ISP在線燒,可以將新的“bootloader”固件燒入AVR芯片。有了bootloader之后,可以通過(guò)串口或者USBtoRs232線更新固件??梢罁?jù)官方提供的Eagle格式PCB和SCH電路圖簡(jiǎn)化Arduino模組,完成獨(dú)立運(yùn)作的微處理控制;可簡(jiǎn)單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達(dá),…等)支持多種互動(dòng)程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。基于Arduino的開(kāi)源特性,Arduino在于RPi的交互中體現(xiàn)了很好的兼容性,這一點(diǎn)在之后幾章的介紹中可以很好的體現(xiàn)出來(lái)。論文的主要容與研究方法AGV系統(tǒng)分為Rpi為核心的上位機(jī)以與以Arduino為核心的下位機(jī)。Rpi通過(guò)于它的CCD攝像頭采集圖像并進(jìn)行分析,同時(shí)Rpi應(yīng)用自身的wifi模塊建立網(wǎng)絡(luò)節(jié)點(diǎn),與其他AGV以與總服務(wù)站進(jìn)行通訊。下位機(jī)采用Arduino(AVR8位單片機(jī))進(jìn)行對(duì)AGV地盤(pán)的差分驅(qū)動(dòng)控制,并對(duì)紅外傳感器、激光測(cè)距傳感器進(jìn)行實(shí)時(shí)讀取。Arduino與Rpi之間進(jìn)行串口通訊??偨Y(jié)起來(lái),畢設(shè)主要研究的容如下:(1)基于opencv的數(shù)字圖像預(yù)處理OpenCV于1999年由Intel建立,現(xiàn)在由WillowGarage提供支持。OpenCV是一個(gè)基于[1](開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux、Windows和MacOS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列C函數(shù)和少量C++類(lèi)構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。 預(yù)處理包括圖像采集——彩色轉(zhuǎn)HSI——圖像增強(qiáng)——灰度二值化——去離散干擾噪聲(2)基于opencv的數(shù)字圖像特征標(biāo)識(shí)采用邊緣檢測(cè)等算法,實(shí)現(xiàn)對(duì)包括區(qū)域路線以與路標(biāo)的辨識(shí)(3)移動(dòng)機(jī)器人平臺(tái)設(shè)計(jì)和運(yùn)動(dòng)學(xué)分析針對(duì)差分驅(qū)動(dòng)結(jié)構(gòu)的機(jī)器人,對(duì)其運(yùn)動(dòng)學(xué)特性進(jìn)行分析并得出小車(chē)的系統(tǒng)空間方程與機(jī)器人驅(qū)動(dòng)轉(zhuǎn)速之間的關(guān)系。(4)移動(dòng)機(jī)器人平臺(tái)的差速驅(qū)動(dòng)控制系統(tǒng)設(shè)計(jì) 設(shè)計(jì)并制作差速驅(qū)動(dòng)系統(tǒng)的控制電路。該系統(tǒng)由直流電機(jī)、減速器、光電編碼盤(pán)、arduino8L單片機(jī)、電機(jī)驅(qū)動(dòng)芯片構(gòu)成。通過(guò)Arduino'接受Rpi的控制指令,并把命令轉(zhuǎn)換成PWM脈沖信號(hào),該信號(hào)經(jīng)過(guò)L298放大,從而驅(qū)動(dòng)直流電機(jī)運(yùn)動(dòng)。單片機(jī)對(duì)編碼器反饋信號(hào)經(jīng)過(guò)PI控制器處理,從而可以實(shí)現(xiàn)對(duì)直流電機(jī)的精確速度閉環(huán)控制。(5)移動(dòng)機(jī)器人的決策控制設(shè)計(jì)通過(guò)Arduino實(shí)時(shí)測(cè)量的各種傳感器的信息以與Rpi對(duì)圖像處理分析的結(jié)果,建立一套擼棒性比較高的控制策略。AGV視覺(jué)導(dǎo)航的總體設(shè)計(jì)方案引言針對(duì)于以RaspberryPi(一下簡(jiǎn)稱(chēng)RPi)為核心的AGV平臺(tái)包括硬件與軟件兩個(gè)方面。其中硬件平臺(tái)主要包括車(chē)體、電氣驅(qū)動(dòng)裝置、測(cè)速模塊、無(wú)線模塊和攝像頭模塊。軟件部分采用基于OpenCV為核心的視覺(jué)處理算法,通過(guò)cmake編譯上位機(jī)程序,以與由ArduinoIDE編譯的下位機(jī)平臺(tái)來(lái)實(shí)現(xiàn)。硬件平臺(tái)車(chē)體構(gòu)造AGV的車(chē)體構(gòu)成如圖2-1所示。車(chē)體框架b)萬(wàn)向輪圖2-1AGV車(chē)體實(shí)物AGV車(chē)體由兩個(gè)直流電機(jī)、減速器、萬(wàn)向輪、相應(yīng)的驅(qū)動(dòng)電路、鋰電池以與控制模塊構(gòu)成。其中前后車(chē)輪采用三輪式結(jié)構(gòu),前輪是輔助輪,兩個(gè)后輪是驅(qū)動(dòng)輪。如圖2-2所示。采用這樣的結(jié)構(gòu)一方面在于可以根據(jù)左右驅(qū)動(dòng)的差速來(lái)控制AGV轉(zhuǎn)向,另一方面是可以減少功耗。圖2-2三輪式AGV電氣裝置如圖2-3所示,AGV的電氣驅(qū)動(dòng)由Arduino下位機(jī)、直流伺服電機(jī)、電機(jī)驅(qū)動(dòng)器和減速器構(gòu)成。AGV通過(guò)下位機(jī)控制兩個(gè)伺服電機(jī)的轉(zhuǎn)速。圖2-3AGV電氣驅(qū)動(dòng)裝置測(cè)速模塊如圖2-4所示,測(cè)速模塊采用光耦光電傳感器,在單位時(shí)間讀取脈沖個(gè)數(shù),從而計(jì)算出每個(gè)輪的轉(zhuǎn)速。圖2-4測(cè)速模塊無(wú)線模塊常見(jiàn)的近距離無(wú)線通信技術(shù)有藍(lán)牙、ZigBee、Wi-Fi等,遠(yuǎn)距離通信技術(shù)有GPRS、射頻、GPS、3G等,本系統(tǒng)結(jié)合AGV的實(shí)際運(yùn)行環(huán)境,采用近距離與遠(yuǎn)距離結(jié)合的方案。如圖2-5所示,在室等近距離環(huán)境,采用由WIFI基站構(gòu)成的無(wú)線局域網(wǎng)環(huán)境;在室外等遠(yuǎn)距離環(huán)境,采用由3G構(gòu)成的遠(yuǎn)程通信方式。wifi模塊b)3G模塊圖2-5無(wú)線通信模塊攝像頭模塊AGV的視覺(jué)導(dǎo)航,主要依靠攝像頭模塊檢測(cè)道路信息。攝像頭分為CMOS與CCD兩種。如圖2-6所示,在不影響對(duì)數(shù)據(jù)的提取的前提下,本模塊采用了一種廉價(jià)的CMOS攝像頭。圖2-6攝像頭模塊軟件平臺(tái)AGV控制系統(tǒng)的上位機(jī)以RPi為平臺(tái),使用CMake為軟件開(kāi)發(fā)環(huán)境。CMake是一個(gè)跨平臺(tái)的安裝(編譯)工具,可以用簡(jiǎn)單的語(yǔ)句來(lái)描述所有平臺(tái)的安裝(編譯過(guò)程)。他能夠輸出各種各樣的makefile或者project文件,能測(cè)試編譯器所支持的C++特性,類(lèi)似UNIX下的automake。只是CMake的組態(tài)檔取名為CmakeList.txt。Cmake并不直接建構(gòu)出最終的軟件,而是產(chǎn)生標(biāo)準(zhǔn)的建構(gòu)檔(如Unix的Makefile或WindowsVisualC++projects/workspaces),然后再依一般的建構(gòu)方式使用。上位機(jī)中的圖像處理以與無(wú)線通信的相關(guān)算法都是在該環(huán)境下完成的。下位機(jī)采用Arduino平臺(tái),并采用基于Arduino的官方IDE。這里的算法包括車(chē)速控制以與路徑規(guī)劃。AGV系統(tǒng)的整個(gè)流程圖框架如下。上位機(jī)b)下位機(jī)圖2-7系統(tǒng)流程圖視覺(jué)導(dǎo)航機(jī)器人的性能指標(biāo)AGV涉與到的技術(shù)主要包括機(jī)器視覺(jué)技術(shù)、運(yùn)動(dòng)控制技術(shù)、無(wú)線通信技術(shù)和傳感器技術(shù)。具體如下:AGV路徑和路標(biāo)的識(shí)別,控制算法的選擇與優(yōu)化,無(wú)線通信指令的發(fā)送接收,紅外傳感器的應(yīng)用等等。AGV的相關(guān)技術(shù)指標(biāo)如表2-1所示:表2-1工程技術(shù)指標(biāo)型號(hào)RTW0.1導(dǎo)引方式機(jī)器視覺(jué)導(dǎo)引驅(qū)動(dòng)方式差分驅(qū)動(dòng)車(chē)體尺寸250mm×150mm×130mm自重2kg最大速度0.10m/s走行方式驅(qū)動(dòng)輪差動(dòng)轉(zhuǎn)向;前進(jìn)、后退、原地回轉(zhuǎn)最小回轉(zhuǎn)半徑0.2m電池鋰電池7.4v2200mah運(yùn)行模式手動(dòng)、自動(dòng)兩種模式通訊方式無(wú)線通信使用環(huán)境10~40°C(室);地面傾斜1°以本章小結(jié)本章主要講述了AGV的硬件平臺(tái)、軟件平臺(tái)以與工程技術(shù)指標(biāo)。硬件平臺(tái)以圖片實(shí)例詳細(xì)介紹了AGV的車(chē)體外觀,電氣驅(qū)動(dòng)元部件,無(wú)線通信和傳感器選型等等;軟件平臺(tái)則以程序流程圖的形式介紹了AGV的算法思想,其中涉與到的各個(gè)算法的理論基礎(chǔ)將在后面幾章詳細(xì)闡述。圖像處理數(shù)字圖像處理算法設(shè)計(jì)圖像工程技術(shù)在廣義上分為:圖像處理、圖像分析和圖像理解三個(gè)層次。數(shù)字圖像處理的預(yù)處理對(duì)于圖像信息的獲取至關(guān)重要,通常AGV在工業(yè)環(huán)境中會(huì)遇到各種干擾光以與油漬的影響,合適的處理方式可以增強(qiáng)圖像對(duì)于干擾的適應(yīng)能力。因此圖像預(yù)處理的好壞將直接影響AGV的工作狀況?;谝苿?dòng)式機(jī)器人的視覺(jué)導(dǎo)航其最大特點(diǎn)在于采用視覺(jué)來(lái)獲取信息。本系統(tǒng)采用的是標(biāo)識(shí)線識(shí)別法,其基本原理為,由CMOS攝像頭對(duì)包含路徑信息的圖像進(jìn)行提取,經(jīng)過(guò)圖像預(yù)處理后,提取出所需要的路徑特征信息。在考慮運(yùn)行環(huán)境實(shí)際情況的基礎(chǔ)上,本系統(tǒng)采用在灰色地板暗黃色線的路線搭配,如圖3-1所示,同時(shí)有強(qiáng)光干擾,以模擬最糟糕的工業(yè)環(huán)境。圖3-1測(cè)試道路本系統(tǒng)所采用的圖像處理主要包括數(shù)字圖像的預(yù)處理以與圖像特征分析。圖像處理的整個(gè)流程圖如3-2所示,圖像預(yù)處理算法有:圖像采集、RGB圖像轉(zhuǎn)HSV圖像、HSV圖像增強(qiáng)、灰度二值化、去離散噪聲;圖像特征分析包括:中值法提取曲線、最小二乘法提取直線以與處理數(shù)據(jù)發(fā)送。以上這些工作都在RPi中實(shí)現(xiàn)。本章將具體介紹圖像處理算法的具體實(shí)現(xiàn)。圖3-2數(shù)字圖像處理的算法流程圖像處理算法實(shí)現(xiàn)圖像采集圖像傳感器是一種可以將光學(xué)信號(hào)轉(zhuǎn)換成信號(hào)的感光元件,目前主流的圖像傳感器分別為感光耦合元件(charge-coupleddevice,CCD)和互補(bǔ)式金屬氧化物半導(dǎo)體有源像素傳感器(CMOSActivepixelsensor)。CCD圖像傳感器是一種基于模擬信號(hào)的設(shè)備,當(dāng)光投射到其表面時(shí),將有信號(hào)電荷產(chǎn)生,由這種電荷轉(zhuǎn)變成的電壓,會(huì)按指定的時(shí)序?qū)D像信息傳出。與CCD不同,CMOS圖像傳感器是基于CMOS半導(dǎo)體技術(shù)的,它并不涉與信號(hào)電荷,而是每個(gè)光電傳感器附近都有相應(yīng)的電路直接把這些信號(hào)轉(zhuǎn)變成電壓信號(hào)。同等條件下,CMOS所采用的元件數(shù)少、成本低、低功耗而且數(shù)據(jù)吞吐量比CCD更高。CCD的數(shù)據(jù)傳輸速度一般不會(huì)超過(guò)70百萬(wàn)像素/秒,而CMOS卻可以達(dá)到100萬(wàn)像素/秒。但與此同時(shí),CCD在制作工藝方面也越來(lái)越成熟,而且在一些性能方面也逐漸凸顯自己的優(yōu)勢(shì)。基于CMOS圖像傳感器的這些優(yōu)勢(shì),本系統(tǒng)采用的是基于CMOS的USB通用攝像頭,如圖3-2所示。圖3-2CMOS攝像頭圖像經(jīng)過(guò)攝像頭采集后在RPi中以矩陣的形式呈現(xiàn) (3.1)圖片被保存為N行(roll),M列(column)的數(shù)組形式,以24位彩色圖像形式保存。RGB圖像轉(zhuǎn)HSV圖像彩色圖像所包含的顏色信息是指導(dǎo)機(jī)器人進(jìn)行目標(biāo)識(shí)別和跟蹤以與定位導(dǎo)航的關(guān)鍵。顏色空間具有多種表示方法,其中最為常見(jiàn)的為:RGB、HSI等。RGB空間是最為常見(jiàn)的顏色空間,它最符合人的視覺(jué)習(xí)慣。該空間采用紅、綠和藍(lán)作為三基色對(duì)空間中的任意一種顏色進(jìn)行描述,任意一色均可以表示為這三種顏色的線性組合。HSI顏色模型是由夢(mèng)塞爾(Munsell)最早提出的一種顏色系統(tǒng)格式,它是以人類(lèi)對(duì)顏色的感知方式為基礎(chǔ),用色調(diào)(hue)、飽和度(saturation)和亮度(intensity)3個(gè)分量來(lái)構(gòu)成顏色空間。其中H分量代表顏色光的基本特性,S分量代表顏色的純度,I分量代表光的強(qiáng)度,與顏色信息無(wú)關(guān)。HSI模型與RGB空間的轉(zhuǎn)換公式為: (3.2)在工業(yè)環(huán)境下,其平面經(jīng)常是反光的,如圖3-3所示,這樣會(huì)造成很大光干擾。太的反射、物體的倒影、日光燈的倒影等都會(huì)對(duì)道路的提取產(chǎn)生很大的影響。因此本系統(tǒng)采用基于HSV的圖像提取,只采取其中的H與S通道,即色調(diào)與飽和度,而把亮度屏蔽掉。圖3-3工業(yè)環(huán)境中的道路首先給出Matlab的實(shí)現(xiàn)方案:%Extracttheindividualcomponentimagesrgb=im2double(img);r=rgb(:,:,1);g=rgb(:,:,2);b=rgb(:,:,3);%Implementtheconversionequationsnum=0.5*((r-g)+(r-b));den=sqrt((r-g).^2+(r-b).*(g-b));theta=acos(num./(den+eps));H=theta;H(b>g)=2*pi-H(b>g);H=H/(2*pi);num=min(min(r,g),b);den=r+g+b;den(den==0)=eps;S=1-3.*num./den;H(S==0)=0;I=(r+g+b)/3;OpenCV的實(shí)現(xiàn)方法:cvtColor(img_rgb,img_hsv,CV_BGR2HSV);split(img_hsv,spl); 在這里,cvtColor()函數(shù)是OpenCV中常用的圖像轉(zhuǎn)換函數(shù),img_rpg為原始圖像,img_hsv為轉(zhuǎn)換后的圖像,CV_BGR2HSV為轉(zhuǎn)換方式。因?yàn)镺penCV本身不能識(shí)別我的操作,所以我必須告訴它是RGB圖像轉(zhuǎn)換為HSV圖像。split()函數(shù)的作用是把一個(gè)三通道的圖像的每個(gè)通道分離開(kāi),分別將其賦值到spl數(shù)組的spl[0]、spl[1]、spl[2]中,并分別對(duì)應(yīng)HSI的H、S、I通道。在此基礎(chǔ)上,分別對(duì)H、S通道設(shè)定閾值,提取出來(lái)的二值圖像進(jìn)行與操作。首先給出Matlab的實(shí)現(xiàn)方式:%segmentH=H*255;S=S*255;H(find(H<30))=0;%S(find(S>80))=1;%P=H+S;H(find(H~=0))=1;OpenCV的實(shí)現(xiàn)方式:HSV_H=Mat::zeros(S,0)+79;//三個(gè)通道的設(shè)定值HSV_S=Mat::zeros(S,0)+36;HSV_V=Mat::zeros(S,0)+120;for(inti=0;i<3;++i){if(i==0) compare(spl[i],HSV_H,spl[i],CMP_GE);if(i==1) compare(spl[i],HSV_S,spl[i],CMP_GE);if(i==2) compare(spl[i],HSV_V,spl[i],CMP_LE);}bitwise_and(spl[0],spl[1],H_S);//Channel_H&&Channel_SMat是OpenCV下儲(chǔ)存圖像最常用的數(shù)據(jù)類(lèi)型,它包括兩個(gè)部分,Hander(包含矩陣大小、儲(chǔ)存方式以與儲(chǔ)存地址等信息)和一個(gè)指向該矩陣的指針。Mat::zeros(S,0)的意思是指生成一個(gè)跟S圖像一樣大小的模板,并全部賦值為0。通過(guò)這種方式,我們可以得到被賦予三個(gè)不同值的模板。compare()函數(shù)作用是對(duì)比兩個(gè)一樣大小(行列一樣)但像素直不同的圖像,并對(duì)兩幅圖像對(duì)應(yīng)的每個(gè)像素進(jìn)行比較,根據(jù)控制字的不同輸出不同結(jié)果。如compare(A,HSI_H,B,CMP_GE)它的意思是對(duì)比spl[i]與HSI_H的每個(gè)像素,如果前者大于后者(CMP_GE前者大于等于后者)向B圖像的對(duì)應(yīng)像素點(diǎn)附1值。Bitwise_and()函數(shù)的作用是將兩個(gè)圖像的每個(gè)像素相與并輸出。圖像濾波經(jīng)過(guò)HSI的圖像操作,得到 如圖3-4所示的處理結(jié)果。圖3-4HSI處理結(jié)果可以看到圖像中依然存在不必要的噪聲點(diǎn)。雖然我們可以通過(guò)改變上述HSI通道的閾值來(lái)消除噪聲點(diǎn),但是這樣可能會(huì)使圖像檢測(cè)對(duì)光度的變化更加敏感,以致得不到我們想要的圖像,因此我們引入圖像平滑濾波器。平滑濾波器用處模糊處理和減小噪聲。平滑線性空間濾波器的輸出是包含在濾波掩模臨域像素的簡(jiǎn)單平均值。因此這些濾波器也成為均值濾波器,根據(jù)它的特性,它也是低通濾波器。平滑濾波器的概念非常直觀。它用濾波淹模確定的領(lǐng)域像素的平均灰度值代替圖像中每個(gè)像素點(diǎn)的值,這種處理減小了圖像灰度的“尖銳”變化。由于典型的隨機(jī)噪聲由灰度級(jí)的尖銳變化組成,因此常見(jiàn)平滑處理應(yīng)用就是減噪。圖3-5顯示了3x3的濾波掩模板,當(dāng)我們興趣在于圖像中任一點(diǎn)(x,y)進(jìn)行m*n掩模處理所得的響應(yīng)R時(shí),我們通常用如下形式簡(jiǎn)化表達(dá)形式:(3.3)其中w為掩模系數(shù),z為該系數(shù)對(duì)應(yīng)的灰度值,mn為掩模中包含的像素點(diǎn)總數(shù)。對(duì)于圖3-5所示的3x3掩模,圖像中任意一點(diǎn)(x,y)的響應(yīng)下式給出:(3.4)因?yàn)樵趫D像處理方面的文獻(xiàn)中會(huì)經(jīng)??吹皆摴?,所以對(duì)這一簡(jiǎn)單的公式給予特別注意。(3.5)這里我所采用的3x3平滑濾波器掩模如式(3.5)所示。該濾波器產(chǎn)生掩模下的標(biāo)準(zhǔn)像素平均值,把掩模系數(shù)帶入(3.6)式即可以清楚地看出這一點(diǎn):(3.6)R是由掩模定義的3x3臨域像素灰度的平均值。在濾波處理之后,整個(gè)圖像被9除。一個(gè)m*n掩模應(yīng)有等于1/mn的歸一化常數(shù)。在這里我給出平滑濾波器的OpenCV實(shí)現(xiàn)方法:medianBlur(src,dst,3);其中src指原圖像,dst指目標(biāo)圖像,3指代3x3的模板。 (3.7)路徑提取現(xiàn)在的任務(wù)就是根據(jù)已知的白色區(qū)域擬合出道路的相關(guān)信息。在此用的是將每一行的白色像素取平均的方法,以此產(chǎn)生每行唯一的像素點(diǎn)。在這里給出用OpenCV的實(shí)現(xiàn)算法:for(inti=0;i<row;i++){ for(intj=0;j<column;j++){ if(H_S.at<uchar>(i,j)!=0) { sum=sum+j; sum_number++; } }if(sum_number!=0){ ctr_line=(int)(sum/sum_number);}else{ctr_line=0;}y[i]=ctr_line;if(ctr_line!=0) dst.at<uchar>(i,ctr_line)=255;sum=0;sum_number=0;}其橫坐標(biāo)的累加和除以對(duì)應(yīng)行的白色點(diǎn)個(gè)數(shù),從而得到所需要的白色區(qū)域中點(diǎn)橫坐標(biāo)。器效果圖如3-5所示。圖3-5路徑中值可以看到我們已經(jīng)可以得到一條可以提現(xiàn)路徑特性的曲線,此時(shí)我們采用最小二乘法以提取出這條道路的對(duì)應(yīng)參數(shù)。曲線擬合中最基本和最常用的是直線擬合。設(shè)x和y之間的函數(shù)關(guān)系為:(3.8)式中有兩個(gè)待定參數(shù),a代表截距,b代表斜率。對(duì)于等精度測(cè)量所得到的N組數(shù)據(jù)(xi,yi),i=1,2……,N,xi值被認(rèn)為是準(zhǔn)確的,所有的誤差只聯(lián)系著yi。下面利用最小二乘法把觀測(cè)數(shù)據(jù)擬合為直線。用最小二乘法估計(jì)參數(shù)時(shí),要求觀測(cè)值yi的偏差的加權(quán)平方和為最小。對(duì)于等精度觀測(cè)值的直線擬合來(lái)說(shuō),可使下式的值最小:(3.9)上式分別對(duì)a、b求偏導(dǎo)得:(3.10)整理后得到方程組(3.11)解上述方程組便可求得直線參數(shù)a和b的最佳估計(jì)值。(3.12) (3.13)現(xiàn)在給出OpenCV的實(shí)現(xiàn)算法:doublet1=0,t2=0,t3=0,t4=0;doubles_row=row/semble_set;for(inti=0;i<row;++i){if(i%semble_set!=0)continue; t1+=x[i]*x[i];t2+=x[i];t3+=x[i]*y[i];t4+=y[i];}a=(t3*s_row-t2*t4)/(t1*s_row-t2*t2);b=(t1*t4-t2*t3)/(t1*s_row-t2*t2);由此得到的擬合直線如圖3-8所示。圖3-8擬合直線可以看出,即便在實(shí)際道路中對(duì)比度很差的情況下,依然可以將道路的相關(guān)信息提取出來(lái)。信息傳輸經(jīng)過(guò)以上的操作,已經(jīng)可以得到道路的斜率以與截距的路徑特征信息。下位機(jī)需要根據(jù)這兩個(gè)信息以控制小車(chē)的運(yùn)動(dòng),這就涉與上位機(jī)與下位機(jī)的通信問(wèn)題。本系統(tǒng)采用的是最簡(jiǎn)單的串口通信,其實(shí)物連接圖如3-9所示。因?yàn)閞aspberryPi所采用的通信電平為0—3.3v,而Arduino所采用的通信電平為0—5v,需要對(duì)其電平進(jìn)行轉(zhuǎn)換。圖3-9串口通信電路圖上位機(jī)對(duì)應(yīng)的發(fā)送程序如下:設(shè)置波特率SimpleSerialSerial("/dev/ttyAMA0",9600);轉(zhuǎn)換數(shù)據(jù)并發(fā)送Voidmain(){...slope=a;intercept=b-column/2-23.0;sprintf(san1,"%f",slope);//浮點(diǎn)數(shù)據(jù)變字符串sprintf(san2,"%f",intercept);str1=san1;str2=san2;str3=str1+""+str2;Serial.writeString(str3);cout<<str3<<endl;...}通過(guò)以上的程序,可以把得到的浮點(diǎn)數(shù)據(jù)合并為一個(gè)字符串的形式發(fā)送給下位機(jī)。下位機(jī)對(duì)應(yīng)的程序如下:voidsetup(){Serial.begin(9600);//設(shè)置波特率}voidget_data(){if(Serial.available()){inti=0,j=0;comdata="";chars1[20]="";chars2[20]="";i=0;j=0;while(Serial.available()>0){comdata+=char(Serial.read());delay(2);}while(comdata[i]!='')//讀取斜率{s1[i]=comdata[i];i++;}i++;while(comdata[i]!='\0')//讀取截距{s2[j]=comdata[i];i++;j++;}if(comdata.length()>0){comdata="";}slope=atan(atof(s1))*180/PI;intercept=atof(s2);Serial.flush();//清空緩存}}下位機(jī)接收到形式如“0.1232154.112”的數(shù)據(jù),從中分離出斜率以與截距。本章小結(jié)本章詳細(xì)的介紹了圖像處理過(guò)程中的圖像采集、RGB圖像轉(zhuǎn)HSV圖像、HSV圖像增強(qiáng)、灰度二值化、去離散噪聲這些基本的圖像預(yù)處理方法,并給出了它們的Matlab以與OpenCV的實(shí)現(xiàn)方法。同時(shí)對(duì)中值法提取曲線、最小二乘法提取直線進(jìn)行了推導(dǎo)并給出了相應(yīng)的實(shí)現(xiàn)方法。最后結(jié)合串口通信,介紹了上位機(jī)與下位機(jī)的通信方式。驅(qū)動(dòng)控制部分的設(shè)計(jì)與分析引言本章對(duì)各種移動(dòng)機(jī)器人驅(qū)動(dòng)結(jié)構(gòu)進(jìn)行分析對(duì)比,根據(jù)機(jī)器人應(yīng)用場(chǎng)合,選擇適合的結(jié)構(gòu)。設(shè)計(jì)并制作移動(dòng)機(jī)器人。之后,對(duì)所選擇的帶一個(gè)萬(wàn)向輪的差速驅(qū)動(dòng)結(jié)構(gòu)進(jìn)行運(yùn)動(dòng)學(xué)分析,從而得到機(jī)器人在運(yùn)動(dòng)空間圍的數(shù)學(xué)模型。驅(qū)動(dòng)方式分析相對(duì)于任何步態(tài)的機(jī)器人,無(wú)論是地面移動(dòng)的還是壁面移動(dòng)的機(jī)器人,輪式移動(dòng)機(jī)器人在移動(dòng)速度上都存在著極大的優(yōu)勢(shì)。本章主要對(duì)常用的輪式驅(qū)動(dòng)方式性能進(jìn)行分析對(duì)比,如表4-1所示。常用的輪式驅(qū)動(dòng)方式分別為:差速驅(qū)動(dòng)方式、同步驅(qū)動(dòng)方式、三輪車(chē)結(jié)構(gòu)驅(qū)動(dòng)方式和汽車(chē)結(jié)構(gòu)驅(qū)動(dòng)方式。結(jié)合本課題的需求,通過(guò)分析對(duì)比,最終選擇了帶一個(gè)萬(wàn)向輪的差速驅(qū)動(dòng)結(jié)構(gòu)的移動(dòng)機(jī)器人,如圖4-1所示。因?yàn)椴捎眠@種驅(qū)動(dòng)方式的機(jī)器人運(yùn)動(dòng)靈活,機(jī)械結(jié)構(gòu)簡(jiǎn)單,適合于室機(jī)器人的工作環(huán)境。圖4-1機(jī)器人結(jié)構(gòu)示意圖本章采用的帶一個(gè)萬(wàn)向輪的差速驅(qū)動(dòng)結(jié)構(gòu)的驅(qū)動(dòng)方式,最終制作的機(jī)器人機(jī)械結(jié)構(gòu),如圖4-1所示。雙輪差分驅(qū)動(dòng)的運(yùn)動(dòng)學(xué)分析本系統(tǒng)采用雙輪差分驅(qū)動(dòng)的模型如圖4-2所示。對(duì)于平臺(tái)做如下假設(shè):圖4-2模型示意圖平臺(tái)具有剛性外殼,且兩個(gè)輪子不變形;輪面與接觸面垂直并保持點(diǎn)接觸,忽略所有輪厚度對(duì)于平臺(tái)的運(yùn)動(dòng)影響;輪子與接觸面間不發(fā)生與軸向平行的滑動(dòng),而只發(fā)生繞軸方向的純滾動(dòng);平臺(tái)在二維平面運(yùn)動(dòng);兩個(gè)驅(qū)動(dòng)輪具有一樣的尺寸,且兩輪軸心線同平臺(tái)的前后運(yùn)動(dòng)方向相垂直。在上述假設(shè)下,移動(dòng)機(jī)器人的位姿可由廣義坐標(biāo)向量表示,其中為平臺(tái)參考點(diǎn)P在二維平面的投影坐標(biāo),θ為平臺(tái)的導(dǎo)航角,即平臺(tái)前進(jìn)方向同坐標(biāo)系X軸之間的夾角。取兩輪中間點(diǎn)M為觀察點(diǎn),對(duì)于該點(diǎn)有如下數(shù)學(xué)關(guān)系。(4.1)方程可以簡(jiǎn)化為(4.2)對(duì)于圖4-2所示的移動(dòng)平臺(tái)模型,可將兩個(gè)驅(qū)動(dòng)輪簡(jiǎn)化為居于軸連線中點(diǎn)M處的單個(gè)驅(qū)動(dòng)輪,則該虛擬單輪系統(tǒng)所受的非完成約束為(4.3)移動(dòng)平臺(tái)的廣義坐標(biāo)向量有三個(gè)分量:,而平臺(tái)的控制分量只有兩個(gè)驅(qū)動(dòng)輪的旋轉(zhuǎn)角速度和,這是典型的非完整約束問(wèn)題。平臺(tái)在運(yùn)動(dòng)中,約束方程始終滿足,這就意味著平臺(tái)運(yùn)動(dòng)的瞬時(shí)速度方向,同平臺(tái)朝向一樣。平臺(tái)方向的改變只能通過(guò)兩個(gè)輪子之間的速度差值實(shí)現(xiàn),而平臺(tái)運(yùn)動(dòng)軌跡則由一系列繞瞬時(shí)圓心旋轉(zhuǎn)的小段圓弧組成。對(duì)于本系統(tǒng),轉(zhuǎn)彎半徑可由以下計(jì)算得出。由4.1式知系統(tǒng)的線速度、角速度分別為(4.4)(4.5)因,可得M點(diǎn)的拐彎半徑(4.6)由式(4.6)可以看出:當(dāng)時(shí),旋轉(zhuǎn)角速度為0,轉(zhuǎn)彎半徑為無(wú)窮大,平臺(tái)在前后方向上直線運(yùn)動(dòng);當(dāng)時(shí),轉(zhuǎn)彎半徑等于0,平臺(tái)圍繞M點(diǎn)做原地旋轉(zhuǎn)運(yùn)動(dòng)。測(cè)速模塊設(shè)計(jì)旋轉(zhuǎn)編碼器又稱(chēng)為碼盤(pán),通常安裝于電機(jī)的輸出軸,將連續(xù)輸入的軸旋轉(zhuǎn)角度進(jìn)行離散化和量化后輸出。本系統(tǒng)采用增量式光電編碼器,當(dāng)正傳時(shí),只輸出正向脈沖信號(hào);當(dāng)反轉(zhuǎn)時(shí),只輸出反向脈沖信號(hào)。測(cè)速采用M方法與T方法結(jié)合的M/T方法。M法通過(guò)測(cè)量規(guī)定時(shí)間的編碼器脈沖數(shù)目來(lái)獲得被測(cè)速度。假設(shè)在時(shí)間T檢測(cè)到M個(gè)編碼器脈沖,則被測(cè)速度可以計(jì)算為(4.7)其中,Z為旋轉(zhuǎn)一周編碼器輸出的脈沖數(shù)目,n的單位為r/min,表示每分鐘的轉(zhuǎn)數(shù)。M法測(cè)速的分辨率為(4.8)誤差為(4.9)由式(4.9)可以看出,M法的測(cè)速誤差率同檢測(cè)到的脈沖數(shù)目成正比。在規(guī)定的視覺(jué),脈沖數(shù)目越多,說(shuō)明轉(zhuǎn)速越快,此時(shí)檢測(cè)誤差越小。隨著轉(zhuǎn)速的降低誤差增大,轉(zhuǎn)速過(guò)低時(shí)將有可能小于1,測(cè)速裝置不能正常工作。因此,M法只適用于測(cè)高速。T法通過(guò)測(cè)量相鄰兩個(gè)編碼器輸出脈沖之間的時(shí)間的長(zhǎng)度來(lái)獲取速度。在編碼器脈沖的上升沿啟動(dòng)計(jì)數(shù)器,該計(jì)數(shù)器對(duì)某一頻率為f的高頻進(jìn)行計(jì)數(shù);當(dāng)下一個(gè)編碼器脈沖來(lái)臨時(shí)停止計(jì)數(shù)。假設(shè)此時(shí)的計(jì)數(shù)值為M,被測(cè)速度可以計(jì)算為(4.10)T法測(cè)速的分辨率和誤差率可以分別確定為(4.11)(4.12)由式(4.12)可以看出:在低速時(shí),編碼器相鄰脈沖間隔時(shí)間長(zhǎng),測(cè)得的高頻脈沖個(gè)數(shù)M多,所以誤差率小,測(cè)量精度高,因此T法測(cè)速適用于低速段。M法和T法測(cè)速分別在高速段和低速段具有較高的分辨率,因此將這兩種方法相結(jié)合:既檢測(cè)某段時(shí)間的編碼器輸出脈沖個(gè)數(shù),又檢測(cè)同一時(shí)間間隔的高頻脈沖數(shù)目,利用這倆個(gè)計(jì)數(shù)值計(jì)算轉(zhuǎn)速,這種方法為M/T法。假設(shè)這兩個(gè)計(jì)數(shù)值為M1和M2,高頻脈沖頻率為f,則M/T法的測(cè)速公式為(4.13)其分辨率可計(jì)算為(4.14)低速時(shí)M/T法趨向于T法,在高速段M/T法相當(dāng)于T法的M1次平均,而在這M1次中最多產(chǎn)生一個(gè)高頻時(shí)鐘脈沖的誤差。因此,M/T法測(cè)速能夠在較寬的轉(zhuǎn)速圍保持較高的測(cè)速精度。PID控制器的設(shè)計(jì)PID控制由比例、微分和積分構(gòu)成,具有結(jié)構(gòu)簡(jiǎn)單,應(yīng)用方便等優(yōu)點(diǎn)。本系統(tǒng)所采用的速度控制采用增量式PID控制。PID控制的框架如圖4-3所示,其中Kp、Ki和Kd為PID控制器參數(shù)。圖4-3PID框圖離散控制系統(tǒng)的PID控制規(guī)律如式(4.13)所示,也常表示為式(4.14)形式。增量式PID控制規(guī)律見(jiàn)式(4.15)。(4.13)式中:——第i次控制器的輸出;——第i次采樣時(shí)的反饋值與給定值的誤差;——比例系數(shù);——積分系數(shù);——微分系數(shù);(4.14)式中:——采樣周期;——積分時(shí)間常數(shù);——微分時(shí)間常數(shù)。(4.15)積分的作用是消除靜態(tài)誤差。在閉環(huán)控制系統(tǒng)中,增加積分控制能夠增加系統(tǒng)的穩(wěn)態(tài)控制精度。積分環(huán)節(jié)不斷累加誤差,能使誤差迅速消除,但也能使系統(tǒng)產(chǎn)生超調(diào)。微分作用可以增加系統(tǒng)阻尼,改善相應(yīng)的平穩(wěn)性,并提高快速性,但也很容易引起振蕩。在本系統(tǒng)的PID整定中基本遵循“先比例,再積分,最后微分”的過(guò)程,具體的整定步驟如下:整定比例環(huán)節(jié):將比例控制作用由小到大變化,直至得到反應(yīng)快、超調(diào)小的響應(yīng)曲線;整定積分環(huán)節(jié):若在比例控制下穩(wěn)態(tài)誤差不能滿足要求,需要加入積分控制。使在(1)中得到的比例系數(shù)減小為原來(lái)的50%——80%,再將積分時(shí)間置一個(gè)比較大的值,觀測(cè)響應(yīng)曲線。然后減小積分時(shí)間,加大積分作用,并響應(yīng)的調(diào)整比例系數(shù),反復(fù)試湊至得到較滿意的響應(yīng),確定比例和積分的參數(shù)。整定微分環(huán)節(jié):經(jīng)過(guò)PI調(diào)節(jié)后,系統(tǒng)的動(dòng)態(tài)過(guò)程還是不能令人滿意,則加入微分,構(gòu)成PID控制。先置微分時(shí)間為0,逐漸加大Td,同時(shí)響應(yīng)改變比例系數(shù)和積分時(shí)間,反復(fù)試湊得到理想的效果。Arduino的相關(guān)代碼如下:PIDwheelPID_L(&Input_L,&Output_L,&setValue_L,4,0,0,DIRECT);PIDwheelPID_R(&Input_R,&Output_R,&setValue_R,4,0,0,DIRECT);voidsetup(){pinMode(S_L,INPUT);//配置管腳信息pinMode(S_R,INPUT);pinMode(PL1,OUTPUT);pinMode(PR1,OUTPUT);//initializePIDsettingsetValue_L=100.0;setValue_R=100.0;PWM1=120.0;PWM2=134.0;//tellthePIDtorangewheelPID_L.SetOutputLimits(-1000.0,1000.0);wheelPID_R.SetOutputLimits(-1000.0,1000.0);//turnthePIDonwheelPID_L.SetMode(AUTOMATIC);wheelPID_R.SetMode(AUTOMATIC);}//PIDcontrol//voidPID_control(){wheelPID_Lpute();wheelPID_Rpute();PWM1+=Output_L*0.1;PWM2+=Output_R*0.1;if(PWM1>=255)PWM1=255;elseif(PWM1<=0)PWM1=0;if(PWM2>=255)PWM2=255;elseif(PWM2<=0)PWM2=0;analogWrite(PL1,PWM1);analogWrite(PR1,PWM2);}通過(guò)PID控制,可以使小車(chē)的輸出PWM根據(jù)設(shè)定值以與所測(cè)速度的不同而實(shí)時(shí)改變,并能夠達(dá)到很好的控制效果。本章小結(jié)本章首先對(duì)差分驅(qū)動(dòng)模型進(jìn)行了運(yùn)動(dòng)學(xué)分析。對(duì)系統(tǒng)所采用的測(cè)速模塊進(jìn)行了詳細(xì)的介紹,并對(duì)所采用的PID整定過(guò)程給予了詳細(xì)的說(shuō)明?;谀:A(yù)瞄的控制算法實(shí)現(xiàn)引言在第三章中詳細(xì)介紹了路徑信息的提取算法,在第四章中對(duì)下位機(jī)的控制也做了詳細(xì)的介紹。因此在前面的基礎(chǔ)上,本章主要介紹AGV小車(chē)的路徑規(guī)劃問(wèn)題。模糊預(yù)瞄算法“預(yù)瞄跟隨理論”是由中國(guó)工程院院士郭孔輝于1982年提出的,并成功的應(yīng)用于駕駛員方向控制行為的研究中。該理論描述了根據(jù)未來(lái)輸入信息進(jìn)行跟隨控制的系統(tǒng)的特性[28]。機(jī)器人的運(yùn)動(dòng)控制行為應(yīng)與汽車(chē)駕駛員的駕駛行為相似。因此,模仿人工駕駛行為實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)控制是一種簡(jiǎn)單有效的途徑[29]。令初始時(shí)刻時(shí),為一個(gè)固定常量,即,尋找合適的輸入變量使得機(jī)器人沿期望的路徑前進(jìn)。在直線跟蹤部分,可以令輸入變量中的前進(jìn)速度為固定量,通過(guò)改變角速度來(lái)調(diào)節(jié)機(jī)器人左右兩輪線速度。當(dāng)給定目標(biāo)值與實(shí)際值之間的偏差:當(dāng)給定目標(biāo)值與實(shí)際值之間的偏差較小時(shí),則需要需要機(jī)器人的轉(zhuǎn)動(dòng)角度相應(yīng)的較小一些來(lái)調(diào)整偏差:機(jī)器人在行走過(guò)程中,根據(jù)偏差的大小來(lái)不斷的調(diào)整角速度。在圖像坐標(biāo)系下,Xm=160(圖像大小為320×240),將Xn到Xm的距離即分為七個(gè)模糊語(yǔ)言變量組成的輸入模糊集合艫{左偏很大,左偏較大,左偏稍大,正中.右偏稍大,右偏較大,右偏很大);系統(tǒng)的輸出模糊集合為角速度控制量國(guó),對(duì)應(yīng)的模糊集合B={右轉(zhuǎn)很大,右轉(zhuǎn)較大,右轉(zhuǎn)稍大,正中,左轉(zhuǎn)很大,左轉(zhuǎn)較大,左轉(zhuǎn)稍大};這里用七個(gè)簡(jiǎn)單的模糊規(guī)則控制機(jī)器人的角速度。在實(shí)驗(yàn)室環(huán)境下通過(guò)多次實(shí)驗(yàn),給出一組相較合適的偏差值,和角速度。Arduino的實(shí)現(xiàn)方法:voidset_value(){if(abs(intercept)<=10)Ang_vel=0.0;elseif(abs(intercept)>10&&abs(intercept)<53){if(intercept>0)Ang_vel=1.0;elseif(intercept<0)Ang_vel=-1.0;}elseif(abs(intercept)>=53&&abs(intercept<106)){if(intercept>0)Ang_vel=1.7;elseif(intercept<0)Ang_vel=-1.5;}elseif(abs(intercept)>106){if(intercept>0)Ang_vel=2.2;elseif(intercept<0)Ang_vel=-2.0;}setValue_L=100.0+Ang_vel*10;setValue_R=100.0-Ang_vel*10;}試驗(yàn)效果當(dāng)小車(chē)在道路左側(cè)時(shí),如圖5-1所示,當(dāng)AGV小車(chē)的位姿如圖5-1(a)所示,其在攝像頭中提取的圖像為5-1(b)。由(b)我們可以看到,黃色路徑與地面的對(duì)比度比較低,而且在室環(huán)境下,由于道路反光的問(wèn)題在圖像上產(chǎn)生了兩條日光燈的條帶。對(duì)圖像進(jìn)行預(yù)處理之后得到的效果圖如(c)所示。有此圖可以看出,黃色路線被最大限度的提取了出來(lái),同時(shí)圖像中的白色條帶也被屏蔽掉了,減小了環(huán)境對(duì)道路信息的干擾。經(jīng)過(guò)提取中心線以與最小二乘法擬合直線后,得到5-1(e)所示的道路信息。(a)小車(chē)姿態(tài)(b)攝像頭讀取信息(c)圖像預(yù)處理(d)提取中心線(e)擬合直線圖5-1AGV實(shí)際實(shí)驗(yàn)圖經(jīng)過(guò)結(jié)算,相應(yīng)的道路信息為slope=0.1222、interrupt=23,由此制定控制策略,=1,對(duì)應(yīng)輸出的PWM分別為PWM_L=110,PWM_R=90。本章小結(jié)本章詳細(xì)介紹了基于模糊控制預(yù)瞄算法的原理,以與在此基礎(chǔ)上的Arduino實(shí)現(xiàn)方法,并根據(jù)實(shí)際的運(yùn)行情況對(duì)其進(jìn)行了驗(yàn)證。結(jié)論本課題來(lái)自工業(yè)大學(xué)(威海)檢測(cè)與控制研究中心的橫向課題。這輛AGV是本人搭建的廉價(jià)低端平臺(tái),雖然在性能上遠(yuǎn)不如專(zhuān)業(yè)AGV系統(tǒng),但是基本可以實(shí)現(xiàn)視覺(jué)AGV系統(tǒng)的功能。本文在查閱大量國(guó)外有關(guān)文獻(xiàn)資料、吸收國(guó)外AGV導(dǎo)航控制先進(jìn)方法,通過(guò)系統(tǒng)的理論分析和實(shí)驗(yàn),取得了以下研究成果:(1)提出了以機(jī)器視覺(jué)為導(dǎo)引的方案,在數(shù)字圖像處理算法方面做了大量研究。數(shù)字圖像前處理算法有很多,本文根據(jù)工程實(shí)際,最終選用了彩色轉(zhuǎn)HSV,圖像增強(qiáng),灰度二值化,去離散干擾噪聲等算法。(2)采用了以中心收斂提取直線,以與最小二乘法提取路徑信息的方法,減小了計(jì)算量,提高了系統(tǒng)響應(yīng)速度。(3)通過(guò)對(duì)AGV的機(jī)械結(jié)構(gòu)、左右車(chē)輪與路徑的運(yùn)動(dòng)學(xué)分析,建立了系統(tǒng)的模型,從中找到了AGV左右輪的控制策略。(4)采用了基于模糊控制的預(yù)瞄算法,減少了計(jì)算量,克服了低端嵌入式系統(tǒng)計(jì)算能力差的問(wèn)題。但是,當(dāng)前的AGV仍存在以下一些問(wèn)題:(1)基于視覺(jué)導(dǎo)引的AGV關(guān)鍵技術(shù)在于機(jī)器視覺(jué)。但機(jī)器視覺(jué)受外界光源和工程現(xiàn)場(chǎng)路面的影響非常大。比如,AGV如果在充滿油污粉塵的惡劣環(huán)境中工作,那么現(xiàn)有的視覺(jué)算法將通通失效。所以基于視覺(jué)導(dǎo)引的AGV工作環(huán)境有很大的局限性,其穩(wěn)定性和可靠性有待加強(qiáng)。(2)AGV行駛速度不夠快。工業(yè)級(jí)磁導(dǎo)航的AGV行走速度是1m/s,而本課題做的視覺(jué)AGV速度只能達(dá)到0.1m/s。因此,要進(jìn)一步提高基于視覺(jué)導(dǎo)引AGV的可靠性和行車(chē)速度,真正把視覺(jué)AGV做成商業(yè)化的工業(yè)級(jí)產(chǎn)品,還需在這些方面進(jìn)行深入細(xì)致的研究。致首先要感我的指導(dǎo)老師瑋老師,在畢業(yè)設(shè)計(jì)期間,老師在百忙之中回答我提出的略顯淺薄的問(wèn)題,給予我耐心而細(xì)致的教導(dǎo),與時(shí)糾正我在方法和研究方向上的錯(cuò)誤,讓我能夠更好地完成我的畢業(yè)設(shè)計(jì)工作。我從老師的身上看到了對(duì)學(xué)術(shù)一絲不茍的嚴(yán)謹(jǐn)態(tài)度和對(duì)知識(shí)與一反三的學(xué)習(xí)方法,這些都是我在畢業(yè)設(shè)計(jì)過(guò)程之中收獲的寶貴財(cái)富。感馬飛同學(xué),幫我解答了從開(kāi)題到我完成畢業(yè)設(shè)計(jì)期間所向他請(qǐng)教的一

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論