吳 剛,曾國(guó)強(qiáng),汪 鍵,嚴(yán) 磊,楊 劍,譚承君
(成都理工大學(xué),四川成都 610059)
電腦鼠是一個(gè)自主式移動(dòng)機(jī)器人,能夠自主搜尋迷宮,完成IEEE制定標(biāo)準(zhǔn)中的競(jìng)賽任務(wù)[1]。隨著世界人工智能的發(fā)展,每一屆IEEE國(guó)際電腦鼠走迷宮競(jìng)賽都吸引了眾多愛好者的參與[2],尤其在美國(guó)、英國(guó)、日本、新加坡等國(guó)家十分流行。依照競(jìng)賽規(guī)則,電腦鼠必須自行決定搜尋法則[3]。電腦鼠在搜尋迷宮終點(diǎn)過程中,執(zhí)行前進(jìn)、轉(zhuǎn)彎、后退等動(dòng)作,而每個(gè)迷宮格環(huán)境可能不相同,需要電腦鼠實(shí)時(shí)判斷其所在迷宮格的位置,不斷修正姿勢(shì),避免撞上迷宮墻壁。因此,電腦鼠需要安裝多種傳感器,用于測(cè)量電腦鼠與迷宮墻壁間的距離、檢測(cè)電機(jī)轉(zhuǎn)速,以完成電腦鼠規(guī)定的動(dòng)作和任務(wù)。
包含多傳感器的技術(shù)融合是電腦鼠完成迷宮搜索、找到迷宮終點(diǎn)的關(guān)鍵。文獻(xiàn)[4]提出了基于攝像頭的電腦鼠傳感器方案,實(shí)現(xiàn)了迷宮環(huán)境圖像數(shù)據(jù)幀處理的方式,根據(jù)圖像數(shù)據(jù)提取迷宮墻壁信息,但圖像處理時(shí)間與迷宮檢測(cè)精確性呈反比,不適合高實(shí)時(shí)性的電腦鼠獲取迷宮信息。文獻(xiàn)[5]中提出了光電編碼器和光電傳感器的電腦鼠傳感器方案,解決了電腦鼠在迷宮內(nèi)的定位問題和迷宮墻壁檢測(cè)問題,但僅靠這2種傳感器在電腦鼠高速轉(zhuǎn)彎時(shí)姿勢(shì)難以校正,不利于電腦鼠姿勢(shì)實(shí)時(shí)校正。文獻(xiàn)[6]中提出了運(yùn)用一體化紅外傳感器判斷有無迷宮墻壁的方案,通過步進(jìn)電機(jī)計(jì)數(shù)判斷電腦鼠走過的距離,每轉(zhuǎn)一圈返回75個(gè)脈沖,不能滿足精確的定點(diǎn)距離判斷。因此,需要設(shè)計(jì)高速、高效、精準(zhǔn)的電腦鼠傳感器,保證電腦鼠在最短時(shí)間內(nèi)完成迷宮搜索和沖刺。本論文提出了運(yùn)用線性紅外傳感器、積分型陀螺儀、正交編碼器的電腦鼠傳感器方案,讓電腦鼠能自由在迷宮內(nèi)進(jìn)行各項(xiàng)動(dòng)作。
圖1所示為電腦鼠傳感器方案的硬件框圖,采用Cortex—M3為內(nèi)核的STM32為微控制器,運(yùn)用線性紅外傳感器、編碼器、陀螺儀等多傳感器的檢測(cè)方法對(duì)電腦鼠進(jìn)行實(shí)時(shí)位置檢測(cè)。通過設(shè)計(jì)的Matlab軟件接口接收電腦鼠無線模塊發(fā)回的各傳感器數(shù)據(jù),可以分析紅外傳感器數(shù)據(jù)觀測(cè)電腦鼠的實(shí)時(shí)姿勢(shì),對(duì)編碼器數(shù)據(jù)進(jìn)行分析掌握電腦鼠速度與運(yùn)動(dòng)距離;對(duì)陀螺儀數(shù)據(jù)進(jìn)行分析觀察高速情況下電腦鼠的轉(zhuǎn)彎效果。
圖1 硬件框圖Fig 1 Hardware block diagram
圖2 編碼器工作模式Fig 2 Encoder operating mode
電腦鼠在快速運(yùn)動(dòng)過程中,有可能輪胎打滑,導(dǎo)致電腦鼠在姿勢(shì)修正時(shí)紅外傳感器不能及時(shí)檢測(cè)迷宮墻壁,造成轉(zhuǎn)彎角度誤差,因此,選用陀螺儀ADXRS610修正電腦鼠在轉(zhuǎn)彎時(shí)的誤差。從ADXRS610技術(shù)資料中可以查到,陀螺儀輸出電壓值與角速度呈正比,以2.5 V為參考電壓,典型的輸出電壓與角速度的關(guān)系是6 mV/((°)/s),輸出電壓大于2.5V時(shí),角速度為正值;反之,角速度為負(fù)值。假設(shè)量測(cè)范圍是±300°/s,那么,輸出電壓為
設(shè)陀螺儀輸出的電壓值U,由圖3曲線關(guān)系知
則
本文中STM32自帶的12位ADC,將0~5V陀螺儀的輸出電壓范圍轉(zhuǎn)換成0~4095的數(shù)值范圍時(shí),零點(diǎn)電壓2.5 V的數(shù)值是2 047,那么,角速度為300°/s時(shí)的相應(yīng)值是
由式(3)、式(4)得
ADXRS610為積分型陀螺儀,對(duì)角速度進(jìn)行積分求得轉(zhuǎn)彎角度
對(duì)式(6)進(jìn)行離散化處理,得到
對(duì)陀螺儀輸出角速度n次采樣后
2.3.1 紅外發(fā)光二極管
傳感器選用紅外發(fā)光二極管OSE—1L1,波長(zhǎng)為90 nm,工作電壓5 V。紅外發(fā)光傳感器發(fā)出的光線是肉眼不可見的,但在空氣介質(zhì)中形成了一定的球面度。數(shù)據(jù)曲線Q=I(sr),sr是立體角國(guó)際單位,r為發(fā)光傳感器照射的半徑(cm)。當(dāng)紅外發(fā)光二極管工作在典型電流值50 mA時(shí),發(fā)射強(qiáng)度為50 mW/sr。發(fā)射光強(qiáng)度與球面度的關(guān)系
光路是可逆的,紅外線照射到迷宮墻壁上會(huì)被吸收少量的光線,紅外感光器接收到的光線會(huì)比理想情況下減小,因此,光在迷宮墻壁上有損失,在接收端的光強(qiáng)與球面度的關(guān)系為
式中 α大小與迷宮墻壁反射率相關(guān)。
2.3.2 紅外接收傳感器
選用紅外TSL262R為接收傳感器,接收的輻照需要由波長(zhǎng)峰值為940 nm的紅外發(fā)光二極管提供,該傳感器能夠根據(jù)接收到的光強(qiáng)度轉(zhuǎn)換為壓電信號(hào),典型的輻照反應(yīng)是111mV/(μW/cm2),并且該傳感器內(nèi)部集成濾波電路,體積較小。TSL262R輸出的電壓信號(hào)與接收到的光能量強(qiáng)度在對(duì)數(shù)圖形上呈正比,選取TSL262R數(shù)據(jù)手冊(cè)上輸出電壓與接收光能量的關(guān)系曲線上(100,0.9)(10,0.09),求解輸出電壓和接收光能量的對(duì)數(shù)關(guān)系方程
將式(10)帶入式(11)中
由上式得出了紅外接收傳感器輸出電壓與迷宮墻壁距離的呈線性的關(guān)系,由于不同迷宮的墻壁反射率α并不是完全相同,并且相同電路的不同紅外發(fā)光二級(jí)管發(fā)出的光強(qiáng)也會(huì)存在細(xì)微的差異,此公式不能直接套用。根據(jù)紅外接收傳感器TSL262R輸出電壓與接收光能量強(qiáng)度的對(duì)應(yīng)的對(duì)數(shù)關(guān)系,假設(shè)紅外接收傳感器檢測(cè)到的光強(qiáng)為βEe,外界常量因素為b,則用公式lgvo=αlgEe+β代替式(12)
參數(shù)r為電腦鼠到迷宮墻壁的距離,c為紅外發(fā)光二極管發(fā)射強(qiáng)度和迷宮墻壁反射率的影響。因此,紅外接收傳感器輸出電壓與電腦鼠迷宮墻壁距離存在對(duì)數(shù)關(guān)系
參數(shù)c和不同迷宮墻壁的反射率有關(guān),d和紅外發(fā)光二極管發(fā)射強(qiáng)度與迷宮墻壁發(fā)射率有關(guān)。
2.3.3 紅外數(shù)據(jù)擬合
紅外發(fā)光二極管和紅外接收傳感器形成紅外檢測(cè)電路,STM32將ADC采回的電壓值上傳到PC上,在PC上經(jīng)過數(shù)據(jù)解析,可以得到紅外接收傳感器輸出電壓與電腦鼠同迷宮墻壁距離的一組實(shí)驗(yàn)數(shù)據(jù)如表1。
對(duì)表1數(shù)據(jù)10個(gè)點(diǎn)預(yù)測(cè)距離依據(jù)式(12)進(jìn)行建模如下:F(r)=cr+d,其中,系數(shù)a,c可以通過最小二乘法計(jì)算出來的數(shù)據(jù)的偏差的平方和擬合計(jì)算[7],2個(gè)未知數(shù)的10個(gè)方程如下
在Matlab環(huán)境下,對(duì)表1的電壓和距離數(shù)據(jù)進(jìn)行最小二乘法擬合,獲得如圖3所示的紅外輸出電壓與迷宮墻壁的數(shù)據(jù)擬合圖,可以計(jì)算出最接近真實(shí)值的c,d值,求得c為 -0.6126,d為0.6525,殘差r=0.0869。根據(jù)擬合曲線,電腦鼠通過判斷相應(yīng)的采樣電壓,可以確定與迷宮墻壁的距離信息。為了驗(yàn)證紅外數(shù)據(jù)擬合曲線上電壓與對(duì)應(yīng)距離的可靠性,以及數(shù)據(jù)點(diǎn)個(gè)數(shù)的選取的合理性,表1中對(duì)相同電壓下,實(shí)際距離與不同數(shù)據(jù)點(diǎn)預(yù)測(cè)距離進(jìn)行對(duì)比驗(yàn)證。
圖3 紅外輸出電壓與迷宮墻壁距離數(shù)據(jù)擬合圖Fig 3 Data fitting diagram of IR output voltage and maze wall distance
表1 相同電壓下實(shí)際測(cè)量距離值與預(yù)測(cè)值對(duì)比Tab 1 Contrast of actual measurement distance and predicted values in same voltage
每格迷宮是18 cm×18 cm,選取紅外線傳感器測(cè)距范圍4~13 cm。從表1中每組預(yù)測(cè)數(shù)據(jù)與實(shí)際檢測(cè)距離比較可以看出:采用3個(gè)點(diǎn)預(yù)測(cè)的值各個(gè)點(diǎn)與真實(shí)值最接近,5個(gè)點(diǎn)預(yù)測(cè)值和4個(gè)點(diǎn)預(yù)測(cè)值在越靠近迷宮墻壁時(shí)預(yù)測(cè)值偏差變大,2個(gè)點(diǎn)預(yù)測(cè)值在距離迷宮墻壁較遠(yuǎn)時(shí)誤差偏大??傮w上用最小二乘法擬合的曲線偏差都較小,紅外接收傳感器采用經(jīng)過擬合后的數(shù)據(jù)能有效檢測(cè)迷宮墻壁距離,根據(jù)檢測(cè)到的距離,電腦鼠可以定點(diǎn)執(zhí)行姿勢(shì)清零、姿勢(shì)調(diào)節(jié)、動(dòng)作預(yù)判、方向轉(zhuǎn)換等。
電腦鼠在迷宮內(nèi)運(yùn)動(dòng)時(shí),電腦鼠端配置無線發(fā)射模塊,無線發(fā)射模塊向PC端發(fā)送電腦鼠各傳感器的狀態(tài)數(shù)據(jù):電機(jī)編碼器脈沖信號(hào)、紅外接收傳感器輸出電壓值、陀螺儀輸出電壓值,PC端接收到的傳感器數(shù)據(jù)運(yùn)用Matlab軟件制作電腦鼠運(yùn)動(dòng)狀態(tài)數(shù)據(jù)曲線,根據(jù)理論建模設(shè)定的轉(zhuǎn)彎加減速參數(shù)、直線運(yùn)動(dòng)距離制作理論曲線,通過比較實(shí)際速度曲線與理論速度曲線的差別,改進(jìn)電腦鼠直線和轉(zhuǎn)彎過程中的各項(xiàng)參數(shù),以修正電腦鼠在迷宮內(nèi)的運(yùn)動(dòng)姿勢(shì)。
圖4為運(yùn)用多傳感器檢測(cè)電腦鼠運(yùn)動(dòng)狀態(tài)和位置,在迷宮內(nèi)運(yùn)功的左右輪速度曲線,顯示了直線、90°轉(zhuǎn)彎、連續(xù)轉(zhuǎn)彎姿勢(shì)修正預(yù)期效果。對(duì)各段數(shù)據(jù)逐一分析如下:
圖4 電腦鼠左右輪速度曲線Fig 4 Left and right wheel speed curve of micromouse
1)Ⅰ段為電腦鼠直線運(yùn)動(dòng),采用紅外和編碼器進(jìn)行姿勢(shì)修正;
2)ⅡⅣ段為左右輪以絕對(duì)值相同的加速度減速和加速,由于運(yùn)用了PID控制算法,讓電腦鼠經(jīng)過加減速后能夠快速達(dá)到穩(wěn)定狀態(tài);
3)左右輪快速加減速并達(dá)到穩(wěn)定勻速;
4)ⅡⅢ段右輪速度大于左輪速度,電腦鼠向左轉(zhuǎn)彎90°,采用陀螺儀轉(zhuǎn)彎姿勢(shì)修正;
5)ⅣⅥ段為左輪速度大于右輪,向右轉(zhuǎn)彎90°,采用陀螺儀轉(zhuǎn)彎姿勢(shì)修正;
6)Ⅴ段連續(xù)轉(zhuǎn)彎時(shí),轉(zhuǎn)彎完成后,采用紅外單面墻壁姿勢(shì)迅速修正。
電腦鼠設(shè)計(jì)技術(shù)難度較大,涉及機(jī)械、電子、計(jì)算機(jī)、傳感器技術(shù)、控制技術(shù)等多項(xiàng)技術(shù),需要把感知、規(guī)劃、決策和行動(dòng)等各種模塊有機(jī)地結(jié)合起來[8],才能完成迷宮搜索沖刺任務(wù)。本文提出運(yùn)用編碼器、紅外傳感器、陀螺儀的檢測(cè)技術(shù),針對(duì)紅外采用了最小二乘法擬合出紅外的探測(cè)距離,在測(cè)距精準(zhǔn)的同時(shí),配置了高精度的編碼器和陀螺儀,讓電腦鼠在直線運(yùn)動(dòng)、轉(zhuǎn)彎過程中都有傳感器檢測(cè)迷宮信息和電腦鼠姿勢(shì),較好實(shí)現(xiàn)了電腦鼠的位置檢測(cè)。本文設(shè)計(jì)的電腦鼠實(shí)踐效果較好,在2012年IEEE電腦鼠走迷宮全國(guó)總決賽中,以3.92 s的成績(jī)獲得了全國(guó)總決賽冠軍。
[1]Chen N.An updated micromouse competition[C]//26th Proceedings of IEEE Annual Conference on Frontiers in Education,F(xiàn)IE'96,1996:1057-1059.
[2]Gibb J,Hamey L.MINNI:Micromouse incorporating neural network intelligence[J].Australina Computer Science Communications,1997,19:194-201.
[3]Sharma M,Robeonics K.Algorthms for micro-mouse[C]//International Conference on Future Computer and Communication,ICFCC 2009,IEEE,2009:581-585.
[4]Chen N.A vision-guided autonomous vehicle:An alternative micromouse competition[J].IEEE Transactions on Education,1997,40(4):253-258.
[5]Su J H,Lee C S,Lin K E,et al.A hands-on laboratory for autonomous mobile robot design courses[C]//World Congress,2008:9743-9748.
[6]張輝輝,許 杰,崔琪琳,等.基于雙T選頻網(wǎng)絡(luò)的電腦鼠紅外檢測(cè)系統(tǒng)[J].電子測(cè)試,2011,12(12):68-71.
[7]陳懷琛,吳大正,高西全,等.Matlab及在電子信息課程中的應(yīng)用[M].北京:電子工業(yè)出版社,2006:36-120.
[8]Siegwart R,Nourbakhsh I R.Autonomous mobile robots[D].Cambridge:Massachusetts Institute of Technology,2004:181-186.