一、引言
在實(shí)際測(cè)量工作中,大型油罐、煙囪等罐狀體由于受到外界作用力的影響,在使用一定時(shí)間后需要對(duì)其形狀、容積等重新進(jìn)行測(cè)量以判斷是否發(fā)生變化,因此罐體檢測(cè)成為必不可少的工作。檢測(cè)掃描需要間隔一定高度掃描整個(gè)罐體,且要求測(cè)量精度高以及獲取整個(gè)罐體變形量的大小,采用人工作業(yè)則勞動(dòng)強(qiáng)度大且效率低,同時(shí)由于罐體不易于放置反射棱鏡,因此考慮采用無(wú)棱鏡測(cè)量機(jī)器人完成罐體的掃描檢測(cè)任務(wù)。
測(cè)量機(jī)器人是一種能代替人工進(jìn)行自動(dòng)搜索、跟蹤、識(shí)別和精確照準(zhǔn)目標(biāo)并獲取角度、距離、三維坐標(biāo)以及影像等信息的智能型電子全站儀。它是在全站儀基礎(chǔ)上集成步進(jìn)馬達(dá)、CCD影像傳感器構(gòu)成的視頻成像系統(tǒng),并配置智能化的控制及應(yīng)用軟件發(fā)展而成。其目標(biāo)自動(dòng)尋找、識(shí)別和精確照準(zhǔn)功能,可在短時(shí)間內(nèi)對(duì)多個(gè)目標(biāo)點(diǎn)進(jìn)行持續(xù)和重復(fù)觀測(cè),目前一些測(cè)量機(jī)器人不需要合作目標(biāo),即可根據(jù)物體的特征點(diǎn)、輪廓線(xiàn)和紋理,用影像處理的方法自動(dòng)識(shí)別、匹配和照準(zhǔn)目標(biāo),獲取目標(biāo)的三維坐標(biāo)及形狀,成為罐體掃描檢測(cè)的首選。
TM30是徠卡測(cè)量系統(tǒng)2009年推出的一款無(wú)棱鏡測(cè)量機(jī)器人,該儀器測(cè)量精度高、速度快,且為全自動(dòng)化設(shè)計(jì),能夠確保全天候無(wú)間斷的工作。徠卡TM30帶有精確的自動(dòng)照準(zhǔn)、快速可靠的智能自動(dòng)識(shí)別系統(tǒng),自動(dòng)目標(biāo)識(shí)別測(cè)程可達(dá)3000m且精度達(dá)到毫米級(jí),該技術(shù)能夠大大提高監(jiān)測(cè)半徑,降低設(shè)備及資金的投入。TM30的數(shù)字影像采集功能可以在測(cè)點(diǎn)時(shí)拍攝監(jiān)測(cè)點(diǎn)的影像信息并保存及傳輸,在遠(yuǎn)程控制的同時(shí)實(shí)時(shí)了解監(jiān)測(cè)區(qū)域的通視情況和潛在風(fēng)險(xiǎn)。該儀器使用的新一代PinPoint EDM測(cè)距技術(shù),能夠達(dá)到更高的測(cè)距精度,有棱鏡測(cè)距精度為±(0.6mm+1×10-6D) ,無(wú)棱鏡測(cè)距精度為±(2mm+2×10-6D),無(wú)棱鏡測(cè)程超過(guò)1000m。測(cè)角精度有±0.5"和±0.1"兩種選擇,能確保每次測(cè)量的高可靠性,同時(shí)能夠勝任最?lèi)毫拥墓ぷ鳝h(huán)境。TM30還提供機(jī)載程序,可以用GeoC++平臺(tái)編寫(xiě)專(zhuān)用程序,滿(mǎn)足用戶(hù)的實(shí)際需求,在罐狀體掃描檢測(cè)方面擁有極大優(yōu)勢(shì)和應(yīng)用前景。
二、軟件及編程框架
2.1 GeoC++開(kāi)發(fā)的特點(diǎn)及優(yōu)點(diǎn)
徠卡測(cè)量系統(tǒng)為T(mén)M30測(cè)量機(jī)器人提供了GeoC++的軟件開(kāi)發(fā)平臺(tái),該開(kāi)發(fā)工具采用面向?qū)ο蟮姆椒?,具有豐富的應(yīng)用函數(shù),功能強(qiáng)大。該開(kāi)發(fā)系統(tǒng)還提供了儀器模擬器,可通過(guò)軟件方法模擬儀器環(huán)境調(diào)試程序。
GeoC++編程框架如圖1所示,包含GPS和TPS兩種測(cè)量模式,且各自有支持自己的硬件及應(yīng)用程序,同時(shí)還包含通用的硬件和應(yīng)用程序。硬件庫(kù)分別為:GPS硬件、TPS硬件、通用硬件、數(shù)據(jù)庫(kù)、坐標(biāo)轉(zhuǎn)換、幾何圖形以及傳感器獲得的數(shù)據(jù)。
軟件庫(kù)如圖2所示,一般的,每一個(gè)機(jī)載應(yīng)用程序都包括以下四個(gè)類(lèi):
一個(gè)應(yīng)用程序類(lèi)(Application類(lèi)),該類(lèi)是從GUI::ApplicationC中繼承而來(lái);
一個(gè)或多個(gè)cotroller類(lèi),controller類(lèi)是屬于application類(lèi),該類(lèi)是從GUI::ControllerC中繼承而來(lái),controller類(lèi)用于產(chǎn)生和維護(hù)dialog類(lèi),例如打開(kāi)、關(guān)閉對(duì)話(huà)框或是單擊某個(gè)功能鍵;
一個(gè)或多個(gè)model類(lèi),model類(lèi)屬于application類(lèi)或是controller類(lèi)。model類(lèi)是從GUI::ModelC中繼承得到,一般的,model類(lèi)中包含有應(yīng)用程序所需的數(shù)據(jù);
一個(gè)或多個(gè)dialog類(lèi),dialog類(lèi)屬于controller類(lèi),且每個(gè)controller類(lèi)包含有至少一個(gè)dialog類(lèi),為了能夠在dialog類(lèi)更容易得獲得應(yīng)用程序的數(shù)據(jù),則需繼承GUI::ModelHandlerC基類(lèi)。
2.2 罐體掃描監(jiān)測(cè)主要功能模塊
罐體掃描即是對(duì)罐體變形進(jìn)行掃描測(cè)量,其主要功能模塊包括:掃描設(shè)置、基圓掃描以及罐體掃描,掃描界面如圖3所示。
圖3 罐體掃描選擇界面
2.2.1 掃描設(shè)置
掃描設(shè)置包括:基圓掃描設(shè)置(自動(dòng)或手動(dòng))、基圓掃描方式(部分掃描或全掃描)、掃描高度間距設(shè)置、掃描步進(jìn)(距離、角度、等分)、步進(jìn)輸入等;掃描設(shè)置界面如圖4所示?;鶊A掃描設(shè)置分為自動(dòng)掃描或手動(dòng)掃描,用戶(hù)可根據(jù)實(shí)際需要進(jìn)行選擇,若選擇自動(dòng)掃描則需要設(shè)置掃描方式——進(jìn)行部分掃描或是全掃描,部分掃描則是根據(jù)設(shè)定的起始點(diǎn)和終止點(diǎn)坐標(biāo)完成掃描,在設(shè)定基圓掃描信息之后,還需設(shè)置整個(gè)罐體掃描高度間距以及掃描的步進(jìn),高度間距即為按照設(shè)定的高度進(jìn)行橫向掃描罐體,掃描步進(jìn)可按照距離、角度或等分來(lái)進(jìn)行掃描,同時(shí)對(duì)于每種步進(jìn)方式設(shè)置步進(jìn)長(zhǎng)度輸入,至此掃描設(shè)置完成。
圖4 掃描設(shè)置界面
2.2.2 基圓掃描
基圓掃描包括:基圓確定和基圓掃描?;鶊A確定即為通過(guò)手動(dòng)掃描三個(gè)控制點(diǎn),初始確定罐體圓心及半徑,然后再根據(jù)基圓掃描設(shè)置自動(dòng)或手動(dòng)掃描基圓,并對(duì)掃描結(jié)果進(jìn)行數(shù)據(jù)擬合分析,基圓掃描界面如圖5所示。
圖5 基圓掃描界面
2.2.3 罐體掃描
罐體掃描即為根據(jù)掃描高度間距設(shè)置結(jié)果分別自動(dòng)掃描各個(gè)高度的罐體斷面以完成整個(gè)的罐體掃描,罐體掃描界面如圖6所示。
圖6 罐體掃描開(kāi)始界面
三、算法介紹及實(shí)例分析
3.1 平差原理
數(shù)據(jù)處理采用的是基于穩(wěn)健估計(jì)的直接最小二乘圓擬合算法,由于罐體橫截面一般為標(biāo)準(zhǔn)的圓面,因此用圓方程可表示為:
(1)
式中,為圓心坐標(biāo);R為圓的半徑。
對(duì)于測(cè)點(diǎn),其誤差方程為:
(2)
將(2)式進(jìn)行線(xiàn)性化后,并令
,則方程為:
(3)
解算過(guò)程中圓心坐標(biāo)及半徑的迭代初值可以取為三點(diǎn)確定的圓心坐標(biāo)及半徑。然而在實(shí)際測(cè)量過(guò)程中,由于粗差的存在使得擬合精度降低,甚至偏離擬合結(jié)果,因此需要權(quán)函數(shù)剔除粗差,權(quán)函數(shù)計(jì)算如下:
(4)
式中,,n為觀測(cè)個(gè)數(shù),t為必要觀測(cè)數(shù)。上述求解需迭代完成,其中第一次迭代時(shí)P取為單位陣,第2、3、4次迭代取,以后取,當(dāng)權(quán)值基本保持不變時(shí)迭代結(jié)束。
3.2 數(shù)據(jù)分析
利用基于TM30的GeoC++平臺(tái)開(kāi)發(fā)的罐體掃描檢測(cè)程序?qū)δ秤凸捱M(jìn)行掃描,該油罐高度為8m,半徑為6m,由8段組成,每一段的高度為1.5m,分別在每段的1/4、3/4高度處掃描橫截面,基圓采集數(shù)據(jù)如表1所示。
表1 基圓采集數(shù)據(jù)
根據(jù)基圓采集數(shù)據(jù)確定該罐體的圓心坐標(biāo)為:(12.8775,1.8391),半徑為5.9717m。利用基于穩(wěn)健估計(jì)的最小二乘圓擬合算法對(duì)某一段罐體采集數(shù)據(jù)進(jìn)行分析,得到擬合的精度為0.00279m,擬合偏差結(jié)果如示。
表2 罐體采集數(shù)據(jù)分析
基于穩(wěn)健估計(jì)的最小二乘圓擬合算法,能夠降低粗差對(duì)擬合結(jié)果的影響從而確保擬合的精度,因此在罐體掃描檢測(cè)軟件中使用該算法是準(zhǔn)確可靠的。
四、結(jié)束語(yǔ)
本文介紹了徠卡TM3 0 測(cè)量機(jī)器人的開(kāi)發(fā)平臺(tái)GeoC++以及在該平臺(tái)上開(kāi)發(fā)罐體掃描檢測(cè)應(yīng)用程序,同時(shí)對(duì)于開(kāi)發(fā)采用的算法——基于穩(wěn)健估計(jì)的最小二乘算法進(jìn)行了介紹,并將應(yīng)用于實(shí)際工程的計(jì)算精度進(jìn)行了說(shuō)明。本文所用儀器及方法有以下幾點(diǎn)優(yōu)勢(shì):徠卡TM30測(cè)量機(jī)器人測(cè)量精度高,無(wú)棱鏡技術(shù)大大節(jié)省了人力物力,提高了工作效率,降低了成本;GeoC++機(jī)載軟件無(wú)需與機(jī)器連接,使用方便,在實(shí)際工程中應(yīng)用中具有一定的優(yōu)勢(shì);基于穩(wěn)健估計(jì)的最小二乘算法能夠?qū)Υ植钸M(jìn)行剔除,提高擬合精度,擬合結(jié)果符合實(shí)際情況。