顏宗歡 張士杰 黎鑫
關鍵詞:仿真系統(tǒng);虛擬技術;金工實習;鉗工教學
中圖法分類號:TP391 文獻標識碼:A
1引言
“鉗工實訓”是機械類各專業(yè)必修的一門基礎性實踐課程,旨在提升學生動手操作、創(chuàng)新、解決問題等能力。學生不僅需要了解鉗工(包括鋸削、銼削、劃線等)的基本原理,同時需要對其規(guī)范操作進行實踐和掌握。但由于鉗工設備價格較高且某些操作的危險性很高,導致教學往往側重于掌握基本的原理,這嚴重影響了教學效果,也降低了學生的參與度和體驗感,沒能實現(xiàn)培養(yǎng)其實踐能力的目標。
針對以上問題,很多高校已經(jīng)開始了相關研究與應用。隨著交互性應用的發(fā)展,虛擬仿真技術有了突破性的進步,在各行各業(yè)都有成功的應用,并取得了相應的經(jīng)濟效益。
虛擬仿真系統(tǒng)主要包含硬件和軟件2個部分,其中軟件作為控制,硬件作為仿真對象。其優(yōu)勢在于以鉗工教學作為理論基礎,以虛擬現(xiàn)實的仿真系統(tǒng)作為技術支持,基于Unity軟件構建3D實驗室,連接手機與平臺進行交互,實現(xiàn)與真實環(huán)境相似的效果。相對于其他虛擬平臺,本文虛擬平臺在一定程度上更有助于實踐性課程的訓練,同時成為全國高校金工實習首個線上線下共同教學平臺,填補了金工實習線上虛擬現(xiàn)實教學的空白。
2虛擬仿真技術
虛擬現(xiàn)實技術,又稱作虛擬實境技術。該技術是一種能夠創(chuàng)建和體驗虛擬世界的計算機仿真系統(tǒng)(Computer Simulation System)。該技術主要是由計算機技術、傳感器技術、人類心理學和生理學等綜合而成。因此,其能夠向用戶提供視覺、嗅覺、味覺等感知功能,讓用戶完全沉浸在虛擬環(huán)境中,實現(xiàn)身臨其境的效果。該技術通過計算機仿真系統(tǒng)盡可能地還原現(xiàn)實環(huán)境,讓用戶能夠在虛擬環(huán)境中進行交互,并為用戶提供各種信息。
虛擬現(xiàn)實技術包含3個主要特點:交互性(Interaction),沉浸感(Immersion),想象性
3實驗系統(tǒng)設計
3.1系統(tǒng)構思
系統(tǒng)的初步構思:前端開發(fā)系統(tǒng)登錄界面的設計,后端建立mysql數(shù)據(jù)庫,存放用戶信息,利用Unity實現(xiàn)用戶注冊登錄并進入實驗平臺。通過三維建模軟件solidworksUnity構建3D實驗室環(huán)境,即操作平臺界面。插入實訓教學的音頻,用戶可以在實驗操作前觀看具體的操作步驟。然后將手機與計算機進行連接,通過移動手機端,實現(xiàn)虛擬工具的移動,從而對元件進行打磨。后端數(shù)據(jù)庫記錄整個實驗操作過程,實驗結束后,根據(jù)建立的數(shù)據(jù)庫對其操作進行評分,并給出具體的扣分原因。
該系統(tǒng)主要是基于Unity平臺,結合硬件和軟件設計而成的虛擬仿真實驗系統(tǒng)。虛擬仿真實驗系統(tǒng)主要實現(xiàn)以下功能。
(1)通過三維建模軟件solidworksUnity搭建虛擬現(xiàn)實3D鉗工虛擬車間場景。學生可從計算機端進入虛擬現(xiàn)實車間場景,選擇工具,并對虛擬毛坯材料進行打磨加工,連接傳感器與虛擬工具進行匹配,可以實現(xiàn)對鉗工操作的模擬。
(2)虛擬仿真實驗系統(tǒng)能夠提供友好的交互功能,使用手機中的Unity remote APP與unity場景交互實現(xiàn)體感交互功能。學生手持傳感器即可以模擬真實的金工實習操作。例如,學生通過手機模擬銼,即可完成銼削動作。
(3)基于mysql數(shù)據(jù)庫和Unity上傳的數(shù)據(jù),對學生的鉗工操作進行評分。當學生的操作出現(xiàn)銼削角度有誤、速度掌握不當、工件損壞等錯誤時,系統(tǒng)會基于Unity3D數(shù)據(jù)庫進行判斷,并對其糾正錯誤。實習完成后,系統(tǒng)自動將成品與Unity3D中的標準件進行比對,并完成評分。
3.2設計實現(xiàn)
3.2.1虛擬實驗室場景
為了還原實際車間的真實場景,我們采用了SolidWorks三維建模,對實驗室的環(huán)境和工具進行搭建,并利用3D MAX為實驗工具添加對應的貼圖材質(zhì)。此外,為了有助于后續(xù)編程,在開始搭建環(huán)境時就對各類模型進行分類。因為實驗操作分為不同階段,各個階段所需要的工具不同,所以在后面的系統(tǒng)設計過程中,需要采用合理的建模方式。例如,交互編程中的平移和轉(zhuǎn)動會受到創(chuàng)建模型大小的影響,虛擬實驗室的環(huán)境優(yōu)化問題會受到模型細化的影響。
在開發(fā)了一些3D場景后,我們創(chuàng)建了虛擬實驗室環(huán)境,用戶可以在其中選擇實驗工具。如圖1所示,該場景看起來像是一個簡單真實的實驗室,實驗桌上放有實驗操作的工具。
3.2.2交互界面
完成虛擬實驗室模型的創(chuàng)建后,還需要對該虛擬場景進行交互編程。交互編程主要分為以下2個方面。
(1)在虛擬實驗過程中實驗工具和實驗材料屬于基本屬性的交互編程,如實驗材料的選擇,實驗工具的更換,對實驗器材的打開或者關閉,用戶能夠自由移動工具或者實驗工具,場景中的儀器具有重力等基本屬性。這些功能主要是通過基于Furion框架的.Net6來實現(xiàn)。
(2)學生在虛擬實驗室環(huán)境中的每一個操作都將被后端數(shù)據(jù)庫記錄,以便后續(xù)對實驗操作進行打分。實現(xiàn)該功能的方法主要包含以下2種。
方法一,虛擬場景直接和前端頁面通過Javascript完成。具體實現(xiàn)如下:將網(wǎng)頁中嵌入的虛擬場景通過VR.Engineering, Node(“scnptname”")遍歷,原script已經(jīng)創(chuàng)建了多個字符域(MultStringName),用于接收場景中傳人的字符,因為虛擬實驗中的操作促進script節(jié)點中的事件發(fā)生,該事件立即產(chǎn)生新的事件。
方法二,將虛擬實驗室和服務器嵌入同一個網(wǎng)頁,通過Java Applet來記錄用戶整個操作數(shù)據(jù),實驗操作的變化將受到Java Applet的控制,由Java Applet編程產(chǎn)生的數(shù)據(jù)或提示信息字符直接輸出在網(wǎng)頁中嵌入該Java Applet頁面的位置上。
其主要代碼如下。
public classApplet(Integer transaction) throws SQLException{
String sql = "delete fromtransaction where transactionid=?";
corin=JDBCUtil.getConnection();
pstmt=conn.prepareStatement(sql);
pstmt.setObject(1,transactionld);
int recordNumber=pstmt.executeUpdate();
pstmt.close();
conn.close();
return recordNumber;
}
3.2.3播放視頻
學生在虛擬實驗中,需要完成鉗工操作。系統(tǒng)添加了實驗的操作視頻,幫助學生理解并掌握整個實驗過程的基本原理。用戶進入實驗室,點擊播放視頻后,可以通過其進行控制播放進度和點擊結束觀看等操作。其具體實現(xiàn)步驟如下。
首先確定打包資源,并且給該資源包命名,然后指定該資源的屬性。由于該資源僅在Victory模式下運行,但在實際的運行過程中并沒有創(chuàng)建該資源的過程,因此需要創(chuàng)建一個文件夾名為“Victory”,而后在此文件夾下打包指定的屬性。在代碼中寫好方法后,將此方法放到Unity的菜單下進行手動調(diào)用。其主要代碼如下。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LoadFromFile:MonoBehaviour{
void Start(){
AssetBundle ab=AssetBundle. LoadFromFile ("AssetBundles/wood.unity3d");
//加載資源
GameObject
wallPrefab = ab. LoadAsset ("Wood");
Instantiate( wallPrefab);
}
}
3.2.4評分
在實際的金工實習過程中,實驗結束后會對學生的打磨作品進行評分,因此,需要為系統(tǒng)添加類似功能?;谇拔牡募夹g,系統(tǒng)已經(jīng)保存了用戶整個操作過程的數(shù)據(jù)。對學生打分的過程使用Visual Studio為此項目提供的算法,具體的偽代碼如下。
#include
int main(void)
{
int function;
printf(“選擇功能”);
printf(“A.選擇作業(yè)工具”);
printf(“B.作業(yè)評分”);
scanf(“%d”,&function);
switch( function)
{ case A:int i;
printf("1.銼2.老虎鉗3.銅刷");
scanf("%d",&i);
switch(i)
{casel://調(diào)動工具蝶
break:
case2://調(diào)動工具老虎鉗
break:
case3://調(diào)動工具銅劇
break;}
case B:int i,j;//i表示當前完成作品:j表示標準作品
{if(i>j)
printf("不合格");
else if(i= =j)
printf("合格");
else(i
printf("合格");
}
}
}
4結束語
本文旨在創(chuàng)建虛擬金工實習虛擬實驗室,以支持學生模擬鉗工實習。本文設計并開發(fā)了一個虛擬仿真實驗系統(tǒng),在該系統(tǒng)中,用戶可以使用手機陀螺儀與虛擬物體進行實驗交互。此外,后端記錄用戶操作數(shù)據(jù),并根據(jù)具體操作給出用戶實驗的分數(shù)。
本文提出采用新的技術和工具來創(chuàng)建可視化和交互式的鉗工實驗。本文實驗設計均基于鉗工教學的基本理論,將相關材料在3D模型中實現(xiàn),并在虛擬系統(tǒng)中進行實驗。通過打磨金屬材料來模擬實驗過程,并通過虛擬現(xiàn)實系統(tǒng)模擬實驗室環(huán)境,從而提高學生的實踐能力。這種融合研究并不會帶來真實的實驗室環(huán)境的潛在危險,實驗錯誤也可以很容易地被糾正,而且學生可以在不消耗任何真實材料的情況下重復進行實驗。因此,虛擬現(xiàn)實仿真技術可以作為一種廣泛應用的教育工具。
作者簡介:
顏宗歡(2001—),本科,研究方向:計算機視覺、計算機科學。