筆者最近兩日在做一些手眼標定相關的工作,經過小半周的不懈學習,算是大致了解了目前使用最為廣泛的tsai方法的原理以及eye-to-hand和eye-in-hand的**修改。之前在自學的過程中大多都是參考了網路上的部落格,其中以csdn的部落格為主,畢竟作為中國最大的專業it技術社群。然而部落格學習有個問題,冗餘資訊太多,而且僅僅通過搜尋很難有效地排除那些無用的資訊,迅速地找到自己想要的,因為很多時候,作為乙個初入行業的新手,對於專業的術語以及背景知識是不充足的。另外,資訊的搜尋很多時候並沒有想象中的那麼簡單,可能存在壞掉的鏈結,以及大量沒有說明或者範例的**,使用起來不太容易。畢竟筆者眼中,博士期間鍛鍊的能力主要就是檢索,以及稍稍,稍稍,稍稍一點點的問題分析能力。由於以上這些原因,雖然實際上手眼標定是乙個很成熟的演算法,同時也已經有了大量的前人工作,基於opencv以及matlab平台都留下了很多的輪子,但是由於天資愚鈍,筆者還是花去了三天的時間,才把使用基本掌握。
手眼標定的原理;
手眼標定的具體步驟以及**修改。
機械人手眼標定的概念
根據機械人運動學的知識,通常機械人也指多關節多自由度機械臂,機械臂通過多個旋轉電機驅動,實現機械人末端的可控制定位驅動。機械人自身是沒有感測器的,人為在機械人上或旁安裝相機,通過使用相機獲得目標座標,從而讓機械人根據相機得到的影象對目標進行操作的方式叫做機械人視覺。而,為了使得相機(亦即機械人的眼)與機械人(亦即機械人的手)座標系之間建立關係就必須要對機械人與相機座標系進行標定,該標定過程也就叫做手眼標定。
通常機械人的手眼關係分為eye-in-hand以及eye-to-hand兩種。其中eye-in-hand也就是眼在手上,如上圖a,機械人的視覺系統隨著機械臂末端運動;而eye-to-hand也就是眼在手旁,如圖b,機械人的視覺系統與機械人基座固定,不會在世界座標系內運動。對於eye-in-hand情況,機械人手眼標定即標定得到機械人末端與相機之間的座標變換關係;
對於eye-to-hand情況,機械人手眼標定即標定得到機械人基座與相機之間的座標變換關係。兩種標定方法都將機械人以及相機之間的不變數確定了下來,從而建立了兩者的轉換矩陣。
機械人手眼標定原理
對於eye-to-hand的情況,實際上更加常用的是九點標定法,亦即使用相機和機械臂獲得空間中的多組相同點座標值,從而建立機械臂與相機之間的座標轉換關係。這個比較簡單,若之後有時間再在此補充。
我們主要討論的是一種更加廣泛的標定方法,無論是eye-to-hand還是eye-in-hand都能夠使用的tsai-lenz方法,該方法借助標定板,通過求解線性方程的方法求取手眼關係。通常網路上的教程均為eye-in-hand的情況。一是因為,eye-to-hand可以使用九點標定實現,而且更加簡單,二是因為,eye-in-hand的**更為廣泛,因此也有更多的教程。
但是,即使對於固定相機的情況,我們依舊可能出現無法使用九點標定的可能。例如機械臂的示教精度決定了對於凸點,機械人座標更為精確,而單一的凸點又是機械人視覺不好識別並返回世界座標的,而視覺系統較為龐大精密,因而無法在機械臂末端安裝。在以上的情形中,就需要使用tsai方法進行eye-to-hand的手眼標定了。
eye-in-hand的tsai-lenz標定原理
上圖中為手眼標定系統。本文中的符號記法與圖中有出入,請以下面說的為準。同樣是在機械人運動學中已經提到的機械人座標表達方法。
對於eye-in-hand,根據機械人基座與目標/標定板之間位置相對固定的關係建立以下等式:
對上式進行變換:
由於相機與末端之間的座標關係不變,得到
從而上式變為求解
求解得到的
即為所求的eye-in-hand標定矩陣。
eye-to-hand的tsai-lenz標定原理
對於eye-to-hand的情況實際是類似的,利用標定板/目標與機械人末端之間不變的轉換關係:
整理得到
形式:求解得到的
即為所求的eye-to-hand標定矩陣。
手眼標定的具體步驟以及**修改
首先對相機進行標定,獲得相機內參。
使用eye-to-hand或者eye-in-hand的方式將相機、標定板固定好,啟動機械人調整機械臂末端位置姿態,並將對應的**、機械人末端位姿記錄下來。
利用相機內參計算得到**中相機與標定板之間的座標轉換關係。
利用「兩步法」求解基本方程。先從基本方程中求解
,再求解
。實際上將只要在eye-in-hand情況下的
矩陣左右乘關係顛倒即可。
四軸平面機械人的手眼標定
在實際的機械人應用中,通常會給機械人配備視覺感測器,視覺感測器用於感知周圍環境。但是,通過視覺感測器獲取的場景座標是基於視覺座標系下的,機械人並不能直接使用,要獲取機械人可以直接使用的座標資訊,必須將座標轉換到機械人座標系下。因此,機械人手眼標定的目的是為了獲取從視覺座標系轉換到機械人座標系的轉換矩...
機械人桿長標定 機械人標定系統
機械人標定裝置 在今天高度競爭的全球市場,製造商們越來越依賴工業機械人來提高生產過程中所需的靈活性和適應性。儘管如此,讓這些機械人高效 精準地執行他們的生產任務 不管是點焊,封孔 弧焊,組裝,水注切割等等 需要花費大量時間和精力去手動程式設計,從而導致有一些靈活性喪失。解決方案就是dynacal。問...
python可以手眼定標嗎 機械人無標定手眼協調
內 容 簡 介 前 言上 篇kalman濾波方法 第1章 緒 論 1.1 引言 1.2 機械人手眼協調 1.3 無標定手眼協調及其控制方法 1.4 本篇的主要工作 第2章 基於影象雅可比矩陣的無標定手眼協調 2.1 影象雅可比矩陣模型 2.2 影象雅可比矩陣的例子 2.3 應用影象雅可比矩陣建立視覺...