<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種機(jī)器人的尋跡算法

          一種機(jī)器人的尋跡算法

          作者: 時(shí)間:2012-01-19 來(lái)源:網(wǎng)絡(luò) 收藏

          1 引言

          近年來(lái),的發(fā)展遍及機(jī)械、電子、冶金、交通、宇航、國(guó)防等領(lǐng)域,的智能水平不斷提高。在自主式智能導(dǎo)航系統(tǒng)中,要實(shí)現(xiàn)自動(dòng)導(dǎo)引功能就必須要感知導(dǎo)引線,即常說(shuō)的“尋跡”,這相當(dāng)于給機(jī)器人一個(gè)視覺(jué)功能。

          筆者所設(shè)計(jì)的機(jī)器人是一個(gè)自動(dòng)導(dǎo)引小車(chē)(AGV),包括兩大部分:一是行進(jìn)方向的檢測(cè)處理;二是步進(jìn)電機(jī)的驅(qū)動(dòng)。

          在該系統(tǒng)里,采用與地面顏色有較大差別的線條作引導(dǎo),使用傳感器感知導(dǎo)引線,用單片機(jī)AT89C52掃描光電傳感器組,對(duì)采集到的信號(hào)進(jìn)行分析處理并做出邏輯判斷后,得到行進(jìn)方向,然后根據(jù)一定的步數(shù)去驅(qū)動(dòng)步進(jìn)電機(jī),實(shí)現(xiàn)機(jī)器人的循跡行進(jìn)。

          小車(chē)的驅(qū)動(dòng)采用步進(jìn)電機(jī),因?yàn)椴竭M(jìn)電機(jī)具有快速起停能力,且轉(zhuǎn)換精度高,正反轉(zhuǎn)控制靈活。

          2 硬件電路

          采用AT89C52單片機(jī)作為控制核心對(duì)光電傳感器送來(lái)的各種信號(hào)進(jìn)行分析處理,以控制機(jī)器人的方向和驅(qū)動(dòng)及數(shù)據(jù)顯示等,如圖1所示。

          為了檢測(cè)黑色導(dǎo)引線,筆者采用了8個(gè)光電傳感器組成的矩陣組。如圖2所示,相對(duì)于小車(chē)底盤(pán)的中心,我們布置了內(nèi)外兩層各4個(gè)傳感器。每層4個(gè)傳感器對(duì)應(yīng)著中心的4個(gè)方向:前、后、左前、右前??刹捎脪呙璺绞椒謨纱蔚玫礁餍袛?shù)據(jù)。

          圖1 硬件框圖

          圖2 光電傳感器矩陣組

          導(dǎo)引線檢測(cè)的具體電路如圖3所示。此處采用的是TCRT1000反射式紅外光電傳感器。以第1行第1列的光電傳感器為例,其工作原理是這樣的:P1 .0輸出低電平時(shí),三極管A1015導(dǎo)通,光電傳感器工作,TCRT1000的發(fā)射端發(fā)出不可見(jiàn)的紅外光。當(dāng)反射物由非黑色導(dǎo)引線變?yōu)楹谏珜?dǎo)引線時(shí),光電三極管的基極接受不到反射光,從而光敏三極管由導(dǎo)通變?yōu)榻刂?,使得集電極電壓由低電平變?yōu)楦唠娖?,?jīng)過(guò)74LS14反相器反相整形,輸出值由邏輯1變?yōu)檫壿?后,送入單片機(jī)中進(jìn)行進(jìn)一步處理。

          值得指出的是在此處PNP三極管A1015的使用。此處如果選用NPN三極管,則在開(kāi)機(jī)或復(fù)位時(shí)P1口各位輸出高電平會(huì)誤掃描傳感器矩陣,而選用PNP三極管就可以避免這種情況,能很好的控制光電傳感器的工作,并可以增加驅(qū)動(dòng)能力。

          圖3 光電傳感器尋跡電路圖

          3 尋跡

          單片機(jī)控制尋跡的原理是這樣的:第一步,通過(guò)矩陣式掃描,即給光電傳感器矩陣分別輸入兩個(gè)“1”信號(hào)的行值,將輸出的4個(gè)列值信號(hào)分別存入兩個(gè)地址(如30H、31H)的低4位,低4位從高到低分別對(duì)應(yīng)著4個(gè)方向:前、后、左前、右前。然后用“F0”與這八位做“或”邏輯運(yùn)算,即屏蔽掉高四位后作為本次的信號(hào)值;第二步,將本次的信號(hào)值與上一次掃描處理后的信號(hào)值進(jìn)行邏輯處理,得出一個(gè)新方向,作為機(jī)器人行進(jìn)的方向。

          在這個(gè)程序里,邏輯處理內(nèi)外層得到新方向是尋跡的關(guān)鍵。筆者在其中按先后步驟使用了3種

          前后比較,內(nèi)外層切換,優(yōu)先級(jí)規(guī)則。

          (1) 前后比較規(guī)則

          此規(guī)則是這個(gè)算法的核心規(guī)則。它的目的是盡可能的用新探測(cè)到的黑點(diǎn)作為新方向。新方向F通過(guò)

          (1)

          來(lái)求得。(其中 為本次的信號(hào)值, 為前次的信號(hào)值)邏輯處理前“0”表示黑線軌跡,邏輯處理后“1”表示軌跡行進(jìn)方向。舉例如下:以?xún)?nèi)層為例,設(shè)當(dāng)前測(cè)得的值為

          且前一次測(cè)得的值為

          經(jīng)過(guò)上述(1)邏輯處理后,假設(shè)結(jié)果為

          則正前方是行進(jìn)的新方向。

          (2) 內(nèi)外層切換規(guī)則

          如果光電傳感器組前后兩次所檢測(cè)的值完全一樣,則在邏輯處理后會(huì)出現(xiàn)全零,這時(shí)保持原方向行進(jìn)。如果碰到曲線拐彎或者曲線斷續(xù),則有可能出現(xiàn)多個(gè) “1”即多個(gè)方向,這時(shí)可采用“內(nèi)外層切換規(guī)則”,也就是說(shuō)從內(nèi)層切換到外層,啟用外層掃描值重復(fù)上述前后比較規(guī)則來(lái)進(jìn)行判斷。啟用外層信號(hào)進(jìn)行二次判斷能很好的處理曲線拐彎及曲線斷續(xù)等內(nèi)層處理不好的情況。但用外層信號(hào)判斷,因?yàn)槠鋫鞲衅鞑贾玫拈g隙距離比內(nèi)層大,其控制精度不如用內(nèi)層信號(hào)判斷高。

          (3) 糾錯(cuò)規(guī)則

          在運(yùn)行中,傳感器有可能受到干擾而發(fā)出錯(cuò)誤信號(hào)導(dǎo)致機(jī)器人走錯(cuò)或迷失方向,這個(gè)時(shí)候糾錯(cuò)規(guī)則能讓機(jī)器人后退起到糾錯(cuò)作用。所謂糾錯(cuò)規(guī)則就是在走錯(cuò)后出現(xiàn)了內(nèi)外層左前、前、右前均沒(méi)有探測(cè)到引導(dǎo)線,而后向探測(cè)到了導(dǎo)引線的情況下,讓機(jī)器人后退,一直退到前面三個(gè)方向傳感器里有傳感器探測(cè)到導(dǎo)引線為止。此時(shí)再用(1)式求得新的行進(jìn)方向,從而實(shí)現(xiàn)糾錯(cuò)功能。

          其中前后比較法的邏輯處理及隨后的判斷程序具體如下:(30H放本次信號(hào)值,32H放前次信號(hào)值)

          DATADEAL:MOV A, 30H

          XRL A, 32H

          ANL A, 32H ;按(1)式求新向

          MOV 36H, A ;保存

          MOV R3, #8

          MOV R4, #0

          COUNT: JB ACC.0, ADDN

          COUNT1: RR A

          DJNZ R3, COUNT

          CJNE R4, #1H, JUDGE ;R4里所含不是1個(gè)“1”時(shí),

          ;轉(zhuǎn)“JUDGE”再判斷

          AJMP MOTORRUN ;R4里只有一個(gè)“1”時(shí),以此

          ;“1”所代表的方向作為新方向

          ADDN: INC R4

          AJMP COUNT1

          JUDGE: JC KEEPMOVE ;少于一個(gè)“1”,保持原方向

          AJMP OUTCHECK ;多于一個(gè)“1”,則取用外層

          ……

          MOTORRUN:…… ;電機(jī)驅(qū)動(dòng)子程序

          KEEPMOVE:…… ;保持原運(yùn)動(dòng)狀態(tài)子程序

          OUTCHECK:…… ;取用外層信號(hào)值判斷子程序

          4 執(zhí)行

          導(dǎo)引機(jī)器人的驅(qū)動(dòng)方式采用一驅(qū)動(dòng)輪一轉(zhuǎn)向輪方式:將后輪作為驅(qū)動(dòng)輪,前輪作為轉(zhuǎn)向輪,通過(guò)切換轉(zhuǎn)向輪向左或向右的方式改變機(jī)器人的方向。這種方式與汽車(chē)的控制方式一樣,直線行進(jìn)性能好,可以高速移動(dòng)。從1個(gè)步進(jìn)脈沖對(duì)應(yīng)的行進(jìn)路程,可以預(yù)算出應(yīng)給步進(jìn)電機(jī)發(fā)出的脈沖數(shù)。預(yù)定的行進(jìn)路程以小于內(nèi)層傳感器間隙距離的1/2為宜,這樣可以保證機(jī)器人位置測(cè)量的連續(xù)性和方向識(shí)別的準(zhǔn)確性。單片機(jī)AT89C52根據(jù)其邏輯處理出來(lái)的方向,調(diào)用步進(jìn)電機(jī)的驅(qū)動(dòng)程序即可實(shí)現(xiàn)機(jī)器人循跡連續(xù)運(yùn)動(dòng)的功能。

          5 結(jié)束語(yǔ)

          筆者在做好硬件部分的基礎(chǔ)上,根據(jù)上述思路編制了程序進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)中筆者采用了與底色有較大差異的黑色膠帶作導(dǎo)引線,膠帶寬1.8cm,其中導(dǎo)引線總長(zhǎng)6000mm,斷續(xù)部分的間斷距離不大于10mm,步進(jìn)電機(jī)執(zhí)行一次驅(qū)動(dòng)預(yù)定的行進(jìn)路程為4mm。在沒(méi)有強(qiáng)烈日光干擾的情況下,筆者所設(shè)計(jì)的尋跡系統(tǒng)能自動(dòng)識(shí)別黑色導(dǎo)引線并選擇正確的方向運(yùn)動(dòng)。測(cè)試結(jié)果:系統(tǒng)總能在60S內(nèi)連續(xù)正確地走完全程,而且機(jī)器人(中心)所走的軌跡基本上在黑線上??梢?jiàn),即使是比較復(fù)雜的曲線,筆者設(shè)計(jì)的導(dǎo)引機(jī)器人也能準(zhǔn)確地實(shí)現(xiàn)尋跡功能。

          本文作者的創(chuàng)新點(diǎn)是:針對(duì)基于光電傳感器組尋跡的自動(dòng)導(dǎo)引機(jī)器人,設(shè)計(jì)了一種新的傳感器陣列的布置方式。根據(jù)此布置方式,提出了三個(gè)處理規(guī)則結(jié)合而成的軌跡識(shí)別算法。

          參考文獻(xiàn)

          1. 何立民.MCS—51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,2003年

          2. 廖華麗,周祥,董豐,王延旗.基于模糊控制的AGV.哈爾濱工業(yè)大學(xué)學(xué)報(bào) 2005(7)

          3. 胡銀彪,馮建超.拖靶高度控制系統(tǒng)的設(shè)計(jì).微計(jì)算機(jī)信息 2002(11)



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();