喬 虎,安嘉祥,白 瑀,何 江
(西安工業(yè)大學(xué)機電工程學(xué)院,陜西 西安 710021)
增強現(xiàn)實(Augmented Reality,簡稱AR),是一種可實時計算相機的位置和角度并添加與之匹配圖像、視頻、三維模型的技術(shù),這項技術(shù)的目的是將虛擬物體放到屏幕上并與真實環(huán)境進行互動,當(dāng)虛擬與現(xiàn)實相結(jié)合,用戶在真實的環(huán)境中,與虛擬物體進行良好的互動時,會加強用戶對現(xiàn)實世界的感知與理解,是一種先進的虛擬現(xiàn)實技術(shù)[1-2]。
在傳統(tǒng)工程實踐中,初學(xué)者往往會在工程圖紙識別上出現(xiàn)認(rèn)識偏差和理解錯誤,如果將AR結(jié)合加工工藝數(shù)據(jù)庫展現(xiàn)加工信息,將會是指導(dǎo)零件加工的有效途徑?;谠鰪姮F(xiàn)實所獨特的技術(shù)特點,將其與機械加工相結(jié)合,打造“智能工藝卡片”,以增強現(xiàn)實的方式呈現(xiàn)工藝信息以指導(dǎo)加工必將給加工人員帶來極大的便利。不同于傳統(tǒng)的工藝知識服務(wù)形式,AR技術(shù)的平臺和模式對于基礎(chǔ)的工藝知識資源提出了新的要求,包括適用于移動平臺、知識展示方式AR化、交互方式簡潔多樣化等。因此,為了實現(xiàn)面向AR的機加工藝服務(wù),建立符合AR技術(shù)的資源庫是基礎(chǔ)。
首先,對已確定工藝規(guī)程的待加工零件加工工藝信息進行數(shù)據(jù)處理,包括加工材料、夾具、機床和刀具的信息等。其次,考慮到市場上手機的一般性能,為減少手機運行負(fù)擔(dān),采用Mysql數(shù)據(jù)庫管理系統(tǒng)。最后,實現(xiàn)AR平臺與MySQL之間的連接通信,并且打包發(fā)布在移動端。其系統(tǒng)結(jié)構(gòu),如圖1所示。
圖1 系統(tǒng)組織結(jié)構(gòu)Fig.1 System Organization Structure
(1)數(shù)據(jù)庫模塊。數(shù)據(jù)庫中主要儲存用戶信息、各種機械加工的工藝信息、引入AR的掃描識別圖片和待加工零件的三維模型。
(2)連接通信模塊。在基于Unity3D搭建的AR交互平臺下,實現(xiàn)與數(shù)據(jù)庫的連接通信。
(3)功能模塊。實現(xiàn)一種移動端的信息實時交互方式,在加工零件的過程中,可以在移動端調(diào)用數(shù)據(jù)庫內(nèi)容以AR的方式查看加工過程中零件三維模型,同時可以參考加工動畫,指導(dǎo)加工流程。
在資源庫開發(fā)方面,為了實現(xiàn)工藝信息的統(tǒng)一管理,同時為了保證相關(guān)信息的安全性,本系統(tǒng)底層數(shù)據(jù)的管理系統(tǒng)選擇采用甲骨文公司旗下的Mysql數(shù)據(jù)庫管理系統(tǒng)。Mysql體積小巧但性能不俗,其復(fù)雜度也較低,并且完全網(wǎng)絡(luò)化的,在具有網(wǎng)絡(luò)的任何地方都可以訪問它的數(shù)據(jù)庫,它對客戶機的數(shù)量也沒有限制,因此數(shù)據(jù)的共享十分便捷快速。
在軟件開發(fā)方面,由于本系統(tǒng)涉及的主要是移動電子設(shè)備應(yīng)用軟件,所以在決定開發(fā)方案的時候,選擇在移動端表現(xiàn)更好的Unity3D軟件開發(fā)平臺,同時搭檔目前世界上主流的AR SDK 提供平臺Vuforia,基本滿足了本系統(tǒng)所實現(xiàn)的功能。
在建立機械加工工藝信息數(shù)據(jù)庫時,嚴(yán)格遵守“自頂而下,逐步求精”的設(shè)計理念,根據(jù)信息需求和功能需求的分析,完成整個資源庫的概念結(jié)構(gòu)和邏輯結(jié)構(gòu),從而確定系統(tǒng)需要實現(xiàn)的性能目標(biāo)。為了清楚地表達數(shù)據(jù)庫的概念與邏輯結(jié)構(gòu),工藝數(shù)據(jù)表之間的關(guān)系將采用實體-聯(lián)系方法(Entity-Relationship Approach),也就是通常所稱的E-R方法[3]。E-R方法是用E-R 圖描述現(xiàn)實世界中數(shù)據(jù)之間關(guān)系的有效方法,現(xiàn)已成為描述數(shù)據(jù)庫概念模型的重要工具[4]。為此,將其應(yīng)用到本系統(tǒng)方法中,數(shù)據(jù)表之間的ER模型圖,如圖2所示。
圖2 E-R圖Fig.2 E-R Diagram
整個基于AR 的機加工信息資源庫的數(shù)據(jù)主要由待加工零件三維模型、引入AR識別圖、刀具信息、材料信息和加工設(shè)備等實體組成。二維表格中的主鍵即參照字段,為確定管理對象的唯一識別碼,外鍵則用來表達數(shù)據(jù)表間的關(guān)系。外鍵連接的是相關(guān)實體信息的具體參照表。在這一系列工藝系統(tǒng)數(shù)據(jù)表中,可以對每個實體執(zhí)行添加、刪除等操作,也可以對每個數(shù)據(jù)進行瀏覽和編輯[5-6]。以某待加工零件為例,工藝信息類型表,如表1所示。其中工藝信息類型表中的刀具與T_TOOL中的ID建立外鍵關(guān)系,材料、機床、夾具、工步內(nèi)容與之類似。
根據(jù)資源庫的實際使用需求,對工藝信息的存儲結(jié)構(gòu)進行了分析,并設(shè)計了如上的表結(jié)構(gòu),通過鍵的組合結(jié)構(gòu)將工藝實體聯(lián)系起來,可以成功實現(xiàn)數(shù)據(jù)庫中數(shù)據(jù)全局的一致性,數(shù)據(jù)庫關(guān)系圖,如圖3所示。
圖3 數(shù)據(jù)庫關(guān)系圖Fig.3 Database Diagram
本系統(tǒng)最終要實現(xiàn)基于AR且面向移動端的機械加工展示,所以對于傳統(tǒng)機加工數(shù)據(jù)要進行一些處理再按要求存儲,以減小手機運行載荷和加快數(shù)據(jù)傳輸速率。
首先是面對三維模型的簡化。在專業(yè)的繪圖軟件完成三維模型的繪制后,會在零件生成過程中生成大量幾何頂點,而這些特征在導(dǎo)入3DMAX轉(zhuǎn)化成FBX格式的過程中,會使得模型的面數(shù)大大增加,在Unity3D中大量面數(shù)的模型展示時候會嚴(yán)重消耗電腦內(nèi)存,導(dǎo)致場景加載速度緩慢甚至卡死,所以模型的簡化是必需的。若是采用Pro/E進行建模,由于其本身就是需要轉(zhuǎn)換成多邊形,所以可以手動調(diào)節(jié)轉(zhuǎn)換精度。或者是導(dǎo)入3d Max以后,可以使用ProOptimizer編輯器進行降面,雖然面的拓?fù)浣Y(jié)構(gòu)會受到影響,但如果只是用于一般的渲染,效果還是比較顯著。例如,對夾具臺虎鉗模型的降面工作,如圖4所示。成功將模型優(yōu)化,面數(shù)減少。
圖4 模型降面Fig.4 Model Drop Surface
其次是利用Vuforia增強現(xiàn)實開發(fā)引擎,將圖片、零件模型、工藝信息和虛擬場景添加到真實環(huán)境中。Vuforia識別的原理是將Target Manager 中的image 識別出的大量特征點存儲起來,然后在真實圖像中實時識別特征點,與存儲模板圖片的特征點進行數(shù)據(jù)匹配對比,識別完成后在對應(yīng)的現(xiàn)實場景中增加虛擬現(xiàn)實的內(nèi)容[7-8]。由于在最終使用所需要達到的效果是,從待加工零件的任一面都能引入AR,所以一個三維模型需要配合多個識別圖。這些識別圖放入數(shù)據(jù)庫中有以下兩種方法:其中一種方法是保存圖像存儲在數(shù)據(jù)庫中的路徑,第二種方法是將圖像以二進制數(shù)據(jù)流的形式直接記錄在數(shù)據(jù)庫的字段中[9]。由于一個三維模型將會對應(yīng)多個AR識別圖,若是采用第二種方法,系統(tǒng)運行載荷負(fù)擔(dān)重而且浪費數(shù)據(jù)庫資源,為減少數(shù)據(jù)訪問上的壓力,本系統(tǒng)采取保存圖片的上傳路徑到數(shù)據(jù)庫作為存儲圖片的方式,同時獲取圖片上傳的時間,以時間作為圖片的名字可以防止圖片重名,再將路徑保存到變量,然后把變量值存儲于數(shù)據(jù)庫的相應(yīng)字段中。
最后是為了實現(xiàn)用戶的信息管理功能,將用戶信息進行系統(tǒng)的分類歸納,普通用戶和管理員可訪問的界面都是相同的(即訪問權(quán)限相同),但在每個界面上可進行的操作不同(即操作權(quán)限不同),這里稱這種不同為:權(quán)限等級不同。
綜上所述,需要區(qū)別以下幾個重要概念:
(1)角色:如數(shù)據(jù)庫管理員,系統(tǒng)操作員,普通用戶等,不一樣的角色權(quán)限等級也不同,具有不同的訪問權(quán)限,以及不同的訪問模塊(界面)集。權(quán)限等級,例如:管理員、設(shè)計人員、普通用戶;
(2)模塊:(界面)
模塊指的是特定的界面,每個模塊都有不同的操作,例如添加、刪除、修改和檢查等;
(3)訪問權(quán)限:確定角色可以訪問的模塊(界面)集合;
(4)操作權(quán)限:確定可以在不同模塊(界面)上實現(xiàn)的具體功能集合,例如添加、刪除、修改和檢查等;
(5)權(quán)限等級:即確定角色可以訪問的范圍,如:
角色1:權(quán)限等級為管理員,則可以查看其中所有的信息;
角色2:權(quán)限等級為設(shè)計人員,則只可以查看數(shù)據(jù)庫所有工藝信息。
對于用戶的權(quán)限管理可以參照與之外鍵關(guān)聯(lián)的表T_COMPETENCE和表T_ROOL,表里記錄不同角色和角色權(quán)限等級的詳細信息,只有符合其用戶名、密碼才能實行該角色權(quán)限下的操作。
選用基于標(biāo)志物的三維跟蹤注冊方法,利用移動設(shè)備攝像頭對預(yù)定的待識別物進行識別并獲取相關(guān)頂點信息,根據(jù)仿射不變性的原理,可以將坐標(biāo)傳遞矩陣從預(yù)定義的標(biāo)記重建到當(dāng)前場景中的標(biāo)記[10],來完成虛擬信息的跟蹤注冊,最后成功將虛擬場景渲染到真實的環(huán)境當(dāng)中。
其中當(dāng)移動設(shè)備攝像頭捕捉到確定的對象時,需要運用到視頻圖像的二值化對其進行預(yù)處理,這樣就完成了從彩色的視頻圖像到黑白兩色二值圖像的轉(zhuǎn)換;對于圖像中任意像素塊(x,y),如果其灰度值S(x,y)≥t則可以認(rèn)為該像素塊為背景點,否則認(rèn)為該點為興趣點,經(jīng)過選取特定閾值,然后進行像素點分割處理后的圖像可定義為:
通常設(shè)置a0=0,a1=1,得到的即為二值化的圖像。然后,利用圖像分割及邊緣檢測技術(shù)找出該二值圖像中所有的興趣點。當(dāng)模板搜索匹配成功以后,就可以確定當(dāng)前標(biāo)志物的特定ID,進而完成識別過程,如圖5所示。
圖5 標(biāo)志識別過程Fig.5 Logo Recognition Process
為了實現(xiàn)移動客戶端軟件能訪問顯示數(shù)據(jù)庫中的內(nèi)容,需要AR平臺與數(shù)據(jù)庫之間實現(xiàn)連接通信。
Unity3D與Mysql數(shù)據(jù)庫相連接首先要準(zhǔn)備一些必需的動態(tài)鏈接庫。從D:UnityEditorDataMonolibmono2.0(Unity3D安裝目錄)中找到以下5個dll文件:I18N.CJK.dll、I18N.dll、I18N.West.dll、Mysql.Data.dll、System.Data.dll,將這些dll 文件放入Unity3D工程目錄下的Assets/Plugins文件夾中,如圖6所示。
圖6 所需dll文件Fig.6 Required dll Files
然后創(chuàng)建C#類,引用上文導(dǎo)入的dll文件(using Mysql.Data.MysqlClient),以下關(guān)鍵代碼實現(xiàn)Mysql數(shù)據(jù)庫與Unity3D的連接通信。
string connStr= "Database=databaseName;datasource=localhost;port=3306;user=root;pwd=root;charset=utf8";
MysqlConnection conn=new MysqlConnection(connStr);
如果數(shù)據(jù)庫在本機,IP 地址選項可以填寫localhost 或者127.0.0.1或者本機的私有IP地址,但最終本系統(tǒng)是要打包發(fā)布至安卓或IOS平臺,所以IP地址填寫規(guī)則需要分為兩種情況進行討論:(1)如果服務(wù)器端與客戶端連接的是同一個局域網(wǎng)的話,則使用的是內(nèi)網(wǎng)IP地址。(2)如果是將電腦作為服務(wù)器端聯(lián)網(wǎng)并且使用公網(wǎng)IP的情況下,則需要進行映射,簡單來說就是將公網(wǎng)IP與電腦內(nèi)網(wǎng)IP綁定,實現(xiàn)遠程連接數(shù)據(jù)庫。
port指端口號,若是在安裝時沒有刻意更改,則Mysql默認(rèn)的連接端口號為3306。需要注意的是,由于Mysql8.0 之后版本加密規(guī)則的規(guī)定,必須在最后加上編碼格式,也就是上述代碼中的charset=utf8,并且數(shù)據(jù)庫以及表、表中的鍵所有的編碼格式必須統(tǒng)一為utf8。
使用該軟件的用戶,可以通過登錄界面,輸入用戶名和密碼進入系統(tǒng),若是首次使用,則可以選擇注冊新用戶來完成登錄。本系統(tǒng)的登錄界面,如圖7所示。
圖7 系統(tǒng)登錄界面Fig.7 System Login Interface
在功能模塊選擇界面主要包括了加工工藝信息庫、典型工件加工和用戶管理三大模塊,除了第三個模塊需要管理員權(quán)限外,其他兩個模塊普通用戶均可訪問,如圖8所示。
圖8 功能選擇模塊Fig.8 Function Selection Module
在加工工藝信息庫中主要存有各類機械加工設(shè)備和工件材料信息的相關(guān)數(shù)據(jù),如圖9所示。下圖中以螺紋銑磨刀和硬質(zhì)合金銑刀為實例,展示包括刀具牌號、名稱、尺寸等信息,在手機端可以實現(xiàn)右劃界面展示全部信息,點擊返回可返回功能選擇界面。
圖9 加工工藝信息庫Fig.9 Processing Technology Information Database
當(dāng)識別到待加工零件后,工藝信息和三維零件模型便疊加真實場景展示出來,并且可以播放加工仿真動畫,來完成加工指導(dǎo)任務(wù),如圖10所示。
圖10 典型工件加工Fig.10 Typical Workpiece Processing
隨著“中國制造2025”和工業(yè)4.0概念的提出,制造業(yè)對自動化、智能化生產(chǎn)模式的需求日益增長,為了實現(xiàn)加工高效、產(chǎn)品高質(zhì)量的生產(chǎn)目標(biāo),同時為了減少工藝人員在識別二維紙質(zhì)圖紙的失誤,將AR技術(shù)與加工工藝數(shù)據(jù)庫相結(jié)合,應(yīng)用Unity3D開發(fā)引擎和MySQL數(shù)據(jù)庫管理系統(tǒng),設(shè)計一種滿足AR技術(shù)的機加工藝信息資源庫模板,打包發(fā)布至手機或平板中以便使用者隨時隨地查閱加工信息,并能通過AR技術(shù)直觀的了解到零件的加工過程。