1. 程式人生 > >基於雙目視覺的手眼標定

基於雙目視覺的手眼標定

原文首發於微信公眾號【視覺IMAX】。

一 前言

機器人的視覺系統分為固定場景視覺系統和運動的「手-眼」視覺系統。攝像機與機器人的手部末端,構成手眼視覺系統。根據攝像機與機器人相互位置的不同,手眼視覺系統分為Eye-in-Hand系統和Eye-to-Hand系統。Eye-in-Hand系統的攝像機安裝在機器人手部末端(end-effector),在機器人工作過程中隨機器人一起運動。Eye-to-Hand系統的攝像機安裝在機器人本體外的固定位置,在機器人工作工程中不隨機器人一起運動。

Eye-in-Hand系統的在工業機器人中應用比較廣泛,隨著機械手逐漸接近目標,攝像機與目標的距離越來越小,被測物體位置引數的絕對誤差會隨之降低。在Eye-in-Hand

系統中,採用基於影象的視覺控制、基於位置的視覺控制以及結合兩者的混合視覺控制,可以快速有效地標定被測物體的座標。

手眼標定方法通常分為3類:標準手眼標定、基於旋轉運動的手眼標定以及線上手眼標定。以上方法是將攝像機標定與手眼標定分開進行,也有的論文采用的是聯合標定法。

本文重點講解Eye-in-Hand的一般方法,重在闡述其基本原理。

二 Eye-in-Hand

2.1 基礎知識準備

在研究相機標定時,已較為熟悉,在本公眾號「視覺IMAX」裡已有幾篇文章做過總結,如: a) 一分鐘詳解OpenCV之相機標定函式calibrateCamera(); b) 一分鐘詳解「本質矩陣」推導過程; c)

計算機視覺基本原理——RANSAC; d) 再談「相機標定」

此處就不詳細展開敘述了。

2.2 Eye-in-Hand基本原理

對目標點的空間三維座標進行變換的過程中,首先遇到的問題是機器人末端關節座標系與攝像機座標系之間的位置變換關係,也就是機器人的手眼位置關係,該關係用符號X表示,具體可以用方程AX=XB求解。其中A表示相鄰兩次運動時機器人末端關節的變換關係;B表示相鄰兩次運動時攝像機座標的相對運動。

下面,簡單介紹一下本問題模型中為何會引入AX=XB模型。 如圖1所示,為眼在手上,也即eye-in-hand。(本篇文章重點討論的是雙目,所以此處僅是為了演示效果圖,而非真實的實驗場景)。相機固定在機械臂末端,會隨著機械臂的運動而運動。

圖1 眼在手上

圖1 眼在手上

我們會得到一堆座標系和座標變換關係:

  • A:機器人末端在機械臂座標系下的位姿,這其實就是機器人運動學正解的問題。(已知)。

  • B:相機在機器人末端座標系下的位姿,這個變換是固定的,只要知道這個變換,我們就可以隨時計算相機的實際位置,所以這就是我們想求的東西。(未知,待求)

  • C:相機在標定板座標系下的位姿,這個其實就是求解相機的外參(已知)。

  • D:相機在機器人基座標系下的位姿。實際使用過程中標定板並不存在,所以這個變換關係我們不關心。

所以,只要我們能計算得到B變換,那麼相機在機器人座標系下的位姿D也就自然得到了。

如圖2所示,我們讓機械臂運動兩個位置,保證這兩個位置下都可以看到標定板,然後構建空間變換回路:

圖2 機械臂運動到兩個位置,構建變換回路

在這裡插入圖片描述

圖3 谷歌學術搜尋

在谷歌學術用關鍵詞「AX=XB」搜尋便可以得到各種求解辦法,見圖3所示。

以上圖中的幾篇論文,都很詳細地給出了推導過程,按照它們寫程式基本沒問題。

這樣,我們便有了A、B和C,就能直接求解得到我們想要的手眼標定結果D了。

前面主要是為了理清思路,對於每個部分的細節都給省略掉了,接下來進行詳細說明。

1)變換A: 它是機械臂末端在機器人基座座標系下的位姿,其實就是機器人學裡面最基礎的運動學正解。如圖4所示。

圖4 機器人運動學正解模型
用DH矩陣等方法來計算機器人運動學正解。可以參看熊有倫主編的《機器人技術基礎》這本書。在實際操作中,根據機器人的示教器讀出尤拉角,即可換算出機械手爪座標系到機械臂基座的轉換矩陣。

2)變換C: 它是相機在標定板座標系下的位姿。其實就是相機的外參。如圖5所示,其中的R,T 即為相機在標定板下的位姿。

圖5 相機在標定闆闆座標系下的位姿
在這裡插入圖片描述
圖6 相機模型

相機模型有了,我們要做的就是先確定內參矩陣,然後根據不同時刻拍攝的標定板圖片來求取外參矩陣:也即相機在世界座標系下的變換關係C

目前來說,要解決這個問題,基本上都是採用張正友老師的方法。這個在之前的相機標定過程中,已經實現。

3)求解AX=XB。

關於這個公式的求解,對應著多種不同的解法,此處推薦一篇文章,如下:

  1. Daniilidis, Konstantinos. "Hand-eye calibration using dual quaternions." The International Journal of Robotics Research 18.3 (1999): 286-298.

注: 在公眾號【視覺IMAX】後臺回覆「解AX=XB」,即可獲得下載上述文章的下載連結。

得到X也即手眼關係,最後得到相機座標系到機器人基座的座標變換關係:D=A*X。 式中A代表:機器人手抓到機器人基座座標變換;X表示相機到機器人手抓的座標變換。

在這裡插入圖片描述

以上手眼標定流程,大體可以總結如圖7所示:

圖7 手眼標定流程示意圖

手眼標定的基本原理如上所述,至於正確性,仍需由實驗進一步驗證。

三 跋

最後,歡迎大家加入視覺IMAX知識星球,一起討論學術,一起成長。