遠(yuǎn)程測(cè)量系統(tǒng)中三坐標(biāo)測(cè)量機(jī)的仿真操作實(shí)現(xiàn)
來(lái)源:測(cè)量知識(shí)網(wǎng)站http://yilianyishu.cn
1.引言
互連網(wǎng)的出現(xiàn),打破了信息傳遞在時(shí)間和空間距離上的限制,使操作者有可能在任何時(shí)間、任何地點(diǎn)對(duì)任何設(shè)備進(jìn)行操作,為真正的遠(yuǎn)程控制和操作提供了技術(shù)平臺(tái)。隨著互聯(lián)網(wǎng)的飛速發(fā)展,基于互聯(lián)網(wǎng)的遠(yuǎn)程操作系統(tǒng)正成為一個(gè)重要的前沿課題,在國(guó)內(nèi)外引起了廣泛的重視。
各類(lèi)基于互聯(lián)網(wǎng)的遠(yuǎn)程操作系統(tǒng)具有一些共同的特點(diǎn):整個(gè)系統(tǒng)由本地端、遠(yuǎn)程端和互聯(lián)網(wǎng)三部分組成。操作者在本地端通過(guò)本地端計(jì)算機(jī)發(fā)出操作指令,指令經(jīng)過(guò)互聯(lián)網(wǎng)傳送到遠(yuǎn)程端服務(wù)器,由遠(yuǎn)程端服務(wù)器控制被操作對(duì)象完成操作者指定的任務(wù),最后,遠(yuǎn)程端服務(wù)器將指令的執(zhí)行結(jié)果以一定形式傳送到本地端,使操作者能掌握指令的執(zhí)行情況和作業(yè)現(xiàn)場(chǎng)的環(huán)境,從而能夠作出進(jìn)一步的操作指令。這樣,就實(shí)現(xiàn)了操作者對(duì)被操作對(duì)象的遠(yuǎn)程操作。被操作對(duì)象所攜帶的傳感器以及部署在被操作對(duì)象周?chē)膫鞲衅鲗?duì)環(huán)境的感知信息構(gòu)建成作業(yè)現(xiàn)場(chǎng)的反饋信息,操作者在反饋信息的輔助下,具有了一定程度的臨場(chǎng)感,從而可以異地操縱在作業(yè)環(huán)境中的被操作對(duì)象完成作業(yè)任務(wù)。
2.系統(tǒng)結(jié)構(gòu)
北京理工大學(xué)機(jī)電一體化中心研究課題----基于互聯(lián)網(wǎng)的遠(yuǎn)程測(cè)量和操作的基礎(chǔ)研究,以三坐標(biāo)測(cè)量機(jī)為操作對(duì)象對(duì)基于互連網(wǎng)的遠(yuǎn)程操作進(jìn)行研究,以期構(gòu)建一個(gè)高效的遠(yuǎn)程測(cè)量系統(tǒng)并得到一些適用于遠(yuǎn)程測(cè)量和操作的結(jié)論或方法。
該系統(tǒng)的基本結(jié)構(gòu)如圖1所示,是一個(gè)采用預(yù)測(cè)/預(yù)演和局部自主控制相結(jié)合的控制策略的遠(yuǎn)程測(cè)量系統(tǒng)。系統(tǒng)啟動(dòng)時(shí)會(huì)在本地機(jī)上生成仿真三坐標(biāo)測(cè)量機(jī),仿真三坐標(biāo)測(cè)量機(jī)是以三坐標(biāo)測(cè)量機(jī)為原型建立起來(lái)的三維立體模型,其作用是:在本地機(jī)給真實(shí)三坐標(biāo)測(cè)量機(jī)發(fā)送操作指令前,預(yù)演操作者發(fā)出的指令,預(yù)測(cè)并動(dòng)畫(huà)顯示真實(shí)測(cè)量機(jī)在指令的執(zhí)行過(guò)程中和執(zhí)行完畢后各部件的位置或姿態(tài),給操作者提供指令執(zhí)行情況的視覺(jué)參考,確保操作指令的正確性和有效性。操作者可以在本地機(jī)操作界面連續(xù)地發(fā)出指令,經(jīng)仿真三坐標(biāo)測(cè)量機(jī)預(yù)演并確認(rèn)無(wú)誤的指令被發(fā)送到遠(yuǎn)程端的真實(shí)設(shè)備。實(shí)際上就是讓三坐標(biāo)測(cè)量機(jī)在一定的時(shí)延后重復(fù)仿真三坐標(biāo)測(cè)量機(jī)的動(dòng)作。
在系統(tǒng)啟動(dòng)后的初始化過(guò)程中,真實(shí)三坐標(biāo)測(cè)量機(jī)和仿真測(cè)量機(jī)分別處于各自的初始位置;仿真工件也會(huì)在這個(gè)過(guò)程中生成,它在仿真環(huán)境中位置與真實(shí)工件在作業(yè)環(huán)境的位置相對(duì)應(yīng)。在測(cè)量開(kāi)始前,測(cè)量機(jī)的測(cè)頭根據(jù)本地端傳來(lái)的指令作大范圍的調(diào)整,選擇合適的測(cè)量方位。一旦定位完成,控制器從操作者發(fā)來(lái)的測(cè)量指令中提取測(cè)頭運(yùn)動(dòng)的方向信息,由測(cè)量機(jī)根據(jù)該方向信息自主地進(jìn)行測(cè)量,從而最終實(shí)現(xiàn)了操作者對(duì)三坐標(biāo)測(cè)量機(jī)的操作。
3.仿真環(huán)境生成
預(yù)測(cè)/預(yù)演仿真環(huán)境是在VC++6.0的環(huán)境調(diào)用OpenGL函數(shù)庫(kù)編制而成的。仿真環(huán)境的建立主要包括:仿真三坐標(biāo)測(cè)量機(jī)的幾何建模、運(yùn)動(dòng)學(xué)建模和仿真工件的生成。
3.1幾何建模
幾何建模的過(guò)程就是用一些基本的幾何體構(gòu)建復(fù)雜的仿真三坐標(biāo)測(cè)量機(jī)的過(guò)程,使得仿真三坐標(biāo)測(cè)量機(jī)跟真實(shí)的三坐標(biāo)盡量一致,這樣才能實(shí)現(xiàn)仿真的目的。
OpenGL函數(shù)庫(kù)提供了很強(qiáng)的圖形功能,包括一些三維實(shí)體的繪制函數(shù),如球、多面體等實(shí)體的繪制函數(shù)。在構(gòu)建復(fù)雜模型時(shí),可以使用OpenGL提供的比較簡(jiǎn)單的形體直接構(gòu)建;也可以用圖形建模軟件先構(gòu)造一些稍復(fù)雜的形體,然后再用這些形體去構(gòu)建模型。第一種方法由于可用的基本形體過(guò)于簡(jiǎn)單并且受所提供種類(lèi)的限制,在完成比較復(fù)雜的建模工作時(shí),工作量比較大,而且搭建的模型有時(shí)會(huì)顯得粗糙,與真實(shí)物體相差較大,該方法適合于構(gòu)建部件形體比較簡(jiǎn)單的仿真模型。第二種方法利用了現(xiàn)有的一些建模軟件(如AutoCAD、3dMAX等)強(qiáng)大的三維繪圖能力,能完成對(duì)較復(fù)雜的部件的建模,并保存為一定格式的文件(如DXF、3ds格式)。然后從圖形文件中提取幾何形體的數(shù)據(jù),用OpenGL函數(shù)進(jìn)行繪制,即可在仿真環(huán)境中得到較復(fù)雜的部件模型,再用這些部件構(gòu)建仿真模型。采用這種方法,可以得到與實(shí)際形體更為接近的仿真模型,但是由于要從CAD文件中提取幾何參數(shù),需要編制專(zhuān)門(mén)的CAD文件語(yǔ)法分析程序,工作量很大。適用于部件形體復(fù)雜,用簡(jiǎn)單幾何形體無(wú)法構(gòu)建的模型。由于三坐標(biāo)測(cè)量機(jī)各部件的形狀都比較規(guī)則,接近于簡(jiǎn)單的形體,所以我們?cè)跇?gòu)建仿真模型時(shí)采用了第一種方法,整個(gè)仿真模型由長(zhǎng)方體、圓柱體和球三種簡(jiǎn)單形體構(gòu)建而成。為了保證模型的準(zhǔn)確性,模型的各部件尺寸與真實(shí)測(cè)量機(jī)相應(yīng)部件的尺寸遵照嚴(yán)格的比例,以使仿真測(cè)量機(jī)的工作空間與真實(shí)測(cè)量機(jī)的工作空間嚴(yán)格對(duì)應(yīng)起來(lái)。
3.2運(yùn)動(dòng)學(xué)建模
仿真三坐標(biāo)測(cè)量機(jī)的一些部件能夠進(jìn)行空間運(yùn)動(dòng),以調(diào)整探針至合適的測(cè)量位置并完成測(cè)量任務(wù)。做三坐標(biāo)測(cè)量機(jī)的運(yùn)動(dòng)學(xué)分析,就是要在三坐標(biāo)測(cè)量機(jī)的各部件建立坐標(biāo)系并分析這些坐標(biāo)系之間的位置或姿態(tài)關(guān)系。從三坐標(biāo)測(cè)量機(jī)的工作臺(tái)到探針之間共有5個(gè)移動(dòng)或轉(zhuǎn)動(dòng)關(guān)節(jié),依次分別是:Y、X、Z方向的移動(dòng)Ty、Tx、Tz和測(cè)頭繞Z軸的轉(zhuǎn)動(dòng)Rz以及探針在豎直平面內(nèi)轉(zhuǎn)動(dòng)Rh,整體上可以看作是一個(gè)關(guān)節(jié)鏈。在分析關(guān)節(jié)鏈中部件之間的運(yùn)動(dòng)關(guān)系時(shí),常用的方法是Denavit和Hartenberg提出的為每一部件建立附體坐標(biāo)系的矩陣方法(簡(jiǎn)稱(chēng)D-H法)。用D-H法對(duì)測(cè)量?jī)x進(jìn)行分析時(shí)先要對(duì)測(cè)量?jī)x的各部件進(jìn)行編號(hào)。將固定的工作臺(tái)定為0,然后從工作臺(tái)到探針依次遞增順序編號(hào);對(duì)各關(guān)節(jié)也依次作編號(hào),i=1,2,……,n(n為自由度數(shù)),每個(gè)關(guān)節(jié)只有一個(gè)自由度。接下來(lái)對(duì)每個(gè)部件在關(guān)節(jié)處建立正規(guī)的笛卡兒坐標(biāo)系。當(dāng)關(guān)節(jié)i運(yùn)動(dòng)時(shí),部件i將相對(duì)于部件i-1運(yùn)動(dòng)。若用Ti表示部件i到部件i-1的變換矩陣,用Ti0表示部件i坐標(biāo)系到部件0(工作臺(tái))坐標(biāo)系的變換矩陣,則有Ti0=T1T2……Ti,由此可以得到各部件相對(duì)于工作臺(tái)的變換矩陣。只要實(shí)時(shí)給出每個(gè)關(guān)節(jié)的參數(shù),就能實(shí)時(shí)計(jì)算出各部件的位置和探針的姿態(tài),從而能正確繪制各部件,完成對(duì)測(cè)量?jī)x的實(shí)時(shí)模擬。為此,我們專(zhuān)門(mén)設(shè)立了一些位置變量,用這些變量組成各關(guān)節(jié)的變換矩陣,只要改變位置變量的值,就能改變相應(yīng)關(guān)節(jié)的變換矩陣,實(shí)現(xiàn)仿真部件的正確運(yùn)動(dòng)。
3.3工件的生成
為了實(shí)現(xiàn)仿真三坐標(biāo)測(cè)量機(jī)的仿真測(cè)量功能,還必須在仿真環(huán)境中生成欲測(cè)量的工件模型。工件模型往往是在一些CAD系統(tǒng)中生成并被保存到一定格式的文件中的。Autodesk公司的CAD軟件AutoCAD在微機(jī)CAD市場(chǎng)已處于主導(dǎo)地位,由其制定的并推廣的DXF圖形數(shù)據(jù)交換文件格式已成為事實(shí)上的工業(yè)標(biāo)準(zhǔn)。DXF大多是ASCII碼文件,一般分為6個(gè)部分:
a) HEADER部分:包含了圖形的通用信息,諸如圖形所處的空間范圍、CAD版本號(hào)等,大部分信息對(duì)于非CAD應(yīng)用程序沒(méi)有什么價(jià)值,有時(shí)可將其忽略。
b) CLASSES部分:包含了應(yīng)用自定義類(lèi)的信息,這些類(lèi)將在BLOCK、ENTITIES和OBJECTS部分被引用。
c) TABLES部分:定義特定的通用常量,如繪圖“層”,觀(guān)察角度和距離,坐標(biāo)系以及尺寸風(fēng)格。
d) BLOCKS部分:按名字定義實(shí)體組,同時(shí)可以包含實(shí)體。
e) ENTITIES部分:通過(guò)使用點(diǎn)、線(xiàn)、圓、弧等定義實(shí)體,圖形的具體信息大部分都位于此部分。
f) OBJECTS部分:包括了圖中的非圖形對(duì)象。非實(shí)體、非符號(hào)表的所有對(duì)象都存儲(chǔ)在這部分。
在DXF文件中,每種信息都是通過(guò)組碼和緊隨其后的組值一起來(lái)表示的。組碼是一些具有特殊意義的數(shù)字,規(guī)定其后組值的類(lèi)型。組值可以是整數(shù)、浮點(diǎn)數(shù),也可以是字符串,表示某一信息的具體的值。
圖形的具體信息大部分都保存在文件的Entities部分,而該部分又是由一系列Entity(實(shí)體)的信息組成的,只要提取到所有Entity的信息,我們就得到了該圖形的所有的幾何信息。
為了從DXF文件中提取工件的幾何信息數(shù)據(jù),我們編寫(xiě)了DXF文件的語(yǔ)法分析器。首先我們定義Vertice類(lèi)用于存儲(chǔ)實(shí)體的單個(gè)頂點(diǎn)的坐標(biāo),定義FaceIndex類(lèi)用于保存每個(gè)面由哪幾個(gè)頂點(diǎn)組成的信息。在此基礎(chǔ)上我們又定義Entity類(lèi)用來(lái)存儲(chǔ)整個(gè)圖形中某一實(shí)體部分的信息,該類(lèi)包含了一個(gè)以Vertice為元素的動(dòng)態(tài)數(shù)組,并包含一個(gè)以FaceIndex為元素的動(dòng)態(tài)數(shù)組,因此,該類(lèi)包含了圖形中該實(shí)體部分的所有頂點(diǎn)的坐標(biāo)信息以及組成該實(shí)體部分的所有面的頂點(diǎn)的順序信息。在研究中,我們建立了一個(gè)以Entity類(lèi)為節(jié)點(diǎn)的鏈表,每完成一個(gè)實(shí)體部分幾何信息的提取后就把在信息提取過(guò)程中生成的該實(shí)體部分對(duì)應(yīng)的Entity類(lèi)的對(duì)象加入鏈表中,這樣,當(dāng)整個(gè)圖形的幾何信息提取完畢時(shí)所有的信息都已存入到了該鏈表中,我們只要遍歷鏈表并按其中的信息進(jìn)行繪制,就能在仿真環(huán)境中得到工件模型。
4.結(jié)論
本文介紹了基于預(yù)測(cè)/預(yù)演策略的遠(yuǎn)程測(cè)量系統(tǒng)中仿真三坐標(biāo)測(cè)量機(jī)幾何建模、運(yùn)動(dòng)學(xué)建模方法及其實(shí)現(xiàn)方法,還介紹了從DXF格式文件中讀取幾何信息在仿真環(huán)境中生成仿真工件的實(shí)現(xiàn)方法。在仿真環(huán)境下,操作者可以隨意調(diào)整觀(guān)察角度,在一定范圍內(nèi)調(diào)整觀(guān)察的距離。仿真三坐標(biāo)測(cè)量機(jī)可以實(shí)時(shí)接受并響應(yīng)操作者的指令,模仿真實(shí)的三坐標(biāo)測(cè)量機(jī)運(yùn)動(dòng),給操作者以視覺(jué)上的參考,并能輸出預(yù)演后的指令,達(dá)到了仿真的目的。