原文連接:https://blog.csdn.net/opencv_learner/article/details/82113323工具
一直以來,對於手眼標定所涉及到的座標系及座標系之間的轉換關係都沒能有一個很好的理解,最近找了halcon手眼標定的實例在研究,發現對於相機的兩種安裝方式(眼在手和眼在手外),其座標轉換關係是相似的,這樣說好像太抽象了,下面具體說說。.net
我以爲標定最基本的是要將座標系理清楚,這裏涉及到的座標系有四個:機器人基座標系base、法蘭上的工具座標系tool、相機座標系camera和標定板座標系cal;此外,涉及到了四個關鍵的4x4齊次轉換矩陣,對於眼在手和眼在手外分別進行說明,下面是兩種配置方式的座標轉換過程:blog
每一種配置方式,都是兩個移動的座標系和兩個靜止的座標系,而且這四個座標系構成了一個閉環。io
對於moving camera方式,以下圖所示,機械臂基座標系和標定板座標系是靜止的,二者之間存在一個固定的轉換矩陣;法蘭上的工具座標系和相機座標系是移動的,二者之間存在一個固定的轉換矩陣;須要求的是法蘭上的工具座標系與相機座標系之間的轉換矩陣。其中,M1能夠從機器人示教器或者控制讀出,Mx是須要求取的未知矩陣,M2能夠從拍攝照片計算出來,M3未知,可是是一個固定的轉換矩陣,利用座標轉換,有以下的等式關係:Mx=M2*M3^(-1)*M1,若是我有許多個這樣的等式,利用M3不變,能夠構建關於Mx的方程組,解方程組,求得Mx中各個元素的值,在這個過程當中咱們沒必要去求M3具體是多少,只是利用了其固定不變這個特性而已。opencv
對於stationary camera方式,以下圖所示,機械臂基座標系和相機座標系是靜止的,二者之間存在一個固定的轉換矩陣;法蘭上的工具座標系和標定板座標系是移動的,二者之間存在一個固定的轉換矩陣;須要求的是相機座標系和機械臂基座標系之間的轉換矩陣。其中,M1能夠從機器人示教器或者控制讀出,Mx是須要求取的未知矩陣,M3能夠從拍攝照片計算出來,M2未知,可是是一個固定的轉換矩陣,利用座標轉換,有以下的等式關係:Mx=M1*M2*M3^(-1),若是我有許多個這樣的等式,利用M2不變,能夠構建關於Mx的方程組,解方程組,求得Mx中各個元素的值,在這個過程當中咱們沒必要去求M2具體是多少,只是利用了其固定不變這個特性而已。class