999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

油田虛擬培訓(xùn)系統(tǒng)的多用戶(hù)交互技術(shù)研究

2019-01-23 09:48:20劉賢梅李朝順
微型電腦應(yīng)用 2019年1期
關(guān)鍵詞:培訓(xùn)用戶(hù)設(shè)備

劉賢梅, 李朝順

(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院, 大慶 163000)

0 引言

虛擬現(xiàn)實(shí)技術(shù)的不斷發(fā)展與廣泛應(yīng)用,大大改善了傳統(tǒng)油田員工的培訓(xùn)方式[1]。通過(guò)虛擬現(xiàn)實(shí)技術(shù)建立計(jì)算機(jī)虛擬的、可操作的培訓(xùn)系統(tǒng),使油田員工能夠在虛擬的環(huán)境下學(xué)習(xí)如何對(duì)設(shè)備進(jìn)行操作以及如何應(yīng)對(duì)突發(fā)事件,使安全操作的培訓(xùn)更加方便、逼真并易于接受。但就目前油田方面針對(duì)虛擬仿真培訓(xùn)的應(yīng)用,僅停留在能夠?qū)崿F(xiàn)完成具有臨場(chǎng)感的三維可視化場(chǎng)景,提供固定情節(jié)模式下角色與其他模型進(jìn)行簡(jiǎn)單交互的培訓(xùn)。對(duì)于油田作業(yè)培訓(xùn)過(guò)程中所要求的多崗位、多工種的高協(xié)作性,現(xiàn)有的虛擬仿真培訓(xùn)系統(tǒng)因無(wú)法實(shí)現(xiàn)全方位、多角色的協(xié)同學(xué)習(xí)而缺陷明顯。

針對(duì)上述問(wèn)題,本文利用Unity 3D開(kāi)發(fā)平臺(tái),使用C#語(yǔ)言,采用客戶(hù)端/服務(wù)器模式,將多用戶(hù)交互技術(shù)應(yīng)用到油田仿真培訓(xùn)系統(tǒng)中,從而提高了油田作業(yè)培訓(xùn)的效率、效果,降低培訓(xùn)成本和安全隱患,對(duì)油田單位具有巨大的潛在的經(jīng)濟(jì)價(jià)值,對(duì)油田新型培訓(xùn)模式的發(fā)展有著重要意義[2]。

1 虛擬場(chǎng)景中多用戶(hù)交互培訓(xùn)需求

在仿真培訓(xùn)場(chǎng)景中,通過(guò)創(chuàng)建作業(yè)人員的替身(avatar)來(lái)使培訓(xùn)用戶(hù)具有臨場(chǎng)感受,每一個(gè)進(jìn)入場(chǎng)景中的用戶(hù)都具有唯一的替身來(lái)標(biāo)識(shí)。當(dāng)多個(gè)用戶(hù)處于同一場(chǎng)景中時(shí),用戶(hù)替身的位置和方向表明了該用戶(hù)在場(chǎng)景中的視點(diǎn)。因此,仿真場(chǎng)景中的多用戶(hù)交互培訓(xùn)應(yīng)滿(mǎn)足如下需求:

(1) 能逼真地模擬油田作業(yè)場(chǎng)景。盡可能逼真的模擬作業(yè)的現(xiàn)場(chǎng)環(huán)境,包括培訓(xùn)場(chǎng)景的大小、布局和各種作業(yè)設(shè)備的三維構(gòu)造等。

(2) 能感知其他用戶(hù)的存在和行為。每個(gè)加入到仿真培訓(xùn)場(chǎng)景的用戶(hù),都能觀(guān)察到其他用戶(hù)的替身。通過(guò)觀(guān)察其他用戶(hù)的替身行為,獲知其他用戶(hù)的當(dāng)前行為。

(3) 能與其他用戶(hù)進(jìn)行交互和交流。通過(guò)控制用戶(hù)替身和其他用戶(hù)進(jìn)行交互操作,并且利用輸入設(shè)備發(fā)送文字信息實(shí)現(xiàn)培訓(xùn)人員之間的相互交流。

2 系統(tǒng)總體設(shè)計(jì)

2.1 系統(tǒng)框架結(jié)構(gòu)設(shè)計(jì)

對(duì)上述需求進(jìn)分析,通過(guò)分層結(jié)構(gòu)思想提出的系統(tǒng)框架結(jié)構(gòu)如圖1所示。

系統(tǒng)采用C/S(Client/Server)架構(gòu),分為客戶(hù)端和服務(wù)器端兩部分。

客戶(hù)端主要顯示仿真培訓(xùn)場(chǎng)景和用戶(hù)的替身角色,用戶(hù)通過(guò)輸入設(shè)備對(duì)替身進(jìn)行控制操作,利用聊天面板編輯發(fā)送文字信息和其他用戶(hù)進(jìn)行在線(xiàn)交流。交互層對(duì)每一個(gè)用戶(hù)創(chuàng)建替身,實(shí)現(xiàn)仿真培訓(xùn)場(chǎng)景的場(chǎng)景一致性維護(hù)和多用戶(hù)交互操作的并發(fā)控制以及在線(xiàn)交流等功能。數(shù)據(jù)層存儲(chǔ)模型數(shù)據(jù)、試題數(shù)據(jù)等信息。分層結(jié)構(gòu)使系統(tǒng)具有良好的擴(kuò)展性、靈活性和可維護(hù)性[3]。

圖1 培訓(xùn)系統(tǒng)框架結(jié)構(gòu)

2.2 多用戶(hù)交互工作原理

仿真培訓(xùn)系統(tǒng)中,替身和場(chǎng)景的狀態(tài)一致性控制與用戶(hù)在線(xiàn)交流分別由不同的程序完成。客戶(hù)端和服務(wù)器端之間采用TCP進(jìn)行替身和場(chǎng)景的狀態(tài)數(shù)據(jù)傳遞。客戶(hù)端負(fù)責(zé)發(fā)送本地用戶(hù)替身和場(chǎng)景變化的數(shù)據(jù)給服務(wù)端,同時(shí)從服務(wù)器端接收其他用戶(hù)和場(chǎng)景的最新?tīng)顟B(tài)數(shù)據(jù)并進(jìn)行實(shí)時(shí)更新,從而達(dá)到多用戶(hù)狀態(tài)的一致性控制。用戶(hù)之間的在線(xiàn)交流也采用TCP進(jìn)行數(shù)據(jù)的發(fā)送和接收,從而能夠保證交流信息的實(shí)時(shí)性。系統(tǒng)中多用戶(hù)交互的工作原理如圖2所示。

圖2 交互工作原理

3 關(guān)鍵技術(shù)研究

3.1 用戶(hù)替身的創(chuàng)建及交互控制

替身作為用戶(hù)在仿真培訓(xùn)場(chǎng)景中的主要操作對(duì)象,能夠使用戶(hù)切身感受到接近實(shí)際現(xiàn)場(chǎng)的作業(yè)環(huán)境。系統(tǒng)為每一個(gè)進(jìn)入培訓(xùn)場(chǎng)景中的用戶(hù)自動(dòng)創(chuàng)建替身,每個(gè)替身均通過(guò)ID進(jìn)行唯一性標(biāo)識(shí)。如圖3所示。

(1) ID=1角色(2) ID=2角色

圖3 用戶(hù)替身

用戶(hù)的替身被創(chuàng)建好之后,可以通過(guò)輸入設(shè)備控制替身在仿真培訓(xùn)場(chǎng)景中漫游。通過(guò)鍵盤(pán)按鍵W、S、A、D控制替身的前、后、左、右移動(dòng)[4]。移動(dòng)過(guò)程中,通過(guò)Animator Controller播放人物運(yùn)動(dòng)動(dòng)畫(huà)。獲取按鍵輸入使用Input.GetKey(KeyCode.W)方法,控制替身移動(dòng)則采用transform.Translate(new Vector3(distance,0,0)),設(shè)置不同的Vector參數(shù)來(lái)控制不同的移動(dòng)方向。對(duì)于替身視角變化,腳本中使用Input.GetAxis("Mouse X")和Input.GetAxis("Mouse Y")來(lái)獲取鼠標(biāo)在屏幕水平和豎直方向的位移,使替身視角隨鼠標(biāo)移動(dòng)而變化。

在操控替身進(jìn)行漫游時(shí),用戶(hù)想要操作場(chǎng)景中的某一設(shè)備則通過(guò)鼠標(biāo)點(diǎn)擊設(shè)備進(jìn)行選中,獲得設(shè)備的操作權(quán)限后進(jìn)行相應(yīng)的操作。通過(guò) Ray ray =Camera.main.ScreenPointToRay(Input.mousePosition)方法,使主相機(jī)根據(jù)鼠標(biāo)點(diǎn)擊位置發(fā)出射線(xiàn),對(duì)射線(xiàn)觸碰到的模型進(jìn)行選取判斷。

3.2 多用戶(hù)操作沖突解決模型

培訓(xùn)系統(tǒng)中的所有用戶(hù)均會(huì)被分配不同的操作任務(wù),包括獨(dú)立操作和多用戶(hù)協(xié)同操作的任務(wù)。針對(duì)在培訓(xùn)過(guò)程中,多個(gè)用戶(hù)對(duì)同一設(shè)備進(jìn)行獨(dú)立操作而發(fā)生沖突的問(wèn)題,提出一種沖突解決模型。通過(guò)聲明一個(gè)int型的數(shù)組flag[]來(lái)保存場(chǎng)景中設(shè)備部件的操作權(quán)限是否已被用戶(hù)獲取。假設(shè)一個(gè)部件編號(hào)為x,當(dāng)flag[x]=1,表示該部件正在被某個(gè)用戶(hù)操作,其他用戶(hù)均不能對(duì)其選中和操作,并通過(guò)彈窗消息進(jìn)行提示;當(dāng)flag[x]=0時(shí),則表示用戶(hù)可以獲取該部件的操作權(quán)限,選中該部件獲得權(quán)限后進(jìn)行相應(yīng)操作。flag數(shù)組由服務(wù)器同步到所有的客戶(hù)端,使所有的用戶(hù)均能實(shí)時(shí)獲取到場(chǎng)景中可操作部件的權(quán)限信息。

3.3 協(xié)同操作的實(shí)現(xiàn)

培訓(xùn)過(guò)程中針對(duì)某些設(shè)備的協(xié)同操作任務(wù),需要多個(gè)用戶(hù)協(xié)同完成。參與操作的用戶(hù)通過(guò)輸入設(shè)備輸入操作信息(Package),操作信息包括對(duì)設(shè)備位置移動(dòng),角度變化。客戶(hù)端將操作信息通過(guò)SendStatus方法發(fā)送到服務(wù)器,由服務(wù)器ProcessPackage方法進(jìn)行處理。如果服務(wù)器判斷多個(gè)用戶(hù)的操作信息一致(如:操作設(shè)備向上移動(dòng)),則向客戶(hù)端發(fā)送可執(zhí)行指令,由客戶(hù)端執(zhí)行對(duì)應(yīng)操作。當(dāng)操作信息不一致時(shí)(如:用戶(hù)1操作設(shè)備向上移動(dòng),用戶(hù)2操作設(shè)備向右移動(dòng)),則操作不會(huì)執(zhí)行。多用戶(hù)協(xié)同操作設(shè)備使其向上移動(dòng)一段距離,如圖4所示。

圖4 協(xié)同操作設(shè)備

3.4 多人在線(xiàn)聊天

在進(jìn)行油田作業(yè)仿真培訓(xùn)過(guò)程中,為便于在仿真開(kāi)始后用戶(hù)進(jìn)行操作任務(wù)分配和操作過(guò)程中多用戶(hù)之間的交流溝通和協(xié)作,構(gòu)建一個(gè)在線(xiàn)交流功能模塊。

在服務(wù)器端的類(lèi)中,定義一個(gè)ArrayList來(lái)保存聊天用戶(hù) IP,用戶(hù)連接服務(wù)器成功后將當(dāng)前在線(xiàn)的用戶(hù) IP 地址添加到隊(duì)列中,然后不斷的從客戶(hù)端接收消息,對(duì)信息進(jìn)行UTF-8編碼后向 IP 隊(duì)列中的用戶(hù)廣播消息,編碼能夠確保漢字信息能夠被傳遞。服務(wù)器類(lèi)的描述方法如下:

class ChatClient

{

public ArrayList ALLClients = new ArrayList( ); //客戶(hù)列表

public string _client IP; //客戶(hù)端 IP

public ChatClient( );// 把當(dāng)前用戶(hù)實(shí)例加入用戶(hù)列表當(dāng)中

public void ReceiveMessage( );//接受客戶(hù)端消息

public void SendMessage( );// 向客戶(hù)端發(fā)送消息

public void Broadcast( );// 向客戶(hù)端廣播消息

}

在客戶(hù)端中,通過(guò) GUI 的連接按鈕發(fā)送聊天請(qǐng)求,并設(shè)置聊天名稱(chēng),在輸入框中輸入聊天消息,客戶(hù)端獲取消息后對(duì)消息進(jìn)行編碼后發(fā)送給服務(wù)器端,同時(shí)將服務(wù)器廣播的消息解碼后顯示在 GUI 的聊天信息界面中。用戶(hù)聊天界面如圖5所示。

4 總結(jié)

本文通過(guò)對(duì)虛擬環(huán)境下多用戶(hù)交互關(guān)鍵技術(shù)研究,并將研究成果應(yīng)用于油田作業(yè)仿真培訓(xùn)系統(tǒng)。該系統(tǒng)通過(guò)建立多人網(wǎng)絡(luò)虛擬環(huán)境,實(shí)現(xiàn)了多人在線(xiàn)實(shí)時(shí)交互功能,彌補(bǔ)了多數(shù)培訓(xùn)系統(tǒng)只能進(jìn)行獨(dú)立崗位學(xué)習(xí)的缺點(diǎn),優(yōu)化了虛擬仿真培訓(xùn)的開(kāi)發(fā)模式,提升了虛擬培訓(xùn)效果。為了避免網(wǎng)絡(luò)延遲、系統(tǒng)運(yùn)行卡頓、模型相交重疊等情況,還需要在數(shù)據(jù)傳遞、系統(tǒng)優(yōu)化、碰撞檢測(cè)等方面進(jìn)一步研究。

圖5 聊天界面

猜你喜歡
培訓(xùn)用戶(hù)設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
培訓(xùn)通知
從五方面做好引導(dǎo)培訓(xùn)
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
關(guān)注用戶(hù)
關(guān)注用戶(hù)
關(guān)注用戶(hù)
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
如何獲取一億海外用戶(hù)
原來(lái)他們都是可穿戴設(shè)備
主站蜘蛛池模板: 91精品免费高清在线| 国产丝袜丝视频在线观看| WWW丫丫国产成人精品| 国产白浆一区二区三区视频在线| 在线观看免费AV网| 亚洲Va中文字幕久久一区 | 国产噜噜噜视频在线观看| 欧美成人午夜在线全部免费| 国产成人午夜福利免费无码r| 亚洲日韩高清在线亚洲专区| 亚洲AV无码乱码在线观看代蜜桃 | 伊人久久久久久久久久| 91精品网站| 91美女视频在线| 日本不卡在线播放| 久久久久青草线综合超碰| 最新日本中文字幕| 无码一区中文字幕| 国产AV无码专区亚洲精品网站| 欧美成一级| 美女一区二区在线观看| 亚洲天堂2014| 在线欧美一区| 色综合久久久久8天国| 日韩在线成年视频人网站观看| 天堂网亚洲系列亚洲系列| 99re66精品视频在线观看| 成人精品视频一区二区在线| 亚洲中文字幕国产av| 思思99思思久久最新精品| www亚洲天堂| 免费人成网站在线高清| 久久99热66这里只有精品一| 亚洲69视频| 亚洲专区一区二区在线观看| 97se亚洲| 又爽又黄又无遮挡网站| 18禁色诱爆乳网站| 日本黄色不卡视频| 91九色最新地址| 欧美日韩中文国产va另类| 免费观看国产小粉嫩喷水| 五月天综合网亚洲综合天堂网| 亚洲精品国产成人7777| 无码一区中文字幕| 国产精品欧美日本韩免费一区二区三区不卡| 一区二区日韩国产精久久| 国产精品一区二区不卡的视频| 亚洲va欧美va国产综合下载| 91亚洲免费视频| 91久久性奴调教国产免费| 亚洲福利片无码最新在线播放| 亚洲三级a| 欧美一级夜夜爽| 国产偷国产偷在线高清| 日韩美一区二区| 丁香五月婷婷激情基地| 在线色国产| 亚洲综合经典在线一区二区| 粉嫩国产白浆在线观看| 色婷婷成人| 国产一区免费在线观看| 欧美午夜理伦三级在线观看| 日韩欧美中文字幕在线韩免费| 亚洲国产精品无码AV| 欧美亚洲国产一区| 91在线播放国产| 亚洲综合中文字幕国产精品欧美| 欧美日本在线观看| 国产9191精品免费观看| 国产精品综合色区在线观看| 国产9191精品免费观看| 精品少妇人妻无码久久| 国产主播喷水| 亚洲精品成人福利在线电影| 欧美日韩在线亚洲国产人| 手机精品福利在线观看| 国产精品漂亮美女在线观看| 视频国产精品丝袜第一页| 亚洲成人网在线观看| 无码精品国产dvd在线观看9久 | 午夜视频免费一区二区在线看|