中國電子科技集團公司第三十八研究所 胡祥濤
東南大學(xué) 羅宏亮
虛擬車間三維監(jiān)控系統(tǒng)是將虛擬現(xiàn)實技術(shù)應(yīng)用到工業(yè)生產(chǎn)中的產(chǎn)物。本文提出了一種可行、高效的虛擬車間三維監(jiān)控系統(tǒng)實現(xiàn)流程,并對其中的實現(xiàn)方法和關(guān)鍵技術(shù)展開詳細的研究。在相關(guān)研究的基礎(chǔ)上對虛擬車間三維監(jiān)控系統(tǒng)進行設(shè)計,并詳細講解系統(tǒng)的實現(xiàn)方法。最后以車載雷達裝配線為對象,驗證本文提出的虛擬車間三維監(jiān)控系統(tǒng)實現(xiàn)流程和方法的正確性、可行性。
虛擬車間三維監(jiān)控是通過建立生產(chǎn)現(xiàn)場的三維數(shù)字化模型,用生產(chǎn)數(shù)據(jù)驅(qū)動數(shù)字化模型,最終實現(xiàn)虛實同步的監(jiān)控技術(shù)。隨著建模與仿真技術(shù)、實時通信技術(shù)和Web技術(shù)的發(fā)展,虛擬監(jiān)控系統(tǒng)逐漸興起和發(fā)展,國內(nèi)外學(xué)者對其進行了相關(guān)研究和實現(xiàn)。在國外,Senkuvien?等提出了一種能實時監(jiān)控車間狀態(tài)和加工設(shè)備的可視化方案,針對生產(chǎn)進度、加工過程、資源調(diào)度等進行監(jiān)控,并在Stevila公司部署應(yīng)用,取得了良好的效果。Zoolfakar等將仿真技術(shù)應(yīng)用于生產(chǎn)制造過程,將研究成果開發(fā)成一個中間件,可以配合車間數(shù)據(jù)對生產(chǎn)進度進行仿真和監(jiān)控。德國西門子公司開發(fā)了車間監(jiān)控軟件Comos,可實現(xiàn)對生產(chǎn)現(xiàn)場的仿真、監(jiān)控、場景漫游等,得到了市場的廣泛認可。美國參數(shù)技術(shù)公司(PTC)推出了物聯(lián)網(wǎng)平臺ThingWorx,該平臺以網(wǎng)頁技術(shù)為依托,具備強大的數(shù)據(jù)處理能力,開放了二次開發(fā)端口,可實現(xiàn)生產(chǎn)現(xiàn)場的三維可視化數(shù)字雙胞胎。在國內(nèi),常仕軍等應(yīng)用甘特圖等方式對生產(chǎn)現(xiàn)場的數(shù)據(jù)進行展現(xiàn)。李智等對數(shù)據(jù)的采集方案進行研究,提高了數(shù)據(jù)的實時性,但展示界面還處于二維水平,缺乏真實性。柯榕等基于Unity3D平臺構(gòu)建了車間三維場景,但結(jié)構(gòu)相對簡單。李超等以塔式起重機為對象,建立了塔機三維模型和環(huán)境模型庫,采用DirectX設(shè)計虛擬監(jiān)控系統(tǒng)渲染引擎,實現(xiàn)了三維圖形逼真顯示和人機交互功能,但該方法工作量大,可遷移性低。梁興明等通過Unity3D平臺實現(xiàn)了虛實融合的車間實時生產(chǎn)監(jiān)控,但著重細節(jié)研究,系統(tǒng)性不足。近五年來,國內(nèi)企業(yè)對虛擬監(jiān)控的需求越來越強烈,但由于國內(nèi)在相關(guān)方面研究尚淺,還未形成完善的整體架構(gòu)和成熟的技術(shù)理論,亟需一種系統(tǒng)、高效、適合市場應(yīng)用的虛擬監(jiān)控實現(xiàn)流程和方法。
虛擬車間三維監(jiān)控是通過三維虛擬方式展示車間的實時運行狀態(tài)。運用三維建模軟件對車間設(shè)備、物料等生產(chǎn)要素進行三維建模,采用虛擬現(xiàn)實引擎進行虛擬車間的渲染與交互動作建模,最后運用數(shù)據(jù)交互技術(shù)實現(xiàn)虛擬場景與生產(chǎn)現(xiàn)場的實時同步,實現(xiàn)虛擬車間三維監(jiān)控,本文提出的虛擬車間三維監(jiān)控系統(tǒng)實現(xiàn)流程如圖1所示。
圖1 虛擬監(jiān)控實現(xiàn)流程
三維模型是虛擬車間三維監(jiān)控系統(tǒng)實現(xiàn)的基礎(chǔ)。常見的三維建模軟件由CATIA、Pro/ENGINEER、SolidWorks、Maya等,它們共同的特點是利用基本的幾何元素,如球體、圓柱體、立方體等,通過拉伸、旋轉(zhuǎn)、平移以及布爾運算等幾何操作來構(gòu)建復(fù)雜的幾何模型。這些三維建模軟件構(gòu)建的三維模型主要側(cè)重于對象的幾何外型和各零部件之間的裝配關(guān)系等信息,與現(xiàn)實世界中形態(tài)各異、豐富多彩的物體還存在一定差距。
一般來說,采用三維建模軟件構(gòu)建的三維模型主要是對象的幾何外型和各部件之間的裝配關(guān)系,結(jié)構(gòu)與實物相似,但視覺上與實際物體存在較大差距。為提高虛擬監(jiān)控系統(tǒng)的真實性,需對構(gòu)建的三維模型進行處理,三維模型的處理一般在3DMax進行,主要包括給模型添加材質(zhì)、貼圖等操作,使三維模型具備物理屬性和紋理色彩,最終實現(xiàn)處理后的三維模型從物理屬性、紋理色彩、光線等與現(xiàn)實世界中的物體盡可能一樣。
本文選擇Unity3D作為虛擬車間三維監(jiān)控系統(tǒng)的開發(fā)平臺,場景是Unity3D程序的基本組成單位,場景管理主要是對場景中的模型進行組織和渲染。由于生產(chǎn)現(xiàn)場環(huán)境復(fù)雜,設(shè)備種類多樣,造成虛擬監(jiān)控系統(tǒng)中的模型數(shù)量巨大,加大了場景管理的難度。場景的組織方式對系統(tǒng)后期設(shè)備的運動控制、環(huán)境渲染、三維漫游和數(shù)據(jù)源的數(shù)量和接口方式都有重要影響。本文提出采用場景樹的方式實現(xiàn)場景的有效管理,一個場景樹包含虛擬場景中的所有信息,既包括樹的頂點信息,也包括對象變換和渲染等信息,許多不同類型的節(jié)點按照層次結(jié)構(gòu)進行排列,最終組成場景樹。通過場景樹的方式大大降低了場景管理的復(fù)雜度,為系統(tǒng)開發(fā)提供了便捷方法。
運動控制技術(shù)是實現(xiàn)虛擬監(jiān)控技術(shù)的核心。在對虛擬模型運動控制的基礎(chǔ)上,用生產(chǎn)現(xiàn)場的實時數(shù)據(jù)驅(qū)動模型,最終實現(xiàn)所有運動的虛實同步。常用的運動控制包括基本運動控制、搬運設(shè)備運動控制和機械手運動控制等。
(1)基本運動控制。
由場景樹可知,場景中的對象之間存在一定的層級關(guān)系,在Unity3D中子節(jié)點跟隨父節(jié)點進行運動,故當(dāng)一個對象發(fā)生運動時,組成它的所有子節(jié)點、子子節(jié)點等都將一起發(fā)生運行。當(dāng)腳本寫好后,通過拖拽方式將腳本掛在相應(yīng)的對象上,就可實現(xiàn)該對象及其所有子對象的運動控制。
Unity3D最基本的運動是對象的移動和旋轉(zhuǎn),通過節(jié)點層級關(guān)系、特殊插件、幾何關(guān)系計算等可實現(xiàn)復(fù)雜對象的復(fù)雜動作。對象移動的實現(xiàn)代碼如下:
實現(xiàn)對象在relative坐標(biāo)系中移動position距離。position可為Vector3類型或float類型的一維、二維、三維值,表示對象相對于relative坐標(biāo)系沿x、y、z軸的移動量。
對象旋轉(zhuǎn)的實現(xiàn)代碼如下:
實現(xiàn)對象沿relative坐標(biāo)系旋轉(zhuǎn)angle角度。angle可為Vector3類型或float類型的一維、二維、三維值,表示對象相對于relative坐標(biāo)系沿x、y、z軸的旋轉(zhuǎn)量。
(2)搬運設(shè)備運動控制。
搬運設(shè)備運動控制可通過基本運動控制中的移動和旋轉(zhuǎn)代碼來實現(xiàn),但此方法沒有充分利用生產(chǎn)車間搬運設(shè)備路徑相對固定的優(yōu)點,運動控制效率低且需要不斷獲取搬運設(shè)備的位置信息和轉(zhuǎn)動信息,對數(shù)據(jù)的連續(xù)性、實時性要求極大,加大了系統(tǒng)的運行開銷,容易造成系統(tǒng)卡頓問題。
DOTween是Unity3D中最常用的插件之一,在動畫制作方面具有令人折服的能力,本文提出采用DOTween插件實現(xiàn)搬運設(shè)備的運動控制。實現(xiàn)節(jié)點之間的路徑運動是DOTween插件中的路徑編輯器DOTween Path組件。
waypoints是運動路徑上各個節(jié)點的位置坐標(biāo),可以為數(shù)組,同時包括多個節(jié)點;duration是相鄰節(jié)點之間的運動時間;pathType是運動路徑的類型,包括Linear(直線)和CatmullRom(彎曲)兩種;pathMode是路徑模式,用于選擇正確的LookAt選項,包括Ignore(不動)、3D(三維模式)2D(二維模式)三種模式;resolution是路徑的分辨率,值越大越適合長彎曲路徑,默認值為10;gizmoColor是路徑的顏色,當(dāng)程序運行時路徑顯示的顏色,默認是白色。
根據(jù)生產(chǎn)車間實際搬運設(shè)備的路線,使用DOTween插件在虛擬監(jiān)控系統(tǒng)的對應(yīng)線路上添加一定數(shù)量的節(jié)點,根據(jù)添加順序,節(jié)點將自動相聯(lián)構(gòu)成一條線路,設(shè)計的線路相當(dāng)于搬運設(shè)備的路徑約束,搬運設(shè)備會沿著這條路線進行運動。每個節(jié)點的位置坐標(biāo)可采用腳本進行修改,即實現(xiàn)了搬運路徑的約束性也實現(xiàn)了搬運路徑的動態(tài)性。這樣可實現(xiàn)當(dāng)搬運設(shè)備間斷地發(fā)送位置信息時,虛擬監(jiān)控系統(tǒng)中的搬運設(shè)備仍能沿著一定的路徑和速度平滑的進行運動,既降低了系統(tǒng)開銷也達到了良好的展示效果。
(3)機械手運動控制。
機械手運動控制中各個關(guān)節(jié)之間的運動約束非常復(fù)雜,采用基本運動控制中的移動和旋轉(zhuǎn)代碼很難保證機器人運動的協(xié)調(diào)性和流暢性。本文提出機械手的運動控制采用添加IK插件的方式實現(xiàn)。IK(Inverse kinematics)即反向運動學(xué),用子節(jié)點帶動父節(jié)點的運動,常見的IK插件包括Aim IK、Biped IK、CCD IK、FABRIK等模塊,每種IK的應(yīng)用場景不同,其中CCD IK是通過不斷迭代運算求出一個近似解,來決定各層級父子關(guān)節(jié)的姿態(tài),求解效率高、效果好,故其應(yīng)用較多。
給機械手模型添加IK插件,實現(xiàn)通過控制機械手末端位置來保證整個機械手整體協(xié)調(diào)運動的目的,以CCD IK為例,其實現(xiàn)流程如圖2所示。
控制關(guān)節(jié)運動的Rotation Limit Hinge代碼是系統(tǒng)自帶的,用戶只需根據(jù)機械手運動的實際情況,手動調(diào)整每個關(guān)節(jié)可旋轉(zhuǎn)角度的上下限即可,在此不再累述??刂茩C械手末端的位置,實現(xiàn)整個機械手協(xié)調(diào)運動,實現(xiàn)代碼如下:
人機交互技術(shù)是指通過外部硬件輸入,系統(tǒng)能做出相應(yīng)的響應(yīng),最終實現(xiàn)人與計算機的信息交互,其中鼠標(biāo)和鍵盤是當(dāng)今最常用的人機交互輸入設(shè)備。通過人機交互技術(shù)實現(xiàn)虛擬車間三維監(jiān)控系統(tǒng)的人機交互,不僅能更好地展示生產(chǎn)數(shù)據(jù),還能提高人的參與度,使監(jiān)控效果趨于智能化。虛擬車間三維監(jiān)控系統(tǒng)人機交互主要是設(shè)備信息動態(tài)查看和三維場景切換兩個方面,本系統(tǒng)也將鼠標(biāo)和鍵盤作為輸入設(shè)備。
(1)設(shè)備信息查看。
虛擬車間三維監(jiān)控系統(tǒng)中所有設(shè)備實時狀態(tài)信息最好的查看方式是通過鼠標(biāo)點擊相應(yīng)設(shè)備模型彈出相應(yīng)對話框進行顯示,因為這種方式簡單、直觀,符合人的主觀認知。要實現(xiàn)通過鼠標(biāo)點擊實現(xiàn)設(shè)備信息的查看,首先需要虛擬監(jiān)控系統(tǒng)能夠接收鼠標(biāo)點擊事件,其次通過一定的方法得到鼠標(biāo)點擊的設(shè)備,然后讀取該設(shè)備的狀態(tài)信息,最后彈出設(shè)備狀態(tài)信息窗口。
虛擬車間三維監(jiān)控系統(tǒng)的鼠標(biāo)交互操作是通過Unity3D中的輸入接口函數(shù)Input來實現(xiàn),KeyCode.Mouse0代表鼠標(biāo)左鍵,通過Input.GetKeyDown(KeyCode.Mouse0)實現(xiàn)外部鼠標(biāo)點擊事件的輸入,將實現(xiàn)過程放入腳本自帶的Update()函數(shù)中,保證實時響應(yīng)用戶的操作。
(2)三維場景切換。
人機交互模塊的三維場景切換主要包括關(guān)鍵工位三維場景的切換、生產(chǎn)現(xiàn)場多視角切換、生產(chǎn)現(xiàn)場指定路徑漫游和人員控制漫游路徑觀察四部分。這四部分涉及的技術(shù)基本相同,都是通過鼠標(biāo)或鍵盤的輸入技術(shù)和相機的移動和旋轉(zhuǎn)來實現(xiàn)。
相機的移動、旋轉(zhuǎn)、位置和角度控制是三維場景切換效果的重要影響因素。相機的運動和旋轉(zhuǎn)操作的原理和其他對象一樣,通過Transform類的Translate和Rotate函數(shù)來實現(xiàn)??稍谝粋€場景中放置多個相機,實現(xiàn)在界面上同時觀察多個位置的設(shè)備運行情況,與生活中車庫等監(jiān)控系統(tǒng)的多視角同時觀察、監(jiān)控效果相似。生產(chǎn)現(xiàn)場按指定路線進行漫游可通過DOTween插件實現(xiàn),根據(jù)實現(xiàn)約定好的漫游路徑,在DOTween中拖拽式的畫出對應(yīng)的漫游路徑,當(dāng)需要按指定路徑進行漫游時,讓相機按照DOTween規(guī)劃的路徑進行運動即可,實現(xiàn)方式簡單、漫游效果好。人員控制漫游路徑進行觀察通過鍵盤或鼠標(biāo)的輸入,調(diào)用Transform類的Translate和Rotate函數(shù)來實現(xiàn)相機為移動和旋轉(zhuǎn),最終實現(xiàn)人員控制漫游路徑,可從任何位置和任何角度觀察生產(chǎn)現(xiàn)場,達到良好的人機交互效果。
三維場景與網(wǎng)頁的數(shù)據(jù)交互技術(shù)主要涉及數(shù)據(jù)格式和兩者的交互方式兩方面問題。數(shù)據(jù)格式對數(shù)據(jù)交互的效率、速度、解析的難易程度都有重要影響,三維場景與網(wǎng)頁的數(shù)據(jù)交互是實現(xiàn)生產(chǎn)數(shù)據(jù)驅(qū)動模型運動和人機交互的基礎(chǔ)。
(1)數(shù)據(jù)格式。
數(shù)據(jù)格式是三維可視化插件與網(wǎng)頁進行數(shù)據(jù)交互首先要考慮的問題,但由于網(wǎng)頁與三維可視化插件在數(shù)據(jù)接口、應(yīng)用環(huán)境等方面存在較大差異,數(shù)據(jù)格式的定義是兩者進行數(shù)據(jù)交互的難點。結(jié)合網(wǎng)頁與插件的傳輸接口、各種數(shù)據(jù)格式的特點,最終選用傳輸方便、兼容性強、直觀性強、便于解析優(yōu)點的JSON字符串作為三維可視化插件與網(wǎng)頁數(shù)據(jù)交互的格式。
(2)函數(shù)調(diào)用。
三維可視化插件屬于網(wǎng)頁的嵌入模塊,作為一個相對獨立的模塊,要想實現(xiàn)兩者的數(shù)據(jù)交互需要一個通道,為實現(xiàn)三維可視化插件與網(wǎng)頁的雙向響應(yīng),通道要實現(xiàn)兩者數(shù)據(jù)和函數(shù)調(diào)用的雙向性。本文提出采用函數(shù)調(diào)用的方式實現(xiàn)三維可視化插件與網(wǎng)頁的數(shù)據(jù)交互。
三維可視化插件調(diào)用網(wǎng)頁中的函數(shù)。三維可視化插件調(diào)用網(wǎng)頁中的函數(shù)通道已經(jīng)被封裝在Application類,可使用Application.ExternalCall (functionName,args)調(diào)用網(wǎng)頁中的函數(shù)(只用于Web Player),參數(shù)functionName表示網(wǎng)頁中的函數(shù)名,參數(shù)args表示傳遞的參數(shù),支持原始的數(shù)據(jù)類型(string、int、float、char)和JSON字符串格式。這個函數(shù)調(diào)用在程序執(zhí)行時不會被阻塞,即ExternalCall立即被返回而不必等待被完成,且傳遞的參數(shù)數(shù)量是可變的。
網(wǎng)頁調(diào)用三維可視化插件中的腳本函數(shù)。網(wǎng)頁調(diào)用三維插件中的腳本函數(shù)是通過SendMessage()函數(shù)實現(xiàn),函數(shù) 原 型 為 SendMessage(Object,functionName,params),參數(shù)Object表示三維插件中的GameObject模型對象,參數(shù)functionName表示掛載在GameObject對象的腳本函數(shù)名,參數(shù)params表示傳遞的參數(shù),支持原始的數(shù)據(jù)類型(string、int、float、char)和JSON字符串格式。在使用SendMessage()函數(shù)進行調(diào)用之前,必須首先使用JavaScript中對象Document的getElementById()函數(shù)來獲得Unity Web player的引用。
通過Application.ExternalCall()和getUnity().SendMessage()函數(shù)以及以上的相關(guān)規(guī)則可實現(xiàn)三維可視化插件與網(wǎng)頁之間函數(shù)的雙向調(diào)用,實現(xiàn)三維場景與網(wǎng)頁的數(shù)據(jù)交互。
虛擬車間三維監(jiān)控系統(tǒng)基于B/S架構(gòu),通過實時通信服務(wù)器、歷史數(shù)據(jù)庫等數(shù)據(jù)驅(qū)動虛擬監(jiān)控系統(tǒng)中的三維模型,在Unity3D平臺上實現(xiàn)三維模型與生產(chǎn)現(xiàn)場設(shè)備、物料、環(huán)境和生產(chǎn)進度等信息的實時同步,并保證用戶通過人機交互界面實現(xiàn)對設(shè)備、具體工位的查看和場景漫游功能,系統(tǒng)的架構(gòu)如圖3所示。
虛擬車間三維監(jiān)控系統(tǒng)的架構(gòu)分為五層。
(1)物理層。物理層主要是指生產(chǎn)現(xiàn)場硬件層和數(shù)據(jù)采集系統(tǒng)兩部分,物理層主要負責(zé)產(chǎn)品的生產(chǎn)和裝配,也是所有生產(chǎn)信息的源頭。數(shù)據(jù)采集硬件將實時采集生產(chǎn)數(shù)據(jù),并通過傳輸網(wǎng)絡(luò)實時上傳生產(chǎn)信息。
(2)數(shù)據(jù)層。數(shù)據(jù)是虛擬車間三維監(jiān)控系統(tǒng)的動力。虛擬車間三維監(jiān)控系統(tǒng)中模型的實時驅(qū)動、生產(chǎn)狀態(tài)信息、搬運信息、警報信息等都需要生產(chǎn)現(xiàn)場的實時數(shù)據(jù)、歷史數(shù)據(jù)和控制指令信息。通過函數(shù)調(diào)用方式以JSON數(shù)據(jù)格式完成虛擬場景與數(shù)據(jù)層數(shù)據(jù)的實時交互,驅(qū)動虛擬車間三維監(jiān)控系統(tǒng)的運動,實現(xiàn)虛實同步。
(3)業(yè)務(wù)邏輯層。業(yè)務(wù)邏輯層根據(jù)生產(chǎn)現(xiàn)狀對虛擬車間三維監(jiān)控系統(tǒng)要展示的信息進行設(shè)計,主要包括加工設(shè)備信息模塊、物流設(shè)備信息模塊、加工進度信息模塊和報警信息模塊四個方面。
(4)功能模塊層。功能模塊層主要是對虛擬車間三維監(jiān)控系統(tǒng)人機交互功能進行設(shè)計,包括生產(chǎn)車間多視角切換、設(shè)備詳細信息查看、生產(chǎn)現(xiàn)場多視圖展示和場景漫游四個模塊。通過這四個功能模塊的設(shè)計,提高可視化系統(tǒng)的交互化控制和展示效果。
(5)界面層。界面層是虛擬車間三維監(jiān)控系統(tǒng)的最終展示層,將生產(chǎn)現(xiàn)場的所有信息進行完全虛擬化展示,實現(xiàn)虛擬監(jiān)控系統(tǒng)與生產(chǎn)現(xiàn)場實時同步。
結(jié)合系統(tǒng)展示的內(nèi)容和方式,虛擬車間三維監(jiān)控系統(tǒng)要實現(xiàn)生產(chǎn)車間的多視角切換、設(shè)備詳細信息查看、生產(chǎn)現(xiàn)場多視圖展示和場景漫游四個功能模塊。
(1)生產(chǎn)車間的多視角切換。
虛擬車間三維監(jiān)控系統(tǒng)要實現(xiàn)生產(chǎn)車間的多視角切換功能。因為生產(chǎn)現(xiàn)場物理空間較大、生產(chǎn)設(shè)備多、加工流程多等因素,從一個固定角度很難觀察整個生產(chǎn)過程,為保證系統(tǒng)展示的全面性、完整性和效果最佳化,系統(tǒng)需實現(xiàn)從多視角觀察整個虛擬車間的生產(chǎn)情況。這些視角包括系統(tǒng)的多個全景視角和關(guān)鍵工位、關(guān)鍵設(shè)備的局部視角,工作人員通過點擊視角切換按鈕實現(xiàn)監(jiān)控系統(tǒng)的視角轉(zhuǎn)換,從多方向、多角度觀察與生產(chǎn)現(xiàn)場同步的虛擬車間三維監(jiān)控系統(tǒng),達到了展示效果的最佳化。
(2)設(shè)備詳細信息查看。
虛擬車間三維監(jiān)控系統(tǒng)運行時,虛擬場景中的設(shè)備會與生產(chǎn)現(xiàn)場的加工設(shè)備同步運動,主要展示的是加工過程的運動信息,而設(shè)備的詳細加工參數(shù)信息不會直接在監(jiān)控系統(tǒng)界面上展示出來。系統(tǒng)需實現(xiàn)當(dāng)用戶用鼠標(biāo)點擊虛擬場景中的任意一臺設(shè)備時,彈出對話框詳細顯示此臺設(shè)備的運行數(shù)據(jù)、基礎(chǔ)數(shù)據(jù)等信息。
圖3 虛擬車間三維監(jiān)控系統(tǒng)架構(gòu)
(3)生產(chǎn)現(xiàn)場多視圖展示。
生產(chǎn)現(xiàn)場多視圖展示是指三維監(jiān)控系統(tǒng)界面會同時顯示多個視圖界面。生產(chǎn)過程中生產(chǎn)關(guān)鍵信息較多,一個視角很難同時展示多個重要的實時信息,故本系統(tǒng)需實現(xiàn)同時顯示多個視圖的界面,達到多視圖、多信息同時展示的最佳效果。
(4)場景漫游。
視角展示和設(shè)備信息展示都是以固定的視角對虛擬場景進行展示,場景漫游可實現(xiàn)動態(tài)、多視角、移動地展示虛擬場景的實時運行信息。本系統(tǒng)需實現(xiàn)的場景漫游包括按指定路線進行漫游和人工操作進行漫游兩種方式。通過場景漫游可深入虛擬車間三維監(jiān)控系統(tǒng)的內(nèi)部進行展示,與人員進入車間現(xiàn)場進行觀察的效果相似,提高了展示的真實性、形象性和交互性。
本文對虛擬車間三維監(jiān)控系統(tǒng)的實現(xiàn)流程進行了詳細的分析和研究,實現(xiàn)了系統(tǒng)的場景搭建、運動控制、人機交互以及虛擬監(jiān)控系統(tǒng)與現(xiàn)場生產(chǎn)數(shù)據(jù)的交互,但當(dāng)數(shù)據(jù)進入虛擬系統(tǒng)后,怎樣對龐大、復(fù)雜、冗余的數(shù)據(jù)進行解析、傳輸并驅(qū)動虛擬場景中對應(yīng)模型的運動仍是虛擬監(jiān)控系統(tǒng)實現(xiàn)的難點。此處將從系統(tǒng)開發(fā)的角度以數(shù)據(jù)流向為導(dǎo)引,詳細講解虛擬車間三維監(jiān)控系統(tǒng)內(nèi)部數(shù)據(jù)解析、傳輸與模型驅(qū)動的實現(xiàn)方法。
虛擬車間三維監(jiān)控系統(tǒng)數(shù)據(jù)獲取采用按一定頻率主動讀取的方式,通過Unity3D提供的UnityWebRequest()接口采集系統(tǒng)外部JSON格式生產(chǎn)數(shù)據(jù),系統(tǒng)將數(shù)據(jù)轉(zhuǎn)換成JsonData格式,然后對數(shù)據(jù)進行解析處理,將數(shù)據(jù)根據(jù)工位進行分解、提取并在提取的數(shù)據(jù)前端添加對應(yīng)工位的工位名。系統(tǒng)根據(jù)工位名和相應(yīng)請求構(gòu)成的字符串字典將相應(yīng)的數(shù)據(jù)傳輸給對應(yīng)工位的控制類,控制類將數(shù)據(jù)重新轉(zhuǎn)換成JSON格式,給工位的各個變量進行賦值,通過數(shù)據(jù)驅(qū)動模型運動,系統(tǒng)內(nèi)部的數(shù)據(jù)流邏輯如圖4所示。
虛擬車間三維監(jiān)控系統(tǒng)以工位為單位,每個工位模型都有對應(yīng)的數(shù)據(jù)類和運動驅(qū)動類,數(shù)據(jù)類以一定的頻率發(fā)出數(shù)據(jù)請求指令,最后將獲取的數(shù)據(jù)傳輸?shù)竭\動驅(qū)動類,運動驅(qū)動類通過數(shù)據(jù)類發(fā)來的實時數(shù)據(jù),驅(qū)動虛擬模型的運動。
圖4 虛擬車間三維監(jiān)控系統(tǒng)數(shù)據(jù)流邏輯圖
外部數(shù)據(jù)接口類中外部數(shù)據(jù)獲取函數(shù)的實現(xiàn)代碼如下:
數(shù)據(jù)分發(fā)類中的數(shù)據(jù)分發(fā)函數(shù)實現(xiàn)代碼如下:
以上對系統(tǒng)內(nèi)部數(shù)據(jù)流轉(zhuǎn)關(guān)鍵節(jié)點的實現(xiàn)過程進行了詳細闡述,加之其他輔助函數(shù)實現(xiàn)虛擬車間三維監(jiān)控系統(tǒng)內(nèi)部數(shù)據(jù)流的暢通,保證了系統(tǒng)的順利實現(xiàn)。
圖5 車載雷達電子裝配線虛擬車間三維監(jiān)控系統(tǒng)
以車載雷達電子裝配線為對象,驗證本文提出的虛擬車間三維監(jiān)控系統(tǒng)實現(xiàn)流程的合理性、可行性和實用性。通過三維建模、模型處理、三維場景構(gòu)建、運動控制、人機交互、三維場景與生產(chǎn)數(shù)據(jù)交互、數(shù)據(jù)解析與傳輸?shù)燃夹g(shù)開發(fā)了車載雷達電子裝配線虛擬車間三維監(jiān)控系統(tǒng)。系統(tǒng)實現(xiàn)了生產(chǎn)車間的多視角切換、設(shè)備詳細信息查看、生產(chǎn)現(xiàn)場多視圖展示和場景漫游功能。車載雷達電子裝配線虛擬車間三維監(jiān)控系統(tǒng)如圖5所示。