• 沒有找到結果。

第三章 影像擷取追蹤與軌跡預測

3.4 膨脹

在影像處理中,利用數學的集合理論可以描述影像中的區域與邊界,在數學形態學 裡的集合代表影像中的物體,而在此我們利用形態學中的膨脹,來處理影像中的閉合。

原始影像經過上述幾個影像處理後,如圖 3.13,觀察畫面可看出,在畫面中有些連 接處發生不連接的情形,為了使這些連接處接合,利用形態學中的膨脹來處理,如圖 3.14 所示。

  圖 3.14 左眼(左)與右眼(右)影像經過膨脹處理

 

當 A 與 B 為Z 中的兩個集合,A 藉由 B 的膨脹表示為2 AB,其示意圖如圖 3.15 所示,其數學表示式為

{

|

( )

ˆ z

}

A⊕ =B z B

A≠φ (3.4.1) 其中 B 稱為結構元素,

( )

Bˆ z表示為對其原點的反射並平移此反射 z 單位

Bˆ=B

AB A

  圖 3.15 集合 A(左)、結構元素 B(中)、膨脹後結果(右)

3.5 縮減處理時間

在影像擷取過程中,攝影機輸入影像速度為 48fps,相當於每經過 21 毫秒(ms)就會 輸入兩張 640ൈ480 大小的影像,在這麼短的時間內,單單只考慮影像處理部分就很難處 理完如此大量的影像資訊,為了不讓影像流失,採取兩種方法來縮減影像處理的時間,

第一種方法從電腦程式方面下手,使用 OpenMP (Open Multi-Processing)[18]多執行緒 程序設計做平行運算,可同時處理左眼影像與右眼影像,使處理時間縮短一半。

第二種方法則是採用減少 ROI(region of interest)的範圍,也就是小畫面處理。在相 機開啟後,會先以 640ൈ480 大小的影像去搜尋目標物,當前一張的雙眼影像皆擷取到目 標物位置後,縮減 ROI 的範圍,並且將此目標物中心點設定為新的 ROI 中心點,可使 小畫面隨著目標物移動處理區域。由於目標物在縱向位置變化較大,故將小畫面的 ROI 設定為 100×300 的大小,如此一來可讓目標物一直處於小畫面內,又可大量減少運算時 間。ROI 切換簡易流程如圖 3.16。

  圖 3.16 ROI 流程圖

3.6 相機校正

  在電腦視覺理論中,從相機的二維影像中獲得三維的立體資訊,要先取得一些相機 參數,也就是一般的內部參數以及外部參數,每一台相機在製造過程中都會產生自己獨 有的內部參數,由於其擺設方式的不同也會產生一組外部參數,因此要藉由相機校正的 方法來獲得所需要的參數。在此小節會介紹相機模型,以及所產生的內部參數以及外部 參數,取得這些相機參數後,可利用下一小節所介紹的立體視覺,即可將雙眼影像的二 維影像平面轉為三維立體資訊。 

  在 3.6 與 3.7 節中會使用到兩個座標系,分別為二維影像座標系與三維相機座標系,

影像座標系原點位於影像的左上角,u軸方向為水平方向,往右為正,v軸方向為垂直 方向,往下為正,其示意圖如圖 3.17。相機座標系原點位於左眼相機中心點,其Xcamera 軸方向為相機左眼朝向右眼,Ycamera軸方向為真實空間中的高度,正向朝下。Zcamera軸 方向則由右手定則決定,其示意圖如圖 3.18。

u

R

u

L

v

R

v

L

  圖 3.17 影像座標系示意圖

 

camera

X

camera

Y

camera

Z

  圖 3.18 相機座標系示意圖

3.6.1 相機內部參數

首先介紹幾何相機模型,又稱為針孔投影模型(pinhole camera model),如圖 3.19 所示。

p

在相機製造過程中,影像正交軸 u 和 v 通常不會剛好呈現垂直的關係,而會呈現θc度 利用 Camera Calibration Toolbox for Matlab[10]此工具箱,先拍攝數張不同角度的校正板 影像,如圖 3.22 所示,將每張影像中校正板的角落標示出來後,即可用此工具箱算出 每一張影像的內部參數,再做最佳化讓誤差值降到最小。

圖 3.22 拍攝校正板影像

最後,將相機左眼與右眼分別校正後,算出各眼的內部參數矩陣 K,如(3.6.6)所示 498.67 0 314.88 497.62 0 322.96

0 498.03 231.35 0 497.96 235.74

0 0 1 0 0 1

利用 Matlab 的 toolbox,可求出旋轉矩陣以及平移向量,如(3.6.9)式所示。圖 3.23 顯示校正板與雙眼相機系統的相對位置,其中左邊兩個錐形分別代表左眼與右眼相機,

而右邊則是校正板的位置,校正板上方的編號為圖 3.22 所拍攝的順序編號。

0.5093 0.8604 0.0182 162.36 0.8606 0.5093 0.0005 , 0.10 0.0097 0.0154 0.9998 1.04

R T

− −

⎡ ⎤ ⎡ ⎤

⎢ ⎥ ⎢ ⎥

= −⎢ ⎥ = −⎢ ⎥

⎢ ⎥ ⎢ ⎥

⎣ ⎦ ⎣ ⎦

(3.6.9)

圖 3.23 雙眼相機系統與校正板相對位置圖

3.7 預測球體飛行軌跡

經過影像處理後,可將每個時間點球的中心位置在影像中標示出來,再利用相機校 正所得到的內部參數,搭配立體視覺,即可將球的位置從二維影像轉成三維資訊,接下 來搭配一條拋物線軌跡,即可找出球體的飛行軌跡,藉由每個時間新進來的位置來更改 軌跡參數,達到即時更新軌跡的目的,使預測的軌跡更為精準。

3.7.1 立體視覺

相機座標中的點Pcamera

(

Pxcamera,Pycamera,Pzcamera

)

對應到左右眼影像上分別為 ( , )u v 和l l ( ,u v ,而立體視覺(stereo vision)是利用幾何關係,用影像上左右兩眼的視差(disparity)r r) 來算出景深 (depth),圖 3.24 為立體視覺的示意圖。

camera

camera *

其中 i 代表擷取到的點數,t 代表擷取到第 i 點的時間 i

每當擷取到一張影像時,可得知一組相機座標的位置,因此從(3.7.6)式可看出,

當擷取到兩張影像的時候,即可算出一組軌跡參數(cx0,cx1,cy0,cy1,cz0,cz1),當大於兩張 影像時,則利用最小平方誤差法求出參數。

球體飛行時間總共大約 0.4 秒,而相機每 21 毫秒就拍攝一次,所以在整體飛行時 間內總共會拍攝 19 次左右,理論上來說,擷取的點數越多則參數的誤差應該越小,不 過用全部張數所算出的軌跡參數並不理想,因為實作上來看,以目前相機 640ൈ480 的解 析度,越後面所擷取到的點距離相機越遠,相對的估測位置也就比較不精準,因此設定 當估測位置距離相機大於 3m 後,即不再增加新進來的位置去更新軌跡參數。

第四章 機械手臂控制與路徑規劃

  本章介紹自行設計的四軸機械手臂平台,主要分為兩個部分來介紹,第一部分介紹 論文中所使用的機械手臂平台,首先介紹機械手臂平台的設計概念與目的,接著介紹機 械手臂系統中包含的動力學模型以及馬達模型,並將兩個模型結合整理出完整機械手臂 的動態模型。第二部分則是為了讓機械手臂依照所設定的擊球軌跡順利動作,利用計算 力矩控制器來操控機械手臂,並規劃路徑使手臂移動到要擊打的位置以及所需的速度,

其中包含相關的D-H model 以及運動學和逆運動學。

本論文所使用之機械手臂包含兩臂(link)、球拍(racket)與四個軸(joint)。其中肩膀 (shoulder)連接基座與上臂,由兩軸所構成,且基座是靜止不動的;手肘(elbow)連接上 臂與下臂,由一軸所構成;手腕(wrist)連接下臂與拍子,由一軸所構成。由於擊球點位 於拍子中心點,且第四軸只用於轉動拍子,故於本章節的所有推導皆使用前三軸,並不 包含第四軸。手臂各部位名稱示意圖如下: 

  圖 4.1 手臂各部位示意圖

4.1 機械手臂設計

本研究建構的實驗平台為機械手臂,主要目的為擊球,因此設計類似於人體的肩膀 以及手肘,在肩膀部分裝有兩顆直流馬達,分別可對上臂做旋轉及俯仰兩種動作,手肘 部分裝有一顆直流馬達,可對下臂做俯仰動作,此三顆直流馬達末端皆裝有編碼器可量 測轉動角度,由於擊球點設定在拍子的中心點,故最後在下臂末端裝置一顆步進馬達,

專門用來轉動拍面,其示意圖如圖 4.2。

在此章使用到手臂座標系,其原點為上臂的旋轉中心點,Zarm軸為垂直底座的高度,

向上為正。Xarm軸平行於基座平面,方向為自相機左眼中心點指向Zarm軸,Yarm軸方向 則由右手定則決定。手臂的初始位置位於θ1、θ2與θ3皆為零度的位置,也就是平行 Z 軸的姿勢。l 與1 l 分別為機械手臂的上臂與下臂,其長度皆為 26 公分,因為人體的上臂2 以及下臂大約為此長度。

由於第一軸馬達架設在基座上,第二軸馬達架設在第一軸的旋轉機構上,而第三軸 馬達架設在上臂,故m 為第一軸旋轉機構以及第二軸馬達的質量,1 m 為上臂與第三軸2 馬達的質量,m 為下臂與第四軸馬達的質量,3 l 、c1 l 與c2 l 為上述的質量中心點,c3 I 、1 I2I 則是質量中心點對於旋轉軸的轉動慣量,角度3 θ1為原點朝向下臂末端點在XY 平面 投影點的延伸與X 軸的角度,角度θ2是從Z 軸往上臂方向的夾角,角度θ3是從上臂的 延伸方向往下臂方向的夾角。

由於這是一隻擊球機械手臂,對於手臂移動速度上有相當程度的要求,故主要採用 密度 2.7 公噸/立方米的鋁合金所構成,主要目的為減輕重量,使馬達可更快速移動手 臂,其餘承受重量的部分則用較堅固的中碳鋼材質,並在旋轉關節部份裝置軸承,承受 重量並降低旋轉所產生的摩擦力。在馬達的挑選方面,馬達負載重量並不輕且離馬達旋 轉軸有段距離,因此以馬達扭力(torque)為基本考量,盡量挑選扭力大轉速高且重量輕 的馬達,之後再選擇齒輪機所搭配的齒輪比,利用齒輪機會將馬達的扭力提升,但是馬 達轉速則相對會降低,因此選擇一個適當的齒輪機,使馬達可提供足夠的扭力且達到所 預期的轉速。

θ

1

考慮如圖 4.2 所示的機械手臂,經由Lagrangian Equation[19]推導可得到機械手臂 的動力學方程式,如(4.2.1)式

 

 

 

1

  將(4.2.4)式帶入(4.2.1)式,即可得到完整的動力學模型,如(4.2.5)式所示

( ) ( ) ( ) ( )

sin sin sin

1

( )

4.3 計算力矩控制器

在實現此控制器時,可透過一些調整 PD 參數的經驗法則來設定K 與v Kp的值,增 Jaques Denavit 與 Richard S. Hartenberg 兩位所提出的,主要將機器人的參數由 6 個縮減 為 4 個,可方便表示以及運算。其中機器人中的 6 個參數,分別為對機械手臂座標中的

XarmYarmZarm軸旋轉的角度,以及對三軸平移的位置,其中此機械手臂座標採用右 手座標系統,故其旋轉方向皆以逆時針為正。將上述的 6 個參數簡化成da、α 、θ 此 4 個參數,其中d代表兩軸垂直線的距離,a是手臂的長度,α 是兩軸旋轉軸歪斜角度 的差值,最後θ 是兩軸旋轉所造成的角度差值。在 D-H model 中,通常會將旋轉軸用 z 表示。從圖 4.2 機械手臂圖可推出以下的D-H model,如圖 4.5 所示。

Joint d a α θ

Joint1 0 0 90 θ1

Joint2 0 l 1 0 θ2 Joint3 0 l 2 0 θ3

 

z 0

y 0

x 0

z 1

y 1

x 1

z 2

y 2

x 2

l 1

l 2

  圖 4.5 機械手臂D-H model

4.5 運動學與逆運動學

cos sin cos sin sin cos sin cos cos cos sin sin

0 sin cos

第三軸機械手臂座標轉如下

cos cos cos sin sin cos cos sin sin cos sin cos cos sin sin sin cos sin sin cos

cos sin sin cos cos cos sin sin

0 0

sin cos cos cos cos cos

T T T T cos sin cos sin cos cos sin sin

0 sin cos sin sin cos

cos cos cos cos cos sin sin sin cos sin cos cos sin sin sin cos sin sin cos

arm

4.5.2 逆運動學

由於控制器的輸入是三軸的角度,故算出手臂座標系中的擊球點後,必須將此位置

由於控制器的輸入是三軸的角度,故算出手臂座標系中的擊球點後,必須將此位置

相關文件