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

?

基于虛擬現(xiàn)實技術(shù)的膽機組裝實訓(xùn)系統(tǒng)設(shè)計與實現(xiàn)

2020-07-09 03:19李永亮
關(guān)鍵詞:跨平臺虛擬現(xiàn)實

李永亮

摘 要:針對電子信息工程技術(shù)專業(yè)《音響技術(shù)與應(yīng)用》課程的“膽機組裝實訓(xùn)”環(huán)節(jié)中學(xué)生容易因線路錯接、漏接而燒壞電路板的情況,作者基于虛擬現(xiàn)實技術(shù)實現(xiàn)了“膽機組裝跨平臺虛擬仿真實訓(xùn)系統(tǒng)”。利用Unity引擎、采用分層架構(gòu)、面向?qū)ο笤O(shè)計思想,實現(xiàn)了場景漫游、組裝操作、操作情況統(tǒng)計及顯示等關(guān)鍵功能。該系統(tǒng)具有良好的跨平臺性,可運行在安卓設(shè)備、PC機和HTC VIVE頭盔等不同設(shè)備上,能夠?qū)⑻摂M實訓(xùn)貫穿于課前、課中和課后環(huán)節(jié),使學(xué)生在接線實操之前得到充分的訓(xùn)練,大大降低了錯接、漏接的風(fēng)險,保障了實訓(xùn)教學(xué)的安全性和高效率。

關(guān)鍵詞:虛擬現(xiàn)實;實訓(xùn)系統(tǒng);跨平臺;膽機組裝

中圖分類號:TP391.9;G434 ? ?文獻標(biāo)志碼:B ? ? ?文章編號:1673-8454(2020)12-0088-05

一、引言

“膽機組裝實訓(xùn)”是高職電子信息工程技術(shù)專業(yè)課程《音響技術(shù)與應(yīng)用》的一個重要實操環(huán)節(jié),在這個環(huán)節(jié)中,學(xué)生需要將前期制作的電路板安裝到機箱中并進行接線操作,由于需要連接的線路繁多,學(xué)生容易出現(xiàn)錯接、漏接的情況,加上機箱中存在高壓線路,燒壞電路板的可能性較高,而一旦燒壞電路板就會影響后續(xù)教學(xué)環(huán)節(jié)的正常實施。解決這一問題的辦法是給學(xué)生更多的練習(xí)次數(shù)和練習(xí)時間,以提高他們的操作熟練度和正確率,從而降低風(fēng)險。然而由于實訓(xùn)場所和器材的限制,很難給所有學(xué)生提供到實訓(xùn)場所進行更多練習(xí)的機會,而引入虛擬仿真系統(tǒng)是個極佳的選擇[1-4]。

筆者針對上述問題,利用Unity引擎開發(fā)了“膽機組裝跨平臺虛擬仿真實訓(xùn)系統(tǒng)”,該系統(tǒng)不受場地、器材、時間等因素的限制,具有安全、經(jīng)濟的特點,能夠給學(xué)生提供直觀、形象、有臨場感和沉浸感的實訓(xùn)體驗?;赨nity引擎的跨平臺性[5][6],本系統(tǒng)可在HTC VIVE頭盔、PC機器、安卓Pad、安卓手機等不同硬件平臺上使用,能夠分別服務(wù)于課前預(yù)習(xí)、課堂演示、小組學(xué)習(xí)等教學(xué)場景,讓學(xué)生在組裝實操之前得到充分的準(zhǔn)備,大大減少實操過程中的風(fēng)險。

二、膽機組裝跨平臺虛擬仿真實訓(xùn)系統(tǒng)的設(shè)計

1.系統(tǒng)功能

“膽機組裝跨平臺虛擬仿真實訓(xùn)系統(tǒng)”主要供學(xué)生在膽機電路板接線實操之前了解接線過程和方法、熟悉接線工藝,并進行充分的虛擬接線訓(xùn)練,從而提高學(xué)生接線實操的熟練度并降低錯接、漏接的風(fēng)險。此外,為了能夠檢驗學(xué)生的實際掌握情況,還提供了自主考核模式,通過誤操作、退回操作、花費時間等指標(biāo),客觀反映學(xué)生的操作熟練度。系統(tǒng)的功能模塊如圖 1所示。

其中,“實訓(xùn)簡介”模塊通過文字描述介紹實訓(xùn)目的,并提供新手上路環(huán)節(jié),讓學(xué)生熟悉本系統(tǒng)在PC機、觸屏、VR頭盔等不同平臺中的常用操作方式,比如漫游、安裝、單頭接線、雙頭接線等動作的操作方式;而示范模塊則采用文字描述加動畫的方式,向?qū)W生展示實訓(xùn)操作的過程和注意事項;訓(xùn)練模塊以提示引導(dǎo)的方式,一步步帶領(lǐng)學(xué)生訓(xùn)練接線過程;考核模塊則不提供任何引導(dǎo),由學(xué)生自由操作,并記錄其誤操作、退回操作、花費時間等信息,從而客觀反映學(xué)生對接線過程和方法的掌握情況。

2.系統(tǒng)的軟件分層架構(gòu)

本系統(tǒng)的軟件分層架構(gòu)如圖 2所示。為了適配不同的軟硬件運行環(huán)境,設(shè)計交互層用于向業(yè)務(wù)層提供與設(shè)備無關(guān)的交互邏輯和界面渲染邏輯;在業(yè)務(wù)層中,根據(jù)不同業(yè)務(wù)流程設(shè)計五個業(yè)務(wù)邏輯;在展示層,根據(jù)業(yè)務(wù)需求,將模型、材質(zhì)、貼圖、動畫等資源構(gòu)建成五個場景,并設(shè)計場景切換邏輯和界面內(nèi)容更新邏輯。

三、系統(tǒng)關(guān)鍵技術(shù)的實現(xiàn)

1.跨平臺性的實現(xiàn)

Unity引擎良好的跨平臺性,本可以運行在臺式電腦(Windows、Linux)、安卓Pad、安卓手機以及HTC VIVE頭盔上,但由于不同設(shè)備的人機交互方式和顯示器分辨率有很大差異[7],需要在系統(tǒng)的交互層將不同的操作方式進行封裝,并使用合適的界面設(shè)置方式。

(1)人機交互跨平臺性的實現(xiàn)

在人機交互方式上,PC機版采用鍵盤和鼠標(biāo)進行交互,觸屏版采用觸屏進行交互,而HTC VIVE頭盔版則采用配套的手柄進行交互。將各版本獲取的用戶交互操作信號按照不同的交互操作意圖在交互層的各模塊中進行封裝,從而保證了業(yè)務(wù)邏輯和人機交互接口的解耦。

PC版獲取用戶交互操作信號的方法如下[8]:

鍵盤按鍵:“Input.GetAxis(String)”函數(shù)和“Input.GetKey(KeyCode)”函數(shù);

鼠標(biāo)按鍵:“Input.GetMouseButtonDown(int)”函數(shù)和“Input.GetMouseButtonUp(int)”函數(shù);

鼠標(biāo)位移量:“Input.GetAxis()”函數(shù)。

觸屏版獲取用戶交互操作信號的方法如下:

觸點個數(shù):“Input.touchCount”;

觸點對象:“Input.touches”數(shù)組;

觸點位置:觸點對象的“position”屬性;

觸點狀態(tài)變化趨勢:觸點對象的“phase”屬性。

HTC VIVE頭盔版獲取用戶交互操作信號的方法如下[9]:

手柄Pad操作:“ViveInput.GetPadPressAxis(HandRole)”;

其他按鈕操作:“ViveInput.GetPress(HandRole,ControllerButton)”。

(2)界面顯示跨平臺性的實現(xiàn)

在界面設(shè)置上,利用Unity的“多分辨率界面”技術(shù)[10],使交互界面可以自動適配不同分辨率的顯示設(shè)備,無論是手機屏幕還是觸屏電視,都可以正常顯示交互控件并響應(yīng)用戶的操作。而在HTC VIVE頭盔版本中,則將交互界面渲染在虛擬場景中,讓用戶以“虛擬屏幕”的方式進行界面操作。具體的設(shè)置項及其取值如表 1所示。

2.虛擬場景漫游功能的實現(xiàn)

本系統(tǒng)的操作對象是膽機的機箱和電路板,允許用戶在安裝和接線操作過程中在虛擬場景中自由漫游,以便用戶在各個角度和合適的距離觀察機箱和電路板的細節(jié)并進行操作。漫游的類型包括平移、旋轉(zhuǎn)和復(fù)原,其實現(xiàn)邏輯如表 2所示,其中PC機版和觸屏版的觀察者為虛擬場景中的主攝像機,HTC VIVE頭盔版的觀察者為虛擬場景中的“HTCViveCameraRig”對象。

在所有版本中,用戶都可以通過界面上的“復(fù)原”按鈕使視角回到默認位置;而不同版本的平移、旋轉(zhuǎn)操作方法則各不相同:在PC機版中,用戶利用鍵盤上的W、A、S、D四個鍵進行左右前后平移操作,利用Q、E兩個鍵進行上下平移操作,在鼠標(biāo)右鍵被按下時利用鼠標(biāo)位移實現(xiàn)旋轉(zhuǎn)操作。在觸屏版中,用戶通過長按屏幕的四個邊緣實現(xiàn)左右上下平移操作,利用雙觸點實現(xiàn)前后平移操作,利用單觸點實現(xiàn)旋轉(zhuǎn)操作。在HTC VIVE頭盔版中,用戶利用左側(cè)手柄的Pad鍵實現(xiàn)左右上下平移,Trigger鍵實現(xiàn)前平移操作,Grip鍵實現(xiàn)后平移操作,利用右側(cè)手柄的Pad鍵實現(xiàn)旋轉(zhuǎn)操作。

3.對象操作交互邏輯的實現(xiàn)

在本系統(tǒng)中,對象操作有電路板安裝、機箱到電路板接線、雙絞電源線焊接、板間線路連接四種,其中“電路板安裝”和“機箱到電路板接線”采用從界面拖拽圖標(biāo)到虛擬場景中指定位置的操作方式,“雙絞電源線焊接”和“板間線路連接”則采用連續(xù)點擊相關(guān)連接點的操作方式。

(1)“從界面拖拽圖標(biāo)到指定位置”操作方式的實現(xiàn)

以“電路板安裝”為例,用戶的具體操作過程為:待安裝的電路板以圖標(biāo)的形式顯示在界面上,用戶利用鼠標(biāo)、觸點或者HTC VIVE手柄的引導(dǎo)線將電路板圖標(biāo)拖拽到對應(yīng)的機箱位置上釋放,從而完成安裝操作;在被拖拽過程中,圖標(biāo)所經(jīng)過的待安裝位置會高亮顯示,從而提醒用戶是否將圖標(biāo)釋放在該位置。

本系統(tǒng)采用四種對象共同實現(xiàn)上述操作方式:“EventManager”對象用于管理用戶操作過程中相關(guān)事件的訂閱和觸發(fā),以保證其他三種對象能夠協(xié)同工作,“DragableImage”對象用于管理圖標(biāo)的顯示狀態(tài),“RayCastOrigin”對象用于判別圖標(biāo)對象被拖拽過程中所對準(zhǔn)的虛擬對象,“DragableImageTarget”對象用于管理待安裝位置對象的高亮顯示狀態(tài)。

“EventManager”對象用單例模式實現(xiàn),并作為組件掛載在場景管理器對象上,其管理的事件為“UnityEvent”類的對象,各事件的觸發(fā)者和訂閱者信息如表 3所示,事件觸發(fā)的條件在觸發(fā)者的狀態(tài)轉(zhuǎn)換圖中進行說明。

“DragableImage”對象以Unity組件的形式掛載在每一個可拖拽圖標(biāo)對象上,當(dāng)處于“等待”狀態(tài)時圖標(biāo)圖像在界面上正常顯示,當(dāng)處于“拖拽中”和“對準(zhǔn)中”狀態(tài)時圖標(biāo)圖像變?yōu)榘胪该鞑ⅰ翱寺 背鲆粋€圖像實時顯示在鼠標(biāo)位置,當(dāng)處于“已設(shè)置”狀態(tài)時圖標(biāo)圖像上增加一個紅色的勾并不能再被拖拽,其狀態(tài)轉(zhuǎn)換圖如圖 3所示。

“RayCastOrigin”對象用單例模式實現(xiàn)并作為組件掛載在場景管理器對象上,其默認狀態(tài)為“等待”,在接收到“開始探測”事件后,創(chuàng)建出一個“Ray”類型的射線對象并進入“探測中”狀態(tài),在“Update()”函數(shù)中利用射線對象實時探測圖標(biāo)所對準(zhǔn)的位置從而在三個子狀態(tài)中切換,具體的狀態(tài)轉(zhuǎn)換圖如圖 4所示。

“DragableImageTarget”對象以Unity組件的形式掛載在每一個待安裝位置對象上,這一類對象為半透明的方塊,當(dāng)其“DragableImageTarget”組件處于“等待”和“已設(shè)置”狀態(tài)時隱藏,而處于“被正確對準(zhǔn)中”和“被錯誤對準(zhǔn)中”狀態(tài)時則顯示?!癉ragableImageTarget”對象的狀態(tài)轉(zhuǎn)換圖如圖 5所示。

(2)“連續(xù)點擊相關(guān)連接點”操作方式的實現(xiàn)

在用戶進行模擬“雙絞電源線焊接”和“板間線路連接”時需要“連續(xù)點擊相關(guān)連接點”的操作方式。其中,“雙絞電源線焊接”是放大板上的操作,為了避免干擾,需要將接入的三組電源線以正負雙絞線的方式焊接在電路板對應(yīng)的焊盤上;而“板間線路連接”則是將不同電路板的某兩個點用導(dǎo)線連接。用戶的具體模擬操作方式為:利用鼠標(biāo)、觸點或者HTC VIVE手柄的引導(dǎo)線連續(xù)依次點擊同組電源線的多個焊盤,或者連續(xù)依次點擊需要用導(dǎo)線連接的兩個點,從而觸發(fā)雙絞線或者導(dǎo)線的連接動畫。通過這樣的虛擬操作,使用戶熟悉正確的焊接或者連接位置。

本系統(tǒng)采用“MouseTarget”“Node”“Connector”三種對象來實現(xiàn)上述功能?!癕ouseTarget”和“Node”以組件的形式加載在焊盤對象或者連接點對象上,其中“Node”組件只加載在確實需要連接的對象上?!癈onnector”則以組件的形式加載在雙絞線或者導(dǎo)線對象上,并將具有“Node”類型的數(shù)組用于存儲雙絞線對應(yīng)的焊盤對象或者導(dǎo)線對應(yīng)的連接點對象?!癕ouseTarget”用于控制操作焦點移入移出焊盤對象時的高亮顯示狀態(tài),“Node”用于記錄焊盤的設(shè)置狀態(tài)并根據(jù)狀態(tài)呈現(xiàn)不同外觀形態(tài),“Connector”用于判定一組雙絞線的連接操作是否完成并控制雙絞線連接動畫的播放。以一組雙絞線的成功連接過程為例,各相關(guān)對象的活動圖如圖 6所示。

4.操作統(tǒng)計和顯示功能的實現(xiàn)

在訓(xùn)練模塊和考核模塊中,本系統(tǒng)對用戶的操作情況進行統(tǒng)計,主要統(tǒng)計操作耗時、錯誤操作次數(shù)、放棄操作(退回)次數(shù)三種指標(biāo),并將統(tǒng)計結(jié)果實時顯示在界面上,通過這些指標(biāo)可以客觀反映用戶進行虛擬接線操作的熟練程度。

上述功能主要通過“EODetector”“SceneManager”“UIManager”三個對象實現(xiàn),這三個對象均為單例并以Unity組件的形式加載在場景管理器對象上,其中,“EODetector”組件對象用于探測用戶的錯誤操作以及放棄操作,“SceneManager”組件對象則具有計時和統(tǒng)計功能,“UIManager”組件對象用于管理統(tǒng)計數(shù)據(jù)在交互界面上的更新顯示并響應(yīng)用戶的界面操作。

(1)操作統(tǒng)計功能的實現(xiàn)

統(tǒng)計并顯示錯誤操作次數(shù)的過程為:“EODetector”對象通過訂閱“EventManager”對象所管理的“用戶釋放”事件,以及Unity提供的對象的“OnClick”事件,結(jié)合相關(guān)對象的狀態(tài)來判定是否發(fā)生錯誤操作,并由“SceneManager”對象進行錯誤操作次數(shù)累計,再由“UIManager”對象進行顯示數(shù)據(jù)的更新。

統(tǒng)計并顯示放棄操作次數(shù)的過程則為:“UIManager”對象探測到用戶點擊“放棄本次操作”按鈕后由“SceneManager”對象進行放棄操作次數(shù)累計并對場景進行“后退”處理,再回到“UIManager”對象進行顯示數(shù)據(jù)的更新。

上述兩個過程的活動圖如圖 7所示。

(2)計時功能的實現(xiàn)

操作耗時由“SceneManager”對象利用Unity的協(xié)程來實現(xiàn),每個協(xié)程等待時間為1秒鐘,第一個協(xié)程在練習(xí)或者考試開始時啟動,在每個協(xié)程結(jié)束前更新耗時計數(shù)并啟動下一個協(xié)程,同時由“UIManager”對象進行顯示數(shù)據(jù)的更新。

四、系統(tǒng)實現(xiàn)效果及應(yīng)用效果

1.系統(tǒng)實現(xiàn)效果

本系統(tǒng)運行之默認顯示的是主界面,用戶可以通過菜單選擇進入“實訓(xùn)簡介”“示范模塊”“練習(xí)模塊”“考試模塊”等功能模塊。其中在“實訓(xùn)簡介”模塊中以文字方式對實訓(xùn)內(nèi)容進行介紹,還可以進入“操作指引”場景熟悉系統(tǒng)中的常用操作;“示范模塊”以動畫的方式展現(xiàn)虛擬接線的正確過程;“練習(xí)模塊”中為用戶提供操作提示,并由用戶親自操作;“考試模塊”中則沒有任何提示,完全由用戶自行操作。圖 8為考試模塊中不同場景的效果展示。

2.應(yīng)用效果

本系統(tǒng)已經(jīng)在我校電子信息工程技術(shù)專業(yè)《音響技術(shù)與應(yīng)用》課程中得到實際應(yīng)用,根據(jù)任課教師和學(xué)生的反饋,取得了如下效果:①提高了實訓(xùn)的安全性和效率。通過虛擬訓(xùn)練,學(xué)生在接線實操之前已經(jīng)熟悉了線路的正確接法,過去時常發(fā)生的錯接、漏接現(xiàn)象極少發(fā)生,電路板燒壞的情況更是不再發(fā)生。②改善了教學(xué)效果。由于本系統(tǒng)可以在多種設(shè)備和操作系統(tǒng)上運行,任課教師可以更加靈活地設(shè)計相關(guān)教學(xué)內(nèi)容的教學(xué)方案,讓學(xué)生在課前、課中、課后都能夠有虛擬訓(xùn)練的機會,并反饋訓(xùn)練的結(jié)果,使任課教師的教學(xué)更有針對性。③提高了學(xué)生的學(xué)習(xí)興趣。本系統(tǒng)的應(yīng)用使教學(xué)內(nèi)容更加具備趣味性,能充分吸引學(xué)生,并激發(fā)他們相互競爭,獲得更好的虛擬訓(xùn)練成績。

本文闡述了“膽機組裝跨平臺虛擬仿真實訓(xùn)系統(tǒng)”的設(shè)計和實現(xiàn)方法及其使用效果,其中重點闡述了跨平臺性、場景漫游、對象操作、操作統(tǒng)計及顯示等關(guān)鍵功能的實現(xiàn)方法。通過該系統(tǒng)的應(yīng)用,提高了“膽機組裝實訓(xùn)”教學(xué)環(huán)節(jié)的安全性和效率,改善了教學(xué)效果,提高了學(xué)生的學(xué)習(xí)興趣。本文所總結(jié)的關(guān)鍵技術(shù)具有較高的普適性,可以推廣到其他仿真實訓(xùn)系統(tǒng)的研發(fā)工作中。

參考文獻:

[1]張勇亮,張均東,張志政.三維船舶輪機虛擬實驗室的設(shè)計和實現(xiàn)[J].計算機應(yīng)用與軟件,2019,36(1):171-175.

[2]范志鋒,徐敬青.基于虛擬現(xiàn)實技術(shù)的末制導(dǎo)炮彈檢測訓(xùn)練系統(tǒng)[J].計算機應(yīng)用與軟件,2019,36(2):139-143.

[3]姚亮,邵曉冬,姜旭.基于Unity3D的烹飪專業(yè)虛擬仿真實訓(xùn)系統(tǒng)研究[J].計算機仿真,2019,36(9):371-375.

[4]楊晨彬,高瞻.基于WebVR的醫(yī)學(xué)體數(shù)據(jù)可視化[J].計算機應(yīng)用與軟件,2019,36(5):101-107.

[5]呂圣卿,陳一民,黃晨,等.一種基于網(wǎng)絡(luò)的并行渲染和跨平臺同步展示系統(tǒng)[J].計算機應(yīng)用與軟件,2017,34(10):113-117.

[6]楊壹斌,李敏,解鴻文.基于Unity3D的桌面式虛擬維修訓(xùn)練系統(tǒng)[J].計算機應(yīng)用,2016,36(S2):125-128.

[7]谷學(xué)靜,張凱峰,郭宇承,等.基于Unity3D的ASD兒童認知教育系統(tǒng)設(shè)計與實現(xiàn)[J].系統(tǒng)仿真學(xué)報,2019,31(5):893-900.

[8]尹大偉,張熙若,李歡歡,等.基于Unity3D的虛擬校園漫游系統(tǒng)及其關(guān)鍵技術(shù)研究[J].軟件工程,2019,22(9):17-19.

[9]張陽,楊長強,鄭慧平.基于Unity3D與VR頭盔的虛擬現(xiàn)實體感游戲開發(fā)[J].軟件導(dǎo)刊,2017,16(8):119-122.

[10]陶瑞,任鴻翔.基于HTC VIVE的船舶固定水滅火模擬訓(xùn)練系統(tǒng)[J].中國航海,2018,41(3):76-80+90.

(編輯:魯利瑞)

猜你喜歡
跨平臺虛擬現(xiàn)實
跨層級網(wǎng)絡(luò)、跨架構(gòu)、跨平臺的數(shù)據(jù)共享交換關(guān)鍵技術(shù)研究與系統(tǒng)建設(shè)
一款游戲怎么掙到全平臺的錢?
跨平臺APEX接口組件的設(shè)計與實現(xiàn)
論虛擬現(xiàn)實藝術(shù)的“沉浸”
REALITY BITES
風(fēng)口上的虛擬現(xiàn)實
虛擬現(xiàn)實技術(shù)向科幻小說借靈感
虛擬現(xiàn)實:另一個真實世界
基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設(shè)計與實現(xiàn)
基于OPC跨平臺通信的電機監(jiān)測與診斷系統(tǒng)
平定县| 奉节县| 浦江县| 通城县| 华安县| 淮北市| 皮山县| 吉安市| 清水河县| 蓬溪县| 庆安县| 三穗县| 铜山县| 南溪县| 会宁县| 文安县| 二连浩特市| 罗江县| 宁强县| 嘉义县| 宝坻区| 遵化市| 康乐县| 武威市| 罗平县| 连州市| 枞阳县| 盐山县| 姚安县| 吴川市| 龙游县| 湟中县| 奉化市| 乳源| 东阳市| 祁连县| 洪洞县| 蒙城县| 乳山市| 博罗县| 来宾市|