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