• 沒有找到結果。

問題定義與分析

3.3 修正方法與類神經網路整合

3.3.1 定位修正方法

以上說明了各種誤差因素,使機械手臂定位過程中累積了許多誤差,因此需 要經過後端的誤差修正,使機械手臂回到正確位置。各種誤差中,影響最大的是 從影像目標位置與特徵值之間的轉換,本論文中不處理影像問題,使得特徵轉換 時有著較大的誤差問題,因此修正重點在於修正特徵值,給予正確的特徵值使逆 向運動學推倒更加準確,修正控制流程如圖3.7。在修正迴路中,持續由影像方式 計算目標位置與實際位置誤差,計算 X、Y 、Z 軸誤差進行調整,需進行三次的 誤差修正,可能會因此會耗費較多時間。

圖 3.7: 控制系統修正流程圖

Na tio

nal

University of Kaohsiung

詳細控制系統修正流程下:

• 影像資訊:取得府視影像與側視影像資訊,如圖3.8。

(a) 目標位置 (側視影像) (b) 目標位置 (俯視影像)

圖 3.8: 影像資訊

• 目標中心點位置:將影像進行處理,取得影像中目標位置,如圖3.9中藍色 點像素位置。

(a) 目標位置 (側視影像) (b) 目標位置 (俯視影像)

圖 3.9: 目標位置取得

• 特徵值轉換:將影像中目標位置,轉換成實際距離,將最大值。由側視影像 轉換 x、y,由俯視影像轉換 Z。

• 逆向運動學推倒:將特徵值 (x, y, z) 輸入逆向運動學推導出 (θ1, θ2, θ3),如 圖3.10中為逆項運動學角度計算。

Na tio

nal

University of Kaohsiung

(a) 逆向運動計算 (側視影像) (b) 逆向運動計算 (俯視影像)

圖 3.10: 逆向運動計算

• 偵測目標誤差:手臂移動後再次取得影像資訊,將計算目標位置與實際位置 誤差,如圖3.11中綠點為目標位置,而藍點為手臂移動後實際位置。

(a) 實際與目標位置 (側視影像) (b) 實際與目標位置 (俯視影像)

圖 3.11: 實際與目標位置

• 修正特徵值:進行調整 (x, y, z) 特徵值,調整順序為 x、y 最後 z。

(a) 修正與目標位置 (側視影像) (b) 修正與目標位置 (俯視影像)

圖 3.12: 修正與目標位置

Na tio

nal

University of Kaohsiung

3.3.2 類神經網路架構與流程

為了要提升定位系統的效率,將修正控制方法與類神經網路結合,因類神經 往地的特性,只需要給予正確輸入及輸出資料,即可透過訓練得到一組符合系統 的模型,可簡化此修正系統的複雜度,進而提升機械手臂定位的效率。類神經網 路系統流程如圖3.13,將修正系統中的特徵值轉換、逆向運動學計算及修正誤差,

由類神經網路所取代,論文中將以此控制系統修正方法來蒐集資料,以提供類神 經網路所需的訓練資料。

圖 3.13: 類神經網路系統流程圖

論文中將使用類神經網路技術,因此先訂定出類神經網路架構,網路架構設 計如圖3.14。在網路的輸入層中使用四個節點,其節點分別為俯視影像目標位置 X軸 xo,俯視影像目標位置 Y 軸 yo,側視影像目標位置 X 軸 xs,側視影像目標 位置 Y 軸 ys。隱藏層使用一層 n 個節點 (節點數由實驗決定),輸出層使用一個節 點。網路架構中將每個關節角度 θ1、θ2與 θ3,各別由一組類神經網路所構成,因 此在類神經網路訓練階段中,需要訓練出各別三組模型,對應出三個不同輸出。

Na tio

nal

University of Kaohsiung

圖 3.14: 類神經網路架構

以下 舉 例類 神 經網 路推 倒過 程,如圖3.15,輸入層四個節點 (ys、ys、xoyo),一層隱藏層,隱藏層三個節點 (node1、node2、node3),權重值 weight 圖中 以 w 簡寫表示,gain1 為 node1 的閥值,gain2 為 node2 的閥值,gain3 為 node3 的閥值。輸出層一個節點 (theta),gainO 為輸出 theta 的閥值,T arget 為訓練資 料的正確輸出。errorA 為輸出誤差值,error1 為 node1 誤差值,error2 為 node2 誤差值,error3 為 node3 誤差值。

圖 3.15: 倒傳遞類神經網路計算

Na tio

nal

University of Kaohsiung

順向傳遞公式推倒,計算每個節點如式 (3.16)(3.17)(3.18)(3.19):

node1 = 1

1 + exp−(xs×weight1+ys×weight4+xo×weight7+yo×weight10+gain1) (3.16)

node2 = 1

1 + exp−(xs×weight2+ys×weight5+xo×weight8+yo×weight11+gain2) (3.17)

node3 = 1

1 + exp−(xs×weight3+ys×weight6+xo×weight9+yo×weight12+gain3) (3.18)

output = 1

1 + exp−(node1×weight21+node2×weight22+node3×weight23+gainO) (3.19) 逆向傳遞公式推倒,先計算網路輸出與目標誤差,如式 (3.20)(3.21)(3.22) (3.23):

errorA = output× (1 + output) × (T arget − output) (3.20) error1 = node1× (1 + node1) × weight21 × errorA (3.21) error2 = node2× (1 + node2) × weight22 × errorA (3.22) error3 = node3× (1 + node3) × weight23 × errorA (3.23) 由誤差值去修正每個節點閥值,η 為學習速率,如式 (3.24)(3.25)(3.26)(3.27):

gainO = gainO + η× errorA (3.24)

gain1 = gain1 + η× error1 (3.25) gain2 = gain2 + η× error2 (3.26) gain3 = gain3 + η× error3 (3.27) 由誤差值去修正每條權重值,如下:

weight21 = weight21 + η× errorA × node1 (3.28)

weight22 = weight22 + η× errorA × node1 (3.29) weight23 = weight23 + η× errorA × node1 (3.30)

Na tio

nal

University of Kaohsiung

weight1 = weight1 + η× error1 × xs (3.31) weight2 = weight2 + η× error2 × xs (3.32) weight3 = weight3 + η× error3 × xs (3.33) weight4 = weight4 + η× error1 × ys (3.34) weight5 = weight5 + η× error2 × ys (3.35) weight6 = weight6 + η× error3 × ys (3.36) weight7 = weight7 + η× error1 × xo (3.37) weight8 = weight8 + η× error2 × xo (3.38) weight9 = weight9 + η× error3 × xo (3.39) weight10 = weight10 + η× error1 × yo (3.40) weight11 = weight11 + η× error2 × yo (3.41) weight12 = weight12 + η× error3 × yo (3.42) 在類神經網路訓練時,需要先設定資料來源、類神經網路架構、學習速率、

作用函數及誤差函數,論文中將固定 sgmoid 為作用函數、MSE 為誤差函數,隨 機產生初始權重及閥值,其它參數由實驗中決定,實驗將以此類神經網路訓練流 程進行,如圖3.16。

圖 3.16: 類神經網路訓練流程

Na tio

nal

University of Kaohsiung

相關文件