1、引言
80年代末,隨著機(jī)器人學(xué)、DAI和分布式系統(tǒng)的研究與發(fā)展,機(jī)器人已朝向分布式、系統(tǒng)化和智能化的方向發(fā)展.尤其是基于MAS的多機(jī)器人協(xié)作問題正受到越來越多的關(guān)注.目前智能體(Agent)還沒有統(tǒng)一的定義,一般被認(rèn)為是一個(gè)能作用于自身和環(huán)境,并能對(duì)環(huán)境做出反應(yīng)的物理的或抽象的實(shí)體[1],是一個(gè)具有自主性、主動(dòng)性、社會(huì)交互性及反應(yīng)性的對(duì)象模型.MAS則是Agent的集合.每個(gè)Agent都是一個(gè)具有相同的問題求解方法的自治系統(tǒng),能利用局部信息進(jìn)行自主規(guī)劃,并能通過規(guī)劃推理解決局部沖突實(shí)現(xiàn)協(xié)作,從而完成與自身相關(guān)的局部目標(biāo).依據(jù)MAS的特性來組織和控制多個(gè)機(jī)器人,使之能夠協(xié)作完成單個(gè)機(jī)器人無法完成的復(fù)雜任務(wù)是機(jī)器人學(xué)研究領(lǐng)域的新課題,具有重要的理論和現(xiàn)實(shí)意義.國(guó)外一些著名研究有:ACTRESS、CEBOT、 SWARM等系統(tǒng).
我們要實(shí)現(xiàn)的系統(tǒng)是以多個(gè)移動(dòng)機(jī)器人為控制對(duì)象,以開闊區(qū)域?yàn)樵囼?yàn)環(huán)境,要完成多個(gè)隨機(jī)散布的機(jī)器人排成指定隊(duì)形的任務(wù),每個(gè)機(jī)器人要有不同層次的合作能力.我們將機(jī)器人封裝為Agent和車體模型兩部分,其中Agent是廣義的機(jī)器人控制器,車體模型是機(jī)器人的物理實(shí)體.這樣,多機(jī)器人的合作就體現(xiàn)為多 Agent的合作,各機(jī)器人依據(jù)其子目標(biāo),動(dòng)態(tài)地規(guī)劃各自的運(yùn)動(dòng)序列,在自主狀態(tài)下采用自主行為,在沖突狀態(tài)下采用合作行為,從而協(xié)作完成系統(tǒng)任務(wù).本文就是基于這樣的背景提出了系統(tǒng)原型.
2、合作機(jī)制與控制結(jié)構(gòu)
群體的智能行為要求多機(jī)器人之間必須能夠有效合作,這涉及多方面的問題,首先是如何組織機(jī)器人去完成任務(wù),這是任務(wù)級(jí)的合作,體現(xiàn)為高層的組織形式與運(yùn)行機(jī)制[2].多機(jī)器人間關(guān)系明確后,合作又體現(xiàn)為具體的運(yùn)動(dòng)協(xié)調(diào)規(guī)劃與控制問題,這是控制級(jí)的合作,用來解決局部沖突. 根據(jù)系統(tǒng)任務(wù)的要求,我們選取協(xié)商和競(jìng)爭(zhēng)的合作方式,實(shí)現(xiàn)如下合作機(jī)制:在任務(wù)層,實(shí)現(xiàn)了基于競(jìng)爭(zhēng)的子任務(wù)指定;在行為層,通過采用動(dòng)態(tài)優(yōu)先級(jí)設(shè)定技術(shù)消解局部沖突,實(shí)現(xiàn)了資源的合理分配[3].
恰當(dāng)?shù)剡x取系統(tǒng)控制結(jié)構(gòu)是實(shí)現(xiàn)多機(jī)器人合作的前提條件.一般地,以系統(tǒng)中是否有組織智能體為標(biāo)準(zhǔn)[4],將系統(tǒng)分為集中式控制和分散式控制.集中式系統(tǒng)中由管理員負(fù)責(zé)規(guī)劃和決策,其協(xié)調(diào)效率比較高,但實(shí)時(shí)性、動(dòng)態(tài)特性較差.而在分散式系統(tǒng)中,個(gè)體高度自治,并能借助于通訊手段合作完成任務(wù).這種方式在容錯(cuò)能力、可靠性和伸縮性等方面比集中式結(jié)構(gòu)要好.根據(jù)單體機(jī)器人結(jié)構(gòu)的劃分是否遵從笛卡爾方法[5],提出基于行為和基于功能的控制結(jié)構(gòu).基于行為的結(jié)構(gòu)亦叫縱式分解結(jié)構(gòu),R.A.Brooks提出的包容結(jié)構(gòu)[6]是一個(gè)典型.該結(jié)構(gòu)具有靈活反應(yīng)能力,利于實(shí)時(shí)任務(wù)的完成,但幾乎不具有智能,規(guī)劃能力差.基于功能的控制結(jié)構(gòu)也叫橫式分解結(jié)構(gòu),分層遞階結(jié)構(gòu)是一個(gè)典型.該結(jié)構(gòu)對(duì)外界的反應(yīng)不夠靈活,反應(yīng)速度慢,但具有規(guī)劃和推理能力,能對(duì)環(huán)境做出合理反應(yīng).為適應(yīng)系統(tǒng)分布式、智能化和協(xié)同化的要求,我們選取混合式控制結(jié)構(gòu),即規(guī)劃與響應(yīng)相結(jié)合、橫式與縱式相結(jié)合、全局自主分布與局部集中管理相結(jié)合的結(jié)構(gòu).
3、系統(tǒng)模塊化設(shè)計(jì)原型
考慮到系統(tǒng)的分布式特點(diǎn)及機(jī)器人的同質(zhì)性,為了便于系統(tǒng)實(shí)現(xiàn)和擴(kuò)充,我們采用模塊化設(shè)計(jì)思想,依據(jù)系統(tǒng)控制結(jié)構(gòu)的層次,按功能對(duì)系統(tǒng)進(jìn)行模塊化分解,設(shè)計(jì)了具有可實(shí)現(xiàn)性的系統(tǒng)原型.從面向?qū)ο蠹夹g(shù)的角度來看,系統(tǒng)中的對(duì)象可分為機(jī)器人和系統(tǒng)管理員兩類,我們據(jù)此將系統(tǒng)分為管理員分系統(tǒng)和機(jī)器人分系統(tǒng)兩大部分.
3.1機(jī)器人分系統(tǒng)(包含多個(gè)機(jī)器人子系統(tǒng))
每個(gè)機(jī)器人子系統(tǒng)包含Agent和車體模型兩部分,其中,車體模型是包含了各種硬件設(shè)備的物理實(shí)體,在此不詳述.與之相對(duì),Agent作為機(jī)器人智能的體現(xiàn)者,是推理、決策、規(guī)劃和控制的軟件執(zhí)行體,是一個(gè)功能完全的對(duì)象模型,由4部分組成.
3.1.1知識(shí)信息收集處理子系統(tǒng)
機(jī)器人在動(dòng)態(tài)過程中規(guī)劃的依據(jù)就是Agent 具有的先驗(yàn)知識(shí)和前一時(shí)刻收集的局部環(huán)境信息,機(jī)器人據(jù)此完成規(guī)劃和控制.主要包含下面幾個(gè)模塊:
(1) 讀取地圖信息 Read_Map():一般包含部分靜態(tài)障礙的信息.在機(jī)器人的初始化部分完成.
(2) CCD視覺信息接收處理 Receive_CCD():接收從攝像機(jī)中取得的視頻圖像,經(jīng)變換得RGB圖像,然后轉(zhuǎn)換為灰度圖像,經(jīng)數(shù)學(xué)形態(tài)學(xué)處理和邊界抽取等處理,最后可求得視域內(nèi)障礙物和機(jī)器人的位置信息.用來探測(cè)較遠(yuǎn)距離的障礙.
(3)超聲波信息接收處理 Receive_US():主要用于探測(cè)較近距離內(nèi)或突現(xiàn)的障礙,給出障礙物的距離及其方向,在避障過程中起自我保護(hù)和監(jiān)控作用,使之具有較好的靈活反應(yīng)能力.
(4)紅外信息接收處理 Receive_IR():紅外探測(cè)器易受外界光線的干擾,且不能提供障礙物在敏感區(qū)域內(nèi)的具體位置,在本系統(tǒng)中起輔助避障的作用.
(5)Sensor信息融合 SensorInfo_Fusion():將CCD、US、IR的處理結(jié)果經(jīng)綜合分析形成對(duì)環(huán)境的描述,放入規(guī)定的數(shù)據(jù)結(jié)構(gòu)中,以確定靜、動(dòng)態(tài)障礙物的位置、方向等.
(6)車體定位 Cur_Pos():從odometer中讀出車體的位置和前輪轉(zhuǎn)角,填入給定的數(shù)據(jù)結(jié)構(gòu).
上述幾個(gè)模塊主要完成了傳感器數(shù)據(jù)的采集與存儲(chǔ),實(shí)際上還應(yīng)包括機(jī)器人之間的網(wǎng)絡(luò)通訊數(shù)據(jù),這一部分?jǐn)?shù)據(jù)也是很重要的輸入信息,放在后續(xù)的通訊模塊中說明.
3.1.2規(guī)劃推理子系統(tǒng)
規(guī)劃與控制是自主機(jī)器人的核心功能,主要負(fù)責(zé)完成機(jī)器人的行為規(guī)劃與行為控制,體現(xiàn)其智能程度,所以這部分功能實(shí)現(xiàn)比較復(fù)雜,在此只給出主要的功能模塊 (Agent子類的成員函數(shù)).
(1)全局路徑規(guī)劃 Global_Planner():是離線規(guī)劃,在系統(tǒng)初始化時(shí)完成.利用A*搜索算法給出一條在全局環(huán)境內(nèi)最優(yōu)的路徑,做為機(jī)器人在自主狀態(tài)下跟蹤的理想路徑.
(2)局部路徑規(guī)劃 Local_Planner():運(yùn)用動(dòng)態(tài)子目標(biāo)規(guī)劃算法完成動(dòng)態(tài)過程中的局部路徑規(guī)劃.根據(jù)當(dāng)前場(chǎng)景,按照算法調(diào)度下列模塊,求出動(dòng)態(tài)子目標(biāo)點(diǎn)作動(dòng)態(tài)跟蹤的目標(biāo).
(3)靜態(tài)障礙檢測(cè) Static_Collision():根據(jù)傳感器給出的當(dāng)前視域內(nèi)的靜態(tài)障礙(OBS)分布的相關(guān)數(shù)據(jù)信息,按照一定的碰撞檢測(cè)條件,判斷各OBS所在的空間是否與各機(jī)器人當(dāng)前規(guī)劃段相沖突,有,則置標(biāo)志,并返回與機(jī)器人相沖突的最近的OBS信息.
(4)靜態(tài)子目標(biāo)點(diǎn)選取 Static_Subgoal():根據(jù)靜態(tài)障礙檢測(cè)的結(jié)果,按照一定原則,選取子目標(biāo)點(diǎn).
(5)動(dòng)態(tài)沖突預(yù)測(cè) Dynamic_Collision():利用傳感器給出的當(dāng)前視域內(nèi)的動(dòng)態(tài)OBS分布的相關(guān)數(shù)據(jù)信息,依據(jù)利用通信交互的當(dāng)前通信域內(nèi)其他各機(jī)器人(也看作是動(dòng)態(tài)OBS)的相關(guān)信息(位置、速度、目標(biāo)),求出各動(dòng)態(tài)目標(biāo)間的最短距離以及取得時(shí)刻,以距離為檢測(cè)條件,判斷其他機(jī)器人和動(dòng)態(tài)OBS是否與本機(jī)器人當(dāng)前規(guī)劃段相沖突,有,則置標(biāo)志,并返回與本機(jī)器人相沖突的最近的OBS信息.
(6)動(dòng)態(tài)子目標(biāo)點(diǎn)選取 Dynamic_Subgoal():根據(jù)動(dòng)態(tài)沖突預(yù)測(cè)的結(jié)果,按照一定原則,選取子目標(biāo)點(diǎn).
3.1.3控制子系統(tǒng)
控制子系統(tǒng)的任務(wù)就是實(shí)時(shí)地接收控制命令,驅(qū)動(dòng)伺服系統(tǒng)完成目標(biāo)跟蹤的任務(wù).在此,我們只給出規(guī)劃子系統(tǒng)和底層伺服子系統(tǒng)的接口模塊. 驅(qū)動(dòng)執(zhí)行 Excution():實(shí)時(shí)地接收規(guī)劃結(jié)果,將其轉(zhuǎn)化成駛向子目標(biāo)點(diǎn)的各種執(zhí)行動(dòng)作.
3.1.4通信子系統(tǒng)
由于目前使用的各種傳感器還不能提供足夠的關(guān)于其他機(jī)器人和環(huán)境的實(shí)時(shí)信息描述,所以通信成為實(shí)現(xiàn)多機(jī)器人合作的關(guān)鍵,是系統(tǒng)動(dòng)態(tài)運(yùn)行過程中獲取信息的最基本手段,也是一種高效的信息交互方法.根據(jù)任務(wù)要求,我們建立了局域網(wǎng)平臺(tái),并分別從同步和異步Socket類派生了對(duì)象,在傳輸方式上也采用流式和數(shù)據(jù)報(bào)兩種方式.因其功能較為復(fù)雜,在此只給出主要的功能模塊.
(1)等待接收初始化消息和任務(wù)命令 RInitInfo():機(jī)器人首先創(chuàng)建流式Socket,再建立與管理員和其他機(jī)器人的點(diǎn)對(duì)點(diǎn)的連接,最后等待接收管理員傳送的初始化消息和任務(wù)命令.
(2)等待接收同步信號(hào) RSyncSignal():接收到管理員傳來的初始化信息和任務(wù)命令后,機(jī)器人自動(dòng)完成數(shù)據(jù)加載,并完成自身的全部初始化,等待接收同步啟動(dòng)信號(hào).
(3)收/發(fā)協(xié)商數(shù)據(jù) Recieve/Send():機(jī)器人啟動(dòng)運(yùn)行后,需要與其他機(jī)器人交互信息完成合作.在每個(gè)采樣周期都廣播發(fā)送機(jī)器人的當(dāng)前位置狀態(tài)數(shù)據(jù);當(dāng)檢測(cè)到動(dòng)態(tài)沖突后,相互沖突的機(jī)器人就以點(diǎn)對(duì)點(diǎn)的方式分送協(xié)商數(shù)據(jù),安全高效.
3.2管理員分系統(tǒng)
本系統(tǒng)中的管理員不同于集中式系統(tǒng)中的角色,它不做規(guī)劃和決策,只完成一些輔助功能:圖形仿真環(huán)境設(shè)置、初始化機(jī)器人(數(shù)據(jù)加載)、發(fā)送人工干預(yù)命令、圖形顯示、信息接收存儲(chǔ)等.
(1)環(huán)境設(shè)置 Set_Env():可采用三種方式(讀數(shù)據(jù)文件、對(duì)話框交互和鼠標(biāo)點(diǎn)取)來設(shè)置圖形仿真環(huán)境(主要包含車、障礙及場(chǎng)景等),操作靈活,使用簡(jiǎn)單.
(2)加載機(jī)器人初始化數(shù)據(jù)InitRobot():采用流式Socket建立和各機(jī)器人點(diǎn)對(duì)點(diǎn)的連接,然后向各機(jī)器人發(fā)送初始化信息和任務(wù)命令,完成數(shù)據(jù)加載.
(3)接收人工干預(yù)命令Command():能夠?qū)崟r(shí)地接收人工干預(yù)命令,并即時(shí)地完成命令下達(dá).
(4)發(fā)同步信號(hào) SyncSignal():給各機(jī)器人發(fā)同步啟動(dòng)信號(hào),啟動(dòng)機(jī)器人系統(tǒng)開始運(yùn)行.
(5)接收并存儲(chǔ)數(shù)據(jù) CurData():周期性地接收各機(jī)器人的廣播數(shù)據(jù),存入一定的數(shù)據(jù)結(jié)構(gòu).
(6)圖形顯示和復(fù)演 Display():實(shí)時(shí)地顯示各機(jī)器人的運(yùn)動(dòng)狀態(tài),以利于觀察和控制實(shí)際系統(tǒng)的運(yùn)作,且能在事后依據(jù)存儲(chǔ)的數(shù)據(jù),將現(xiàn)場(chǎng)及機(jī)器人完整的運(yùn)動(dòng)過程復(fù)現(xiàn).
4、仿真系統(tǒng)面向?qū)ο蟮某绦驅(qū)崿F(xiàn)
我們?cè)诰钟蚓W(wǎng)平臺(tái)上,按照C/S模型進(jìn)行系統(tǒng)編程實(shí)現(xiàn).選用了面向?qū)ο蟮某绦蛟O(shè)計(jì)語言Visual C++ 5.0,共設(shè)計(jì)了九個(gè)類,其中兩個(gè)主類:管理員類Manager和機(jī)器人類Robot,Robot類中又包含Agent、Communication 、Sensor、CCD等七個(gè)子類,Agent類的成員函數(shù)對(duì)應(yīng)于規(guī)劃和控制執(zhí)行子系統(tǒng),Communication類對(duì)應(yīng)于通訊子系統(tǒng),其余的子類與知識(shí)信息收集子系統(tǒng)相關(guān),是為真實(shí)系統(tǒng)預(yù)留的接口.Manager類的成員函數(shù)對(duì)應(yīng)于管理員分系統(tǒng).利用面向?qū)ο蠹夹g(shù)設(shè)計(jì)實(shí)現(xiàn)的系統(tǒng)原型,易于修改和移植,且結(jié)構(gòu)清晰、自然,貼近真實(shí)系統(tǒng).
5、小結(jié)
近年來多機(jī)器人協(xié)作問題已成為領(lǐng)域內(nèi)的研究熱點(diǎn).本文旨在設(shè)計(jì)實(shí)現(xiàn)一個(gè)試驗(yàn)系統(tǒng),首先對(duì)多機(jī)器人的體系結(jié)構(gòu)與合作機(jī)制進(jìn)行了探討,然后針對(duì)具體任務(wù)和環(huán)境,對(duì)多機(jī)器人系統(tǒng)的結(jié)構(gòu)和功能進(jìn)行了模塊化分解,最后利用面向?qū)ο蠹夹g(shù)給出了系統(tǒng)原型,并通過仿真系統(tǒng)分析系統(tǒng)設(shè)計(jì)方案的可行性,逐步向建立實(shí)際系統(tǒng)過渡。
責(zé)任編輯:gt
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
29654瀏覽量
212359 -
仿真
+關(guān)注
關(guān)注
52文章
4256瀏覽量
135612
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論