專利名稱:用于機器人在線手眼標(biāo)定的自適應(yīng)運動選擇方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于機器人在線手眼標(biāo)定的自適應(yīng)運動選擇方法,可廣泛應(yīng)用于機器人三維視覺測量、視覺伺服和觸覺感知等方面。屬于先進制造與自動化領(lǐng)域。
背景技術(shù):
機器人手眼標(biāo)定是機器視覺中一個基本問題。手眼標(biāo)定的精確性部分決定了機器視覺應(yīng)用于機器人時的精度。機器人手眼標(biāo)定就是測量固定在機器人手臂的末端執(zhí)行器(機器人手爪)上的相機和機器人手爪之間的相對位置和方向關(guān)系。以前此類問題的大部分求解方法都是通過迭代優(yōu)化算法解齊次變換方程AX=XB(Y.C.Shiu and S.Ahmad,″Calibration of wrist-mounted robotic sensors bysolving homogeneous transform equations of the form AX=XB,″IEEE Trans.Robot.Automat.,vol.5,pp.16-29,F(xiàn)eb.1989.),這里A代表機器人手爪的運動,B代表相應(yīng)的攝像機運動,X為所要標(biāo)定的攝像機和機器人手爪之間的空間變換關(guān)系。由于迭代優(yōu)化計算過程是非實時的,所以這種情況下手眼標(biāo)定只能脫機進行。后來Angeles等(J.Angeles,G.Soucy and F.P.Ferrie,“The online solution of thehand-eye problem”,IEEE Trans.Robot. Automat.,vol.16,pp.720-731,Dec.2000.)和Andreff等(N.Andreff,R.Horaud,and B.Espiau,“Robot hand-eye calibrationusing structure-from-motion”,Int.J.Robot.Res.,20(3)228-248,2001.)幾乎同時提出了手眼標(biāo)定的在線實現(xiàn)技術(shù),克服了傳統(tǒng)方法不能進行實時標(biāo)定的缺點。
無論采用何種方法進行手眼標(biāo)定,手眼關(guān)系的計算都要求機器人至少獨立運動兩次,而且兩次運動的旋轉(zhuǎn)軸不得平行。因此,當(dāng)采集到的手眼運動數(shù)據(jù)存在退化情況時,如純旋轉(zhuǎn)或純平移等,就無法得到手眼變換關(guān)系的精確解。但是當(dāng)我們在進行在線手眼標(biāo)定的時候,由于機器人的運動是由具體應(yīng)用確定的而并非為手眼標(biāo)定而設(shè)計,所以此時采集到的用于手眼標(biāo)定的運動數(shù)據(jù)就很有可能存在退化情形。另外,采樣運動中旋轉(zhuǎn)角很小或者平移比較大,或者兩次運動的旋轉(zhuǎn)軸之間的夾角很小時,都會使最后的標(biāo)定結(jié)果產(chǎn)生比較大的誤差。為了避免這種情況,中國發(fā)明專利“基于運動選擇的機器人在線手眼標(biāo)定方法”(申請?zhí)?00510025252.0)提出了通過運動選擇的途徑來改善提高機器人在線手眼標(biāo)定。此種方法先根據(jù)經(jīng)驗設(shè)定運動選擇的三個閾值,即機器人手爪前后兩次運動的旋轉(zhuǎn)軸之間夾角的最小閾值α、機器人手爪每次運動的旋轉(zhuǎn)角的最小閾值β和機器人手爪每次運動的平移分量的模的最大閾值d。根據(jù)閾值從第一次手眼采樣運動開始,依次選擇出兩個符合要求的手眼運動對來計算手眼變換關(guān)系。使用這一方法,大大提高了在線手眼標(biāo)定的精確性。但是該法的不足之處在于根據(jù)經(jīng)驗設(shè)定α,β和d的值,沒有考慮到運動序列自身的特點,不具有適應(yīng)各種情況的魯棒性,而且閾值一旦設(shè)定就不再更改,如果設(shè)定的不合適,則可能使得標(biāo)定次數(shù)過少。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種用于機器人在線手眼標(biāo)定的自適應(yīng)運動選擇方法,能夠根據(jù)不同的應(yīng)用情況,自動計算出用于運動選擇的閾值,增加了在線標(biāo)定的次數(shù),提高機器人手眼標(biāo)定精度。
本發(fā)明的技術(shù)方案充分利用在線標(biāo)定時采樣到的手眼運動數(shù)據(jù)序列所反映出來的運動特點,自適應(yīng)的確定閾值。首先利用機器人手爪前五次運動得到的參數(shù)計算用于運動選擇的三個閾值的初值,然后,基于運動選擇來進行在線手眼標(biāo)定。每次標(biāo)定后計算旋轉(zhuǎn)誤差和平移誤差,根據(jù)誤差自適應(yīng)的改變?nèi)齻€閾值。然后再利用新的閾值重新進行運動選擇以及手眼標(biāo)定。循環(huán)往復(fù),可連續(xù)不斷地進行機器人的在線手眼標(biāo)定操作。
本發(fā)明的自適應(yīng)在線手眼標(biāo)定方法具體包括以下幾個步驟1.利用機器人手爪前五次運動中每兩次運動的旋轉(zhuǎn)軸之間夾角的正弦值、每次運動的旋轉(zhuǎn)角和每次運動的平移分量的模的平均值設(shè)定運動選擇的三個閾值α正弦值、β和d;2.根據(jù)運動選擇算法搜索選擇一個滿足β和d閾值條件的手眼運動對。若運動選擇連續(xù)進行了5次,還是不能滿足閾值,則減小β,增大d,然后利用新的閾值繼續(xù)尋找。如此循環(huán)往復(fù),直至找到符合條件的手眼運動對作為第一個手眼運動對(A′,B′);3.根據(jù)運動選擇算法搜索選擇一個滿足α正弦值、β和d閾值條件的手眼運動對。若運動選擇連續(xù)進行了5次,還是不能滿足閾值,則減小α正弦值和β,增大d,然后利用新的閾值繼續(xù)尋找。如此循環(huán)往復(fù),直至找到符合條件的第二個手眼運動對(A″,B″);4.利用兩個手眼運動對(A′,B′)和(A″,B″),用Andreff手眼標(biāo)定線性方程計算手眼變換關(guān)系矩陣X,得到一次手眼標(biāo)定結(jié)果;5.計算手眼變換關(guān)系矩陣X的旋轉(zhuǎn)和平移分量的均方根誤差,記錄標(biāo)定次數(shù)。若標(biāo)定次數(shù)小于5次,則改變閾值,增大α正弦值和β,減小d,將上次用于標(biāo)定的第二個手眼運動對(A″,B″)作為新的第一個手眼運動對(A′,B′),利用改變后的閾值,采用步驟3的方法從后續(xù)采樣數(shù)據(jù)中繼續(xù)搜索選擇新的第二個手眼運動對(A″,B″),采用步驟4的方法進行新的手眼標(biāo)定,直到標(biāo)定次數(shù)大于等于5次;6.利用本次標(biāo)定之前得到的五組手眼變換關(guān)系矩陣X的旋轉(zhuǎn)和平移的均方根誤差以及五組閾值,利用三次多項式回歸來預(yù)測新的閾值。將上次用于標(biāo)定的第二個手眼運動對(A″,B″)作為新的第一個手眼運動對(A′,B′),再利用新閾值,采用步驟3的方法從后續(xù)采樣數(shù)據(jù)中繼續(xù)搜索選擇新的第二個手眼運動對(A″,B″),采用步驟4的方法進行新的手眼標(biāo)定,重復(fù)本步驟,進行在線標(biāo)定。
實際應(yīng)用時,可根據(jù)自適應(yīng)設(shè)定的三個閾值,由軟件自動進行運動選擇和手眼標(biāo)定計算。本發(fā)明提出的運動選擇方法,可以根據(jù)運動序列自身的運動性質(zhì)來自適應(yīng)的設(shè)定運動選擇的三個閾值,增加了利用運動選擇進行在線手眼標(biāo)定的標(biāo)定次數(shù),同時提高了標(biāo)定精度。
本發(fā)明提出的自適應(yīng)運動選擇方法,可廣泛應(yīng)用于機器人三維視覺測量、視覺伺服和觸覺感知等方面,具有相當(dāng)?shù)膶嵱脙r值。
圖1為本發(fā)明的機器人手眼標(biāo)定模型示意圖。
圖2為本發(fā)明的用于在線手眼標(biāo)定的運動選擇算法示意圖。
具體實施例方式
為了更好地講解本發(fā)明的技術(shù)方案,以下結(jié)合附圖和實施例作進一步的詳細描述。
1.利用機器人手爪前五次運動中每兩次運動的旋轉(zhuǎn)軸之間夾角的正弦值、每次運動的旋轉(zhuǎn)角和每次運動的平移分量的模的平均值設(shè)定運動選擇的三個閾值sin(α),β,d。設(shè)第i(i為自然數(shù))次采樣到的攝像機和手爪姿態(tài)的齊次矩陣分別為Pi、Qi,X為所需要求解的手眼變換關(guān)系齊次矩陣。
(sin(α),β,d)=15(Σn=15sin(α)n,Σn=15βn,Σn=15dn)]]>2.根據(jù)運動選擇算法搜索選擇一個滿足β和d閾值條件的手眼運動對(A′,B′)。首先令start=6,從第六次和第七次的手眼姿態(tài)可以求出第一次手爪運動的齊次矩陣A1和相機運動的齊次矩陣B1,如圖1所示,P1、P2分別為攝像機在第1和第2時刻相對于標(biāo)定參照物的姿態(tài)齊次矩陣,Q1、Q2分別為機器人手爪在第1和第2時刻在機器人基坐標(biāo)系下的姿態(tài)齊次矩陣,則有A1=Qstart-1Q7,B1=Pstart-1P7]]>設(shè)(A′,B′)=(A1,B1)。如果A′的旋轉(zhuǎn)角大于等于β而且A′平移分量的模小于等于d,則當(dāng)前運動對(A′,B′)滿足給定閾值條件,否則再由第六次和第八次采樣的手眼姿態(tài)計算手眼運動對(A′,B′)并判斷A′的旋轉(zhuǎn)角和A′的平移的模是否滿足以上條件。若運動選擇連續(xù)進行了5次,即A′=Qstart-1·Qi,]]>i-start=5,還是不能滿足閾值,則減小β,增大d,令β乘以0.8,令d乘以1.2,然后令start=i。利用新的閾值繼續(xù)尋找,如此循環(huán)往復(fù),直至找到符合條件的手眼運動對作為第一個手眼運動對(A′,B′)。設(shè)此時(A′,B′)由第一次和第i+1次采樣的手眼姿態(tài)(即經(jīng)過了i次手眼運動)計算得到的。圖2示出了搜索第一個滿足條件的手眼運動對的完整過程。
3.從第i+1次采樣的手眼姿態(tài)開始(即第i次運動后),根據(jù)運動選擇算法搜索選擇一個滿足α正弦值、β和d閾值條件的手眼運動對(A″,B″),如圖2所示。首先令start=i,從第i+1次和第i+2次的手眼姿態(tài)可以求出手爪運動齊次矩陣Ai+1和相機運動齊次矩陣Bi+1,即有Ai+1=Qi+1-1Qi+2,Bi+1=Pi+1-1Pi+2]]>設(shè)(A″,B″)=(Ai+1,Bi+1)。如果A″的旋轉(zhuǎn)角大于等于β、A″的平移分量的模小于等于d而且A′與A″的旋轉(zhuǎn)軸之間的夾角的正弦值大于等于sin(α),則當(dāng)前運動對(A″,B″)滿足給定閾值條件,否則再由第i+1次和第i+3次采樣的手眼姿態(tài)計算手眼運動對(A″,B″)并判斷A″的旋轉(zhuǎn)角、A″的平移分量的模和A′與A″的旋轉(zhuǎn)軸之間的夾角的正弦值是否滿足以上條件。若運動選擇連續(xù)進行了5次,即A′′=Qstart-1Qi,]]>i-start=5,還是不能滿足閾值,則減小α正弦值和β,增大d,令sin(α)乘以1.2,β乘以0.8,令d乘以1.2。start=i。然后利用新的閾值繼續(xù)尋找,如此循環(huán)往復(fù),直至找到符合條件的第二個手眼運動對(A″,B″)。
4.利用兩個手眼運動對(A′,B′)和(A″,B″),用Andreff手眼標(biāo)定線性方程計算手眼變換關(guān)系矩陣X,得到一次手眼標(biāo)定結(jié)果。
5.計算手眼變換關(guān)系矩陣X的旋轉(zhuǎn)和平移分量的均方根誤差,記錄標(biāo)定次數(shù)。若標(biāo)定次數(shù)小于5次,則改變閾值,增大α正弦值和β,減小d,令sin(α)和β乘以1.2,令d乘以0.8。將上次用于標(biāo)定的第二個手眼運動對(A″,B″)作為新的第一個手眼運動對(A′,B′),利用改變后的閾值,采用步驟3從后續(xù)采樣數(shù)據(jù)中繼續(xù)搜索選擇新的第二個手眼運動對(A″,B″),采用步驟4進行新的手眼標(biāo)定,直到標(biāo)定次數(shù)大于等于5次。
6.利用本次標(biāo)定之前得到的五組手眼變換關(guān)系矩陣X的旋轉(zhuǎn)和平移的均方根誤差以及五組閾值,利用三次多項式回歸來預(yù)測新的閾值,將上次用于標(biāo)定的第二個手眼運動對(A″,B″)作為新的第一個手眼運動對(A′,B′),利用新閾值,利用步驟3從后續(xù)采樣數(shù)據(jù)中繼續(xù)搜索選擇新的第二個手眼運動對(A″,B″),利用步驟4進行新的手眼標(biāo)定,重復(fù)本步驟,進行在線標(biāo)定。
其中利用三次多項式回歸來預(yù)測新閾值的步驟如下(1)使用前四組旋轉(zhuǎn)誤差數(shù)據(jù)和對應(yīng)的sin(α)值,利用三次多項式回歸算法,得到旋轉(zhuǎn)誤差與sin(α)之間的曲線關(guān)系。三次多項式回歸的模型是y=b0+b1×x+b2×x2+b3×x3其中,y是閾值(sin(α)),x是旋轉(zhuǎn)誤差,b0,b1,b2,b3是要計算的系數(shù)。通過計算得到b0,b1,b2,b3后,令x等于第五組旋轉(zhuǎn)誤差,算出y,也就是新的sin(α)值。
(2)使用和計算sin(α)相似的方法,先用前四組旋轉(zhuǎn)誤差和對應(yīng)的β值,算出一組b0,b1,b2,b3。再利用第五組旋轉(zhuǎn)誤差來預(yù)測新的閾值β1;然后用前四組平移誤差和相應(yīng)的β值,算出另一組b0′,b1′,b2′,b3′,再利用第五組平移誤差來預(yù)測新的閾值β2。令β=3*β1+β2;(3)使用和計算sin(α)相似的方法,用前四組平移誤差數(shù)據(jù)和對應(yīng)的d值,算出一組b0,b1,b2,b3,得到平移誤差與d之間的曲線關(guān)系。再利用第五組旋轉(zhuǎn)誤差來預(yù)測新的d值。
權(quán)利要求
1.一種用于機器人在線手眼標(biāo)定的自適應(yīng)運動選擇方法,其特征在于包括如下具體步驟1)利用機器人手爪前五次運動中每兩次運動的旋轉(zhuǎn)軸之間夾角的正弦值、每次運動的旋轉(zhuǎn)角和每次運動的平移分量的模的平均值設(shè)定運動選擇的三個閾值α正弦值、β和d;2)根據(jù)運動選擇算法搜索選擇一個滿足β和d閾值條件的手眼運動對,若運動選擇連續(xù)進行了5次,還是不能滿足閾值,則減小β,增大d,然后利用新的閾值繼續(xù)尋找,如此循環(huán)往復(fù),直至找到符合條件的手眼運動對作為第一個手眼運動對(A′,B′);3)根據(jù)運動選擇算法搜索選擇一個滿足α正弦值、β和d閾值條件的手眼運動對,若運動選擇連續(xù)進行了5次,還是不能滿足閾值,則減小α正弦值和β,增大d,然后利用新的閾值繼續(xù)尋找,如此循環(huán)往復(fù),直至找到符合條件的第二個手眼運動對(A″,B″);4)利用兩個手眼運動對(A′,B′)和(A″,B″),用Andreff手眼標(biāo)定線性方程計算手眼變換關(guān)系矩陣X,得到一次手眼標(biāo)定結(jié)果;5)計算手眼變換關(guān)系矩陣X的旋轉(zhuǎn)和平移分量的均方根誤差,記錄標(biāo)定次數(shù),若標(biāo)定次數(shù)小于5次,則改變閾值,增大α正弦值和β,減小d,將上次用于標(biāo)定的第二個手眼運動對(A″,B″)作為新的第一個手眼運動對(A′,B′),利用改變后的閾值,采用步驟3)的方法從后續(xù)采樣數(shù)據(jù)中繼續(xù)搜索選擇新的第二個手眼運動對(A″,B″),采用步驟4)的方法進行新的手眼標(biāo)定,直到標(biāo)定次數(shù)大于等于5次;6)利用本次標(biāo)定之前得到的五組手眼變換關(guān)系矩陣X的旋轉(zhuǎn)和平移的均方根誤差以及五組閾值,利用三次多項式回歸來預(yù)測新的閾值,將上次用于標(biāo)定的第二個手眼運動對(A″,B″)作為新的第一個手眼運動對(A′,B′),利用新閾值,采用步驟3)的方法從后續(xù)采樣數(shù)據(jù)中繼續(xù)搜索選擇新的第二個手眼運動對(A″,B″),采用步驟4)的方法進行新的手眼標(biāo)定,重復(fù)本步驟,進行在線標(biāo)定。
全文摘要
一種用于機器人在線手眼標(biāo)定的自適應(yīng)運動選擇方法,充分利用在線標(biāo)定時采樣到的手眼運動數(shù)據(jù)序列所反映出來的運動特點,自適應(yīng)的確定閾值。首先利用機器人手爪前五次運動得到的參數(shù)計算用于運動選擇的三個閾值的初值,然后,基于運動選擇來進行在線手眼標(biāo)定。每次標(biāo)定后計算旋轉(zhuǎn)誤差和平移誤差,根據(jù)誤差自適應(yīng)的改變?nèi)齻€閾值。然后再利用新的閾值重新進行運動選擇以及手眼標(biāo)定。循環(huán)往復(fù),可連續(xù)不斷地進行機器人的在線手眼標(biāo)定操作。本能夠根據(jù)不同的應(yīng)用情況,自動計算出用于運動選擇的閾值,增加了在線標(biāo)定的次數(shù),提高機器人手眼標(biāo)定精度。
文檔編號B25J19/00GK1686682SQ200510025780
公開日2005年10月26日 申請日期2005年5月12日 優(yōu)先權(quán)日2005年5月12日
發(fā)明者張婧, 石繁槐, 王建華, 劉允才 申請人:上海交通大學(xué)