TWI837822B - 機器手臂的虛擬工具點的視覺校正方法 - Google Patents

機器手臂的虛擬工具點的視覺校正方法 Download PDF

Info

Publication number
TWI837822B
TWI837822B TW111134357A TW111134357A TWI837822B TW I837822 B TWI837822 B TW I837822B TW 111134357 A TW111134357 A TW 111134357A TW 111134357 A TW111134357 A TW 111134357A TW I837822 B TWI837822 B TW I837822B
Authority
TW
Taiwan
Prior art keywords
camera
sphere
axis component
robot arm
coordinate system
Prior art date
Application number
TW111134357A
Other languages
English (en)
Other versions
TW202411802A (zh
Inventor
許煥坤
Original Assignee
創博股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 創博股份有限公司 filed Critical 創博股份有限公司
Priority to TW111134357A priority Critical patent/TWI837822B/zh
Publication of TW202411802A publication Critical patent/TW202411802A/zh
Application granted granted Critical
Publication of TWI837822B publication Critical patent/TWI837822B/zh

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

一種機器手臂的虛擬工具點的視覺校正方法,應用於具有機器手臂、相機及球體的校正系統,包括:控制機器手臂移動以令球體進入法蘭面上的相機的畫面中;控制機器手臂沿著三軸平移,以記錄球體資訊並計算球體相對於相機座標系的三組移動向量;基於三組移動向量計算相機座標系相對於機器手臂座標系的旋轉矩陣,並推算相機座標系相對於法蘭面的姿態;控制相機通過不同角度捕捉球體位於相機的虛擬工具點時的清晰影像,並記錄多筆校正點資訊;基於多筆校正點資訊計算虛擬工具點相對於法蘭面的偏移量;及,完成虛擬工具點的校正程序。

Description

機器手臂的虛擬工具點的視覺校正方法
本發明涉及機器手臂,尤其涉及機器手臂的校正方法。
機器手臂的使用者可以依照實際需求,於法蘭面上裝設對應的工具,藉此利用工具來實現抓取、加工或組裝等作業。
一般來說,機器手臂具有機器手臂座標系,法蘭面具有法蘭面座標系,而雖然工具設置在法蘭面上,但工具上的工具中心點(Tool Center Point, TCP),例如爪尖,並不是在法蘭面上。因此,在裝設或更換了一個新的工具後,機器手臂的使用者需要對工具進行校正,以獲得工具中心點相對於法蘭面的姿態(orientation)及偏移量(offset)。在得知了所述姿態及偏移量後,機器手臂才能夠對其上的工具進行精準的控制。
一般來說,各式的工具都會使用對應的治具來進行工具中心點的校正。例如,處理器可以控制機器手臂移動,並讓工具中心點觸碰治具上的特定位置,藉此計算工具中心點相對於機器手臂座標系的位置。
惟,部分的工具並不具有明確的工具中心點。例如,部分使用者會將相機作為工具設置在法蘭面上,以利用相機結合機器手臂來實現光學檢測程序。由於相機不具有實體的工具中心點,因此在相關技術的機器手臂中,將無法直接對相機進行有效的校正程序。
另一方面,若要於環境中增設額外的感測器來實現相機的校正程序,將會導致成本的增加,因而不受本領域技術人員的青睞。
本發明的主要目的,在於提供一種機器手臂的虛擬工具點的視覺校正方法,可以不需要設置額外的感測器,而直接對設置在法蘭面上的相機進行校正。
為了達成上述目的,本發明的視覺校正方法主要應用於具有一機器手臂、一相機及一球體的一校正系統,其中該機器手臂的一端具有一法蘭面並使用一機器手臂座標系,該相機設置於該法蘭面上並使用一相機座標系,並且該視覺校正方法包括下列步驟:
a)基於該機器手臂座標系控制該機器手臂移動,以令該球體進入該相機的畫面中;
b)控制該機器手臂沿著三軸的方向依序進行平移,以記錄該球體的一球體資訊,並基於該球體資訊計算該球體相對於該相機座標系的三組移動向量;
c)基於該三組移動向量計算該相機座標系相對於該機器手臂座標系的一旋轉矩陣,並推算該相機座標系相對於該法蘭面的一姿態;
d)基於該機器手臂座標系及該旋轉矩陣來使用該相機座標系,以控制該相機通過不同角度捕捉該球體的一清晰影像並且記錄至少三筆校正點資訊,其中該清晰影像是於該球體位於該相機前的一虛擬工具點上時被捕捉;
e)基於該至少三筆校正點資訊計算該虛擬工具點相對於該法蘭面的一偏移量;及
f)基於該姿態及該偏移量完成該相機的該虛擬工具點的一校正程序。
本發明將相機安裝至機器手臂上的任意位置以做為機器手臂的工具,並透過視覺方式來直接對相機進行校正。相較於相關技術,本發明在安裝程序上不需要使用特定的安裝治具,也不需要限制相機的安裝位置及角度,提高了使用彈性及便利性。在校正程序上,本發明不需要使用額外的感測器來對相機進行校正,從而降低了校正成本。
茲就本發明之一較佳實施例,配合圖式,詳細說明如後。
首請參閱圖1,為本發明的機器手臂的示意圖的具體實施例。本發明揭露了一種機器手臂的虛擬工具點的視覺校正方法(下面將於說明書中簡稱為校正方法),所述校正方法主要應用於一種機器手臂系統。於圖1的實施例中,所述機器手臂系統主要包括機器手臂1、設置於機器手臂1上的相機3,以及任意放置在機器手臂1外部的空間中的球體4。
機器手臂1的一端固定設置於地面或平台上,另一端具備有法蘭面(Flange)2。本發明中,相機3透過非特定的固定手段被設置於法蘭面2的外側。
機器手臂1的使用者可以依照實際需求,於法蘭面2上設置對應的工具,例如爪具或螺絲刀等,不加以限定。若使用者欲使用機器手臂1來進行光學檢測,則可將相機3做為工具,安裝於法蘭面2上。一般來說,相機3並不具有實體的工具中心點(Tool Center Point, TCP),因此無法透過一般的校正手段及治具來為相機3進行校正程序。本發明的其中一個技術特徵在於,在不使用額外的感測器的情況下,可藉由視覺方式來直接對機器手臂1上的相機3進行校正。
具體地,由於相機3並不具有一個可以被明確識別的實體工具中心點,因此在將相機3做為機器手臂1的工具的情境中,使用者並不曉得機器手臂1要移動到哪個位置並呈現什麼姿態,才能夠令相機3拍攝到待測物的清晰影像。
本發明的技術手段是通過測試來確認相機3前方的一個清晰點,並將這個清晰點做為相機3的虛擬工具點(Virtual TCP)。
具體地,相機3依照其原生規格具有一段清楚的成像範圍,本發明將成像範圍中的一個特定點做為相機3的虛擬工具點。這個虛擬工具點與相機3的本體間存在一個特定的物距,本發明將此物距視為一個實體工具的長度,進而將此物距的端點(即,所述特定點)做為相機3的虛擬工具點。當一個物體位於相機3前方的虛擬工具點上時,相機3可以捕捉這個物體的清晰影像,進而可以實現有效的光學檢測。
於一實施例中,所述相機3為定焦相機,而具有一段固定的成像範圍,但不以此為限。
為了獲取所述虛擬工具點並且對相機3進行校正,本發明於空間中放置一顆大小適中的球體4。本發明中,只要一顆球體4可以被相機3的畫面全部涵蓋,並且在相機3移動了指定位移量後仍可存在於相機3的畫面中,即可被本發明的機器手臂系統所使用。
所述球體4必須為正圓形的球體4。
如圖1所示,機器手臂1使用機器手臂座標系S1(Xm,Ym,Zm),法蘭面2使用法蘭面座標系S2(Xf,Yf,Zf),相機3使用相機座標系S3(Xc,Yc,Zc),而相機3上的虛擬工具點則使用工具座標系S4(Xt,Yt,Zt)。
機器手臂座標系S1與法蘭面座標系S2間的對應關係可透過機器人運動學(robot kinematics)關係來直接獲得,但法蘭面座標系S2與相機座標系S3間的對應關係為未知。其中,相機座標系S3與工具座標系S4設定為相同姿態,僅有偏移量的差別。所述機器人運動學關係為本技術領域中的公知技術,於此不再贅述。
本發明的視覺校正方法主要是透過相機3及球體4來對相機3的虛擬工具點31進行校正,藉此獲得法蘭面座標系S2與相機座標系S3間的對應關係。在獲得了法蘭面座標系S2與相機座標系S3間的對應關係後,機器手臂系統即可基於相機座標系S3來直接對機器手臂1/相機3進行準確的控制。
請同時參閱圖1及圖2,其中圖2為本發明的校正方法的流程圖的具體實施例。
本發明中,使用者在欲使用相機3進行光學檢測時,可將相機3安裝至機器手臂1的法蘭面2上。此時,相機3的虛擬工具點(即,相機3前方一個可以清晰成像的位置,且此位置具有工具座標系S4)相對於法蘭面2的姿態(orientation)及偏移量(offset)是未知的,因此需要先執行本發明的視覺校正方法以獲得所述姿態及偏移量,藉此完成相機3及其虛擬工具點的校正程序。如上所述,相機3具有相機座標系S3而虛擬工具點具有工具座標系S4,且相機座標系S3與工具座標系S4設定為相同姿態。因此,當找出工具座標系S4相對於法蘭面2的姿態後,即可將該姿態代換為相機座標系S3相對於法蘭面2的姿態。換句話說,找出了工具座標系S4相對於法蘭面2的姿態,即代表同時找出了相機座標系S3相對於法蘭面2的姿態,而不需再另外計算。
值得一提的是,本發明的視覺校正方法主要可由使用者手動控制機器手臂1的移動來加以實現,或是由機器手臂系統中的一個處理器(圖未標示)自動控制機器手臂1的移動來實現,不加以限定。為了便於理解本發明,下面將於說明書中以由機器手臂系統的處理器對機器手臂1進行控制的技術方案來進行說明,但並不以此限制本發明的專利範圍。
如圖2所示,首先,機器手臂系統的處理器基於機器手臂座標系S1來控制機器手臂1移動,以令空間中的球體4進入相機3的畫面中(步驟S10)。
如上所述,相機3被安裝在機器手臂1一端的法蘭面2上,因此當機器手臂1移動時,相機3會隨著法蘭面2的移動而改變位置。然而,本發明的其中一個技術特徵在於不使用特定的安裝治具,並且不限制相機3安裝於法蘭面2上的位置及角度,因此相機3相對於法蘭面2的姿態及偏移量是未知的。據於上述原因,處理器於步驟S10中只能基於機器手臂座標系S1來對機器手臂1進行控制,因此機器手臂1的移動向量相對於機器手臂座標系S1和相機座標系S3的表示可能相等或不相等。
接著,處理器基於機器手臂座標系S1繼續控制機器手臂1,以令機器手臂1沿著三軸的方向依序進行平移,並且於平移至定點後記錄球體4的球體資訊(步驟S12)。其中,處理器還可在控制機器手臂1移動前先記錄球體4的初始球體資訊。
具體地,處理器於上述步驟S12中,是在不改變機器手臂1的姿態的前提下,控制機器手臂1沿著機器手臂座標系S1上的x軸、y軸及z軸分別進行三次平移動作。隨著機器手臂1的每一次平移動作,球體4於相機3的畫面中的位置會對應改變。於機器手臂1每一次的平移動作結束時,球體4會分別坐落在畫面中的一個特定參考點。於一實施例中,所述球體資訊(及初始球體資訊)至少包括球體4於相機座標系S3上的參考點位置,以及球體4在相機3的畫面(例如圖3所示的畫面30)中呈現的直徑(容後詳述)。
值得一提的是,相機3本身使用相機座標系S3,而相機3所讀取到的影像還具有影像座標系(圖未標示)。一般來說,相機座標系S3與相機3內部的影像座標系會因為所拍攝的物體(例如球體4)與相機3間的距離(z軸)不同,而在x軸及y軸方向上有縮小/放大的狀況。在一定的誤差範圍內,可以將相機座標系S3與影像座標系視為相同,但在此前提下,機器手臂1在機器人座標系S1的三個軸向上的運動不能太大。
若將相機座標系S3與影像座標系視為相同,則處理器可將相機3使用內部的影像座標系感測到的影像資料直接當做相機座標系S3上的資料,並進行後續的計算程序。若將相機座標系S3與影像座標系視為不同座標系,則處理器在相機3使用內部的影像座標系感測到了影像資料後,先透過一個縮小/放大的轉換關係將影像座標系上的影像資料轉換到相機座標系S3上後,再使用轉換後的資料進行後續的計算程序。
為了便於理解,下面以將相機座標系S3與影像座標系視為相同座標系的技術手段,進行說明,但並不以此為限。
步驟S12後,處理器可基於四筆球體資訊(包括一筆在起點記錄的初始球體資訊與三筆從起點移動三個方向至定點後記錄的球體資訊)來計算球體4相對於相機座標系S3的三組移動向量 (步驟S14)。於步驟S14中,處理器分別將三個移動後的定點的資訊減去起點的資訊,以獲得三組移動向量,其中這三組移動向量分別對應至球體4於相機座標系S3上的移動。
值得一提的是,本發明主要是將球體4在相機3的畫面中的態樣記錄成所述球體資訊,然而相機3的畫面30僅能描繪一個二維空間,並且相機3所拍攝的影像為2D影像,無法表現深度資訊(即,只能看到相機座標系S3上的X軸及Y軸的像素),因此上述移動向量中的z軸分量將是未知的。對此,機器手臂系統的處理器還需透過球體資訊以及三組移動向量中的x軸分量以及y軸分量來計算出正確的z軸分量(容後詳述)。
步驟S14後,處理器可基於所述三組移動向量來計算相機座標系S3相對於機器手臂座標系S1的旋轉矩陣,並且可推算出相機座標系S3相對於法蘭面2的姿態(步驟S16)。更具體地,工具座標系S4與相機座標系S3係設定為相同姿態,因此處理器於步驟S16中可同時推算出相機座標系S3相對於法蘭面2的姿態以及工具座標系S4相對於法蘭面2的姿態。
具體地,機器手臂座標系S1與法蘭面座標系S2間的對應關係可透過機器人運動學關係來獲得,故可視為一筆已知資訊。據此,當處理器計算取得相機座標系S3相對於機器手臂座標系S1的旋轉矩陣後,即可基於機器手臂座標系S1、所述旋轉矩陣以及機器人運動學關係來推算出相機座標系S3相對於法蘭面2的姿態。
在步驟S16後,處理器即可獲得相機3相對於法蘭面2的姿態,同時也可得知工具座標系S4對於法蘭面座標系S2的姿態。若要完成對相機3的校正程序,還需要進一步獲得虛擬工具點31相對於法蘭面2的偏移量。
步驟S16後,處理器可基於機器手臂座標系S1以及所述旋轉矩陣來使用相機座標系S3直接控制相機3,令相機3透過至少三個不同的角度捕捉球體4的清晰影像,並且記錄至少三筆校正點資訊(步驟S18)。本發明中,若相機3受控制而移動至一特定位置,並且可以捕捉到球體4的清晰影像,則處理器可假定球體4的當前位置坐落在相機3前方的虛擬工具點31上。
於一實施例中,所述捕捉動作指的是讓球體4於相機3的畫面30中清晰成像。於另一實施例中,所述捕捉動作指的是由相機3直接拍攝球體4的影像。惟,上述僅為本發明的部分具體實施範例,但不以此為限。
所述校正點資訊可例如包括當球體4坐落在虛擬工具點31上時,機器手臂1所呈現的姿態。並且,所述校正點資訊還可例如包括球體4在畫面30中的座標,以及球體4在畫面30中呈現的直徑(容後詳述)。
如上所述,所有校正點資訊都是於球體4坐落在虛擬工具點31上時被記錄的,因此基於這些校正點資訊,處理器即可計算出虛擬工具點31相對於法蘭面2的偏移量(步驟S20)。
最後,在於步驟S16中獲得了相機座標系S3相對於法蘭面2的姿態(相同於工具座標系S4相對於法蘭面2的姿態),並且於步驟S20中獲得了虛擬工具點31相對於法蘭面2的偏移量後,處理器即可基於所述姿態及所述偏移量來完成對相機3/虛擬工具點31的校正程序(步驟S22)。
於所述校正程序完成後,機器手臂系統即可透過工具座標系S4來直接控制虛擬工具點移動,以令待測物坐落在相機3前方的虛擬工具點31上,藉此讓相機3拍攝待測物的清晰影像,進而可以實現有效的光學檢測。
續請同時參閱圖3、圖4及圖5,其中圖3為本發明的相機移動示意圖的具體實施例,圖4為本發明的相機座標系的示意圖的具體實施例,圖5為本發明的旋轉矩陣的建立流程圖的具體實施例。圖5用來對圖2中的步驟S10至步驟S16做更進一步的詳細說明。
如圖3所示,在要計算相機座標系S3/工具座標系S4相對於法蘭面2的姿態時,首先由處理器基於機器手臂座標系S1控制機器手臂1移動,以令球體4位於相機3的畫面30中的一個初始參考點p0c,並且記錄初始參考點p0c在相機座標系S3中的初始座標及球體4於畫面30中的初始直徑(步驟S30)。
參照圖3及圖4的實施例,所述初始參考點p0c的初始座標可例如為(p0cx,p0cy,p0cz),所述初始直徑可例如為d0。具體地,本發明的機器手臂系統可以透過影像處理功能來於相機3的畫面30中對球體4進行定位,藉此獲取初始參考點p0c的初始座標以及初始直徑,但不加以限定。
接著,處理器控制機器手臂1沿著x軸平移第一指定向量Lx(不一定像圖3所示一樣與影像軸平行),以令球體4位於相機3的畫面30中的第一參考點p1c,並且記錄第一參考點p1c在相機座標系S3上的第一座標及球體4於畫面30中的第一直徑(步驟S32)。
本實施例中,所述平移動作指的是控制機器手臂1僅進行x軸方向上的移動,在y軸方向及z軸方向上皆不移動,並且不改變機器手臂1的姿態。此處的x軸方向、y軸方向和z軸方向皆是參考於機器手臂座標系S1。
機器手臂1沿著x軸方向平移了第一指定向量Lx的距離,意謂著球體4相對於相機3沿著反方向平移了第一指定向量Lx的距離(即,球體4相對於相機3的運動參考於機器手臂座標系S1是(-Lx,0,0)的向量)。參照圖3及圖4的實施例,所述第一參考點p1c的第一座標可例如為(p1cx,p1cy,p1cz)。具體地,本發明的機器手臂系統可以透過影像處理功能來於相機3的畫面30中對球體4進行定位,並獲取第一參考點p1c的第一座標的x軸分量、y軸分量以及球體4的第一直徑,但不加以限定。
另外,雖然機器手臂1並沒有沿著z軸方向移動,但是球體4相對於相機3的姿態是未知的,因此在機器手臂1移動了第一指定向量Lx的距離後,球體4於畫面30中的尺寸可能會有所改變(亦可能不變)。如圖3所示,所述第一直徑可例如為d1,其中第一直徑d1可能大於、小於或等於初始直徑d0。
接著,處理器控制機器手臂1沿著y軸平移第二指定向量Ly(不一定像圖3所示一樣與影像軸平行),以令球體4位於相機3的畫面30中的一個第二參考點p2c,並且記錄第二參考點p2c於相機座標系S3上的第二座標及球體4於畫面30中的第二直徑(步驟S34)。步驟S34中執行的平移動作控制機器手臂1僅於y軸方向移動,在x軸方向及z軸方向上皆不移動,並且不改變機器手臂1的姿態。此處的x軸方向、y軸方向和z軸方向皆是參考於機器手臂座標系S1。
在機器手臂1沿著y軸方向平移了第二指定向量Ly的距離後,球體4即相對相機3沿著反方向平移了第二指定向量Ly的距離(即,球體4相對於相機3的運動參考於機器手臂座標系S1是(0,-Ly,0)的向量)。如圖3及圖4所示,所述第二參考點p2c的第二座標可例如為(p2cx,p2cy,p2cz)。具體地,本發明的機器手臂系統可以透過影像處理功能來於相機3的畫面30中對球體4進行定位,並獲取第二參考點p2c的第二座標的x軸分量、y軸分量以及球體4的第二直徑,但不加以限定。
另外,當機器手臂1移動了第二指定向量Ly後,球體4於畫面30中的尺寸可能會有所改變(亦可能不變)。如圖3所示,所述第二直徑可例如為d2,其中第二直徑d2可能大於、小於或等於初始直徑d0。
接著,處理器控制機器手臂1沿著z軸平移第三指定向量Lz(不一定像圖3所示一樣與影像軸平行),以令球體4位於相機3的畫面30中的一個第三參考點p3c,並且記錄第三參考點p3c於相機座標系S3上的第三座標以及球體4於畫面30中的第三直徑(步驟S36)。步驟S36中執行的平移動作控制機器手臂1僅於z軸方向移動,在x軸方向及y軸方向上皆不移動,並且不改變機器手臂1的姿態。此處的x軸方向、y軸方向和z軸方向皆是參考於機器手臂座標系S1。
在機器手臂1沿著z軸方向平移了第三指定向量Lz的距離後,球體4即相對相機3沿著反方向平移了第三指定向量Lz的距離(即,球體4相對於相機3的運動參考於機器手臂座標系S1是(0,0,-Lz)的向量)。如圖3及圖4所示,所述第三參考點p3c的第三座標可例如為(p3cx,p3cy,p3cz)。具體地,本發明的機器手臂系統可以透過影像處理功能來於相機3的畫面30中對球體4進行定位,並獲取第三參考點p3c的第三座標的x軸分量、y軸分量以及球體4的第三直徑,但不加以限定。
另外,當機器手臂1移動了第三指定向量Lz後,球體4於畫面30中的尺寸可能會有所改變(亦可能不變)。如圖3所示,所述第三直徑可例如為d3,其中第三直徑d3可能大於、小於或等於初始直徑d0。
於上述步驟S34中,處理器可以於球體4位於第一參考點p1c上時,直接控制機器手臂1沿著y軸方向平移第二指定向量Ly的距離,或是先控制機器手臂1移動以令球體4回到初始參考點p0c後,再控制機器手臂1沿著y軸方向平移第二指定向量Ly的距離。
相似地,於上述步驟S36中,處理器可以於球體4位於第二參考點p2c上時,直接控制機器手臂1沿著z軸方向平移第三指定向量Lz的距離,或是先控制機器手臂1移動以令球體4回到初始參考點p0c後,再控制機器手臂1沿著z軸方向平移第三指定向量Lz的距離。
惟,上述僅為本發明的部分具體實施範例,但並不以此為限。
值得一提的是,上述步驟S32、步驟S34及步驟S36的目的在於記錄三筆球體資訊(即,球體4於相機座標系S3上的座標的x軸分量與y軸分量以及於畫面30上呈現的直徑),因此處理器可以依照任意順序來執行步驟S32、步驟S34及步驟S36。換句話說,步驟S32、步驟S34及步驟S36並不具有必然的執行順序關係,而不以圖5所示的順序為限。另外,上述步驟S30的目的則在於記錄一筆初始球體資訊。
步驟S36後,處理器取得了球體4的四筆球體資訊(包含初始球體資訊),並可基於四筆球體資訊計算球體4相對於相機座標系S3的三組移動向量(步驟S38)。
更具體地,若處理器在控制機器手臂1移動前需先回到初始參考點p0c,則在步驟S38中,處理器是基於四筆球體資訊(包含在初始參考點p0c上取得的初始球體資訊)來計算球體4相對於相機座標系S3的三組移動向量。惟,上述僅為本發明的其中一個具體實施範例,但並不以此為限。
具體地,上述步驟S38主要是依據初始參考點p0c的初始座標、第一參考點p1c的第一座標、第二參考點p2c的第二座標、第三參考點p3c的第三座標、初始直徑d0、第一直徑d1、第二直徑d2及第三直徑d3來計算三組移動向量。所述三組移動向量包括第一移動向量、第二移動向量及第三移動向量,其中第一移動向量由第一x軸分量、第一y軸分量及第一z軸分量組成,第二移動向量由第二x軸分量、第二y軸分量及第二z軸分量組成,而第三移動向量由第三x軸分量、第三y軸分量及第三z軸分量組成。
以圖4為例,在步驟S38中,處理器主要可以依據第一座標(例如(p1cx,p1cy,p1cz))與初始座標(例如(p0cx,p0cy,p0cz))的差值來計算第一移動向量中的第一x軸分量以及第一y軸分量,依據第二座標(例如(p2cx,p2cy,p2cz))與初始座標(例如(p0cx,p0cy,p0cz))的差值來計算第二移動向量中的第二x軸分量以及第二y軸分量,並依據第三座標(例如(p3cx,p3cy,p3cz))與初始座標(例如(p0cx,p0cy,p0cz))的差值來計算第三移動向量中的第三x軸分量以及第三y軸分量。
值得一提的是,上述步驟S30至步驟S36所記錄的球體資訊,主要包括在相機3的畫面30中對球體4進行定位後所獲得的座標位置,但相機3的畫面30屬於二維空間而無法表現深度資訊。也就是說,透過計算初始座標與第一座標、第二座標以及第三座標的差值,無法直接獲得三組移動向量中的z軸分量。
上述初始座標、第一座標、第二座標及第三座標是在基於機器手臂座標系S1控制機器手臂1的移動後所記錄下來的座標。根據座標系的三軸正交關係,可以獲得下列三個方程式。本發明中,處理器可以基於所述第一x軸分量、第一y軸分量、第二x軸分量、第二y軸分量、第三x軸分量及第三y軸分量來執行下列三個方程式,藉此獲得三組移動向量中的第一z軸分量、第二z軸分量及第三z軸分量。當第一z軸分量、第二z軸分量及第三z軸分量計算完成後,處理器即可獲得完整的第一移動向量(例如可表示為(a1,b1,c1))、第二移動向量(例如可表示為(a2,b2,c2))以及第三移動向量(例如可表示為(a3,b3,c3))(步驟S40)。
第一方程式:c1c2 = –a1a2 – b1b2。
第二方程式:c2c3 = –a2a3 – b2b3。
第三方程式:c1c3 = –a1a3 – b1b3。
於上述方程式中,a1為第一x軸分量、a2為第二x軸分量、a3為第三x軸分量、b1為第一y軸分量、b2為第二y軸分量、b3為第三y軸分量、c1為第一z軸分量、c2為第二z軸分量,而c3為第三z軸分量。
值得一提的是,透過上述第一方程式、第二方程式及第三方程式,將會分別求得兩組第一z軸分量、兩組第二z軸分量以及兩組第三z軸分量,其中包括第一組(c1, c2, c3)的解以及第二組(c1, c2, c3)的解,並且兩組解會相差一個負號。例如,若第一組解為(2, 3, -4),則第二組解即為(-2, -3, 4)。換句話說,當第一z軸分量(c1)、第二z軸分量(c2)以及第三z軸分量(c3)的其中之一被確定後,另外兩個分量的正負號即可被確定。
於上述步驟S40中,處理器主要可以透過比較第一直徑d1與初始直徑d0的大小來判斷球體4由初始參考點p0c移動至第一參考點p1c時是遠離相機3或靠近相機3,進而決定要使用第一z軸分量的負解或正解。
舉例來說,若第一直徑d1大於初始直徑d0,代表球體4從初始參考點p0c移動至第一參考點p1c時是靠近相機3,此時處理器會取第一z軸分量的正解。反之,若第一直徑d1小於初始直徑d0,代表球體4從初始參考點p0c移動至第一參考點p1c時是遠離相機3,此時處理器會取第一z軸分量的負解。
當處理器經由上述計算方法判斷需取用第一z軸分量的正解時,即可同時確定第二z軸分量以及第三z軸分量的正負號。例如,若第一組(c1, c2, c3)的解整體乘積為正,且需取用第一z軸分量的正解,則處理器可同時確定需取用第二z軸分量的正解以及第三z軸分量的正解,或是取用第二z軸分量的負解以及第三z軸分量的負解。再例如,若第一組(c1, c2, c3)的解整體乘積為負,且需取用第一z軸分量的正解,則處理器可同時確定需取用第二z軸分量的正解以及第三z軸分量的負解,或是取用第二z軸分量的負解以及第三z軸分量的正解。
相對地,當處理器經由上述計算方法判斷需取用第一z軸分量的負解時,即可按照上述之相同邏輯來同時確定第二z軸分量以及第三z軸分量的正負號。
於上述步驟S40中,處理器亦可比較第二直徑d2與初始直徑d0的大小來判斷球體4由初始參考點p0c移動至第二參考點p2c時是遠離相機3或靠近相機3,進而決定要取用第二z軸分量的負解或正解。或者,處理器亦可比較第三直徑d3與初始直徑d0的大小來判斷球體4由初始參考點p0c移動至第三參考點p3c時是遠離相機3或靠近相機3,進而決定要取用第三z軸分量的負解或正解。
如前文所述,基於方程式求解程序,處理器在上述步驟S40中只要確認要取用第一z軸分量、第二z軸分量及第三z軸分量的其中之一的正解或是負解,就可以同時確定另外兩個分量要取用正解或是負解。因此,處理器於步驟S40中可以使用讓直徑有明顯變化的移動向量來判斷要使用對應的z軸分量的正解或負解,而不需要分別對三個z軸分量都進行正負號的判斷。
惟,上述僅為本發明的具體實施範例,但並不以上述為限。
當確定了正確的第一z軸分量、第二z軸分量以及第三z軸分量後,處理器即可由第一x軸分量、第一y軸分量及第一z軸分量來形成第一移動向量,例如為(a1,b1,c1)。並且,處理器可由第二x軸分量、第二y軸分量及第二z軸分量來形成第二移動向量,例如為(a2,b2,c2)。並且,處理器可由第三x軸分量、第三y軸分量及第三z軸分量來形成第三移動向量,例如為(a3,b3,c3)。
步驟S40後,處理器即確定了第一移動向量、第二移動向量及第三移動向量。接著,透過對第一移動向量、第二移動向量及第三移動向量進行正規化處理以將這些移動向量轉成單位長度後,即可產生相機座標系S3相對於機器手臂座標系S1的旋轉矩陣(步驟S42)。
於一實施例中,所述旋轉矩陣可例如為:
所述旋轉矩陣中的t代表第一移動向量,u代表第二移動向量,而v代表第三移動向量。處理器於步驟S42中主要是將第一x軸分量a1、第一y軸分量b1及第一z軸分量c1分別除以第一移動向量t的長度,將第二x軸分量a2、第二y軸分量b2及第二z軸分量c2分別除以第二移動向量u的長度,並將第三x軸分量a3、第三y軸分量b3及第三z軸分量c3分別除以第三移動向量v的長度,藉此完成正規化處理。
於步驟S42後,相機座標系S3相對於機器手臂座標系S1的旋轉矩陣即成為已知資訊。此時,由於機器手臂座標系S1與法蘭面座標系S2間的對應關係也是已知的,因此處理器可直接推算出相機座標系S3相對於法蘭面2的姿態。
續請同時參閱圖6A、圖6B、圖7A、圖7B及圖8,其中圖6A為本發明的相機拍攝示意圖的第一具體實施例,圖6B為球體成像示意圖的第一具體實施例,圖7A為本發明的相機拍攝示意圖的第二具體實施例,圖7B為球體成像示意圖的第二具體實施例,圖8為本發明的偏移量計算流程圖的具體實施例。圖8用來對圖2中的步驟S18至步驟S20做更進一步的詳細說明。
於圖2的步驟S16後,機器手臂系統的處理器即可獲得相機座標系S3相對於機器手臂座標系S1的旋轉矩陣。基於機器手臂座標系S1以及旋轉矩陣,處理器可以直接使用相機座標系S3來精準地控制機器手臂1上的相機3。
如圖6A、圖6B及圖8所示,在要計算相機3的虛擬工具點31相對於法蘭面2的偏移量時,首先由處理器基於相機座標系S3來(透過機器手臂1)控制相機3移動,並且令球體4落入相機3的畫面30上的任意參考點(步驟S50)。
如圖6A及圖6B所示,處理器於步驟S50中主要是使用相機座標系S3來控制相機3移動至指定位置。於這個指定位置上,相機3從特定角度對準球體4,並且可以補捉到球體4的整體影像,意即,可以令球體4的整體進入相機3的畫面30中。於圖6A的實施例中,處理器是令相機3從球體4的右側對準球體4,但不以此為限。
於一實施例中,所述任意參考點可例如為前述的初始參考點p0c。於另一實施例中,所述令球體4落入畫面30中的任意參考點的動作,是指讓球體4的圓心40位於畫面30的正中央。惟,上述僅為本發明的部分實施範例,但並不以此為限。
接著,處理器再次使用相機座標系S3來使相機3移動,以調整相機3與球體4間的距離,藉此讓球體4可以清晰成像,並於畫面30上呈現球體4的清晰影像(步驟S52)。於一實施例中,所述距離是由使用者自行決定,或由處理器經計算後獲得,但不加以限定。
具體地,處理器於步驟S50及步驟S52中調整相機3的位置,目的在於令球體4可以落在相機3的畫面30中適當位置並與相機3間隔適當距離,如此一來,機器手臂系統可以將球體4的所在位置視為是相機3前方的虛擬工具點31。當相機3再次移動,並且將其他物件放置於相機3前方的虛擬工具點31時,相機3必定可以擷取此物件的清晰影像。如此一來,使用者可以在校正完成後,使用相機3前方的虛擬工具點31做為機器手臂1上的工具,以實現光學檢測。
於步驟S52後,相機3可以捕捉球體4的清晰影像,因此可將球體4的當前位置認定為虛擬工具點31。此時,處理器可記錄球體4當前的校正點資訊(步驟S54)。於一實施例中,所述校正點資訊至少包括機器手臂1的當前姿態、球體4當前於畫面30中的座標,以及球體4當前於畫面30中呈現的直徑等(例如圖6B中所示的直徑df)。
接著,處理器判斷是否已經取得了足夠數量的校正點資訊(步驟S56)。於一實施例中,所述足夠數量的校正點資訊為至少三筆的校正點資訊,但並不以此為限。
若於步驟S56中判斷尚未取得足夠數量的校正點資訊,則處理器基於相機座標系S3來控制機器手臂1移動或旋轉,以改變相機3相對於球體4的拍攝角度(步驟S58)。意即,處理器藉由對機器手臂1的控制,令相機3以不同於前一次使用的角度來正對球體4。接著,處理器再次執行步驟S50至步驟S54,以從不同角度來獲取球體4的清晰影像並取得另一筆校正點資訊。
如上所述,於再次執行步驟S50時,處理器是控制機器手臂1/相機3移動或旋轉,以改變相機3相對於球體4的角度。於圖7A的實施例中,處理器是令相機3從球體4的上方對準球體4,但不以此為限。
於再次執行步驟S52時,處理器同樣會調整相機3相對於球體4的距離,藉此讓球體4位於前述虛擬工具點31上。如圖7A所示,處理器令球體4在相機3的畫面30中的直徑,相同於前一次記錄所述校正點資訊時球體4在畫面30中呈現的直徑df。
更具體地說,本發明的處理器在記錄球體4的多筆校正點資訊時,會改變相機3相對於球體4的拍攝角度,但是會讓球體4坐落在畫面30中的相同位置(例如上述的任意參考點或初始參考點p0c),並且令球體4在畫面30中呈現相同的直徑df(即,令相機3與球體4間的距離維持相同)。
藉由讓球體4在相機3的畫面30中保持相同的態樣,處理器可以確認相機3相對於球體4的拍攝角度改變後,球體4都仍位於虛擬工具點31上。如此一來,處理器所記錄的多筆校正點資訊可被用來指出同一個虛擬工具點31的位置。藉此,如圖8所示,處理器可以在取得了符合數量(例如至少三筆)的校正點資訊後,基於這些校正點資訊計算虛擬工具點31相對於機器手臂1的法蘭面2的偏移量(步驟S60)。
最後,如圖2的步驟S22所示,在獲得了相機座標系S3相對於法蘭面2的姿態以及虛擬工具點31相對於法蘭面2的偏移量後,處理器即可完成對相機3及其前方的虛擬工具點31的校正程序。更具體地,處理器可將所述姿態及偏移量寫入機器手臂系統中做為控制參數的其中之一,以完成所述校正程序。
在完成了校正程序後,處理器可將相機3做為是機器手臂1的其中一種工具來使用。當使用者欲使用相機3來進行光學檢測時,可以直接使用工具座標系S4來精準地控制相機3進行移動,並使待檢測物能夠準確地位於虛擬工具點31上。藉此,確保相機3能夠取得待檢測物的清晰影像,進而能夠有效地獲得光學檢測的精準結果。
以上所述僅為本發明之較佳具體實例,非因此即侷限本發明之專利範圍,故舉凡運用本發明內容所為之等效變化,均同理皆包含於本發明之範圍內,合予陳明。
1…機器手臂 2…法蘭面 3…相機 30…相機畫面 31…虛擬工具點 4…球體 40…圓心 d0、d1、d2、d3、df…直徑 S1…機器人座標系 S2…法蘭面座標系 S3…相機座標系 S4…工具座標系 S10~S22…校正步驟 S30~S42…矩陣建立步驟 S50~S60…偏移量計算步驟
圖1為本發明的機器手臂的示意圖的具體實施例。
圖2為本發明的校正方法的流程圖的具體實施例。
圖3為本發明的相機移動示意圖的具體實施例。
圖4為本發明的相機座標系的示意圖的具體實施例。
圖5為本發明的旋轉矩陣的建立流程圖的具體實施例。
圖6A為本發明的相機拍攝示意圖的第一具體實施例。
圖6B為球體成像示意圖的第一具體實施例。
圖7A為本發明的相機拍攝示意圖的第二具體實施例。
圖7B為球體成像示意圖的第二具體實施例。
圖8為本發明的偏移量計算流程圖的具體實施例。
S10~S22…校正步驟

Claims (8)

  1. 一種機器手臂的虛擬工具點的視覺校正方法,應用於具有一機器手臂、一相機及一球體的一校正系統,其中該機器手臂的一端具有一法蘭面並使用一機器手臂座標系,該相機設置於該法蘭面上並使用一相機座標系,該視覺校正方法包括:a)基於該機器手臂座標系控制該機器手臂移動,以令該球體進入該相機的一畫面中;b)控制該機器手臂沿著三軸的方向依序進行平移,記錄該球體的一球體資訊,並基於該球體資訊計算該球體相對於該相機座標系的三組移動向量,其中該球體資訊包括該球體於該相機座標系上的一參考點位置,以及該球體於該畫面中呈現的一直徑,並且該步驟b)包括:b1)控制該機器手臂移動以令該球體位於該畫面中的一初始參考點,並記錄該初始參考點於該相機座標系上的一初始座標以及該球體於該畫面中的一初始直徑;b2)控制該機器手臂沿一x軸平移一第一指定向量,以令該球體位於該畫面中的一第一參考點,並記錄該第一參考點於該相機座標系上的一第一座標以及該球體於該畫面中的一第一直徑;b3)控制該機器手臂沿一y軸平移一第二指定向量,以令該球體位於該畫面中的一第二參考點,並記錄該第二參考點於該相機座標系上的一第二座標以及該球體於該畫面中的一第二直徑; b4)控制該機器手臂沿一z軸平移一第三指定向量,以令該球體位於該畫面中的一第三參考點,並記錄該第三參考點於該相機座標系上的一第三座標以及該球體於該畫面中的一第三直徑;及b5)依據該初始座標、該第一座標、該第二座標、該第三座標、該初始直徑、該第一直徑、該第二直徑及該第三直徑計算該三組移動向量;c)基於該三組移動向量計算該相機座標系相對於該機器手臂座標系的一旋轉矩陣,並推算該相機座標系相對於該法蘭面的一姿態;d)基於該機器手臂座標系及該旋轉矩陣來使用該相機座標系,以控制該相機通過不同角度捕捉該球體的一清晰影像並且記錄至少三筆校正點資訊,其中該清晰影像是於該球體位於該相機前的一虛擬工具點上時被捕捉;e)基於該至少三筆校正點資訊計算該虛擬工具點相對於該法蘭面的一偏移量;及f)基於該姿態及該偏移量完成該相機的該虛擬工具點的一校正程序。
  2. 如請求項1所述的視覺校正方法,其中於該步驟b5)包括依據該第一座標及該初始座標計算一第一移動向量的一第一x軸分量及一第一y軸分量、依據該第二座標及該初始座標計算一第二移動向量的一第二x軸分量及一第二y軸分量,並且依據該第三座標及該初始座標計算一第三移動向量的一第三x軸分量及一第三y軸分量。
  3. 如請求項2所述的視覺校正方法,其中該步驟b5)還包括透過一第一方程式、一第二方程式及一第三方程式計算該第一移動向量的一第一z軸分量、該第二移動向量的一第二z軸分量及該第三移動向量的一第三z軸分量:該第一方程式:c1c2=-a1a2-b1b2;該第二方程式:c2c3=-a2a3-b2b3;該第三方程式:c1c3=-a1a3-b1b3;其中,a1為該第一x軸分量、a2為該第二x軸分量、a3為該第三x軸分量、b1為該第一y軸分量、b2為該第二y軸分量、b3為該第三y軸分量、c1為該第一z軸分量、c2為該第二z軸分量、c3為該第三z軸分量。
  4. 如請求項3所述的視覺校正方法,其中該第一方程式、該第二方程式及該第三方程式共同獲得兩組該第一z軸分量、兩組該第二z軸分量以及兩組該第三z軸分量,該步驟b5)還包括透過該第一直徑及該初始直徑確定正確的該第一z軸分量、透過該第二直徑及該初始直徑確定正確的該第二z軸分量以及透過該第三直徑及該初始直徑確定正確的該第三z軸分量,其中該第一移動向量由該第一x軸分量、該第一y軸分量及正確的該第一z軸分量組成,該第二移動向量由該第二x軸分量、該第二y軸分量及正確的該第二z軸分量組成,該第三移動向量由該第三x軸分量、該第三y軸分量及正確的該第三z軸分量組成。
  5. 如請求項2所述的視覺校正方法,其中該步驟c)包括對該第一移動向量、該第二移動向量及該第三移動向量進行正規化處理以將該第一移動向量、該第二移動向量及該第三移動向量轉成單位長度並產生該旋轉矩陣。
  6. 如請求項1所述的視覺校正方法,其中該步驟c)包括基於旋轉矩陣以及該機器手臂座標系至該法蘭面的一機器人運動學(robot kinematics)關係推算該相機座標系相對於該法蘭面的該姿態。
  7. 如請求項1所述的視覺校正方法,其中該步驟b3)是先控制該機器手臂移動以令該球體回到該初始參考點後,再控制該機器手臂沿該y軸平移該第二指定向量的距離,並且該步驟b4)先控制該機器手臂移動以令該球體回到該初始參考點後,再控制該機器手臂沿該z軸平移該第三指定向量的距離。
  8. 如請求項1所述的視覺校正方法,其中該步驟d)包括:d1)基於該相機座標系控制該相機移動,以令該球體位於該畫面上的一任意參考點;d2)調整該相機相對於該球體間的距離,以令該球體清晰成像並於該畫面中呈現該清晰影像;d3)記錄該球體的該校正點資訊,其中該校正點資訊包括該機器手臂的一當前姿態、該球體於該畫面中的一座標以及該球體於該畫面中的一直徑;d4)於尚未取得至少三筆該校正點資訊前,控制該機器手臂旋轉或移動以令該相機以不同角度正對該球體,並且再次執行該步驟d1)至該步驟d3);及d5)於取得至少三筆該校正點資訊後,基於該至少三筆校正點資訊計算該虛擬工具點相對於該法蘭面的該偏移量。
TW111134357A 2022-09-12 2022-09-12 機器手臂的虛擬工具點的視覺校正方法 TWI837822B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW111134357A TWI837822B (zh) 2022-09-12 2022-09-12 機器手臂的虛擬工具點的視覺校正方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111134357A TWI837822B (zh) 2022-09-12 2022-09-12 機器手臂的虛擬工具點的視覺校正方法

Publications (2)

Publication Number Publication Date
TW202411802A TW202411802A (zh) 2024-03-16
TWI837822B true TWI837822B (zh) 2024-04-01

Family

ID=91228059

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111134357A TWI837822B (zh) 2022-09-12 2022-09-12 機器手臂的虛擬工具點的視覺校正方法

Country Status (1)

Country Link
TW (1) TWI837822B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI693990B (zh) * 2017-07-13 2020-05-21 達明機器人股份有限公司 機器手臂校正端效器的裝置及方法
TWI711910B (zh) * 2018-03-19 2020-12-01 達明機器人股份有限公司 機器手臂校正臂外相機的方法
US20210187745A1 (en) * 2019-12-18 2021-06-24 Industrial Technology Research Institute Automated calibration system and method for a workpiece coordinate frame of a robot
TWI762371B (zh) * 2021-07-06 2022-04-21 財團法人工業技術研究院 機械手臂與輪廓感測器座標系相對關係之自動校正方法與系統

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI693990B (zh) * 2017-07-13 2020-05-21 達明機器人股份有限公司 機器手臂校正端效器的裝置及方法
TWI711910B (zh) * 2018-03-19 2020-12-01 達明機器人股份有限公司 機器手臂校正臂外相機的方法
US20210187745A1 (en) * 2019-12-18 2021-06-24 Industrial Technology Research Institute Automated calibration system and method for a workpiece coordinate frame of a robot
TWI762371B (zh) * 2021-07-06 2022-04-21 財團法人工業技術研究院 機械手臂與輪廓感測器座標系相對關係之自動校正方法與系統

Also Published As

Publication number Publication date
TW202411802A (zh) 2024-03-16

Similar Documents

Publication Publication Date Title
TWI672206B (zh) 機械手臂非接觸式工具中心點校正裝置及其方法以及具有校正功能的機械手臂系統
JP2020116734A (ja) ロボットモーション用のビジョンシステムの自動ハンドアイ校正のためのシステム及び方法
CN110238845B (zh) 最优标定点选取和误差自测量的自动手眼标定方法及装置
CN109754432B (zh) 一种相机自动标定方法及光学动作捕捉系统
KR102280663B1 (ko) 비전 가이드 로봇 암 교정 방법
JP4191080B2 (ja) 計測装置
CN106457562B (zh) 用于校准机器人的方法和机器人系统
CN110666798B (zh) 一种基于透视变换模型的机器人视觉标定方法
JP4021413B2 (ja) 計測装置
CN110136208A (zh) 一种机器人视觉伺服系统的联合自动标定方法及装置
CN114714356A (zh) 基于双目视觉的工业机器人手眼标定误差精确检测方法
JP6489776B2 (ja) 座標系校正方法、ロボットシステム、プログラム及び記録媒体
CN110136204B (zh) 基于双侧远心镜头相机机床位置标定的音膜球顶装配系统
CN111801198A (zh) 一种手眼标定方法、系统及计算机存储介质
CN110298888B (zh) 基于单轴高精度位移平台的相机标定方法
CN111515944A (zh) 非固定路径机器人自动标定方法
CN111899305A (zh) 一种相机自动标定优化方法及相关系统、设备
WO2018209592A1 (zh) 一种机器人的运动控制方法、机器人及控制器
CN110136068B (zh) 基于双侧远心镜头相机之间位置标定的音膜球顶装配系统
WO2023134237A1 (zh) 用于机器人的坐标系标定方法、装置、系统以及介质
CN107993227B (zh) 一种获取3d腹腔镜手眼矩阵的方法和装置
TWI837822B (zh) 機器手臂的虛擬工具點的視覺校正方法
CN113781558A (zh) 一种姿态与位置解耦的机器人视觉寻位方法
CN112132903A (zh) 一种视觉系统与多轴运动系统的坐标系标定方法及系统
CN118139729A (zh) 用于自动化校准医学机器人的摄像头的校准方法和外科手术辅助系统