国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于RCRSS的可視化研究

2018-08-18 08:23盧卓桓
關(guān)鍵詞:可視化

盧卓桓

摘要:本文通過對RoboCup救援仿真平臺的Viewers層進行研究,找出RCRSS實現(xiàn)可視化的方法與技術(shù),并應(yīng)用該平臺的可視化技術(shù)對仿真地圖的顯示內(nèi)容加以補充、修改、刪減等,使地圖上所呈現(xiàn)的畫面更能滿足開發(fā)人員對仿真整體過程的把握以及對重要信息的獲取,從而能提高調(diào)試效率,減少開發(fā)時間。

關(guān)鍵詞:RCRSS;可視化;救援仿真

中圖分類號:TP18 文獻標識碼:A 文章編號:1007-9416(2018)04-0081-04

1 引言

RoboCup Rescue機器人救援仿真系統(tǒng)(RoboCupRescue Simulation System,RCRSS)是用計算機對真實世界的災(zāi)難進行模擬,災(zāi)難的發(fā)生是隨機的,如火災(zāi)會造成房屋燒毀,市民燒傷;隨著火勢的蔓延,又會造成道路的堵塞,市民被掩埋甚至被燒死,通信中斷等。其運行環(huán)境是國際RoboCup委員會提供的標準Server。該平臺由多個模塊組合而成,分別為:內(nèi)核(Kemel)、子仿真器(Sub-simulatiors)、地理信息系統(tǒng)(GIS)、顯示器(Viewers)和智能體(Agent),如圖1所示[1]。其中,Viewers的作用是利用計算機圖形學相關(guān)技術(shù)將整個救援過程可視化,即將仿真的當前狀態(tài),包括各種智能體的活動、當前火勢、道路的堵塞情況等,以圖形顯示出來[2]。本文將對Viewers層的實現(xiàn)進行分析,得到其實現(xiàn)方法,并在原來可視化的基礎(chǔ)上顯示我們所感興趣的內(nèi)容。

2 問題描述

在多智能體救援仿真系統(tǒng)中,災(zāi)難現(xiàn)場一般會通過2D的圖形界面顯示出來,其初始化界面如圖2所示。從該圖最上方一欄可以看到,該圖是的名稱是Kobe1,有300個仿真周期,有2條信道可供通信, Time為仿真周期,Score為仿真的分數(shù)。系統(tǒng)中的智能體用實心的小圓圈來表示:藍色代表警察,紅色代表火警,白色代表救援隊員,綠色代表市民。建筑物則是由多邊形來表示,深灰色的代表建筑物,淺灰色的代表道路。消防栓、避難所、救護中心、消防中心、警察局都以小圖片的形式形象地呈現(xiàn)在地圖中。當仿真進行了一段時間后(注:這是火災(zāi)現(xiàn)場),房屋將被燒毀,根據(jù)不同的燃燒程度,房屋顏色會不一樣,顏色越深,房屋的燒毀程度越大。房屋的燃燒會導致坍塌,從而導致道路堵塞,如圖3中道路上黑色不規(guī)則圖形表示路障。市民如果處在燃燒的房屋內(nèi),則市民會被燒傷,當市民的血量為零時,市民會死亡。

RCRSS提供了仿真所必需的可視化場景,但對于仿真人員來說,只得到這些信息還遠遠不夠。比如,研究火警(Fire Brigade)的仿真人員想要知道火警的移動路徑;研究地圖分區(qū)的仿真人員想要直觀看出地圖上的區(qū)域是否按照既定的分區(qū)規(guī)則正確劃分等。而這些信息RCRSS并沒有提供,這就需要對系統(tǒng)的Viewers層進行研究,并應(yīng)用相應(yīng)的可視化技術(shù)將這些信息顯示出來。

3 RCRSS的可視化技術(shù)

3.1 RCRSS的世界模型

在RCRSS中,世界模型用于記錄系統(tǒng)環(huán)境中不同種類的對象[3]。比如,地圖上一個多邊形代表一間房屋,并具有房屋的一系列性質(zhì),如大小,位置,燒傷程度等。各智能體在每個仿真周期都會通過自己獲取的信息構(gòu)建并更新一個代表自身周圍世界環(huán)境災(zāi)害信息的世界模型。這個世界模型包括智能體ID、智能體自身信息、周圍環(huán)境信息、仿真時間等。

在世界模型中,每種智能體、物體、房屋、道路等都有一個屬于自己且獨一無二的ID。所以,Viewers在具體顯示某一Entity(如房屋,道路,障礙等)或Agent(智能體)時,是通過ID來得到該Entity或Agent的相關(guān)屬性,進而通過特定的可視化技術(shù)將其顯示在仿真地圖上。

3.2 圖形圖像繪制技術(shù)

RCRSS可視化仿真平臺使用Java語言進行開發(fā),圖形的繪制采用Java 2D技術(shù)。Java 2D提供了實現(xiàn)非常復雜圖形的機制,這些機制同Java平臺的GUI體系結(jié)構(gòu)很好地集成在一起。其中,在具體繪制圖形時多采用Graphics2D類。

Graphics2D類在保留了Graphics類的繪圖方法的基礎(chǔ)上增加了許多新的方法。新方法將幾何圖形作為對象來繪制。在java.awt.geom包中聲明的一系列類,分別用于創(chuàng)建各種身體圖形對象。常用的主要有:Line2D(線段類)、RoundRectangle2D(圓角矩形類)、Ellipse2D(橢圓類)、Arc2D(圓弧類)、QuadCurve2D(二次曲線類)、CubicCurve2D(三次曲線類)。

在RCRSS的Viewers中,每一圖層正是由線,矩形,圓形等基本圖形繪制而成的,比如智能體是一個小圓圈,房屋是一個多邊形等,再根據(jù)不同的屬性將圖形涂上不同的顏色。而一幅復雜的畫面則是由各個簡單圖層疊加而成的。

所以,在實現(xiàn)自己的圖層繪制時,同樣可以使用Graphics2D類進行基本圖形的繪制,并且,使用此方法與原來平臺的方法一致,可以完美地與原有可視化內(nèi)容結(jié)合起來。例如,畫一條線段使用:Line2D line = new Line2D.Double(x1, y1, x2, y2); 畫一個矩形則使用:Rectangle2D rect = new Rectangle2D.Double(x1, y1, x2, y2)。

3.3 畫面合成技術(shù)

RCRSS的Viewers是實時地,動態(tài)地顯示著整個災(zāi)難發(fā)生及救援的過程。在這個過程中,房屋會被燒毀,道路會被堵塞,這些現(xiàn)象通過顏色和圖形的變化體現(xiàn)出來,而智能體的救援行動則是通過智能體的移動體現(xiàn)出來。僅在一張圖層上表現(xiàn)出動態(tài)復雜的圖像及動畫顯然是比較困難的。實際上,Viewers是由多個圖層疊加在一起后再顯示出一幅完整的,實時更新的圖像的,如圖4。

這樣一來,一幅復雜的圖像,便可以分解為一張一張簡單的圖層。在RCRSS中,最終呈現(xiàn)在我們眼前的地圖是由以下的圖層構(gòu)成的:

BuildingLayer(建筑圖層):該圖層用來畫出建筑物,通過填充不同的顏色來表明建筑的燒傷程度或損壞程度;

RoadLayer(道路圖層):該圖層用來畫出道路;

RoadBlockageLayer(道路堵塞圖層):該圖層用來畫出道路上的堵塞物,即路障。

AreaIconLayer(建筑圖標圖層):該圖層用來顯示出地圖上的小圖片,用小圖片代表警察局、消防中心、救援中心、消防栓和避難所等。

AnimatedHumanLayer(動畫人物圖層):該圖層用來畫出三種智能體和市民,隨著智能體和市民的移動,該圖層會不斷更新重繪。

PositionHistoryLayer(歷史軌跡圖層):該圖層用來顯示出智能體自上一周期到本周期的行走軌跡。

同樣的,我們在繪制的時候只需要繪制簡單的圖層,最終再按一定規(guī)則將圖層疊加成一幅復雜的圖像。RCRSS平臺已經(jīng)給開發(fā)人員提供了增加圖層的方法:public void addLayer(ViewLayer layer),當開發(fā)人員要往地圖中增加圖層時,只需要繪制好自己的圖層,然后調(diào)用該方法,便能將圖層加到地圖中,實現(xiàn)一定的疊加效果。

4 可視化的實現(xiàn)

本節(jié)將通過幾個例子對RCRSS可視化的實現(xiàn)做一些具體的介紹。

4.1 路徑可視化

路徑規(guī)劃在救援仿真中占有十分重要的地位,特別是對于警察清障來說,如何快速地連通整個災(zāi)難現(xiàn)場,為火警和救援隊員清理出最高效率的路線,幫助其快速到達救援目的地是實現(xiàn)有效救援工作的前提。

仿真人員通過路徑規(guī)劃算法得到的路徑一般是以路的ID的形式儲存起來。那么,首先需要將ID轉(zhuǎn)換為坐標,RCRSS平臺已經(jīng)提供了轉(zhuǎn)換的方法,轉(zhuǎn)換的函數(shù)是:

public Pair getLocation(@Nonnull StandardEntity entity)

該函數(shù)的返回一個數(shù)對,即是坐標點;參數(shù)是地圖中的實物entity,類型是StandardEntity。接著,需要根據(jù)ID找到對應(yīng)的實物entity,轉(zhuǎn)換方法是:

public StandardEntity getEntity(@Nonnull EntityID entityID)

由此得到的坐標并不是世界坐標,只是屏幕坐標,所以接下來要把坐標做一個轉(zhuǎn)換,映射到世界坐標上,才能繪出坐標點。比賽平臺提供了一個處理世界坐標和屏幕坐標之間轉(zhuǎn)換的類ScreenTransform,直接使用該類便能直接在地圖上繪出點來,將坐標點兩兩連線則構(gòu)成了一條路徑。實現(xiàn)步驟如圖5。

圖6為一個火警的路徑,其目的地用一個方形繪制出來。

4.2 分區(qū)可視化

分區(qū)策略在救援仿真系統(tǒng)中已經(jīng)成為了一種主流策略。

分區(qū)可視化的目標是要把幾個不同的分區(qū)用不同的顏色渲染,從而使開發(fā)人員能一目了然知道分區(qū)的結(jié)果,進而判斷分區(qū)算法的有效性和可行性。

分區(qū)后數(shù)據(jù)一般是以建筑ID的形式儲存起來,同一分區(qū)的數(shù)據(jù)儲存在一個列表中。這樣,有了同一分區(qū)建筑的ID,那么,我們就可以將一個分區(qū)的ID染上一種顏色。其實現(xiàn)流程圖如圖7,示例代碼如下:

private void drawPartition(Building b, Polygon shape, Graphics2D g){

……

for(int j=0;j

if(b.getID().getValue()==partitionData[j]) {

g.setColor(rendercolor.get(i)); //選色

g.fill(shape); //填充

}

……

}

}

圖8為警察分區(qū)結(jié)果。

4.3 目標物尋找可視化

目標物尋找可視化是通過Entity的ID檢索到Entity的位置并在地圖上以其他顯眼的顏色標記出來,使調(diào)試人員能方便、迅速地找到相應(yīng)的Entity。

當調(diào)試人員輸入ID時,程序先把ID存放在列表中,然后與地圖上所有Entity的ID逐一比較,當找到對應(yīng)的Entity時則把該Entity染上其他顯眼的顏色。實現(xiàn)流程圖如圖9所示,示例代碼如下:

private void drawRoad(Road r, Polygon shape, Graphics2D g){

if(r.getID().getValue()==Integer.parseInt(id)) {

g.setColor(color);

g.fill(shape);

}

}

該段代碼為尋找某一路段。

圖10為目標物的尋找結(jié)果。

5 結(jié)語

RoboCup Rescue救援仿真系統(tǒng)是一種典型的多智能體異構(gòu)系統(tǒng),近年來已經(jīng)成為最活躍的研究熱點之一。RCRSS一方面能夠推進人工智能等相關(guān)領(lǐng)域的發(fā)展,另一方面能夠為人們實際的救援行動提供決策支持,幫助我們創(chuàng)造一個安全的社會。其中,對RCRSS的可視化研究可以幫助開發(fā)人員進行調(diào)試,判斷算法的好壞,從而提高開發(fā)效率,減少開發(fā)時間,有著至關(guān)重要的作用。因此,基于RCRSS的可視化研究有著深刻的意義和重要的價值。

參考文獻

[1]RoboCupRescue Technical Committee. RoboCup-Rescue Simulator Manual [M]. RoboCup Rescue Technical Committee, 2000-7-1.

[2]管大琦.動態(tài)不確定環(huán)境下消防策略的研究與系統(tǒng)仿真[D].南京:東南大學機械工程學院,2009.

[3]吳云標.RoboCup救援仿真比賽的消防策略和消防智能體任務(wù)分配研究[D].廣東工業(yè)大學,2011.

猜你喜歡
可視化
無錫市“三項舉措”探索執(zhí)法可視化新路徑
基于CiteSpace的足三里穴研究可視化分析
自然資源可視化決策系統(tǒng)
三維可視化信息管理系統(tǒng)在選煤生產(chǎn)中的應(yīng)用
基于Power BI的油田注水運行動態(tài)分析與可視化展示
自然資源可視化決策系統(tǒng)
基于CGAL和OpenGL的海底地形三維可視化
可視化閱讀:新媒體語境下信息可視化新趨勢
“融評”:黨媒評論的可視化創(chuàng)新
重大主題報道的可視化探索——以浙江日報的實踐為例
长乐市| 鄱阳县| 革吉县| 扶风县| 桃江县| 临夏县| 阜阳市| 右玉县| 清流县| 景东| 东明县| 米林县| 城市| 凉城县| 双鸭山市| 宜宾县| 武功县| 班戈县| 鄂州市| 汶上县| 大洼县| 永川市| 繁昌县| 汾阳市| 师宗县| 大悟县| 嘉兴市| 合作市| 新邵县| 富川| 桂平市| 仁化县| 玉田县| 武汉市| 剑川县| 崇阳县| 苗栗市| 辽宁省| 博客| 革吉县| 河南省|