寧 祎,閆 銘,杜寬森
(河南工業(yè)大學(xué) 機(jī)器人研究所,鄭州 450007)
自從20世紀(jì)80年代中后期,Brooks等人把行為學(xué)引入機(jī)器人研究領(lǐng)域以來,基于行為的控制方法以其簡單、實(shí)用、易于實(shí)現(xiàn)等優(yōu)點(diǎn)迅速成為機(jī)器人研究的熱點(diǎn)。時(shí)至今日,已有不少可喜的研究成果[1,2]。但許多對基于行為的機(jī)器人研究都是在已知環(huán)境參數(shù)的情況下對行為選擇算法進(jìn)行各種智能控制方面的設(shè)計(jì)與優(yōu)化研究[3~5],不能實(shí)現(xiàn)機(jī)器人實(shí)時(shí)的在線學(xué)習(xí)。
本文提出一種在線學(xué)習(xí)方法,不給機(jī)器人初始化行為信息,而由機(jī)器人在行動過程中不斷總結(jié)經(jīng)驗(yàn),自我學(xué)習(xí),并能修正錯誤,以使自身更加適應(yīng)各種不可預(yù)知的環(huán)境。
要讓機(jī)器人能自主學(xué)習(xí)行為,并對行為做出評價(jià),這不僅要求機(jī)器人有基本的測距裝置,也要有簡單的碰撞檢測裝置。所以,本文以廣茂達(dá)能力風(fēng)暴個(gè)人機(jī)器人為基礎(chǔ),稍做改裝,只保留該機(jī)器人的驅(qū)動機(jī)構(gòu)和碰撞檢測裝置(即微動開關(guān))。機(jī)器人驅(qū)動機(jī)構(gòu)(底盤結(jié)構(gòu))如圖1所示。該機(jī)器人有2組減速電機(jī)組,2個(gè)萬向輪,4個(gè)微動開關(guān)組成的碰撞檢測傳感器,1組鋰電電池[6]。
圖1 機(jī)器人驅(qū)動機(jī)構(gòu)
圖2 微動開關(guān)
微動開關(guān)用于對機(jī)器人的碰撞檢測,以對機(jī)器人所做出的行為動作進(jìn)行評價(jià)。微動開關(guān)分別位于機(jī)器人的左前、右前、左后、右后四個(gè)位置,微動開關(guān)如圖2所示。它們和機(jī)器人外周的懸掛式活動圓環(huán)共同組成了碰撞檢測裝置。
給機(jī)器人加裝超聲波傳感器,用于探測機(jī)器人與障礙物的距離,即感知周圍環(huán)境信息。傳感器分布示意圖如圖3所示。機(jī)器人一共有7個(gè)超聲波傳感器,編號S1~S7,相鄰兩個(gè)傳感器之間的夾角為30度。
圖3 傳感器分布示意圖
圖4 機(jī)器人坐標(biāo)系
機(jī)器人由單片機(jī)控制。運(yùn)行時(shí),把機(jī)器人看作是一個(gè)圓,其半徑為r=10cm,機(jī)器人所在的位置坐標(biāo)以圓心坐標(biāo)來表示。構(gòu)建機(jī)器人坐標(biāo)系,如圖4所示。簡單起見,把機(jī)器人設(shè)置成始終以一個(gè)固定的速度v=10cm/s前進(jìn)。
在基于行為的機(jī)器人學(xué)中,機(jī)器人的控制系統(tǒng)由一系列的行為構(gòu)成。行為是為了完成特定任務(wù)的控制單元。每個(gè)行為根據(jù)所要完成的任務(wù)進(jìn)行特定的感知,并輸出行為的控制命令。就目前大多數(shù)對行為機(jī)器人的研究來看,主要把機(jī)器人的行為分為目標(biāo)趨向行為、避障行為、沿墻走行為和漫步行為等。
本文為了研究在線學(xué)習(xí)方法的效果,把機(jī)器人的行為只設(shè)計(jì)為避障、漫步和沿墻走這三種。不要目標(biāo)趨向行為是因?yàn)楸疚闹饕菫榱蓑?yàn)證機(jī)器人的自學(xué)習(xí)路徑規(guī)劃問題,暫時(shí)不考慮目標(biāo)尋找問題。其結(jié)構(gòu)如圖5所示。
圖5 本文設(shè)計(jì)采用的行為選擇機(jī)制
機(jī)器人所采用的超聲波傳感器的有效范圍為10cm~4m之間。我們把機(jī)器人周圍的環(huán)境信息,即機(jī)器人與障礙物的距離分為三個(gè)等級:近(距離D≤15cm,用N表示)、中(15cm 機(jī)器人在行進(jìn)過程中不斷的探測自己與周圍障礙物的距離。當(dāng)有傳感器探測到離障礙物距離為中或近時(shí),則根據(jù)探測到距離最近的傳感器所對應(yīng)的角度值θi,讓機(jī)器人旋轉(zhuǎn)相應(yīng)的角度θ(或-θ),然后沿著這一方向運(yùn)行,行進(jìn)一段距離后沒有發(fā)生碰撞,則認(rèn)為這種判斷是正確的,把這種判斷與所對應(yīng)的環(huán)境信息記錄下來,初始權(quán)值為0.1,最大權(quán)值為1;若行進(jìn)一段距離后發(fā)生了碰撞,則認(rèn)為這種判斷不正確,回到做出判斷前的位置,然后旋轉(zhuǎn)30°+θ(或-(30°+θ)),再行進(jìn)一段距離,做出判斷;若還不能避免碰撞,則旋轉(zhuǎn)角度再增大30°(或-30°),直到不再碰撞,記錄信息與行為。行為學(xué)習(xí)流程圖如圖6所示。 圖6 行為自學(xué)習(xí)流程圖 其中,θi是傳感器i所測得的與障礙物的距離最近的傳感器對應(yīng)的角度值,并且θi是θ的函數(shù),即θi與θ滿足以下關(guān)系: n初始化為0,如果第一次作出的行為決策不正確,則n會自加1,以使機(jī)器人旋轉(zhuǎn)更大的θ角。直到機(jī)器人判定此行為決策正確為止。 在機(jī)器人做出行為判斷后,到底行進(jìn)多遠(yuǎn)的一段距離才算合適呢?根據(jù)傳感器探測到的機(jī)器人與障礙物的最小距離D,如果機(jī)器人轉(zhuǎn)角30度行進(jìn),則機(jī)器人會在轉(zhuǎn)角后移動的最小碰撞檢測距離D1。如圖7(a)所示。由圖可計(jì)算得出D1的最小值為。如果機(jī)器人轉(zhuǎn)角60度行進(jìn),則機(jī)器人會在轉(zhuǎn)角后移動的最小碰撞檢測距離為D2。如圖7(b) 所示。由圖可計(jì)算得出D2的最小值為D2=2D。如果機(jī)器人正前方有障礙物,則機(jī)器人會左轉(zhuǎn)或右轉(zhuǎn)90度,我們設(shè)定此時(shí)機(jī)器人的最小碰撞檢測距離為D3=D。因?yàn)榕鲎矀鞲衅魇俏锢硌b置,在其實(shí)現(xiàn)功能時(shí)會有一個(gè)檢測反應(yīng)距離存在,所以我們給每一個(gè)最小碰撞檢測距離都加上微動開關(guān)的反應(yīng)距離d=3cm。由上,我們得出最小碰撞檢測距離Dis與旋轉(zhuǎn)角θ間的關(guān)系為: 在最小碰撞檢測距離Dis內(nèi),若沒有發(fā)生碰撞,則認(rèn)為該行為與環(huán)境相符合,即適應(yīng)該環(huán)境,記錄信息,以便后來查詢。若在最小碰撞檢測距離Dis內(nèi)發(fā)生了碰撞,則認(rèn)為該行為不符合該環(huán)境,不記錄或做出懲罰。 圖7 最小碰撞檢測距離 機(jī)器人有一個(gè)行為處理信息表,這個(gè)表初始化是空的,第一次查找是找不到任何信息的,直到有一條學(xué)習(xí)成功的信息被記錄下來為止。當(dāng)表中有信息時(shí),則先查表中的信息。如果只查到一條符合當(dāng)前環(huán)境的信息表,則按查到的處理情況做出行為決策,若選擇該行為后無碰撞發(fā)生,給該行為權(quán)值加0.1(最高為1),即給該行為一個(gè)行為獎賞;若有碰撞發(fā)生,給該行為權(quán)值減0.1(最小為0,在確定行為權(quán)值為0后會刪除該記錄),即給該行為一個(gè)行為懲罰。如果查表得到不止一個(gè)符合條件的信息,則比較權(quán)值,誰的權(quán)值大就以誰的行為來輸出,并根據(jù)運(yùn)行結(jié)果做出相應(yīng)的獎賞與懲罰。 本文所提出的機(jī)器人自學(xué)習(xí)方法的總流程如圖8所示。首次運(yùn)行環(huán)境示意圖如圖9所示。經(jīng)過一段時(shí)間測試后,獲取機(jī)器人第一次運(yùn)行信息表中的信息,如表1所示。 結(jié)合運(yùn)行環(huán)境示意圖分析表中信息,當(dāng)機(jī)器人正前方有障礙物時(shí)(位置1),機(jī)器人隨機(jī)選擇了向左轉(zhuǎn)向90度,并記錄下來。當(dāng)機(jī)器人走到位置2時(shí),機(jī)器人探測到障礙物離60度方向角最近,所以選擇了向左轉(zhuǎn)向30度行進(jìn)。行進(jìn)到位置3時(shí),探測到障礙物離30度方向角最近,所以選擇了向左轉(zhuǎn)向60度行進(jìn)。當(dāng)行進(jìn)到位置7時(shí),探測到正前方有障礙物,并選擇了已有的向左轉(zhuǎn)向90度信息執(zhí)行。自此點(diǎn)后,機(jī)器人一直在一個(gè)小區(qū)域內(nèi)運(yùn)行(圖9中的機(jī)器人位置6,7,8,9所圍成的區(qū)域),所以可見表1中第一條信息的權(quán)值為1,第二、三條信息的權(quán)值只是0.2。與此同時(shí),由第四條信息權(quán)值為1可見機(jī)器人很好的實(shí)現(xiàn)了沿墻走的行為選擇。 圖8 總流程圖 圖9 機(jī)器人首次運(yùn)行軌跡示意圖 表1 第一次運(yùn)行機(jī)器人信息表 在分析第一次運(yùn)行結(jié)果以后,我們可以發(fā)現(xiàn)機(jī)器人對運(yùn)行規(guī)則有較好的認(rèn)識與執(zhí)行。為進(jìn)一步驗(yàn)證規(guī)則,得到更多的信息,我們在原有信息的基礎(chǔ)上對其運(yùn)行環(huán)境稍做改變,再進(jìn)行實(shí)驗(yàn),如圖10所示。運(yùn)行一段時(shí)間后得出信息表如表2所示。 圖10 改變運(yùn)行環(huán)境后的運(yùn)行軌跡示意圖 表2 第二次運(yùn)行機(jī)器人信息表 分析第二次運(yùn)行示意圖和得到的信息表,我們發(fā)現(xiàn)在第一次運(yùn)行表的基礎(chǔ)上增加了三條信息,且各條信息的權(quán)值都為最高。這是因?yàn)闄C(jī)器人一直在沿著位置1一直到位置11所示的線路運(yùn)行,且各個(gè)行為均選擇正確,沒有受過懲罰。至此,機(jī)器人信息表已基本建立完成,能夠適應(yīng)示意圖中運(yùn)行環(huán)境。 本文提出機(jī)器人行為選擇自學(xué)習(xí)方法,在機(jī)器人對環(huán)境的感知過程中讓機(jī)器人不斷累積經(jīng)驗(yàn),并把經(jīng)驗(yàn)總結(jié)成規(guī)則記錄下來,以便碰到相同環(huán)境信息時(shí)查找并執(zhí)行。經(jīng)實(shí)驗(yàn)測試,在簡單環(huán)境中能夠得到比較理想的結(jié)果。雖然如此,但仔細(xì)分析,發(fā)現(xiàn)還是少了一些信息:如當(dāng)機(jī)器人正前方有障礙物時(shí)沒有向右轉(zhuǎn)的信息。這就需要我們結(jié)合實(shí)際情況并通過認(rèn)真分析表中得到的結(jié)果,對機(jī)器人信息表做個(gè)補(bǔ)充與完善,以使機(jī)器人更適應(yīng)運(yùn)行環(huán)境。 這種方法以簡單環(huán)境為前提,實(shí)現(xiàn)起來比較容易,以后可逐漸增加環(huán)境障礙,為研究復(fù)雜環(huán)境下機(jī)器人自學(xué)習(xí)方法提供一個(gè)新的思路。 [1] 惲為民.基于行為的機(jī)器人學(xué)[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,10(32):15-19. [2] 王義萍,陳慶偉,胡維禮.機(jī)器人行為選擇機(jī)制綜述[J].機(jī)器人.2009,9:472-480. [3] 張惠娣,劉士榮,俞金壽.基于動力學(xué)系統(tǒng)方法的自主移動機(jī)器人行為設(shè)計(jì)[J].華東理工大學(xué)學(xué)報(bào).2008,12:843-849. [4] 謝敬,傅衛(wèi)平,李德信,等.動態(tài)環(huán)境下基于行為動力學(xué)的移動機(jī)器人路徑規(guī)劃[J].西安理工大學(xué)報(bào).2008,4(24):411-414. [5] 郝冬,劉斌.基于模糊邏輯行為融合路徑規(guī)劃方法[J].計(jì)算機(jī)工程與設(shè)計(jì).2009,30(3):660-663. [6] 上海廣茂達(dá)機(jī)器人公司.能力風(fēng)暴智能機(jī)器人操作手冊[Z].2005.3.2 學(xué)習(xí)鞏固
4 實(shí)驗(yàn)測試
5 結(jié)束語