缺點(diǎn):這種方法強(qiáng)調(diào)世界模型的構(gòu)造并以此模型規(guī)劃行動(dòng),而構(gòu)造符號(hào)模型需要大量的計(jì)算時(shí)間,這對(duì)機(jī)器人的性能會(huì)有顯著的影響。另外,規(guī)劃模型與真實(shí)環(huán)境的偏差將導(dǎo)致機(jī)器人的動(dòng)作無(wú)法達(dá)到預(yù)期的效果。
| 2.基于行為的結(jié)構(gòu)
圖4 基于行為的結(jié)構(gòu)
由于SPA系統(tǒng)過(guò)于死板,出現(xiàn)了另一種實(shí)現(xiàn)方法:基于行為的方法?;谛袨榉椒ㄇ吧硎欠磻?yīng)式系統(tǒng),反應(yīng)式系統(tǒng)并不采用符號(hào)表示,卻能夠生成合理的復(fù)合行為?;谛袨闄C(jī)器人方案進(jìn)一步擴(kuò)展了簡(jiǎn)單反應(yīng)式系統(tǒng)的概念,使得簡(jiǎn)單的并發(fā)行為可以結(jié)合起來(lái)工作。
小歷史:Joe Jones和Daniel Roth于2003年出版的《Robot Programming:A Practical Guide to Behavior-Based Robotics》以及使用基于行為系統(tǒng)的iRobot掃地機(jī)器人的大獲成功(通過(guò)基于行為的系統(tǒng)可有效實(shí)現(xiàn)遍歷、避免在某處卡死等多個(gè)目標(biāo)的達(dá)成),標(biāo)志著當(dāng)年基于行為系統(tǒng)結(jié)構(gòu)的統(tǒng)治地位。短短十年間,SLAM的迅速興起,基于地圖的規(guī)劃和導(dǎo)航再次興起,很多人似乎忘記了或壓根就沒(méi)聽(tīng)說(shuō)過(guò)Behavior-Based Robotics的存在。
圖5 《基于行為的機(jī)器人編程》
基于行為的軟件模型是一種由下至上的設(shè)計(jì),因而其結(jié)果不易預(yù)測(cè),每一個(gè)機(jī)器人功能性(functionality)被封裝成一個(gè)小的獨(dú)立的模塊,稱為一個(gè)“行為”,而不是編寫(xiě)一整個(gè)大段的代碼。因?yàn)樗械男袨椴⑿袌?zhí)行,所以不需要設(shè)置優(yōu)先級(jí)。此種設(shè)計(jì)的目的之一是為了易于擴(kuò)展,例如便于增加一個(gè)新的傳感器或向機(jī)器人程序里增加一個(gè)新的行為特征。所有的行為可以讀取載體所有傳感器的數(shù)據(jù),但當(dāng)歸集眾多的行為向執(zhí)行器產(chǎn)生單一的輸出信號(hào)時(shí),則會(huì)出現(xiàn)問(wèn)題。
最初的行為之間使用固定的優(yōu)先級(jí),而在現(xiàn)代的應(yīng)用中則采用更加靈活的選擇方案。
“基于行為機(jī)器人學(xué)”主要特點(diǎn)包括(參見(jiàn)《嵌入式機(jī)器人學(xué)》):
1)感應(yīng)與動(dòng)作的緊密耦合
在某種程度上,所有行為機(jī)器人的動(dòng)作是對(duì)刺激的反應(yīng)而不是依賴于有意識(shí)的規(guī)則?;乇苁褂盟伎家?guī)劃,取而代之的是一些計(jì)算簡(jiǎn)化的模塊來(lái)實(shí)現(xiàn)從輸入到執(zhí)行的映射,此舉有利于快速響應(yīng)?;谶@個(gè)觀察Brooks言簡(jiǎn)意概的表達(dá)出來(lái)其中的原理——“規(guī)劃不過(guò)是一種回避計(jì)算下一步要做什么的方法”。
2)避開(kāi)知識(shí)的符號(hào)表示
對(duì)環(huán)境的處理上不需要構(gòu)造一個(gè)內(nèi)部模型以用于執(zhí)行規(guī)劃任務(wù),而是采用真實(shí)世界“它自己最好的模型”。機(jī)器人直接從觀測(cè)中獲取到未來(lái)的行為,而非試圖去生成一個(gè)能夠內(nèi)部操作的世界的抽象表示并以此作為規(guī)劃未來(lái)行動(dòng)的基礎(chǔ)。
3)分解成具有因果意義的單元
行為按照狀態(tài)——動(dòng)作成對(duì)出現(xiàn),設(shè)計(jì)為對(duì)特定的狀態(tài)做出確定的動(dòng)作響應(yīng)。
4)并發(fā)關(guān)聯(lián)行為的時(shí)變等級(jí)調(diào)整
為適應(yīng)所要達(dá)成任務(wù)目的,在運(yùn)行期間采用一個(gè)控制方案來(lái)改變行為的激活等級(jí)。
5)行為選擇
在基于行為系統(tǒng)中運(yùn)行著一定數(shù)目作為并行進(jìn)程的行為,每一個(gè)行為可以讀取所有的傳感器(讀動(dòng)作),但只有一個(gè)行為可獲得機(jī)器人執(zhí)行器或行駛機(jī)構(gòu)的控制權(quán)(寫(xiě)動(dòng)作)。因此需要一個(gè)全局控制器在恰當(dāng)?shù)臅r(shí)機(jī)來(lái)協(xié)助行為選擇(或是行為激活、或是行為輸出融合)以達(dá)到預(yù)期的目的。這將系統(tǒng)的設(shè)計(jì)工作,就從描述系統(tǒng)本身轉(zhuǎn)移到定義一個(gè)正常工作的系統(tǒng)的輸出上。