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