吳奔鑫,韓成浩
(吉林建筑大學 電氣與計算機學院,長春 130018)
隨著中國經(jīng)濟社會的全面高速發(fā)展以及整體綜合國家實力的日益增強,中國城鎮(zhèn)化工程的腳步也越來越快,高層大廈也越來越多,而隨之帶來的安全隱患也與日俱增。其中,火災防空難度也不斷加大[1-5],消防安全形式面臨嚴峻挑戰(zhàn)。在科技如此發(fā)達的現(xiàn)代社會,火災安全問題一直是政府和群眾密切關心的問題。早先的“人防”方式的消防管理模式已經(jīng)不適用于現(xiàn)代市場經(jīng)濟高速發(fā)展的社會[6-8],因此應急管理部曾在全市大中型高層建筑的自動滅火綜合管理大會上強調(diào):要依托于大數(shù)據(jù)、物聯(lián)網(wǎng)、云計算等最新科技,提高城市火災防控技術管理水平。本文依托于Unity 3D強大的物理引擎,真實還原火災情景,并對被困人員進行準確定位模擬,從而提升火災救援的效率。也大大降低了因大量火災煙霧導致攝像頭失靈,導致消防救援人員不能及時發(fā)現(xiàn)并找到被困人員的問題。同時也為”智慧型“消防的建設提供了有效的指導和參考。
當突發(fā)事故發(fā)生時,對建筑物內(nèi)人員的定位尤為重要,現(xiàn)有的消防系統(tǒng)多采用有線傳輸?shù)姆绞?,成本高且線路易老化,當火災發(fā)生時,電源設備、監(jiān)控設備等都會受到影響,給消防員救援帶來了困難。目前,市場上的部分無線傳輸方式,如藍牙模塊,抗干擾能力較弱,通信覆蓋范圍較小,而無線WIFI,則需離線采樣,且精度較不穩(wěn)定,UWB模塊則成本高昂,費用也高昂[9]。綜合對比之下Zigbee有抗干擾能力強、傳輸速率快等優(yōu)勢。本文在基于Zigbee室內(nèi)定位的基礎上,將收集到的被困人員的位置信息存儲至數(shù)據(jù)庫,再通過Unity 3D讀取數(shù)據(jù)庫內(nèi)的相關數(shù)據(jù)從而在上位機上呈現(xiàn)出被困人員的位置。方便消防人員進行救援[10]。
Unity 3D又叫Unity,是由Unity Technologies有限公司研發(fā)的集合三維視頻游戲、建筑三維可視化、實時三維繪圖等多種類型,并具備互動功能的平臺。本文選取的是2019版本的Unity,C#編程開發(fā)軟件選取的是Visual studio 2019,數(shù)據(jù)庫軟件選取的是MYSQL8.0版本,數(shù)據(jù)庫可視化軟件選取的是Navicate軟件。這里尤其要注意軟件的版本問題,因為不同版本的軟件,后期制作使用上可能出現(xiàn)兼容性問題。
3D Studio Max,其研發(fā)公司為日本的Discreet有限公司(后來被Autodesk有限公司并購),是基于PC操作系統(tǒng)的的三維動畫圖像渲染軟件,前身為在DOS操作系統(tǒng)上的3D Studio系統(tǒng)應用軟件,通常也被稱為3D Max或者3DS MAX。3DS Max具有相當好的性能價格比,它所帶來的超強功能已經(jīng)大大超越了其本身相對低廉的售價,制造成本大大降低,同時其對于硬件系統(tǒng)的需求也很低,普通電腦也足以支撐學習需求。
被困人員的路徑重構(gòu)過程涉及被困人員的定位信息、生命體征、所處地理環(huán)境等關鍵信息,其中,捕獲被困人員的定位信息尤為重要,但由于建筑物內(nèi)發(fā)生大火時,會斷開供電,進而影響視頻監(jiān)測系統(tǒng),無法及時精確捕捉到被困人員的位置信號,所以,對被困人員的位置信息進行采集和整合就顯得尤為重要。本次設計在RSSI定位的基礎上,利用Zigbee網(wǎng)絡傳輸數(shù)據(jù)至數(shù)據(jù)庫中,再用上位機Unity3D軟件將數(shù)據(jù)讀取出來,完成被困人員位置的展示。方便救援人員救援,提高救援效率和減少不必要的財產(chǎn)損失。被困人員路徑重構(gòu)系統(tǒng)設計框圖如圖1所示。
圖1 被困人員路徑重構(gòu)系統(tǒng)設計框圖
數(shù)據(jù)收集也是被困人員路徑重構(gòu)的重要環(huán)節(jié)之一,尤其是對被困人員位置信息的收集工作,要在現(xiàn)場收集與實際建筑的圖象或照片、地形和道路相應的長度、建筑的高度等有關的數(shù)據(jù)。隨后繪制建筑的設計圖,將其引入3DS Max中進行建模,將構(gòu)建好的模型導入到Unity 3D中,以完成腳本開發(fā)、設計數(shù)據(jù)庫等工作,從而達到人機交互的目的。
3.1.1 模型導入
在3DS Max內(nèi)首先完成簡單建筑物模型的搭建,然后單擊文件選項卡,選擇導出,為模型命名后選擇.FBX格式,點擊保存,最后,將模型拖拽到Unity 3D中的Assets中即可,如圖2所示。
圖2 3DS Max模型導入Unity 3D后的模型
3.2.1 Unity 3D與數(shù)據(jù)庫的連接
第一步,要建立一個Unity 3D項目,可將其命名為MYSQL Unity Test,并在Assets下建立Plugins文檔。并將全部4個dull文件(如圖3所示)拖拽到此文件夾下,并新建C#腳本文檔,在Nevicate中新建連接,連接名為MYSQL,并檢測是否完成,打開連接后,新建數(shù)據(jù)庫,數(shù)據(jù)庫名稱為Scores,字符數(shù)據(jù)集為utf8,重新開啟數(shù)據(jù)庫后,在Scores數(shù)據(jù)庫中新建數(shù)據(jù)表studentscores,新建幾個字段,id(主鍵)、x、y、z,并輸入對應數(shù)據(jù)。
圖3 Unity 3D與數(shù)據(jù)庫連接的相關插件
3.2.2 Unity 3D與數(shù)據(jù)庫連接成功畫面
將編輯好的腳本掛到Unity 3D中的攝像機上,出現(xiàn)如圖4所示結(jié)果則為連接成功。
圖4 Unity 3D與數(shù)據(jù)庫連接成功的界面展示
3.2.3 Unity 3D讀取xml文件
在實際使用中,由于被困人員位置數(shù)據(jù)信息太過豐富,所以,為方便地保存和管理位置數(shù)據(jù),本文將數(shù)據(jù)庫中的人員位置數(shù)據(jù)信息保存為xml文件,如圖5所示,將xml文件放在Unity 3D項目Assets里面,使用代碼讓Unity 3D讀取xml文件中的數(shù)據(jù)內(nèi)容。
圖5 數(shù)據(jù)庫內(nèi)的數(shù)據(jù)導成xml文件
在Unity 3D中,目標人物所自發(fā)的行為是依靠腳本來實現(xiàn)的,而腳本的參與是通過編寫相關代碼實現(xiàn)的。在Unity 3D軟件中,可以首先選擇3D object中的Caspsule創(chuàng)作一個3D物體,物體名稱可稱呼為“峨嵋刺”,修改Inspectors的Trans?form屬性,使人物可以移動到地面上正確的地方(也可以在scene里面通過按住左鍵點擊拖動物體的x、y、z箭頭來調(diào)整位置,以實現(xiàn)旋轉(zhuǎn)相應的角度,達到控制視角的合適效果),創(chuàng)建的人物模型如圖6所示。
圖6 Unity 3D中創(chuàng)建的人物模型
本文在Unity 3D讀取xml文件的代碼作了一個改進,讓其自動在相應讀取的點上創(chuàng)建“空物體”。然后在工程中,建立兩個腳本“Move”和“Waypoints”。打開腳本進行編輯,在“Move”腳本上編輯代碼,本腳本關鍵使用“Look At”朝向目標,然后“Move Towards”再移動至目標點。腳本編譯正確,再回到Unity 3D界面,“Waypoints”腳本賦給空物體,“Move”腳本賦給人物“峨嵋刺”。另外,腳本的執(zhí)行順序也要做一個規(guī)劃(如圖7所示):先讓Unity 3D讀取xml文件,進而創(chuàng)建“空物體”,再執(zhí)行“Waypoints”腳本,尋找相應路徑,最后執(zhí)行“Move”腳本,讓人移動至目標點,這樣就可以實現(xiàn)Unity 3D自動讀取xml文件中的數(shù)據(jù),并且人物也會運動至相應的坐標點上了。
圖7 腳本的執(zhí)行順序
通過Zigbee無線傳感技術獲取被困人員的坐標點,發(fā)送至數(shù)據(jù)庫內(nèi),Unity 3D可以通過數(shù)據(jù)庫獲取坐標信息,并將信息通過代碼等操作呈現(xiàn)出來,從而具體呈現(xiàn)被困人員的位置數(shù)據(jù)。如圖8、圖9中羅列的是被困人員分別位于不同位置時,Unity 3D捕獲的情況。
圖8 位置1
圖9 位置2
4.3.1 影響路徑分析的因子
本文利用建立的三維環(huán)境,對最優(yōu)路徑分析結(jié)果產(chǎn)生影響的因子形成相關的網(wǎng)絡數(shù)據(jù)集。最后,完成對三維中最短路徑的求取與可視化,在最優(yōu)路徑分析的整個流程中,不同的影響因子產(chǎn)生最優(yōu)路徑的結(jié)果也是不同的。影響結(jié)果分析的主要因素有:(1)高層建筑的基本參數(shù)特征,包括了樓層高度、空間布局以及結(jié)構(gòu)設計等;(2)災難狀態(tài)以及所在位置、蔓延速度、針對周邊事物產(chǎn)生的危害;(3)建筑物當中的人員情況,包括分布特征、數(shù)量以及年齡等因素??梢赃x擇一些典型的因子當成路徑權值參數(shù),然后納入內(nèi)部疏散網(wǎng)絡屬性表里,使之實現(xiàn)對不同的情景,進行針對性的動態(tài)分析。
(1)建筑物內(nèi)通道的長和寬
對受困人員產(chǎn)生影響的主要因素之一是疏散通道的長度。即通道越長,其疏散時間就越長。
(2)人流密度
人流密度指的是單位面積當中所分布著的人員數(shù)量情況,計算公式為:
式中,n代表的是待疏散人流量;f代表的是水平投影面積,單位m2;d代表的是垂直距離,單位m;w代表的是垂直厚度,單位m;b代表的是通道有效寬度,單位m。
(3)疏散速度
具體指的是撤離人員在撤離的時候單位時間所需要走過的路徑長。一般人在應急撤離的情況下,如在p≥0.92時,步行速率可使用下列公式來表示:
其中,v0為學生群體正常行走的速度。
4.3.2 路徑優(yōu)選算法的實現(xiàn)
在本文當中使用的算法核心在于最優(yōu)路線選擇,基于Dijkstra算法能夠求解到一個節(jié)點至另外節(jié)點之間的最短路徑,其最明顯的特征在于以開始點作為中心延伸到外層,一直到抵達終點為止。Dijkstra算法原理是指從一個點開始,采用貪心算法的策略,計算這個點到其余各點的最短路徑。文章通過對Dijkstra算法做出相應的改進與優(yōu)化,使其不僅能夠計算出被困人員所在位置到疏散地的最短路徑,還可以根據(jù)實際需要對障礙物進行動態(tài)添加與躲避,并輸出統(tǒng)計分析結(jié)果。
第一步:輸入已經(jīng)構(gòu)建完成的疏散網(wǎng)絡G(E,V),起火點位置O,疏散路徑W(從建筑物內(nèi)部的房間到疏散地Ej的最優(yōu)路徑),建筑物內(nèi)部房間的集合Qi=(i=0,1,2,…,n),疏散地的集合Ej(j=0,1,2,…,n),已疏散總?cè)藬?shù)F=?,人流量FDJ=?,各路徑對應疏散耗費集合CIJ=?,疏散總體耗費BC=?。
第二步:求解出距離受災點最近的房間Qk(K∈i),判定其中有無人員。若是有人則進入到第三步,若是無人則直接進入到第六步。
第三步:通過Dijkstra算法評估從QK到各個出口EJ耗費的最短路程CKJ,以計算結(jié)果T=min{CKJ|K∈i},得到BC=BC?T,同時估計房間內(nèi)的人員數(shù)量Nk,得到F=F?Fk,F(xiàn)Dj=F?FDj
第四步:求解出以災點作為中心形成的圓形緩沖區(qū),同時將其列為疏散障礙添加至分析圖層里面。
第五步:由高到低依次獲取房間,并判斷房間內(nèi)是否有人,若是存在則繼續(xù)執(zhí)行,不然則需重復本步驟。
第六步:通過Dijkstra算法確定由Qi(i≠k)至各出口Ej之間耗費最低路程CiJ,其中若是有障礙物,則路徑需要繞開,同時保證結(jié)果T=min{Cij∣i≠k},據(jù)此能夠獲取到BC=BC∪T,然后求解出房間Qi當中遇困人員數(shù)量Ni,由此獲取到F=F∪Fi,F(xiàn)Dj=F∪FDj。
第七步:針對第五步與第六步進行重復,直至全部房間被困者皆成功疏散。
第八步:輸出疏散總耗費BC、已疏散總?cè)藬?shù)F、接納人數(shù)FDj。
最短路徑優(yōu)化算法的仿真結(jié)果如圖10、圖11所示。
圖10 仿真結(jié)果1
圖11 仿真結(jié)果2
本文研究的是基于Unity 3D的路徑重構(gòu)系統(tǒng)設計,文章通過采集人員位置數(shù)據(jù),通過Zigbee網(wǎng)絡傳輸至上位機中存儲,并利用相關代碼實現(xiàn)Unity 3D從數(shù)據(jù)庫中調(diào)用數(shù)據(jù),進而在上位機中形象的展示被困人員的具體方位,及其具體路徑,方便救援人員對其進行救援。本文打破了傳統(tǒng)的定位模式中只定位、不直觀的問題,通過Unity 3D自身具有的強大展示能力,形象直觀的展示被困人員的位置,進而提升定位效果,使其更形象、更直觀。