陳 超, 唐 堅(jiān), 靳祖光
(江蘇科技大學(xué) 機(jī)械工程學(xué)院, 江蘇 鎮(zhèn)江, 212003)
隨著機(jī)器人技術(shù)的飛速發(fā)展,研發(fā)導(dǎo)盲機(jī)器人成為輔助盲人正常生活的最好選擇之一[1].對(duì)于自主移動(dòng)機(jī)器人來(lái)說(shuō),能夠規(guī)劃出自己的運(yùn)動(dòng)路徑并能夠執(zhí)行該運(yùn)動(dòng)路徑是機(jī)器人自主行為的一個(gè)重要體現(xiàn).導(dǎo)盲機(jī)器人主要的服務(wù)對(duì)象是盲人或視力受損傷的人,因此路徑規(guī)劃這個(gè)功能對(duì)導(dǎo)盲機(jī)器人來(lái)說(shuō)尤其重要[2].
目前,導(dǎo)盲設(shè)備大致分為以下3類:① 手杖類行進(jìn)輔具;② 穿戴式行進(jìn)輔具;③ 移動(dòng)式行進(jìn)輔具[3].這些導(dǎo)盲設(shè)備中大部分以避障為主要實(shí)現(xiàn)目的,不具有路徑規(guī)劃功能.少數(shù)具備路徑規(guī)劃功能的導(dǎo)盲設(shè)備往往需要大量的資金投入.文中以自主設(shè)計(jì)的導(dǎo)盲機(jī)器人為實(shí)際應(yīng)用背景,依據(jù)射頻識(shí)別模塊在數(shù)據(jù)獲取方面的優(yōu)勢(shì),用極低的成本來(lái)實(shí)現(xiàn)機(jī)器人的路徑規(guī)劃功能.
機(jī)器人主體主要由4層亞克力板搭建而成,直徑為0.5 m,其上主要安置了步進(jìn)電機(jī)、避障傳感器模塊、射頻模塊、語(yǔ)音識(shí)別模塊、PLC控制模塊及操縱手桿等部件.機(jī)器人車體配置方式采用經(jīng)典的三輪差動(dòng)結(jié)構(gòu),包含兩個(gè)驅(qū)動(dòng)輪和一個(gè)萬(wàn)向輪,兩個(gè)后輪為驅(qū)動(dòng)輪,前輪為萬(wàn)向輪,起輔助支撐作用,使整個(gè)車體的重心位于由輪子和地面的接觸點(diǎn)所構(gòu)成的三角形內(nèi),從而增加車體行走時(shí)的穩(wěn)定性和定向性.機(jī)器人轉(zhuǎn)向主要由兩只后輪的轉(zhuǎn)速差來(lái)實(shí)現(xiàn),當(dāng)兩輪轉(zhuǎn)速大小相等方向相反時(shí),可實(shí)現(xiàn)整個(gè)車體的靈活回轉(zhuǎn).機(jī)器人的整體結(jié)構(gòu)如圖1所示.
1.操縱手柄;2.伸縮手桿; 3.手桿轉(zhuǎn)臺(tái);4.射頻通信及語(yǔ)音識(shí)別模塊;5.超聲波避障傳感器;6.PLC控制模塊; 7.亞克力板;8.驅(qū)動(dòng)輪;9.萬(wàn)向輪;10.步進(jìn)電機(jī);11.步進(jìn)電機(jī)驅(qū)動(dòng)器;12.開(kāi)關(guān)電源;13.紅外線避障模塊.
圖1機(jī)器人整體結(jié)構(gòu)
Fig.1Integralstructureoftherobot
機(jī)器人的自定位是指確定其在工作環(huán)境(一般指二維環(huán)境)中的全局坐標(biāo)和運(yùn)動(dòng)方向.由于射頻系統(tǒng)(RFID)可以在幾毫秒內(nèi)獲得厘米級(jí)的數(shù)據(jù)精度,文中導(dǎo)盲機(jī)器人采用一個(gè)RFID閱讀器與多個(gè)標(biāo)簽組成射頻識(shí)別系統(tǒng),將閱讀器放置在導(dǎo)盲機(jī)器人上(即閱讀器的位置就是機(jī)器人的位置),標(biāo)簽粘貼在障礙物上,采用讀寫(xiě)器多路存儲(chǔ)的通訊方式,在閱讀器的應(yīng)答范圍內(nèi),有多個(gè)有源標(biāo)簽的數(shù)據(jù)同時(shí)傳給閱讀器,使得閱讀器閱讀標(biāo)簽中所存儲(chǔ)的障礙物特征點(diǎn)坐標(biāo)、標(biāo)簽的坐標(biāo)值和閱讀器與標(biāo)簽之間的信號(hào)強(qiáng)度值(RSSI)等信息.當(dāng)閱讀器與標(biāo)簽的距離不一樣時(shí),接收標(biāo)簽發(fā)回的信號(hào)強(qiáng)度值也就不一樣了.即根據(jù)閱讀器接收的信號(hào)強(qiáng)度值,得到標(biāo)簽與導(dǎo)盲機(jī)器人的相對(duì)距離[4]如下:
d=10(|RSSI|-A)/(10*n)
(1)
式中:A為閱讀器與標(biāo)簽相距1m時(shí)的信號(hào)強(qiáng)度值(經(jīng)多次測(cè)量,文中A的取值為-45.8 dBm);n為環(huán)境對(duì)信號(hào)的衰減系數(shù)(經(jīng)多次測(cè)量,文中n的取值為3).
在定位過(guò)程中,標(biāo)簽對(duì)未知機(jī)器人的位置都有影響力.標(biāo)簽與機(jī)器人之間的相對(duì)距離越小其影響力越大,該標(biāo)簽對(duì)機(jī)器人位置的決定權(quán)越大.如圖2所示,假設(shè)t時(shí)刻閱讀器收到了4個(gè)信息標(biāo)簽的信號(hào),4個(gè)信息標(biāo)簽的坐標(biāo)分別是(x1,y1),(x2,y2),(x3,y3),(x4,y4),它們到導(dǎo)盲機(jī)器人的距離分別為d1,d2,d3,d4.可以看出d1 圖2 定位方法Fig.2 Location method 根據(jù)Tag1,Tag2,Tag4到閱讀器的距離d1,d2,d4可以求出t時(shí)刻機(jī)器人的坐標(biāo)st(xs,ys): (2) 用同樣的辦法可以求出t+1時(shí)刻的機(jī)器人的坐標(biāo)st+1(xs+1,ys+1),從而得到機(jī)器人運(yùn)動(dòng)的方向角θ,如公式(2)所示,確定了機(jī)器人的方位.機(jī)器人從起點(diǎn)運(yùn)動(dòng)到終點(diǎn)的過(guò)程中,可以根據(jù)標(biāo)簽不斷地檢驗(yàn)和調(diào)整自己的運(yùn)動(dòng)方向,將定位誤差降到最低. (3) 在地圖創(chuàng)建中,將所有實(shí)際的障礙物等效成投影在平面內(nèi)的多邊形集合(圖3),只要記錄下多邊形的特征點(diǎn)就記錄下了該障礙物.由于機(jī)器人車體被簡(jiǎn)化為其轉(zhuǎn)動(dòng)中心,成為二維坐標(biāo)系下的一個(gè)點(diǎn),所以將障礙物根據(jù)機(jī)器人的尺寸和測(cè)量誤差進(jìn)行膨脹.文中障礙物以(w/2+a)尺寸進(jìn)行膨脹.其中,w是機(jī)器人的直徑,a是機(jī)器人的定位誤差(文中a為0.15 m).對(duì)于一些不規(guī)則或圓形的障礙物,將其膨脹為規(guī)則的幾何圖形,以便于路徑規(guī)劃. 圖3 環(huán)境模型示意圖Fig.3 Diagram of environment model 導(dǎo)盲機(jī)器人的環(huán)境創(chuàng)建主要借助于射頻模塊來(lái)實(shí)現(xiàn)的.首先,正常人通過(guò)手柄控制機(jī)器人在室內(nèi)環(huán)境中走一遍[6].機(jī)器人運(yùn)用車載射頻模塊閱讀器閱讀障礙物上粘貼的標(biāo)簽信息,獲得該障礙物數(shù)據(jù)信息(包括障礙物特征點(diǎn)等);其次,通過(guò)膨脹規(guī)則將得到的障礙物信息進(jìn)行膨脹;最后將膨脹后的坐標(biāo)值存入二維數(shù)組,其中二維數(shù)組的下標(biāo)為膨脹前的坐標(biāo)值,便于尋找,具體流程如圖4,即完成了障礙物地圖的創(chuàng)建.機(jī)器人具有自學(xué)習(xí)功能,進(jìn)入陌生環(huán)境時(shí),只要重復(fù)上述過(guò)程,就可以創(chuàng)建新的障礙物地圖,提高了導(dǎo)盲機(jī)器人的實(shí)用性. 圖4 環(huán)境地圖創(chuàng)建流程Fig.4 Flow chart of establishing environmental map A*算法在人工智能中是一種典型的啟發(fā)式搜索算法,結(jié)合了啟發(fā)式方法和形式化方法.它通過(guò)一個(gè)估價(jià)函數(shù)來(lái)估計(jì)每個(gè)最佳節(jié)點(diǎn)的權(quán)值,并解出狀態(tài)空間搜索的最短路徑.文中通過(guò)射頻模塊和語(yǔ)音模塊等搜集環(huán)境信息,結(jié)合A*算法的思想,提出了一種路徑規(guī)劃算法: 1) 運(yùn)用上述環(huán)境地圖創(chuàng)建算法,創(chuàng)建二維障礙物地圖. 2) 通過(guò)三角定位算法獲得機(jī)器人當(dāng)前方位作為起點(diǎn)S,以語(yǔ)音模塊的語(yǔ)音輸入功能輸入目標(biāo)點(diǎn)G. 3) 在二維障礙物地圖中,求取與線段SG相交的障礙物,本算法下面將只考慮與線段SG相交的障礙物. 4) 從起點(diǎn)S開(kāi)始,將起始點(diǎn)S加入開(kāi)啟列表(開(kāi)啟列表就像一張購(gòu)物清單,路徑可能會(huì)通過(guò)它包含的點(diǎn),也有可能不會(huì)),尋找開(kāi)啟列表中f值最低的點(diǎn),作為當(dāng)前點(diǎn).其中f值為g值和h值之和,g值為從起始點(diǎn)S沿著產(chǎn)生的路徑運(yùn)動(dòng)到當(dāng)前點(diǎn)所走過(guò)的距離;h值是當(dāng)前點(diǎn)到目標(biāo)點(diǎn)G的歐式距離;若當(dāng)前點(diǎn)坐標(biāo)為(xd,yd),目標(biāo)點(diǎn)坐標(biāo)為(xm,ym),則有 (4) 5) 把當(dāng)前點(diǎn)切換到關(guān)閉列表(關(guān)閉列表中保存所有不需要再次檢查的點(diǎn)),并從開(kāi)啟列表中刪除該點(diǎn).搜索當(dāng)前點(diǎn)能不經(jīng)過(guò)障礙物而直接到達(dá)的障礙物特征點(diǎn),判斷該特征點(diǎn)是否在關(guān)閉列表中,如果在則略過(guò)此點(diǎn);反之判斷該特征點(diǎn)是否在開(kāi)啟列表中,若不在則以當(dāng)前點(diǎn)作為該特征點(diǎn)的父節(jié)點(diǎn)算出g,h和f值并將其加入到開(kāi)啟列表中;反之則以g值作為參考檢查新的路徑是否更好(g值越小則路徑越優(yōu)),如果更好則把這一點(diǎn)的父節(jié)點(diǎn)改為當(dāng)前點(diǎn),重新計(jì)算這一點(diǎn)的g,h和f值. 6) 判斷開(kāi)啟列表是否為空,若是則路徑不存在,算法結(jié)束. 7) 判斷是否將目標(biāo)點(diǎn)加進(jìn)了開(kāi)啟列表,如果是則路徑找到,算法結(jié)束;反之轉(zhuǎn)到步驟4). 8) 保存路徑.從目標(biāo)點(diǎn)開(kāi)始沿著每一點(diǎn)的父節(jié)點(diǎn)移動(dòng)直到回到起始點(diǎn),并將經(jīng)歷過(guò)的點(diǎn)保存成數(shù)組的形式,顛倒該數(shù)組的順序,則該數(shù)組就是路徑. 該路徑規(guī)劃算法以障礙物膨脹,增強(qiáng)了機(jī)器人對(duì)環(huán)境不確定信息的適應(yīng);依靠射頻模塊和語(yǔ)音模塊,精確地得到室內(nèi)環(huán)境信息,完成了機(jī)器人定位信息和目標(biāo)點(diǎn)信息的獲取;障礙物地圖只存入障礙物特征點(diǎn),相對(duì)于同樣存入數(shù)字地圖的柵格算法,最大限度的降低了存入地圖需要的存儲(chǔ)空間,降低成本且在路徑搜索效率上優(yōu)于柵格算法. 柵格算法中柵格大小的選擇直接影響著控制算法的性能.柵格選得小,環(huán)境分辨率小,但抗干擾能力弱,環(huán)境信息存儲(chǔ)量大,決策速度慢;柵格選得大,抗干擾能力強(qiáng),環(huán)境信息存儲(chǔ)量小,決策速度快,但分辨率下降,在密集障礙物中發(fā)現(xiàn)路徑的能力弱[7].文中算法很好的解決了這個(gè)問(wèn)題.首先,障礙物地圖只存入障礙物特征點(diǎn),與柵格選擇小的柵格算法相比,降低了環(huán)境信息存儲(chǔ)量的同時(shí)又不降低環(huán)境分辨率,而且由于環(huán)境障礙物的膨脹使得該算法的抗干擾能力得到加強(qiáng);其次,利用現(xiàn)有的數(shù)學(xué)定理:在平面障礙物為多邊形的情況下最短路程一定是一條由起始點(diǎn)經(jīng)過(guò)各可視障礙頂點(diǎn)到達(dá)終點(diǎn)的一條折線.根據(jù)這個(gè)數(shù)學(xué)定理,文中算法在搜索路徑時(shí),只考慮與起始點(diǎn)和目標(biāo)點(diǎn)連線相交的障礙物,在保證搜索路徑最優(yōu)或次優(yōu)的同時(shí)進(jìn)一步降低了搜索算法處理的數(shù)據(jù)量,提高了搜索效率,所以該算法優(yōu)于柵格法. 采用相同的障礙物環(huán)境,分別將文中路徑規(guī)劃算法和柵格法在MATLAB中進(jìn)行對(duì)比仿真實(shí)驗(yàn),得到的路徑的距離相差不大,但文中算法搜索時(shí)間明顯少于柵格法,搜索效率優(yōu)于柵格法.多次實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果顯示,文中算法搜索時(shí)間最小值、最大值及平均值分別為0.479 0,0.763 0,0.620 5 s,柵格算法則分別為1.185 0, 1.566 0,1.375 5 s.圖5是文中算法與柵格算法得到的有效路徑.由此可得,文中算法優(yōu)于柵格算法. a) 文中算法搜索到的路徑 b) 柵格法搜索到的路徑 利用上述算法編程做了實(shí)驗(yàn),試驗(yàn)場(chǎng)地和導(dǎo)盲機(jī)器人如圖6.在機(jī)器人行走過(guò)程中,通過(guò)語(yǔ)音輸入目標(biāo)點(diǎn)坐標(biāo),系統(tǒng)將立即規(guī)劃出一條從機(jī)器人當(dāng)前位置到目標(biāo)點(diǎn)的最優(yōu)或次優(yōu)路徑,并沿該路徑行走直至到達(dá)目標(biāo)點(diǎn),通過(guò)實(shí)驗(yàn)表明,基本上滿足了導(dǎo)盲的要求. 圖6 導(dǎo)盲機(jī)器人室內(nèi)環(huán)境實(shí)驗(yàn)Fig.6 Indoor environment experiment of seeing eyes robot 1) 結(jié)合射頻模塊和語(yǔ)音模塊等設(shè)備在數(shù)據(jù)獲取上的優(yōu)勢(shì),利用射頻模塊獲取環(huán)境信息,運(yùn)用三角定位算法確定導(dǎo)盲機(jī)器人在環(huán)境中的位置. 2) 運(yùn)用障礙物膨脹和等效投影的思想創(chuàng)建障礙物地圖,以保證路徑規(guī)劃算法搜索出的路徑的可行性. 3) 運(yùn)用語(yǔ)音模塊獲取目標(biāo)點(diǎn)信息,結(jié)合A*算法的啟發(fā)式搜索方式找出一條連接起始點(diǎn)和目標(biāo)點(diǎn)的路徑;實(shí)驗(yàn)表明,該算法在提高搜索效率的同時(shí),保證了搜索出的路徑的平滑性和可通行性. 參考文獻(xiàn)(References) [1] 韓雪峰.導(dǎo)盲機(jī)器人[D].黑龍江哈爾濱:哈爾濱工程大學(xué),2009:1-7. [2] 王志文,郭戈.移動(dòng)機(jī)器人導(dǎo)航技術(shù)現(xiàn)狀與展望[J].機(jī)器人.2003,9(25):470-474. Wang Zhiweng,Gou Ge.Present situation and future develepment of mobile robot path planning technology[J].Robot,2003,9(25):470-474.(in Chinese) [3] Burgard W, Cremers A, Fox D, et al.Experiences with an interactive museum tour-guide robot[J].ArtificialIntelligence, 1999,114:3-55. [4] 劉晶.RFID技術(shù)在移動(dòng)機(jī)器人同步定位中的應(yīng)用[J].中南民族大學(xué)學(xué)報(bào),2008,27(3):84-87. Liu Jing.Application of RFID technology in SLAM[J].JournalofSouth-CentralUniversityforNationalities, 2008,27(3):84-87.(in Chinese) [5] Liu Jing,Yang Po.A localization algorithm for mobile robots in RFID system [C]∥SSRR.2007InternationalConferenceonWirelessCommunications,NetworkingandMobileComputing.United States:Institute of Electrical and Electronics Engineers Computer Society,2007:2109-2112. [6] Kiyosumi Kidono,Jun Miura,Yoshiaki Shirai.Autonomous visual navigation of a mobile robot using a human-guided experience[J].RoboticsandAutonomousSystems,2002,40:121-130. [7] 許斯軍,曹奇英.基于可視圖的移動(dòng)機(jī)器人路徑規(guī)劃[J].計(jì)算機(jī)應(yīng)用與軟件.2011,3(28):220-236. Xu Sijun,Cao Qiying.A visibility graph based path planning algorithm for mobile robot[J].ComputerApplicationsandSoftware,2011,3(28):220-236.3 路徑規(guī)劃
3.1 環(huán)境地圖創(chuàng)建
3.2 路徑規(guī)劃算法
3.3 算法性能分析
4 實(shí)驗(yàn)調(diào)試
5 結(jié)論