手眼标定原理(眼在手上和眼在手外)
手眼標定是指求解出工業機器人的末端坐標系與相機坐標系之間的坐標變換關系,或者工業機器人的基底坐標系與相機坐標系之間的坐標變換關系。手眼標定有兩種情形:第一種是相機(眼)固定在機器臂(手)的末端,相機相對于機器臂末端是固定的,相機跟隨機器臂移動,這種方式的手眼標定成為 Eye-in-hand;第二種是相機(眼)和機器臂(手)分離,相機相對于工業機器人的基座是固定的,機器臂的運動對相機沒有影響, 這種方式的手眼標定成為 Eye-to-hand。
1、眼在手上的手眼標定
對于 Eye-in-hand 手眼標定方式,需要求解工業機器人的末端坐標系與相機坐標系之間的坐標轉換關系。 Eye-in-hand 手眼標定的原理示意圖如圖 1所示。這其中有幾個坐標系, 基礎坐標系(用 base 表示) 是機器臂的基底坐標系,末端坐標系(用 end 表示) 是機器臂的末端坐標系, 相機坐標系(用 cam 表示) 是固定在機器臂上面的相機自身坐標系,標定物坐標系(用 cal 表示)是標定板所在的坐標系。任意移動兩次機器臂,由于標定板和機器臂的基底是不動的,因此對于某個世界點,其在 base 坐標系和 cal 坐標系下的坐標值不變,在 end 坐標系和 cam 坐標系下的坐標值隨著機器臂的運動而改變。根據這一關系,可以求解出end坐標系和 cam 坐標系之間的轉換矩陣。具體求解過程如下。
對于手眼標定矩陣的求解,即求解出 end 坐標系和 cam 坐標系之間的轉換矩陣,目前有許多方法,基本原理都是根據上述約束關系來求解的。 cal 坐標系下的某個點P0P_0P0?,根據已知的相機外參(轉換矩陣T1T_1T1?)能夠轉換到 cam 坐標系下點 P1 ,再根據待求的手眼標定矩陣(轉換矩陣 X )能夠轉換到 end 坐標系下點 P2P_2P2?,然后根據已知的機器人自身參數(轉換矩陣T3T_3T3?)能夠轉換到 base 坐標系下點 P3P_3P3?。因此能夠得到關系式如下:
T3XT1P0=P3(1)T_3XT_1P_0=P_3 \tag{1} T3?XT1?P0?=P3?(1)
移動機器臂,對于同一點,P0P_0P0?和P3P_3P3?的坐標值不變,只是P1P_1P1?和P2P_2P2?的坐標值改變了,上述關系式變為如下形式:
T3′XT1′P0=P3(2)T_3{^\prime}XT_1^{\prime}P_0=P_3 \tag{2} T3?′XT1′?P0?=P3?(2)
上式中T3′T_3^\primeT3′?和T1′T_1^\primeT1′?同樣是第二次測量的已知參數。聯立(1)和(2)式可以得到如下關系式:
T3XT1=T3′XT1′(3)T_3XT_1=T_3{^\prime}XT_1^{\prime} \tag{3} T3?XT1?=T3?′XT1′?(3)
對式(3)變換一下,可得:
T3′?1T3X=XT1′T1?1(4)T_3 ^{\prime-1}T_3 X=XT_1^{\prime} T_1^{-1} \tag{4} T3′?1?T3?X=XT1′?T1?1?(4)
上式可以看成AX=XBAX=XBAX=XB方程形式,且矩陣A=T3′?1T3A=T_3 ^{\prime-1}T_3A=T3′?1?T3?和B=T1′T1?1B=T_1^{\prime} T_1^{-1}B=T1′?T1?1?都是已知的。對手眼標定方程AX=XBAX=XBAX=XB求解,即可得到手眼轉換矩陣XXX的值。
2、眼在手外的手眼標定
eye-to-hand的手眼標定示意圖如下圖2所示。相機固定在機器臂之外,相機和機器臂底座相對靜止。其中,相機坐標系為OcO_cOc?,標定板坐標系為OwO_wOw?,機器臂末端坐標系為OeO_eOe?,機器臂底座坐標系為ObO_bOb?。涉及到幾個坐標系的轉換,即標定板坐標系到相機坐標系的轉換關系TwcT_w^cTwc?,相機坐標系到機器臂底座坐標系的轉換關系XXX,機器臂底座坐標系到機器臂末端坐標系的轉換關系TbeT_b^eTbe?,其中相機坐標系到機器臂底座坐標系的轉換關系XXX即為需要求解的手眼標定矩陣。
對于上述轉換關系,標定板固定在機器臂末端,在某一位姿下,標定板上的點在標定板坐標系下的坐標值是P1P_1P1?,經過Twc、Tcb、TbeT_w^c、T_c^b、T_b^eTwc?、Tcb?、Tbe?的坐標系轉換關系轉換之后,標定板上的點能夠轉到機器臂末端坐標系下的坐標值P3P_3P3?,轉換關系如下:
TbeXTwcP1=P3(1)T_b^eXT_w^cP_1=P3 \tag{1} Tbe?XTwc?P1?=P3(1)
然后機器臂變換一下位姿,能夠得到另一組上述形式相同的公式,即:
Tbe′XTwc′P1=P3(2)T_b^{e\prime}XT_w^{c\prime}P_1=P3 \tag{2} Tbe′?XTwc′?P1?=P3(2)
上述公式(1)和(2)中的Tbe、Tbe′T_b^e、T_b^{e\prime}Tbe?、Tbe′?能夠通過機器人的位姿輸出得到,Twc、Twc′T_w^c、T_w^{c\prime}Twc?、Twc′?能夠通過單目相機標定的外參得到。上式(1)(2)能夠轉換成以下形式:
TbeXTwc=Tbe′XTwc′(3)T_b^eXT_w^c=T_b^{e\prime}XT_w^{c\prime} \tag{3} Tbe?XTwc?=Tbe′?XTwc′?(3)
進一步的能夠轉成:
Tbe′?1TbeX=XTwc′Twc?1(4)T_b^{e\prime-1}T_b^eX=XT_w^{c\prime}T_w^{c-1} \tag{4} Tbe′?1?Tbe?X=XTwc′?Twc?1?(4)
公式(4)能夠理解成AX=XBAX=XBAX=XB的形式,此時A=Tbe′?1TbeA=T_b^{e\prime-1}T_b^eA=Tbe′?1?Tbe?、B=Twc′Twc?1B=T_w^{c\prime}T_w^{c-1}B=Twc′?Twc?1?,其中A、BA、BA、B都是已知數。通過變換多次機器臂末端位姿,對手眼標定方程AX=XBAX=XBAX=XB求解,即可得到手眼轉換矩陣XXX的值。
總結
以上是生活随笔為你收集整理的手眼标定原理(眼在手上和眼在手外)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NXP恩智浦智能车四轮组-- 2.电磁检
- 下一篇: Matpower安装流程