本發(fā)明屬于光學(xué)三維測(cè)量領(lǐng)域,將六自由度機(jī)器人與轉(zhuǎn)臺(tái)結(jié)合成七自由度三維模型重建系統(tǒng),特別是采用全自動(dòng)的快速測(cè)量與經(jīng)過(guò)路徑規(guī)劃的高精度測(cè)量相結(jié)合的方法。
背景技術(shù):
三維掃描儀用來(lái)偵測(cè)并分析現(xiàn)實(shí)世界中物體或環(huán)境的形狀(幾何構(gòu)造)與外觀(guān)數(shù)據(jù)(如顏色、表面反照率等性質(zhì))。搜集到的數(shù)據(jù)常被用來(lái)進(jìn)行三維重建計(jì)算,在虛擬世界中創(chuàng)建實(shí)際物體的數(shù)字模型。這些模型具有相當(dāng)廣泛的用途,舉凡工業(yè)設(shè)計(jì)、瑕疵檢測(cè)、逆向工程、機(jī)器人導(dǎo)引、地貌測(cè)量、醫(yī)學(xué)信息、生物信息、刑事鑒定、數(shù)字文物典藏、電影制片、游戲創(chuàng)作素材等等都可見(jiàn)其應(yīng)用。三維掃描儀的制作并非仰賴(lài)單一技術(shù),各種不同的掃描技術(shù)都有其優(yōu)缺點(diǎn)。目前并無(wú)一體通用之掃描方式,儀器與方法往往受限于物體的外形特性。
傳統(tǒng)的3d掃描儀缺陷比較多:由于視場(chǎng)有限,導(dǎo)致掃描范圍太?。挥捎趻呙杞嵌忍厥?,導(dǎo)致最終的實(shí)體會(huì)出現(xiàn)漏洞。為了克服這些缺點(diǎn),出現(xiàn)的帶轉(zhuǎn)臺(tái)掃描儀,這樣可以給掃描增加1到2個(gè)自由度,很大程度上的增加了掃描儀的掃描范圍,增加了掃描角度。然而,這種轉(zhuǎn)臺(tái)掃描儀還是沒(méi)有完全解決這些缺點(diǎn),比如實(shí)體的頂部和底部無(wú)法掃描、外形較大的實(shí)體無(wú)法完全覆蓋、表面結(jié)構(gòu)非常復(fù)雜的實(shí)體還會(huì)出現(xiàn)掃描漏洞等。
使用機(jī)器人掃描儀解決了以上的大部分問(wèn)題。但是,在實(shí)體表面結(jié)構(gòu)非常復(fù)雜的情況下,掃描漏洞問(wèn)題仍然存在。而且,機(jī)器人掃描儀為了避免和被掃描物體碰撞,使用遠(yuǎn)距離掃描,這樣掃描出的模型精度就比較低。
為了克服機(jī)器人掃描儀的缺陷,本專(zhuān)利使用兩種掃描模式進(jìn)行掃描:快速掃描和高精度掃描??焖賿呙枋侵高h(yuǎn)距離,快速的掃描出實(shí)體的低精度模型;高精度掃描是指使用快速掃描的點(diǎn)云模型進(jìn)行路徑規(guī)劃,然后根據(jù)規(guī)劃好的路徑進(jìn)行近距離掃描。這樣就可以解決掃描死角和精度低的缺陷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種高精度、多方位的機(jī)器人全自動(dòng)掃描裝置及方法。該裝置包括(圖1所示)由六軸機(jī)器臂,mems掃描振鏡激光三維測(cè)頭,轉(zhuǎn)臺(tái)組成;其中mems掃描振鏡激光三維測(cè)頭(圖2所示)主要由a模式雙目相機(jī)和b模式雙目相機(jī)構(gòu)成,掃描測(cè)頭安放在六軸機(jī)械臂末端。b模式雙目相機(jī)用來(lái)對(duì)于物體表面進(jìn)行快速測(cè)量,獲取物體全部的點(diǎn)云數(shù)據(jù)并對(duì)其進(jìn)行測(cè)量路徑規(guī)劃。a模式雙目相機(jī)用來(lái)沿規(guī)劃好的測(cè)量路徑對(duì)物體表面進(jìn)行高精度測(cè)量。
該方法在同一個(gè)測(cè)量系統(tǒng)內(nèi)將快速掃描模式和高精度掃描模式相結(jié)合,運(yùn)用快速掃描測(cè)頭對(duì)物體初步進(jìn)行快速測(cè)量,獲取物體整體的點(diǎn)云數(shù)據(jù),將點(diǎn)云數(shù)據(jù)進(jìn)行降噪濾波等后處理后逐點(diǎn)進(jìn)行法矢量方向的求取,進(jìn)而計(jì)算高精度掃描測(cè)頭在測(cè)量過(guò)程中沿旋轉(zhuǎn)軸的旋轉(zhuǎn)角度,結(jié)合高精度掃描測(cè)頭的工作距離約束條件,生成測(cè)頭在機(jī)器人基礎(chǔ)坐標(biāo)系下的運(yùn)動(dòng)路徑和空間姿態(tài),從而實(shí)現(xiàn)路徑規(guī)劃,最終利用高精度掃描測(cè)頭沿上述規(guī)劃好的路徑進(jìn)行進(jìn)一步精細(xì)測(cè)量。
具體步驟如下:
第一步,進(jìn)行機(jī)器人手眼標(biāo)定。轉(zhuǎn)臺(tái)標(biāo)定分為兩步:a模式手眼標(biāo)定和b模式手眼標(biāo)定。確定機(jī)器人工具坐標(biāo)系和當(dāng)前模式下左相機(jī)坐標(biāo)系之間的坐標(biāo)關(guān)系。這一步驟只需標(biāo)定一次。
第二步,進(jìn)行轉(zhuǎn)臺(tái)標(biāo)定。轉(zhuǎn)臺(tái)標(biāo)定分為兩步:a模式轉(zhuǎn)臺(tái)標(biāo)定和b模式轉(zhuǎn)臺(tái)標(biāo)定。每一步驟都一樣:把機(jī)器人末端移動(dòng)到某一特定位姿,然后計(jì)算各自模式下左相機(jī)坐標(biāo)系與轉(zhuǎn)臺(tái)中心坐標(biāo)系的坐標(biāo)關(guān)系。
第三步,實(shí)現(xiàn)快速掃描。使用b模式對(duì)于物體進(jìn)行遠(yuǎn)距離的快速掃描,獲取物體全部的三維點(diǎn)云數(shù)據(jù)。
第四步,點(diǎn)云后處理。利用上一步中得到的被掃描物體的全部點(diǎn)云數(shù)據(jù),采用k-近鄰法對(duì)其進(jìn)行降噪、濾波操作,經(jīng)處理后的點(diǎn)云數(shù)據(jù)便于下一步法矢量的求取。
第五步,求取點(diǎn)云數(shù)據(jù)法矢量方向。利用上一步中得到的經(jīng)后處理之后的點(diǎn)云數(shù)據(jù),采用最小二乘平面擬合的算法,對(duì)其逐點(diǎn)進(jìn)行法矢量方向的求取。
第六步,規(guī)劃a模式下的掃描路徑。利用上一步中所計(jì)算得到的點(diǎn)云數(shù)據(jù)中每點(diǎn)處的法矢量方向,計(jì)算a模式在掃描過(guò)程中的姿態(tài),結(jié)合a模式的工作范圍,生成測(cè)頭在機(jī)器人坐標(biāo)系下的運(yùn)動(dòng)路徑和空間姿態(tài)。
第七步,進(jìn)行高精度掃描。采用測(cè)頭的a模式,按照上一步中所規(guī)劃好的運(yùn)動(dòng)路徑和空間姿態(tài),對(duì)于物體進(jìn)行高精度測(cè)量,獲取更高精度的物體形狀測(cè)量結(jié)果。
有益效果
(1)本發(fā)明無(wú)論遠(yuǎn)距離掃描還是近距離掃描的是自動(dòng)化的。遠(yuǎn)距離掃描只需要估算模型的尺寸,粗略計(jì)算機(jī)器人的掃描路徑;近距離掃描根據(jù)模型精確的計(jì)算機(jī)器人的掃描路徑。
(2)本發(fā)明在同一系統(tǒng)內(nèi)將機(jī)器人掃描儀的遠(yuǎn)距離快速掃描方式和近距離高精度掃描方式相結(jié)合,與傳統(tǒng)的單一機(jī)器人掃描方式相比更進(jìn)一步提高了測(cè)量精度,實(shí)現(xiàn)了物體形狀的高精度掃描??朔藱C(jī)器人遠(yuǎn)距離掃描的精度低的缺陷,同時(shí)解決了機(jī)器人近距離掃描對(duì)于物體設(shè)計(jì)模型的依賴(lài),保證了在設(shè)計(jì)模型缺失情況下物體的掃描工作的順利進(jìn)行。
附圖說(shuō)明
圖1機(jī)器人三維掃描系統(tǒng)結(jié)構(gòu)圖;
圖2mems掃描振鏡激光三維測(cè)頭示意圖;
圖3mems振鏡激光測(cè)頭坐標(biāo)系與機(jī)械臂末端工具坐標(biāo)系的位姿關(guān)系圖;
圖中:1為六軸機(jī)器臂,2為mems掃描振鏡激光三維測(cè)頭,3為轉(zhuǎn)臺(tái),4為投影儀,5為第一相機(jī),6為第二相機(jī),7為第三相機(jī),8為第四相機(jī)。
具體實(shí)施方式
如圖1所示,一種機(jī)器人自動(dòng)掃描裝置,包括由六軸機(jī)器臂,mems掃描振鏡激光三維測(cè)頭,轉(zhuǎn)臺(tái)組成。如圖2所示,mems掃描振鏡激光三維測(cè)頭主要由投影儀、a模式雙目相機(jī)是第一相機(jī)和第三相機(jī)組成,b模式雙目相機(jī)是第二相機(jī)和第四相機(jī)組成,掃描測(cè)頭安放在六軸機(jī)械臂末端。b模式雙目相機(jī)用來(lái)對(duì)于物體表面進(jìn)行低精度測(cè)量,獲取物體全部的點(diǎn)云數(shù)據(jù)并對(duì)其進(jìn)行測(cè)量路徑規(guī)劃。a模式雙目相機(jī)用來(lái)沿規(guī)劃好的測(cè)量路徑對(duì)物體表面進(jìn)行高精度測(cè)量。
下面具體結(jié)合附圖2和圖3對(duì)本發(fā)明做詳細(xì)描述。
一種機(jī)器人自動(dòng)掃描方法,具體包括以下步驟:
第一步,手眼標(biāo)定。
標(biāo)定mems振鏡激光測(cè)頭坐標(biāo)系與機(jī)械臂末端工具坐標(biāo)系的位姿關(guān)系。
用a,b,c,d表示4x4矩陣,分別描述某兩個(gè)坐標(biāo)系之間的相對(duì)方位,相對(duì)方位由旋轉(zhuǎn)矩陣r和平移向量t組成,即
其中,ra與ta的下標(biāo)表示所代表的矩陣名稱(chēng)。在圖3,cobj表示標(biāo)定參照物的坐標(biāo)系,cc1與ce1分別表示六軸機(jī)器臂運(yùn)動(dòng)前的mems振鏡激光測(cè)頭坐標(biāo)系與六軸機(jī)器臂末端坐標(biāo)系,cc2與ce2分別表示六軸機(jī)器臂運(yùn)動(dòng)后的mems振鏡激光測(cè)頭坐標(biāo)系與六軸機(jī)器臂末端坐標(biāo)系。在cc1與cc2兩個(gè)位置上分別用標(biāo)定塊對(duì)ccd相機(jī)標(biāo)定從而求出其外參數(shù),其中外參數(shù)即相機(jī)在cc1與cc2兩個(gè)位置上與cobj的相對(duì)方位,用a與b表示。由此,如果c表示cc1與cc2之間的相對(duì)方位,則
c=ab-1
在cc1與cc2兩個(gè)位置上分別用標(biāo)定塊對(duì)相機(jī)標(biāo)定,從而求出a與b,進(jìn)而求出c。
ce1與ce2間的位姿關(guān)系可以由控制器讀出,屬于已知參數(shù),用矩陣
pc1=cpc2(1.1)
pc1=xpe1(1.2)
pe1=dpe2(1.3)
pc2=xpe2(1.4)
由式(1.1)與式(1.4)得
pc1=cxpe2(1.5)
由式(1.2)與式(1.3)得
pc1=xdpe2(1.6)
比較式(1.5)與(1.6)得到
cx=xd(1.7)
其中矩陣c,d都為已知,因此可以解出mems掃描振鏡激光三維測(cè)頭坐標(biāo)系與機(jī)械臂末端坐標(biāo)系的位姿關(guān)系
第二步,轉(zhuǎn)臺(tái)標(biāo)定。
首先進(jìn)行轉(zhuǎn)臺(tái)中心坐標(biāo)系原點(diǎn)的標(biāo)定,mems掃描振鏡激光三維測(cè)頭坐標(biāo)系與旋轉(zhuǎn)臺(tái)坐標(biāo)系坐標(biāo)變換的平移量就是旋轉(zhuǎn)臺(tái)坐標(biāo)系坐標(biāo)原點(diǎn)在激光三維測(cè)頭坐標(biāo)系下的坐標(biāo)p0(x0,y0,z0)。我們可以通過(guò)對(duì)對(duì)應(yīng)點(diǎn)進(jìn)行圓心擬合的方法來(lái)求p0(xo,y0,z0)。其關(guān)鍵是在旋轉(zhuǎn)臺(tái)工作表面上找到合適的參考點(diǎn)p(x,y,z)。轉(zhuǎn)臺(tái)轉(zhuǎn)動(dòng)m次,將對(duì)應(yīng)不同的點(diǎn)p1(x,y,z),p2(x,y,z),…,pm(x,y,z),理論上,這m個(gè)點(diǎn)應(yīng)處于同一圓周上。因此,在轉(zhuǎn)臺(tái)上平放一塊標(biāo)定版,激光測(cè)頭中ccd相機(jī)對(duì)準(zhǔn)標(biāo)定版拍攝一張標(biāo)定板照片,轉(zhuǎn)臺(tái)轉(zhuǎn)過(guò)m個(gè)位置,此時(shí)機(jī)器臂保持不動(dòng),ccd相機(jī)繼續(xù)拍攝標(biāo)定版。轉(zhuǎn)臺(tái)共轉(zhuǎn)過(guò)m次,共拍攝m張標(biāo)定圖片。將拍攝的數(shù)據(jù)傳輸?shù)接?jì)算機(jī),由計(jì)算機(jī)提取出每個(gè)角度標(biāo)定板世界坐標(biāo)系的原點(diǎn),然后將這m個(gè)世界坐標(biāo)系原點(diǎn)進(jìn)行圓心擬合就可以得到轉(zhuǎn)臺(tái)中心坐標(biāo)系原點(diǎn)坐標(biāo)。
然后進(jìn)行轉(zhuǎn)臺(tái)z軸的標(biāo)定,由于x軸和y軸在xy平面內(nèi)取向的特殊性,只需要確定z軸的方向即可建立旋轉(zhuǎn)臺(tái)中心坐標(biāo)系。z軸的標(biāo)定與轉(zhuǎn)臺(tái)中心坐標(biāo)系坐標(biāo)原點(diǎn)的標(biāo)定相似,設(shè)p0(x0,y0,z0)為旋轉(zhuǎn)臺(tái)中心坐標(biāo)系原點(diǎn)坐標(biāo);p(x,y,z)為旋轉(zhuǎn)臺(tái)工作表面上的參考點(diǎn),可認(rèn)為是上一步中任意兩塊標(biāo)定板的世界坐標(biāo)系原點(diǎn),即p1(x1,y1,z1)和p2(x2,y2,z2),則有如下方程
p0p1=(x2-x0)i+(y2-y0)j+(z2-z0)k
p0p2=(x1-x0)i+(y1-y0)j+(z1-z0)k
通過(guò)這兩個(gè)向量的向量積可求出z軸的方向向量。一旦旋轉(zhuǎn)臺(tái)中心坐標(biāo)系的坐標(biāo)原點(diǎn)和z軸方向確定,它與激光測(cè)頭坐標(biāo)系之間相互轉(zhuǎn)換的位姿關(guān)系
第三步,使用機(jī)器人掃描儀遠(yuǎn)距離快速掃描。使用測(cè)頭的b模式,對(duì)物體全身進(jìn)行三維掃描,得到物體的全部點(diǎn)云數(shù)據(jù)。
第四步,點(diǎn)云后處理。利用k-近鄰法對(duì)物體的點(diǎn)云數(shù)據(jù)進(jìn)行平滑去噪,包括兩部分,即k-近鄰搜索和基于k-近鄰的噪聲點(diǎn)去除。
1)k-近鄰搜索
目前常見(jiàn)的k-近鄰計(jì)算方法有空間單元格法、八叉樹(shù)法和k-d樹(shù)法。本發(fā)明中采用空間單元格法。其算法原理如下。
設(shè)p={p1,p2,...,pn}是未知的待重建曲面s上的一個(gè)采樣點(diǎn)集,s中與待測(cè)點(diǎn)pi距離最近的k個(gè)待測(cè)點(diǎn)成為這一點(diǎn)的k-近鄰,記做nb(p)。該算法首先讀入測(cè)量點(diǎn)集文件,將數(shù)據(jù)點(diǎn)的坐標(biāo)存入三個(gè)一組數(shù)組中分別得到測(cè)量點(diǎn)集在x、y、z方向上的最大值和最小值。利用三個(gè)方向的極值形成一個(gè)與坐標(biāo)軸平行的最小長(zhǎng)方體包圍盒,并根據(jù)測(cè)點(diǎn)的數(shù)量和分布將長(zhǎng)方體包圍盒按三個(gè)坐標(biāo)方向劃分出m×n×l個(gè)子立方體,然后判斷每個(gè)數(shù)據(jù)點(diǎn)所在的子立方體,將數(shù)據(jù)點(diǎn)的序號(hào)添加到該子立方體對(duì)應(yīng)的線(xiàn)性鏈表中。
如果定義三個(gè)方向上最小坐標(biāo)值為:
sub_min_x,sub_min_y,sub_min_z;
最大坐標(biāo)為:sub_max_x,sub_max_y,sub_max_z;
子立方體的長(zhǎng)度為sub_size;
當(dāng)前點(diǎn)的三維坐標(biāo)值為:p_x,p_y,p_z;那么子立方體在三個(gè)坐標(biāo)軸方向的個(gè)數(shù)分別為:
則當(dāng)前點(diǎn)在子立方體中三個(gè)坐標(biāo)軸方向的索引號(hào)分別為:
如此一來(lái),在計(jì)算某個(gè)散亂點(diǎn)pi的k-近鄰時(shí),首先計(jì)算該點(diǎn)所在子立方體的索引號(hào),然后對(duì)其所在子立方體及相鄰的上下、左右、前后共27(3x3x3)個(gè)子立方體中查找k個(gè)最鄰近的點(diǎn)。為每個(gè)數(shù)據(jù)點(diǎn)建立一個(gè)鏈表數(shù)據(jù)結(jié)構(gòu),pi與子立方體總數(shù)據(jù)點(diǎn)的距離由小到大排列于該鏈表中,取前k個(gè)節(jié)點(diǎn)即為所求。當(dāng)然,這種搜索方法會(huì)造成有些點(diǎn)(例如邊界點(diǎn))的k-近鄰點(diǎn)的個(gè)數(shù)少于k,所以要對(duì)該點(diǎn)的鄰近進(jìn)行修正,讓其臨近點(diǎn)的個(gè)數(shù)大于等于k,即把那些k-近鄰的個(gè)數(shù)小于k的點(diǎn)查找出來(lái),在更大的范圍中求這些點(diǎn)的二次k-近鄰,從而使這些點(diǎn)的鄰近點(diǎn)的個(gè)數(shù)大于等于k。
2)基于k-近鄰的噪聲點(diǎn)去除
建立好散亂點(diǎn)之間的拓?fù)潢P(guān)系之后,原則上就可以借助圖像處理中的濾波算法對(duì)數(shù)據(jù)點(diǎn)進(jìn)行去噪處理。搜索到每個(gè)點(diǎn)的k-近鄰之后,文獻(xiàn)采用鄰域平均法進(jìn)行噪聲點(diǎn)去除。具體算法描述如下:
(1)讀入三維散亂數(shù)據(jù)點(diǎn)云;
(2)利用空間單元格法建立點(diǎn)云拓?fù)潢P(guān)系;
(3)搜索點(diǎn)云中任意一點(diǎn)pi∈s的k-近鄰nb(p);
(4)計(jì)算當(dāng)前點(diǎn)pi與其k-鄰域內(nèi)各點(diǎn)之間的距離,取其平均值dmid(pi),即:
(5)判斷該平均距離dmid(pi)是否超過(guò)設(shè)定的閾值dσ,若超過(guò),
即:dmid(pi)>dσ,則認(rèn)為該點(diǎn)是離群噪聲點(diǎn),將其刪除;
(6)重復(fù)(3)~(5),直到處理完點(diǎn)云中所有數(shù)據(jù)點(diǎn)。
第五步,求取點(diǎn)云數(shù)據(jù)法矢量方向。
1)計(jì)算每一個(gè)測(cè)點(diǎn)xi的k-鄰近。算法與第四步中的k-近鄰搜索方法相同
2)利用這些鄰近點(diǎn)擬合一個(gè)最小二乘平面p(xi)作為待重建曲面在該點(diǎn)處的切平面,方法如下:
平面方程的一般表達(dá)式為:
ax+by+cz+d=0,(c≠0)
記:
則:z=a0x+a1y+a2
平面方程擬合:
對(duì)于測(cè)點(diǎn)附近的k個(gè)鄰域點(diǎn):
(xi,yi,zi),i=0,1,…,k-1
要用點(diǎn)(xi,yi,zi),i=0,1,…,k-1擬合計(jì)算出最小二乘平面,則使:
要使得s最小,應(yīng)滿(mǎn)足:
即:
有,
或,
解上述線(xiàn)性方程組,得:a0,a1,a2
即:z=a0x+a1y+a2
3)計(jì)算上述切平面的單位法矢ni,ni作為測(cè)點(diǎn)xi的法矢量。
第六步,規(guī)劃近距離掃描路徑。
利用上一步中所計(jì)算得到的點(diǎn)云數(shù)據(jù)中每點(diǎn)處的法矢量方向,計(jì)算a模式在掃描過(guò)程中的姿態(tài),結(jié)合a模式的工作范圍,生成測(cè)頭在機(jī)器人坐標(biāo)系下的運(yùn)動(dòng)路徑和空間姿態(tài)。
第七步,使用機(jī)器人掃描儀進(jìn)行近距離掃描。利用高精度的a模式,按照上一步中所規(guī)劃好的運(yùn)動(dòng)路徑和空間姿態(tài),對(duì)于物體進(jìn)行高精度測(cè)量,獲取更高精度的物體形狀測(cè)量結(jié)果。
以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施方式僅限于此,對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單的推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明由所提交的權(quán)利要求書(shū)確定專(zhuān)利保護(hù)范圍。