程旭
中國教學儀器設備總公司科學儀器部 北京 100032
教育機器人作為培養(yǎng)與提升學生綜合能力的試驗平臺,得到學校和社會的廣泛關注。基于虛擬現(xiàn)實技術設計開發(fā)的集成虛擬裝配與運動仿真的教育機器人平臺,可以克服價格高、維修難以及不能重復利用等缺點,促進機器人教育的普及。圖形與參數(shù)相結合的表達方法,可以很好地解決數(shù)據(jù)量與模型三維特征精確性、逼真性的矛盾,為教育機器人系統(tǒng)提供豐富的零件庫。另外,XML語言表示機器人模型文件相關特征,可以使每個零件本身具有很多的固有屬性。
圖1 5孔桿件的結構圖
XML是互聯(lián)網(wǎng)聯(lián)合組織(World Wide Web Consortium,W3C)創(chuàng)建的一組規(guī)范,其目的在于滿足不斷增長的網(wǎng)絡應用需求,同時確保通過網(wǎng)絡進行的交互合作具有良好的可靠性與互操作性。XML為基于網(wǎng)絡的數(shù)據(jù)表示和數(shù)據(jù)交換提供了有效途徑,其最突出的功能是數(shù)據(jù)表示和數(shù)據(jù)交換。XML在數(shù)據(jù)交換、Web的數(shù)據(jù)挖掘、智能交通系統(tǒng)、電子商務、通信技術和虛擬現(xiàn)實等許多領域都有應用,但是采用XML技術來表示教育機器人模型三維特征的研究在國內(nèi)外還比較少見。本文將結合XML技術,提出一種模型三維特征的表達方法。
圖形與參數(shù)相結合的表達方法,指模型的一部分三維特征采用圖形來表達,另一部分采用參數(shù)來表達。該方法既可以表現(xiàn)模型的逼真性,又可以盡量減少存儲的數(shù)據(jù)量,為教育機器人虛擬平臺提供合適的零件模型,是三維設計器模型三維特征表達的最佳方式。
首先以一個5孔桿件為例,介紹簡單模型的圖形和參數(shù)相結合的表達。由于模型的部分三維特征可以采用圖形來代替,所以在建立基本特征時可以采用較低的參數(shù)。如圖1所示,分析5孔桿件的結構,基本模型由矩形和半圓組成的外圍輪廓線擠壓(Extrude)生成,基本模型再與5孔桿件俯視圖片(平面貼圖)結合,構成5孔桿件的三維實體模型。
在參數(shù)表達方面,第一步,采用樣條曲線(Spline)繪制模型俯視外圍輪廓線,其總長為40 mm,寬度為8 mm;第二步,添加擠壓(Extrude)修改器,在垂直該平面方向擠壓8 mm,這樣就建立了圖1中的三維模型A。在不影響模型三維特征的前提下,需盡可能地減少模型數(shù)據(jù)量。因此,在擠壓過程中,擠壓方向的段參數(shù)(Segments)設置為最小1,這樣就用最小的數(shù)據(jù)量表示了能夠被教育機器人虛擬平臺所使用的三維模型。但是該模型只有實際5孔模型的基本結構,并沒有5個通孔和其他的表面凹痕,在模型細節(jié)和視覺效果方面遠遠不能達到虛擬現(xiàn)實的效果。所以,這些沒有被參數(shù)所表達的特征就需要用另一種方法來補充,這樣才能實現(xiàn)一個完整的三維模型。
根據(jù)上述描述,5孔桿件的模型三維特征還缺乏5個通孔、表面凹痕、顏色和光澤等信息。針對這一問題,本文采用圖形的方法來補充這些特征信息。在圖1中三維模型A的基礎上為其添加材質(zhì),即把圖1中的5孔桿件的俯視貼圖B賦予模型A。由于5孔桿件在通孔方向的上下表面是對稱的,減少了圖形參數(shù)表達的復雜性。在圖形參數(shù)賦予模型后,為了調(diào)整通孔的位置、模型細節(jié)和視覺效果,必須為此模型添加UVW Mapping修改器。此修改器一方面確定平面圖形的貼圖方向,另一方面精確調(diào)整模型細節(jié)。此修改器的貼圖方式有平面、圓柱、球狀、包裹和立方體等方式。根據(jù)5孔桿件的特點,選用平面方式,即通孔方向上下表面為特征表現(xiàn)方向,側(cè)面則為次要方向。先確定貼圖方向,再修改貼圖長度為40 mm,寬度為8 mm,就可以完整地表現(xiàn)參數(shù)所未能表示的某些特征。
表1列舉了5孔桿件分別用高模參數(shù)表示方法和圖形與參數(shù)相結合的表達方法表示時的各項數(shù)據(jù)。
由表1可見,高精確性和逼真度的模型并不是只有高參數(shù)表示法一種方法能表達,采用圖形與參數(shù)相結合的方法較高模參數(shù)表示方法有更多的優(yōu)點和實用性。圖形與參數(shù)相結合的表達方法,為教育機器人虛擬平臺的模型表達提供了一種合適的途徑,用較少的數(shù)據(jù)量表達模型的完整信息,為該平臺的運行提供了最基本的保障。
表1 高模參數(shù)表示法和圖形與參數(shù)相結合的表達方法對比圖
采用圖形與參數(shù)相結合的方法不僅可以幾乎完美地表達簡單模型,對于復雜模型也同樣適用,限于篇幅,不再贅述。
雖然模型信息看似表達完整了,但是圖形所表示的孔畢竟不是真正意義上的通孔,只能是一個通孔位置的占位符。針對這個問題,下面將討論如何使用基于XML的三維模型特征表示方法解決上述問題。
XML主要包含3個要素:文檔類型定義(Document Type Definition,DTD)或者模式定義(Schema)、可擴展樣式語言(eXtensible Stylesheet Language,XSL)和可擴展鏈接語言(eXtensible Link Language,XLL)。Schema規(guī)定了XML文件的邏輯結構,定義了XML文件中的元素、元素的屬性以及元素和元素的屬性之間的關系;XSL是用于規(guī)定XML文檔樣式的語言;XLL將進一步擴展目前Web上已有的簡單鏈接。
基于教育機器人模型信息的表達要求,為了保證模型數(shù)據(jù)和裝配的精確性,本文利用XML Schema的強大描述功能,選擇XML Schema來規(guī)范教育機器人虛擬平臺中模型的信息表達,設計出如圖2所示單個模型的XML Schema,稱為RobotPart XML Schema。
如圖2所示,在RobotPart XML Schema中定義了Joints(關節(jié)類型元素)、ElecPort(電子端口元素)和RobotPart自身的一些基本元素,如mesh(模型所需的網(wǎng)格模型信息)、rb(模型的剛體屬性信息)、type(模型所屬類型)和axisscale(軸向縮放)等。其中,Joints元素是最關鍵的屬性,用于記錄零件模型關節(jié)類型、裝配面、裝配孔的信息以及聲明等;ElecPort元素定義了電子端口的數(shù)據(jù)結構,包括類型和取值范圍。RobotPart XML文檔以RobotPart元素為根元素,主要包括以上子元素,其全部內(nèi)容在RobotPart XML Schema中進行詳細的定義(框1)。
圖2 單個模型的XML Schema
框1 RobotPart元素的定義
圖3 Joints元素的模式結構
如圖3所示,詳細定義了Joints元素的模式結構。Joints元素作為RobotPart XML Schema中最關鍵的元素,詳細記錄了單個零件模型的以下重要信息:1)Plane,裝配面的數(shù)目、類型和位置信息;2)Joint,每個裝配面上裝配孔的數(shù)目和位置信息。
零件模型是以裝配面為基本信息單元來組織的。零件模型的不同裝配面有不同的裝配類型,裝配類型的不同導致裝配孔的信息內(nèi)容也有所不同。豐富的裝配模式為機器人的搭建提供了多種方法,有利于搭建的多樣性和靈活性。
Joints元素的詳細定義見框2。
從上述XML代碼可以看出,Joints元素包含Plane(裝配面)這個重要的子元素,同時自身還有一個type屬性。Plane元素可以有一個,也可以有多個。Plane元素自身同樣有一個Type屬性,可以指定裝配面是固定方式還是鉸鏈方式。distance元素和normal元素用于確定該裝配面的位置和方向。Joint元素可以有一個,也可以有多個,它代表了該裝配面上的裝配孔的數(shù)目和詳細位置,是裝配成功的關鍵。
框2 Joints元素的詳細定義
以上述簡單模型的定義作為基礎,復雜模型的定義也有規(guī)律可循。復雜模型相比簡單模型,只是空間結構增多了,只要將空間結構按一定規(guī)律分解成簡單模型,即能完成其定義。第一步,分解成多個簡單模型;第二步,分別完成各個簡單模型的定義;第三步,將這些定義組合在一起,還原成復雜模型。
組合模型,顧名思義,是由多個單獨的零件模型組合而成的,可以作為一個整體模型被教育機器人虛擬平臺直接使用的模型。例如,接觸傳感器由傳感器外殼和接觸開關組合而成,控制盒則有主板盒和電路接口組合而成。為了清晰有條理地表示組合模型,設計出如圖4所示組合模型的XML Schema。
框3 CompoundPart元素定義
組合模型由一個或者多個CompoundPart元素組成,主要包括位置、方向、零件模型和裝配關節(jié)類型等詳細屬性。CompoundPart元素定義見框3。
組合模型可以由一個或者多個PartGroupInfo元素組成,最終分解到PartGroup下的RobotPart元素。而RobotPart元素表示的就是單個模型的信息。
以5孔桿件為例,首先分析此零件模型,具有上下兩個裝配面,每個裝配面各有5個獨立的裝配孔。根據(jù)RobotPart XML Schema的定義,可以為此零件模型編寫框4中的代碼。
在此段代碼中,指定了5孔桿件的網(wǎng)格模型文件為coupler5_8mm.mesh,即圖中5孔桿件CSG圖所建立的模型,剛體屬性文件為coupler5_8mm.rb,模型類型是mech,屬于機械類。Joints元素屬于Plane類型,其裝配面有2個,類型都是HINGE(鉸鏈方式),每個裝配面上都有5個獨立的裝配孔,共10個。
圖4 組合模型的XML Schema
框4
對于Plane元素的自身屬性distance(距離)屬性和normal(法向)屬性的意義和確定,在圖4中可以清楚地看出來。圖5中5孔桿件模型的位置中心位于自身的幾何中心,屏幕上紅、綠、藍三色表示的坐標軸分別代表normal(法向)屬性的x、y、z三軸。由此可以看出,模型的裝配面在y向,并且不在位置中心,分別與位置中心相距半個模型高度?!?distance value="0.04"/>”表示裝配面距離位置中心4 mm,“
確定了裝配面之后,接下來就可以確定該裝配面上的裝配孔了。如圖6所示,屏幕上亮黃色的面為被激活的裝配面,是模型的上表面;5個圓柱體為裝配軸,分別表示該裝配面上的5個獨立的裝配孔的位置信息和裝配信息。
圖5 5孔桿件模型
圖6 裝配面、裝配軸被激活的5孔桿件模型
裝配孔的位置是靠Joint元素來描述的,其只有一個position(位置)屬性,描述裝配孔的三維空間位置。代碼如下:
描述了圖6中最中間那個裝配孔的信息,是位置中心y正方向上相距4 mm的位置。圖中紅色裝配軸(鼠標停留處)表示它代表的裝配孔處于被選中狀態(tài),而該裝配孔的位置信息由如下代碼描述:
其表示與最中間那個裝配孔位于同一平面上且在x軸正方向相距8 mm的位置處的裝配孔(右數(shù)第二個位置)。其他裝配孔位置信息定義與此相類似,同一平面內(nèi)的y方向數(shù)值不變,只和x和z方向有關系。
定義完一個裝配面上的裝配孔信息之后,其他裝配面上的信息定義完全類似。對于n孔桿件,m×n孔板件這類簡單零件模型,具備兩個相對稱的裝配面,其裝配面信息除了法向不同,其他均相同。兩個裝配面上的裝配孔也是相對應的,只是在y軸向數(shù)值相反。此類零件模型裝配面類型只有HINGE(鉸鏈方式)一種,因此具有很高的對稱度和規(guī)則性,是最簡單的一種。
本文介紹了圖形與參數(shù)相結合的模型三維特征表達方法,闡述了該方法的原理。圖形與參數(shù)相結合的模型三維特征表達方法解決了模型數(shù)據(jù)量與三維特征精確性、逼真性之間的矛盾,提出了基于XML的模型裝配信息表達,補充了三維模型的裝配信息。
[1]Golovinsky A, Yim M, Ying Zhang, Eldershaw C, Duff D. PolyBot and PolyKineticTM System: a modular robotic platform for education[A]//IEEE International Conference on Robotics and Automation,2004:1381-1386
[2]陳俊杰.ZHR組合機器人三維仿真及其控制系統(tǒng)的研究[D].浙江大學機械學院,2000
[3]Andreoli R, De Chiara R, Erra U, Scarano V. Interactive 3D Environments by using videogame engines[C]//Proceedings of the Ninth International Conference on Information Visualisation,2005
[4]DeKnudt B, Desmet S, Van Eychen L. Coding of Dynamic Texture for Mapping on 3-D Scenes[J].IEEE Transactions on Circuits and Systems for Video Technology,1999,9(2):210-217
[5]Cheah T C S, Ng K-W. A Practical Implementation of a 3-D Game Engine[C]//Proceedings of the Computer Graphics, Imaging and Vision: New Trends,2005
[6]洪著財,史金飛,張志勝.動態(tài)質(zhì)量信息的XML體系建模研究[J].中國機械工程,2004,14(7):613-615
[7]張志勝.基于XML的動態(tài)質(zhì)量信息系統(tǒng)關鍵技術研究[D].東南大學機械工程學院,2004