• 沒有找到結果。

物件座標取得

第五章 實驗結果與討論

5.1 物件座標取得

本實驗使用 MATLAB 作為影像處理之程式,在開始進行物件座標取得 之前需要先進行投影空間平面建構,因此於工作空間中置入一組預先設定好 之網格點架構,如同圖 5-1 中所示,圖中每一點彼此之間的間距為 5 mm。

圖 5-1:工作空間建構之網格點架構。

<57>

取得網格點架構之後,必須使用影像處理來取得各網格點於影像像素當 中之位置,由於光源以及對焦因素會造成影像遠端之網格點模糊之現象,欲 解決此種現象必須使用亮度補償對照明不均之部分進行增強,再進行二值化 之處理才能成功的完整取得每一個網格點,如同圖 5-2 所示。

圖 5-2:影像網格之二值化

我們可以發現經過二值化之後取得之網格點有大小不均之情形,一部分 是因為越遠的物體在影像中呈現出來會較小,另一部分是光源不均,經過補 償之後仍無法完全消除影響之故,因此若我們欲取得網格點之中心位置,需 要使用分段侵蝕的方法,依照距離的遠近分段改變侵蝕之參數,如此一來才 能將所有網格點處理成近似之大小。

在處理完網格點之大小之後就要進行網格點中心之取得,我們採取的是 分群技術,設定網格兩點距離之中間值為門檻值,並在偵測到一點之後將門 檻值內全部具有值之點判定為同一群組,判定其為單一網格點,再將每一群 組之中心點設定為該網格點之中心點,如同圖 5-3 所示,而全體網格點之中

<58>

心點建構如圖 5-4 所示。

圖 5-3:網格中心點判定示意圖

圖 5-4:工作空間網格中心點判定示意圖

取得所有網格中心點位於影像像素中之位置之後,便可由其在空間當中 半徑為最近網格點距離之半

<59>

實際之座標位置與影像像素中之位置取得一組轉換關係,在工作空間網格結 構化建構完成之後我們便可將事先布置之網格點移除,當目標物件出現在工 作空間當中時,計算出物件之底部對應之中心點並使用建構好的平面座標轉 換法用內插法求得座標值,即可取得物件影像其像素在實際空間當中之對應 位置,使用此方法的優點是可保證定位的精準度,絕對不會超過網格點的間 距。

將工作空間之投影建立完畢之後,我們就可以進行目標物件座標之取得,

首先如圖 5-5 所示將目標球置入工作空間當中,然後經過提取物件的處理將 紅球提取出來,並透過二值化的處理與邊緣偵測法取得目標物件的輪廓,由 圖中我們可以看出,由於陰影的影響因此取得之輪廓並不是完美圓形。

(a) (b)

(c) (d)

圖 5-5:(a)原始影像(b)物件提取影像(c)二值化影像(d)邊緣偵測之輪廓

<60>

取得目標物件之輪廓後,我們要決定物件於之中心點與地面接觸的位置,

將球之輪廓放大來看,尋找所有代表輪廓像素之橫軸座標值 Y 並令其最大 值與最小值差距為球之寬度,取平均值設為球之中心點,再以此中心點尋找 縱軸座標 X 上的最大與最小值,令中心底端點向上兩者差距之三分之一之 位置為球的重心同時設為中心與地面接觸之像素位置,由此取得中心點像素 之座標值。最後代入前處理所建立的空間平面投影網格,使用內插法取得該 接觸點像素座標對應實際空間中之位置,即可取得物件座標來進行夾取。

寬度

中心底端點 中心頂端點

重心

圖 5-6:物件輪廓放大圖 5.2 機械手臂控制

本研究使用 Lab VIEW 作為機械手臂之控制程式,Lab VIEW 程式之優 點為圖形化介面方便使用者撰寫程式,在我們使用的 Lab VIEW 直接控制機 械手臂之前必須先建立通訊協定之資料封包內容格式。封包格式如圖 5-7 所 示,由於控制卡讀取之封包只有 2byte 長度因此我們將其按照需求切割為三 部分,首先將封包中十進位大小為 16384 與 32768 之 2 bit 定義為儲存操作 模式資訊 UseData,若 UseData 為 0 則為速度控制模式,否則為位置操作模 式。接下來將封包中十進位大小為 1024、2048、4096、8192 之 4 bit 定義為 儲存伺服馬達 ID 資訊,用以辨別此封包內含資訊所代表的馬達編號。最後

<61>

將封包中剩餘之 10 bit 作為儲存控制馬達轉動角度之資訊,將馬達可操作之 300切割為 1023 份,如此一來我們在控制機械手臂時,馬達之精度可高達

3

.

0 。

圖 5-7:封包格式示意圖

在處理完畢通訊協定之封包結構後,我們便可將影像模組取得之物件座 標代入機械手臂之逆向運動學程式,求取機械手臂欲達到物件座標時各關節 之轉動角度。如圖 5-8 所示,輸入為物件之 X、Y、Z 座標位置,使用第四 章所建構之逆向運動學方法規劃出之程式即可求取各關節之轉動角度。以此 架構我們便可撰寫出整體程式如圖 5-9 所示,為了要依序控制每個伺服馬達 因此控制程式整體採取了迴圈架構來撰寫。

圖 5-8:逆向運動學程式架構

<62>

圖 5-9:控制程式迴圈架構 5.2.1 定位準確度模擬

以機械手臂之逆向運動學控制程式操作機械手臂時,我們需要驗證計算 之角度結果是否符合正確之位置,因此我們利用第四章中提到的順向運動學 方法撰寫了機械手臂角度至空間座標轉換之順向運動學程式。如圖 5-10 所 示

圖 5-10:順向運動學之程式

<63>

設目前有五點 A、B、C、D、E 為機械手臂欲到達之目的地,其座標位 置如表 5-1 所示,因此先利用程式求出當夾爪欲到達此五點時各關節之角度 位置,如表 5-2 所示。最後再以順向運動學之程式驗證實際到達位置,並進 行誤差的計算,其結果如表 5-3 所示。

表 5-1:目標點座標位置表 X(mm) Y(mm) Z(mm) A 209.79 22.378 241.958 B 220.979 32.168 213.986 C 234.965 11.189 186.014 D 213.986 41.958 227.972 E 227.972 27.972 212.587

表 5-2:目標點之手臂關節角度表

12345 A 6.089 35.867 -68.337 32.308 0 B 8.282 23.294 -36.698 13.104 0 C 2.726 17.834 -17.819 -0.048 0 D 11.094 27.843 -49.322 20.938 0 E 6.995 24.386 -35.993 11.393 0

<64>

表 5-3:目標點之座標位置驗證表 X(mm) Y(mm) Z(mm) Error(mm) A 209.395 22.337 242.353 0.56 B 220.227 32.057 214.738 1.07 C 234.905 11.185 186.077 0.09 D 212.613 41.69 229.349 1.96 E 227.442 27.906 213.116 0.75 5.2.2 物件抓取實驗

在前段實驗我們證明了本研究演算法的精確度,接下來本實驗進行實際 的機械手臂操作,利用影像模組接收的工作空間影像判別目標物件之位置,

再將位置資訊傳送給機械手臂進行抓取,同時利用夾爪上的雷射光模組發射 雷射光點至工作平面,經過影像模組接收回授判別誤差量,再進行補償。

首先進行影像的擷取,在本次實驗當中工作空間內共有紅色與黃色兩球,

如圖 5-11 所示,但任務目標是要抓取黃球,因此先進行物件的擷取將其餘 背景與紅球濾除,結果如圖 5-12 所示。

圖 5-11:抓取實驗輸入影像

<65>

圖 5-12:黃球物件擷取影像

將目標物件完成提取之後,接下來進行的是灰階化與二值化等處理,以 方便後續影像分析,處理完畢後再進行邊緣偵測取得物件之輪廓,如圖 5-13 所示。但是當我們將邊緣偵測後的結果放大來看,發現輪廓線有破損的情形,

這是因為受到光線的不均以及陰影的干擾等因素導致。為此我們進行兩次的 膨脹之後再進行兩次侵蝕,也就是說利用形態學中閉合的方法來修補輪廓,

完成之結果如圖 5-14 所示。

(a) (b)

圖 5-13:(a)二值化後影像(b)邊緣偵測後物件輪廓

<66>

(a) (b)

圖 5-14:(a)破損之輪廓(b)閉合處理後之輪廓

取得物件完整的輪廓後,我們就可以進行物件中心點的判定,決定待抓 取黃球之中心點與地面接觸的位置處於影像中的哪一像素,如圖 5-15 所示,

而當得知像素座標值之後我們就可以參照前處理建立的投影平面網格點結 構,以內插法的方式取得實際空間當中此像素的真實座標,在本實驗中黃球 的實際中心座標位置經過內插法計算為P(x,y,z)(355.6,42.7,35),單位為 mm,其中球的直徑已知為 70 mm,因此可以求得中心點之高度為 35 mm,

之後將此座標輸入給機械手臂控制器進行抓取的動作。

Pixel i

Pixel j

重心點(中心點座標)

圖 5-15:物件中心點像素座標圖

<67>

首先我們可以看到圖 5-16 是機械手臂處於待機之狀態,右側是用於視 覺回授的攝影機模組,而下方為本系統的控制卡,工作空間當中有紅、黃兩 球,此時正在進行影像處理與傳送目標物件座標資訊給予控制程式進行計算 移動路徑。

圖 5-16:機械手臂待機圖

當控制程式取得目標物件之座標資訊並進行逆向運動推算之後,就可操 控機械手臂先移動至目標物件之正上方準備抓取,此時我們給予的夾爪末端 點座標會高於計算出來的目標中心座標 50 mm,如此一來才能從物件之正上 方進行抓取,如圖 5-17 所示。

圖 5-17 是從攝影機直接取得的影像,從圖中我們可以看出安裝於夾爪 上的雷射光模組發射之紅點並沒有投影在目標黃球輪廓內,因此發生了誤差

<68>

需要進行補償。判定是否需要補償的準則是比對影像中物件重心點與雷射光 點之座標間距,分別搜尋雷射光點像素在垂直與水平方向,朝物件重心點前 進是否有輪廓線像素存在,若無則表示雷射光點落在物件輪廓內,表示機械 手臂之夾爪大致位於目標物件正上方,可以進行抓取動作;若有則表示雷射 光點落在物件輪廓之外,也就是在操作機械手臂過程中發生了誤差。

進行補償之前必須先行計算誤差量,將此時的影像作目標物件與雷射點 的提取並給予二值化及邊緣偵測後,可以得到如圖 5-18 所示,物件中心點 與雷射光點中心的像素位置,將此兩像素代入預先建立的網格點結構以內插 法求得需補償之座標移動量,再傳送給控制系統進行二次逆向運動學計算並 操控機械手臂做出補償。

圖 5-17:預備抓取任務目標

<69>

(a) (b)

圖 5-18:雷射光點與目標中心點差距

由圖 5-19 與 5-20 可以看出經過補償後的移動,夾爪上之雷射模組發射

由圖 5-19 與 5-20 可以看出經過補償後的移動,夾爪上之雷射模組發射

相關文件