本發(fā)明涉及視覺(jué)標(biāo)定,特別涉及一種基于順序旋轉(zhuǎn)機(jī)理的機(jī)器人無(wú)奇異手眼標(biāo)定方法。
背景技術(shù):
1、針對(duì)機(jī)器人手眼視覺(jué)系統(tǒng),機(jī)器人工具坐標(biāo)系(hand)與其所夾持相機(jī)坐標(biāo)系(eye)之間的坐標(biāo)關(guān)系通常被稱(chēng)為“手眼矩陣”,求解上述矩陣的過(guò)程就是所謂的“手眼標(biāo)定”(hand-eye?calibration),未知手眼矩陣的求解精度將會(huì)直接影響機(jī)器人視覺(jué)操作任務(wù)的精細(xì)程度以及安全性。
2、在上個(gè)世紀(jì)80年代,r.y.tsai等人最早提出了手眼標(biāo)定的概念,基于修改羅德里格斯(modified?rodrigues)參數(shù),并給出了一種求解手眼標(biāo)定問(wèn)題的經(jīng)典解析解,該方法至今仍被作為機(jī)器人手眼標(biāo)定領(lǐng)域的經(jīng)典方法而廣為使用。然而,修改羅德里格斯參數(shù)自身卻有一個(gè)不可逾越的缺陷:即其只能用于參數(shù)化轉(zhuǎn)角值不等于π弧度的旋轉(zhuǎn)矩陣。
3、因此,當(dāng)未知手眼矩陣旋轉(zhuǎn)部分的轉(zhuǎn)角值等于π弧度時(shí),基于該類(lèi)參數(shù)手眼標(biāo)定方法所估計(jì)得到的手眼矩陣值將會(huì)嚴(yán)重偏離其真值(這里將其稱(chēng)作奇異現(xiàn)象),從而導(dǎo)致機(jī)器人手眼標(biāo)定任務(wù)的失效。此外,在外界測(cè)量噪聲的影響下,本發(fā)明發(fā)現(xiàn)當(dāng)未知手眼矩陣旋轉(zhuǎn)部分的轉(zhuǎn)角值較接近于π弧度時(shí),r.y.tsai所提出的手眼標(biāo)定解析解估計(jì)得到的手眼矩陣亦會(huì)出現(xiàn)較大的誤差。即在該情形下該手眼標(biāo)定方法對(duì)噪聲的抗干擾能力較差。同時(shí),現(xiàn)有技術(shù)在上述兩種情形下并不能完美解決r.y.tsai所提出的機(jī)器人手眼標(biāo)定方法所固有的奇異現(xiàn)象。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種基于順序旋轉(zhuǎn)機(jī)理的機(jī)器人無(wú)奇異手眼標(biāo)定方法,以解決現(xiàn)有技術(shù)中未知手眼矩陣旋轉(zhuǎn)部分的轉(zhuǎn)角值等于π弧度時(shí),基于該類(lèi)參數(shù)手眼標(biāo)定方法所估計(jì)得到的手眼矩陣值將會(huì)嚴(yán)重偏離其真值的問(wèn)題。
2、本發(fā)明具體提供如下技術(shù)方案:一種基于順序旋轉(zhuǎn)機(jī)理的機(jī)器人無(wú)奇異手眼標(biāo)定方法,包括以下步驟:
3、采集用于手眼標(biāo)定的測(cè)量數(shù)據(jù)組{ai,bi},并從所述測(cè)量數(shù)據(jù)組{ai,bi}中提取未知手眼矩陣旋轉(zhuǎn)部分的轉(zhuǎn)角值θx,其中,ai與bi分別為過(guò)渡矩陣和相對(duì)位姿矩陣;
4、若θx不等于或遠(yuǎn)離π弧度,根據(jù)基于修改羅德里格斯參數(shù)的手眼標(biāo)定算法求解未知手眼矩陣,否則根據(jù)順序旋轉(zhuǎn)機(jī)理定義三類(lèi)用戶(hù)矩陣jruser,j=1,2,3;
5、使用向量組jruserkbi替換原來(lái)的向量組kbi,求解向量組kai旋轉(zhuǎn)至與jruserkbi重合所需的旋轉(zhuǎn)矩陣并提取旋轉(zhuǎn)矩陣對(duì)應(yīng)的轉(zhuǎn)角值
6、從所述中選擇一個(gè)介于0到2π/3弧度之間的角度值,將其記為并記錄所對(duì)應(yīng)的旋轉(zhuǎn)矩陣和用戶(hù)矩陣gruser;
7、利用所述與gruser計(jì)算未知手眼矩陣估計(jì)值rx,即
8、將所述手眼矩陣估計(jì)值rx代入raitx+tai=rxtbi+tx中,獲取未知手眼矩陣平移列向量tx的線(xiàn)性最小二乘估計(jì)值;其中,rai與rbi依次為ai與bi的旋轉(zhuǎn)矩陣,tai、tbi以及tx依次為矩陣ai、bi以及rx中任意矩陣x的位置列向量。
9、優(yōu)選的,所述采集用于手眼標(biāo)定的測(cè)量數(shù)據(jù)組{ai,bi},包括如下步驟:
10、控制機(jī)器人的機(jī)械臂進(jìn)行兩次相異運(yùn)動(dòng),記錄機(jī)械臂工具坐標(biāo)系在兩次相異運(yùn)動(dòng)間的過(guò)渡矩陣ai以及機(jī)械臂所夾持相機(jī)坐標(biāo)系在兩次相異運(yùn)動(dòng)間的相對(duì)位姿矩陣bi;
11、重復(fù)獲取過(guò)渡矩陣ai和相對(duì)位姿矩陣bi的過(guò)程,獲得k組測(cè)量數(shù)據(jù){ai,bi},并提取其所對(duì)應(yīng)的旋轉(zhuǎn)軸單位方向向量{kai,kbi}及轉(zhuǎn)角值{θai,θbi}。
12、優(yōu)選的,所述從所述測(cè)量數(shù)據(jù)組{ai,bi}中提取未知手眼矩陣旋轉(zhuǎn)部分的轉(zhuǎn)角值θx,包括步驟:
13、根據(jù)修改羅德里格斯參數(shù)與旋轉(zhuǎn)矩陣的對(duì)應(yīng)關(guān)系,依次構(gòu)造ai與bi所對(duì)應(yīng)的修改羅德里格斯參數(shù)pai與pbi;
14、構(gòu)造超定線(xiàn)性方程組[pai+pbi]×p'x=pai-pbi,運(yùn)用線(xiàn)性最小二乘法求解向量p'x的值;
15、將未知手眼矩陣所對(duì)應(yīng)的向量p'x帶入px=2p'x(1+||p'x||2)-0.5中,反解出px的值;
16、根據(jù)向量px與θx=2·atan||px||2,可得未知手眼矩陣的轉(zhuǎn)角值θx;
17、其中,向量px為矩陣x對(duì)應(yīng)的修改羅德里格斯參數(shù);atan為反正切運(yùn)算符,||·||為向量的取模運(yùn)算符。
18、優(yōu)選的,所述構(gòu)造ai與bi所對(duì)應(yīng)的修改羅德里格斯參數(shù)pai與pbi,具體表達(dá)式為:
19、pai=2sin(θai/2)kai
20、pbi=2sin(θbi/2)kbi。
21、優(yōu)選的,所述根據(jù)基于修改羅德里格斯參數(shù)的手眼標(biāo)定算法求解未知手眼矩陣,具體包括如下步驟:
22、給定旋轉(zhuǎn)矩陣rx,獲取旋轉(zhuǎn)矩陣rx對(duì)應(yīng)的修改羅德里格斯參數(shù)px;
23、采集機(jī)械臂工具坐標(biāo)系與相機(jī)坐標(biāo)系在相鄰兩次運(yùn)動(dòng)間的齊次坐標(biāo)變換矩陣ai與bi,并依次提取ai與bi旋轉(zhuǎn)部分對(duì)應(yīng)的修改羅德里格斯參數(shù)pai與pbi;
24、獲取由多次測(cè)量數(shù)據(jù)所構(gòu)成的超定線(xiàn)性方程組[pai+pbi]×·p'x=pai-pbi,并計(jì)算超定線(xiàn)性方程組中的p'x;
25、其中,[·]×為向量所對(duì)應(yīng)的反對(duì)稱(chēng)矩陣,||·||為向量的取模運(yùn)算符;
26、根據(jù)px=2p'x(1+||p'x||2)-0.5,構(gòu)造向量p'x所對(duì)應(yīng)的羅德里格斯參數(shù)px,獲得px所對(duì)應(yīng)的旋轉(zhuǎn)矩陣rx;
27、將rx代入方程raitx+tai=rxtbi+tx,獲得手眼矩陣平移列向量tx的線(xiàn)性最小二乘估計(jì)值。
28、優(yōu)選的,所述修改羅德里格斯參數(shù)px的計(jì)算表達(dá)式為:
29、px=2sin(θx/2)[kx?ky?kz]t
30、其中,θx與向量[kx?ky?kz]t分別為rx的轉(zhuǎn)角值以及旋轉(zhuǎn)軸單位方向向量。
31、優(yōu)選的,所述向量p'x的計(jì)算表達(dá)式為:
32、p'x=px/(2cos(θx/2))
33、將px=2sin(θx/2)[kx?ky?kz]t代入p'x=px/(2cos(θx/2))中,計(jì)算得到p'x=tan(θx/2)[kx?ky?kz]t;
34、其中,θx指未知手眼矩陣的旋轉(zhuǎn)角度值。
35、優(yōu)選的,所述根據(jù)順序旋轉(zhuǎn)機(jī)理定義三類(lèi)用戶(hù)矩陣jruser,包括步驟:
36、根據(jù)順序旋轉(zhuǎn)機(jī)理,定義第一類(lèi)用戶(hù)矩陣:1ruser=rot(kx,θ);
37、根據(jù)順序旋轉(zhuǎn)機(jī)理,定義第二類(lèi)用戶(hù)矩陣:2ruser=rot(ky,θ);
38、根據(jù)順序旋轉(zhuǎn)機(jī)理,定義第三類(lèi)用戶(hù)矩陣:3ruser=rot(kz,θ);
39、其中,kx為坐標(biāo)軸x的單位方向向量;ky為坐標(biāo)軸y的單位方向向量;kz為坐標(biāo)軸z的單位方向向量;θ為介于0到π弧度之間的任意角度值;rot(kx,θ)為繞kx旋轉(zhuǎn)θ弧度所得的旋轉(zhuǎn)矩陣;rot(ky,θ)為繞ky旋轉(zhuǎn)θ弧度所得的旋轉(zhuǎn)矩陣;rot(kz,θ)為繞kz旋轉(zhuǎn)θ弧度所得的旋轉(zhuǎn)矩陣。
40、優(yōu)選的,所述三類(lèi)用戶(hù)矩陣jruser中,存在一個(gè)滿(mǎn)足轉(zhuǎn)角值介于0到2π/3弧度之間的用戶(hù)矩陣,具體包括如下步驟:
41、向量組kai旋轉(zhuǎn)至與jruserkbi重合所需的旋轉(zhuǎn)矩陣為則
42、由旋轉(zhuǎn)矩陣性質(zhì)獲得,用戶(hù)自定義的旋轉(zhuǎn)矩陣的跡依次為:
43、
44、
45、
46、其中,rij代表rx第i行第j列的元素,tr(·)為旋轉(zhuǎn)矩陣的跡;
47、根據(jù)rx內(nèi)元素間的約束整理可得:
48、
49、通過(guò)旋轉(zhuǎn)矩陣跡的性質(zhì)獲得,三類(lèi)用戶(hù)矩陣中至少有一個(gè)矩陣的跡是非負(fù)的,即至少存在一個(gè)轉(zhuǎn)角值介于0到2π/3弧度之間的用戶(hù)矩陣
50、優(yōu)選的,將向量組jruserkbi旋轉(zhuǎn)至已知測(cè)量數(shù)據(jù)arai的旋轉(zhuǎn)軸線(xiàn)akai,其重合所需旋轉(zhuǎn)矩陣的旋轉(zhuǎn)角度值與rx對(duì)應(yīng)的旋轉(zhuǎn)角度值不同。
51、與現(xiàn)有技術(shù)相比,本發(fā)明具有如下顯著優(yōu)點(diǎn):
52、本發(fā)明提出了一種基于順序旋轉(zhuǎn)機(jī)理的無(wú)奇異手眼標(biāo)定方法,從安全性角度考慮,通過(guò)順序旋轉(zhuǎn)機(jī)理構(gòu)建三類(lèi)用戶(hù)矩陣,獲取旋轉(zhuǎn)矩陣和轉(zhuǎn)角值,在轉(zhuǎn)角值內(nèi)選擇介于0到2π/3弧度之間的角度值和旋轉(zhuǎn)矩陣,利用該旋轉(zhuǎn)矩陣和用戶(hù)矩陣計(jì)算未知手眼矩陣估計(jì)值,可見(jiàn)本發(fā)明適用于轉(zhuǎn)角值為含π弧度在內(nèi)任意值的未知手眼矩陣求解問(wèn)題,其能夠有力避開(kāi)修改羅德里格斯參數(shù)自身的奇異性,從一定程度上提高了r.y.tsai所提出機(jī)器人手眼標(biāo)定解析解方法的適用范圍以及抗干擾能力。