袁 婷,劉 晟,劉雅君
(西安理工大學,西安 710082)
采用HOOPS技術的虛擬測量機原型①
袁 婷,劉 晟,劉雅君
(西安理工大學,西安 710082)
后前計算機虛擬技術的應用成為各類技術專業(yè)領域的重要發(fā)展趨勢之一.本文從搭建虛擬測量機的技術實現(xiàn)出發(fā),分析了測量機虛擬技術的具體需求,分別對虛擬測量機實現(xiàn)涉及的三個關鍵技術,測量機的仿真、測量路徑規(guī)劃、虛擬測量數(shù)據(jù)處理進行了深入的論述,分析了各個技術的實現(xiàn)難點,給出了具體實現(xiàn)的思路和方法.最后按照功能需求劃分了虛擬測量機的模塊,并在HOOPS平臺下利用文中的技術實現(xiàn)思路和方法,搭建了虛擬測量機的原型,驗證了文中的思路和方法的可行性、有效性.
虛擬技術;測量機;仿真;路徑規(guī)劃;HOOPS
隨著計算機技術的發(fā)展,虛擬實現(xiàn)技術在各行各業(yè)得到了廣范應用.它是人們借助于計算機技術、傳感器技術、仿真技術等仿造和創(chuàng)造虛擬現(xiàn)實的人工媒體技術[1],從而使人們可以在計算機環(huán)境中虛擬真實的硬件環(huán)境,模擬現(xiàn)實工作場景,虛擬完成與現(xiàn)實操作一致的各種工作.因此,虛擬實現(xiàn)技術對科研、教學、生產(chǎn)具有十分重要的意義,是后前一個重要的研究領域.
后前虛擬現(xiàn)實系統(tǒng)有采用基于VRML-JAVA技術,但VRML語言功能較弱,必須利用其EAI接口與JAVAApple相連.另一種虛擬現(xiàn)實方法是基于JAVA3D技術,它綜合了VRML和JAVA等語言的優(yōu)點,是一種高層的基于圖形的應用程序接口.還有用Eonstudio一個基于Web3d技術,用來研發(fā)和制作交互式3D多媒體應用程序的全新可視化軟件工具,是一個完全基于GUI的設計工具[1].但對CAD性能要求較高的軟件,最直接和高效的方法是利用CAD平臺來搭建軟件的虛擬實現(xiàn)系統(tǒng).
測量機的虛擬實現(xiàn)是通過計算機CAD技術,模擬測量機結構搭建虛擬測量環(huán)境,模擬測量機運動,虛擬實現(xiàn)測量機的運動、探測功能.本文首先探討了搭建虛擬測量機涉及的主要內(nèi)容和技術實現(xiàn)思路,利用HOOPS技術實現(xiàn)虛擬測量機的原型系統(tǒng),驗證實現(xiàn)虛擬測量機的思路和方法.
虛擬測量機的實現(xiàn)主要包括測量機的仿真、運動模型的建立、虛擬測量數(shù)據(jù)的處理邏輯以及測量路徑的規(guī)劃.
測量機的仿真主要包括兩部分,一是根據(jù)真實測量機的結構和尺寸在CAD中搭建對應的部件模型,二是模擬真實測量機的運動實現(xiàn)運動仿真.
①根據(jù)真實測量機搭建虛擬測量機
測量機根據(jù)不同的機械結構以及可移動部件,可劃分為:固定工作臺懸臂式、移動橋式、龍門式、L型橋式、固定橋式、移動工作臺懸臂式等等諸多類型,它們不同的類型適應不同的環(huán)境,不同的機械結構有不同的運動模型,機器的大小、精度也各有不同.這里我們選取移動橋式測量機為例.
移動橋式測量機可根據(jù)是否運動,分為非運動部件和運動部件.非運動比較簡單,就是由工作臺部分組成;它的運動部件是由相互正交的三個運動部件組成.第一部分是裝有探測傳感器系統(tǒng)的部件組成,它裝載在第二部件之上,相對于第二部件作垂直方向運動,第一部分和第二部分由組成第二部分,它們相對第三部分作水平方向運動.第三部分是用兩個支柱支撐在機座之上,第一部分、第二部分、第三部分共同組成第三部分,它們相對于機座作水平方向移動.如圖1所示[2].
圖1 移動橋式測量機
在CAD軟件中按照部件尺寸畫部件模型,再根據(jù)部件的關系和運動部件關系把測量機部件模型裝配在一起.上述移動橋式測量機的裝配關系如圖2.
圖2 測量機部件組成關系
我們可按照測量機部件組成關系,在CAD視圖中搭建虛擬測量機.測量機的整體控制由“整體機器”進行、各個部件的控制分散到各個部件對應的塊中.因部件的關系包含在部件組成劃分中,運動控制、操作控制包含了這種關系,后續(xù)操作和運動控制功能不用考慮部件間的關系問題.
如在HOOPS平臺下,按照部件關系和運動關系,把部件的模型文件放置在對應的HOOPS段中,這樣虛擬測量機的控制操作和運動操作,只需操作對應的段即可.HOOP中段的實現(xiàn)邏輯代碼如下:
HC_Open_Segment_By_Key(m_lMachine);
//虛擬機整體控制
HC_Open_Segment_By_Key(m_lMachineY);
//運動部件Y向的控制
HC_Open_Segment_By_Key(m_lMachineX);
//運動部件X向的控制
HC_Open_Segment_By_Key(m_lMachineZ);
//運動部件Z向的控制探測部件的控制(運動部件AB)
HC_Close_Segment();
HC_Close_Segment();
HC_Close_Segment();
HC_Close_Segment();
② 虛擬測量機的運動仿真
參照現(xiàn)實測量機的運動方式和控制方式,虛擬測量機的運動仿真也從這兩個方面思路來實現(xiàn).
一是從虛擬測量機的運動方式來實現(xiàn)的.運動方式可分為兩類,一是平移運動,二是旋轉運動.平移運動是由測量機的三部分運動部件完成:裝有探測系統(tǒng)的第一部分實現(xiàn)Z向運動;第二部分實現(xiàn)X向運動,第一部分裝在第二部分之上;第三部分實現(xiàn)Y向運動,第二部分裝在第三部分之上.旋轉運動是模擬自動雙旋轉測頭,它是裝在第一部分的探測系統(tǒng),包括A向角度和B向角度的旋轉運動.
在虛擬測量機中平移運動和旋轉運動都是運動部件在CAD視圖中的空間位置變化實現(xiàn)的.平移運動是隨連續(xù)時間的連續(xù)空間位置變化,旋轉運動是隨連續(xù)時間的連續(xù)旋轉位置變化.
在HOOPS平臺下平移運動的控制邏輯和代碼實現(xiàn):
HBhvInterpolatorPosition *interPos=new HBhvInterpolatorPosition();
interPos →Append(new HKeyframeChannelLinear(-20,0,0));//運動位置
interPos →Append(new HKeyframeChannelLinear(0,-10,-10));
HBhvTimeline *timeline =new HBhvTimeline();
timeline→AddKeyframe(10);//時間間隔
timeline→AddKeyframe(20);//時間間隔
二是從虛擬測量機運動的控制方式來實現(xiàn).真實測量機的運動控制方式可以分為手動方式和自動方式.手動方式是指手操器控制機器進行運動的;自動方式是采用命令執(zhí)行方式,把運動命令下達到控制器中通過運動命令執(zhí)行控制機器運動的.虛擬測量機的手動方式可采用鍵盤或外設設備如游戲手柄,仿照手操器,發(fā)送運動控制指令,控制虛擬機器運動;自動方式可虛擬實現(xiàn)運動控制器的執(zhí)行邏輯,按照指令隊列控制虛擬機器運動.
測量機是通過各種類型傳感設備捕獲測量工件表面的數(shù)據(jù)信息進行工作的,在實際應用中,有利用相機/CCD技術實現(xiàn)的光學設備、有利用激光技術實現(xiàn)的激光設備、還有傳統(tǒng)的機械測頭,它們有不同的應用領域、精度和環(huán)境要求,但從是否接觸測量工件,可分為兩大類型,接觸式傳感設備和非接觸式傳感設備.
我們依據(jù)是否接觸測量工件,把測量數(shù)據(jù)的獲得分為兩種思路來實現(xiàn),一種是根據(jù)理論數(shù)據(jù)和虛擬測量環(huán)境計算數(shù)據(jù)得來;一種是利用CAD的碰撞檢測技術虛擬測量過程得來.
①根據(jù)理論數(shù)據(jù)和虛擬測量環(huán)境計算數(shù)據(jù)
這種方式是根據(jù)理論數(shù)據(jù)和相關測量參數(shù)計算得來,采用此種方式只進行數(shù)學計算,不受其它外界因素影響,因此所得測量數(shù)據(jù)與理論數(shù)據(jù)能保持一致性.但對于無法虛擬環(huán)境的測量功能,沒有理論數(shù)據(jù)的測量功能,手動運動方式踩點功能,此方法就無法使用.
圖3 計算數(shù)據(jù)
②利用碰撞檢測技術虛擬測量得來
碰撞檢測技術是虛擬測量機實現(xiàn)交互不可或缺的重要組成部分.具體實現(xiàn)的工作包括兩部分:檢測到有碰撞;計算出碰撞發(fā)生的位置[3].
碰撞檢測技術的實現(xiàn)方法很多,我們從檢測效率出發(fā)采用包圍盒計算法,它可以實現(xiàn)快速碰撞檢測功能.但因為包圍盒僅僅是對象邊界的一個簡單粗略的表示.因此,基于包圍盒的碰撞檢測是非常粗略而不精確的[4].為了在測量中得到精確的碰撞位置,在虛擬測量中將算法分成兩步來完成:第一步采用包圍盒方法確定要碰撞的元素;第二步把測頭的位置和測頭的運動方向確定射線,采用射線與碰撞元素相交的方法計算出精確的碰撞點的位置.
根據(jù)虛擬測量數(shù)據(jù)的兩種處理方式,可設計兩種數(shù)據(jù)處理流程,一種是根據(jù)理論數(shù)據(jù)和虛擬測量環(huán)境計算數(shù)據(jù),此種方式不用碰撞檢測技術,只用運動方式模擬運動指令和探測指令,探測指令執(zhí)行完成,根據(jù)指令產(chǎn)生測點;另一種是用碰撞檢測技術實現(xiàn),根據(jù)運動指令和探測指令進行運動,檢測是否碰撞,這里要區(qū)分運動指令執(zhí)行時發(fā)生碰撞,為異常碰撞,需要檢查程序指令,探測指令運動時發(fā)生碰撞,進入碰撞檢測計算流程,計算精確的碰撞點,把碰撞點作為測點.第一種方法執(zhí)行效率高,但只適于知道測量位置的執(zhí)行方式;第二種方法接近現(xiàn)實的操作邏輯,但因為需要監(jiān)測運動碰撞狀態(tài)和進行碰撞點計算,執(zhí)行效率較差.
搭建起虛擬測量機和實現(xiàn)了虛擬運動,但我們怎樣控制虛擬機實現(xiàn)測量功能呢?
測量機是通過幾何量測量實現(xiàn)工件測量的,測量的路徑和測量數(shù)據(jù)是依據(jù)測量元素的幾何信息和測量參數(shù)計算出要測量的理論點位,再計算測量點間的過渡路徑,最后增加幾何測量路徑間的避讓點,最終生成所測幾何的路徑信息和測量位置信息.
我們以圓柱為例,研究測量路徑規(guī)劃的具體實現(xiàn)思路.
圖4 拾取的圓柱信息
幾何參數(shù):坐標:顯示圓柱的頂面圓心坐標位置,以X、Y、Z表示.
直徑:顯示圓柱的頂面圓的直徑,以長度值Dia表示.
矢量:顯示圓柱軸向的矢量方向,以I、J、K表示.
主軸矢量:顯示圓柱頂面圓的主軸方向,用I1、J1、K1表示.
起始角度:顯示圓柱頂面圓起始測量點的角度位置.
終止角度:顯示圓柱頂面圓終止測量點的角度位置.
長度:顯示圓柱頂面到圓柱底面的距離.
測量參數(shù):層數(shù):在圓柱頂面到圓柱底面測點生成的位置,最少 2 層.
測點數(shù):生成測量點的個數(shù),每層最少 3 個,測點數(shù)最少6個.
內(nèi)外選項:確定測量點的探測方向.
其它測量參數(shù).
圖5 圓柱的參數(shù)
測量路徑可分為兩種類型來考慮,一是路徑點,主要考慮探測工件時的避讓問題;二是探測點,一般由探測前的路徑點、探測點、探測后的路徑點組成,它是實現(xiàn)工件的數(shù)據(jù)采集功能.
圓柱測量路徑規(guī)劃算法,以三層12個測量點、外圓柱為例.
①根據(jù)深度信息和測量層數(shù),把圓柱分為需要測量的截面圓,然后依據(jù)起始角和終止角、測點數(shù),在各個截面圓上計算出要測量的位置信息;
②按照每層均布探測點(4個)計算,探測點路徑為4×3個;
③考慮不同探測點間的避讓,需要在不同的探測點間增加路徑點;
④考慮不同元素間的避讓,需要在測量元素前和測量元素后增加路徑點.
圖6為根據(jù)上述思路實現(xiàn)的外圓柱測量路徑規(guī)劃.
圖6 圓柱的路徑規(guī)劃
虛擬測量是分析現(xiàn)實測量機運動控制功能,使用計算機虛擬技術搭建起來的虛擬測量機原型系統(tǒng),它是對測量機硬件系統(tǒng)、運動控制功能、測量數(shù)據(jù)處理功能的仿真.
根據(jù)虛擬測量機實現(xiàn)功能原型系統(tǒng),模塊功能處理流程如圖7所示.
圖7 模塊功能處理流程
模塊劃分及其功能說明:
①路徑規(guī)劃模塊,根據(jù)需要測量的幾何理論數(shù)據(jù)和測量參數(shù)計算測量路徑、測量探測位置,按照運動指令方式發(fā)送到運動控制模塊;
②運動控制模塊,根據(jù)接收到的運動指令,實現(xiàn)運動指令的執(zhí)行邏輯控制,指令執(zhí)行完成得到測量數(shù)據(jù),最后把測量數(shù)據(jù)傳送到數(shù)據(jù)處理模塊進行處理;
③機器模型模塊,搭建虛擬測量機環(huán)境、運動控制功能,根據(jù)運動指令執(zhí)行運動,提供運動控制狀態(tài)和產(chǎn)生測量數(shù)據(jù);
④數(shù)據(jù)處理模塊,就是對得到的測量數(shù)據(jù)進行處理,主要是根據(jù)測量數(shù)據(jù)計算幾何實測值.測量實測值是測量軟件后續(xù)工作的基礎,如幾何計算、誤差評定、CAD畫圖、報告輸出等等功能.
根據(jù)上述分析,虛擬測量機的核心部分是“運動控制”和“機器模型”組成的運動控制仿真部分,“路徑規(guī)劃”模塊是該系統(tǒng)輸入接口,“數(shù)據(jù)處理”模塊是該系統(tǒng)的輸出接口.按照此思路我們在HOOPS平臺下搭建了虛擬測量機原型(如圖8),并運用文中的技術思路實現(xiàn)了測量運動的仿真功能.如圖9所示.
圖8 搭建的虛擬測量機
圖9 測量元素的仿真過程
虛擬測量機是計算機虛擬技術在測量行業(yè)的應用研究.本文從虛擬測量機的實現(xiàn)技術思路出發(fā),分別探討了虛擬測量機的搭建、運動的仿真、虛擬數(shù)據(jù)處理的方法、測量路徑規(guī)劃功能的實現(xiàn)思路,最后按照模塊劃分了虛擬測量機的系統(tǒng)功能,并采用HOOPS技術實現(xiàn)了虛擬測量機的原型系統(tǒng),驗證了文中的思路和方法.
1 婁燕,羅烽,佘愛庸,等.采用 Eonstudio 技術建立虛擬三坐標測量機的研究.工程圖學學報,2011,32(1):76–82.
2 青島前哨朗普測量技術有限公司.PC-DMIS CAD++培訓與應用手冊.
3 王志強,洪嘉振,楊輝.碰撞檢測問題研究綜述.軟件學報,1999,10(5):545–551.
4 和莉,劉惠義.碰撞檢測技術在三維交互漫游系統(tǒng)中的應用.計算機技術與發(fā)展,2006,16(6):92–94.
5 劉得軍,王建林,艾清彗.虛擬環(huán)境下并聯(lián)坐標測量機幾何建模與運動仿真.計算機仿真,2003,20(9):77–148.
Implementation of Virtual Measuring Machine Prototype Based on the HOOPS Technology
YUAN Ting,LIU Sheng,LIU Ya-Jun
(Xi’an University of Technology,Xi’an 710082,China)
At present,the application of computer virtual technology has become one of the important trends in the field of technology.This paper analyzes the specific needs of virtual machine technology to discuss three key points—the simulation of measuring machine,measuring path and virtual measurement data from the construction of virtual machine technology,including difficulties.It provides the specific ideas and methods.Finally,according to the function division of the virtual measuring machine module,it builds a virtual measuring machine prototype,and verifies the feasibility,ideas and methods,which are effective and available on the HOOPS platform.
virtual technology;measuring machine;simulation;path planning;HOOPS
袁婷,劉晟,劉雅君.采用 HOOPS 技術的虛擬測量機原型.計算機系統(tǒng)應用,2017,26(9):259–263.http://www.c-s-a.org.cn/1003-3254/5998.html
2017-01-15;采用時間:2017-02-17