項目實戰——基於計算機視覺的物體位姿定位及機械臂抓取(基本原理)
首先讓各位關注我的朋友們久等了,這個項目是我本科的畢業設計,寫到四之後,我就一直忙於各種各樣的事情,沒有時間繼續寫了,十分抱歉。最近我終於抽出時間了 ,看了看之前寫的,總覺得代碼過多而原理過少。而且之前做項目的時候,走了不少彎路,甚至不少錯路,這也寫進去了。因此,在這裏,我打算重開本專題,把我的畢設完完整整的講明白。
另外請各位讀者朋友注意,這裏面很多東西涉及到我的畢設,寫作辛苦,請勿濫用,轉載請務必註明出處!
項目研究目標
設計一套基於雙目視覺的系統,實現物體位姿自動識別與抓取功能。
項目研究內容
研究設計以解決以下四點問題:
1、如何利用兩顆攝像頭實現雙目測距;
2、標誌物的設計及如何實現標誌物的識別;
3、物體位姿的判定方法;
4、確定機械臂的運動學逆解,並實現抓取。
好的,現在就讓我們開始第一部分的介紹,這也是計算機視覺的核心問題:如何利用兩顆攝像頭實現雙目測距。
雙目測距原理
如圖 2.1-1 所示,分別以Ol和Or爲座標原點建立相機座標系 Ol − ??????和 Or − ??????:
其中:Ol爲左攝像機光心,Or爲右攝像機光心,世界座標系O − XYZ與座標 系Ol − ??????重合。P 爲三維現實世界中的一點,在左右攝像機上分別成像於點P l和Pr。 假設左右攝像機完全平行(即:左右相機座標系的 x 軸共線,yOz平面平行),平行間距爲B,則從俯視圖上看,如圖 2.1-2 所示:
其中,f 爲焦距,Z 爲待測的深度(距離)信息,不難得出:
根據相似三角形原理有:
因此,待測的深度(距離)信息爲:
如果要根據上述公式對三維世界中的點進行雙目測距,需要確定的參數有:攝像機的焦距(f)、兩個攝像機的平行間距(B)、同一個點在兩個攝像機平面所成像的像素座標。
因此,需要計算的信息有:
1、兩個攝像機的內在參數(焦距等參數);
2、兩個攝像機的外部參數(相對位姿等參數);
3、進行立體匹配,確定同一個點在兩個攝像機成像位置。
但是,上述情況是雙目攝像頭是在理想情況下的測距計算方法,實際情況下還存在諸多誤差因素,主要有:
1、攝像機在生產的過程中,由於鏡片的製造工藝和裝配誤差,會造成一定程度的畸變,使得成像出現偏差,嚴重影響後續的圖像處理。因此需要進行畸變矯正,以保證成像一致;
2、兩個攝像機在外觀上不可能完全平行,在x、y、z三個方向上都會存在差異,如果不經過計算,直接進行對應點的計算,就會存在很大的誤差。因此需要確定兩個相機的相對位姿信息,予以矯正。
綜上,實現雙目測距的具體步驟如圖 2.1-3 所示:
單目標定:計算攝像機的內部參數,消除相機的畸變;
雙目標定:計算兩個攝像機的相對位姿信息,並進行矯正;
立體匹配:將左右攝像機拍攝圖像的對應像素點關聯起來;
計算深度:根據公式確定待測的深度(距離)信息。
圖2.1-4生動地描述了上述過程:
以上即爲雙目測距的主要原理的,那麼下一部分就是單目標定了。
Hunt Tiger Tonight
2019-10-29
聯繫方式:[email protected](請勿使用其他聯繫方式,謝謝!)
PS:再次請各位讀者朋友注意,這裏面很多東西涉及到我的畢設,寫作辛苦,請勿濫用,轉載請務必註明出處!