,, ,
(湖南工業大學 機械工程學院,湖南 株洲 412007)
機器人逆運動學,是將機器人末端執行器在笛卡爾坐標系中的位姿轉換成關節空間中各關節角變量的過程,它在機器人控制中有非常重要的地位,是機器人運動分析、離線編程、軌跡規劃等的基礎,是機器人學中十分重要的問題[1],特別是在機器人的軌跡規劃過程中,逆運動學求解的準確性會直接影響末端執行器軌跡的平滑性[2]。因此,對機器人逆運動學求解,是國內外很多研究者研究、分析的熱點問題。
機器人逆運動學模型是一個多輸入-多輸出的系統,它通常是非線性方程組的求解。與線性方程組的求解不同,非線性方程組沒有通用的求解算法。傳統的求機器人逆向運動學多解的方法有解析法[3]、數值迭代法[4]、幾何法[5]等。解析法的計算量較大,在消元過程中很難得到正確的一元高次方程。幾何法和迭代法在逆運動學求解過程中,需要在特定的條件下才能實現。
隨著計算機技術發展的突飛猛進和機器人結構越來越復雜,應用現代智能算法求逆運動學解方面的研究越來越廣泛。其中,神經網絡因具有對任意連續函數的逼近能力和泛化能力,被不少學者應用在機器人逆運動學求解中。通常,使用神經網絡求機器人逆運動學解采用以下方式:首先,關節空間Q通過正向運動學得到位姿T;然后將位姿T作為神經網絡的輸入、Q作為輸出以訓練神經網絡;最后,用訓練好的神經網絡求目標位姿對應的逆運動學解[6-7]。關節空間由正向運動學得到的位姿是唯一的,但從位姿向關節空間作逆映射是存在一對多解的。因此,輸入和輸出之間若沒有建立唯一的映射關系,一個單獨的神經網絡結構將無法求得機器人整個工作空間中的逆運動學多解。
B.Daya等[8]提出了一種由6個子神經網絡組成的神經網絡體系結構,并利用該結構很好地求出了平面2自由度機械手的兩組逆運動學解。A.V.Duka等[9]通過增加方位角作為神經網絡輸入的特征參數,在輸入與輸出之間建立了唯一映射關系,從而用訓練好的神經網絡,對平面3R機械手工作空間中規劃好的軌跡點求得了一組逆運動學解。文獻[8]和文獻[9]的方法都很好地克服了神經網絡在求多解時存在的不足,但是各自也存在著不足之處:文獻[8]需要的神經網絡數目較多;文獻[9]對平面3R機械手的多解缺乏理論分析,從而在增加方位角作為特征參數的條件下,只求出了一組逆運動學解。事實上,在平面3R機械手中,當給定一個方位角后,一個位置點仍然有兩組逆運動學解。
本研究通過將連桿分離-重新結合的方式,對平面3R機械手的工作空間進行幾何分析,判斷其多解的規律,利用該規律將其關節空間劃分為兩個子空間,并分別用兩個BP神經網絡進行訓練,同時輸入中增加方位角作為特征參數,以消除每個空間中存在的無窮解帶來的錯誤映射關系。仿真結果表明,該方法不僅可以很好地劃分平面3R機械手的多解區域,同時用多模塊BP神經網絡還可以獲得高精度的逆運動學多解。
圖1是平面3R機械手,其連桿的長度分別為OA=L1,AB=L2,BC=L3,關節角的取值范圍分別為θ1∈(-π,π),θ2∈(-π,π),θ3∈(-π,π),末端執行器中心C點坐標為(px,py),OC的距離為L,。

圖1 平面3R機械手Fig.1 Planar 3R manipulator
假設L1=L2,L3 圖2 Part I和Part II的B 點軌跡Fig.2 Point B trajectory of Part I and II 現考慮圓平面與圓的位置關系:在平面二連桿工作空間內部的點有如下兩組逆運動學解[8]: Q1和Q2映射得到的工作空間是兩個相等的同心圓平面。Q1、Q2分別與θ3的組合記為Zone1、Zone2,取Zone1進行分析。 由平面幾何知識,可得: Case 1當L=L1+L2+L3時,圓平面O與圓C外切,此時B點可以重新結合的位置在半徑為L1+L2的圓O上; Case 2當L=L1+L2-L3時,圓平面O與圓C內切,此時B點可以在圓C上任意一點重新結合; Case 3當L1+L2-L3 圓平面O與圓C的3種位置關系如圖3所示。 圖3 圓平面O與圓C的位置關系Fig.3 Position relationship between circular plane O and circle C 圖3c中,圓弧對應的圓心角α可由下式求得: 式(1)(2)分別為圓O和圓C的方程,在圓C上點的橫坐標與縱坐標可以分別表示如下: 將式(3)代入式(1)中,得到 式(4)中:u=arctan 2(px,py), 令k=φ+u,則有 令由式(5)得到的φ1和φ2均在[0,2π]之間,且φ2>φ1,則有 在Zone1中,通過上述分析可以得知: 1)當L=L1+L2+L3時,關節角對應的點的逆運動學解為; 2)當0≤L≤L1+L2-L3時,關節角對應的點在圓C上有無窮組逆運動學解; 3)當L1+L2-L3 在1)、2)、3)中,滿足上述條件的關節角對應的點,均存在無窮組逆運動學解。當對末端執行器的方位角進行規劃時,若給定方位角,則逆運動學解也將唯一確定,方位角公式[9]為 在1)中,因為θ2=θ3=0,故滿足式(7)的θ1唯一;在2)中,方位角的范圍為[-π,π],有無窮多種組合,可以任意設定方位角;在3)中,方位角雖然也有無窮多種組合,但是其取值范圍有限。 在圖4中,對3)中方位角的取值范圍進行分析。分別延長MC、NC,其延長線與過圓心C的水平虛線PQ之間的夾角分別為δ1、δ2,δ1、δ2便是 3)中方位角的臨界值,根據已經求得的φ1和φ2,可以求出δ1和δ2: 方位角的取值范圍為 圖4 圓C中的方位角Fig.4 Azimuth in circle C 至此,在Zone1中全面分析了平面3R機械手的多解情況,并確定了圓平面O與圓C相交時方位角的取值范圍。 同理,在Zone2中也可以得出相同的結論。 采用標準Diffie-Hellman法[10]給圖1所示平面3R機械手建立運動學模型,并確定各參數,所得結果見圖5和表1,其中L1=L2=L3=200 mm。為分析計算方便,將θ1的變化范圍設定為(0,π)。 圖5 機械手D-H模型Fig.5 D-H parameters of manipulator 表1 機械手D-H參數Table1 D-H parameters of manipulator C點的正向運動學方程可由下式確定: BP神經網絡具有多層結構,分別是輸入層、一層或多層隱含層、輸出層。各層神經元之間是全連接的,而層內無連接。隱含層各神經元節點采用Sigmoid[11]作為激勵函數。圖6是一個3層的BP神經網絡,其中閾值未畫出。 圖6 3層BP神經網絡結構示意圖Fig.6 Sketch map of three-layer BP neural network 如圖6所示的3層BP神經網絡中,輸入層有M個神經元,輸入向量X=[x1,x2,…,xM]T;隱含層有I個神經元;輸出層有J個神經元,輸出向量Y=[y1,y2,…,yJ]T;ωmi是輸入層與隱含層之間的權值,ωij是隱含層與輸出層之間的權值,隱含層各神經元的閾值為ai(i=1,2,…,I),輸出層各神經元的閾值為bj(j=1,2,…,J)。 根據圖6,可以得到網絡的輸出: 式中f(*)為隱含層的激勵函數。 Matlab是一款功能強大的數學軟件,該軟件將數值分析、矩陣計算、可視化、動態系統建模仿真等功能集成在一個開發環境中,為科研和工作提供了強大支持[12]。 在Matlab中,可以通過如下步驟訓練BP神經網絡[12]。 1)創建前向神經網絡 創建前向神經網絡命令如下: 其中,hiddenSizes表示隱含層的規模,列數表示隱含層數,每列的數值表示各隱含層的神經元個數;trainFcn是訓練權值的算法,默認為“trainlm”,lm是levenberg-marquadt算法的縮寫。lm算法將梯度下降法與高斯-牛頓法相結合,既有高斯-牛頓法的局部收斂特性,又有梯度下降法的全局收斂特性[13],具有收斂速度快、誤差小的優點。 2)設定參數 設定參數如下: net.trainParam.epochs,代表迭代最大次數;net.trainParam.lr,代表學習率; net.trainParam.goal,代表目標誤差; net.trainParam.max_fail,代表訓練最大的失敗次數,默認為6; net.divideParam.trainRatio,代表訓練樣本占總樣本的百分數,默認為70%; net.divideParam.valRatio,代表校驗樣本占總樣本的百分數,默認為15%; net.divideParam.testRatio,代表測試樣本占總樣本的百分數,默認為15%。 3)訓練BP神經網絡 訓練BP神經網絡的公式為 式中:Ptrain為訓練樣本的輸入矩陣;Ttrain為訓練樣本的輸出矩陣;TR為記錄訓練的結果。 4)預測數據 根據下式預測網絡結果數據: 式中:t為網絡預測結果;Ptest為需要預測的輸入。 根據前文結論將關節空間分為以下兩個子空間:本文采用以下方式得到訓練樣本,在Zonei(i=1,2)中,先將θj(j=1,2,3)平均分成M、I、J份,然后將θj進行組合,如圖7所示。 圖7 關節角組合方式Fig.7 Joint angle compound methods Zone1、Zone2中的關節角組合分別有M×I×J組,記為Q1、Q2,然后將Q1、Q2分別代入式(7)和式(10)中,即可以得到BP神經網絡的訓練樣本輸入,Qi作為BP神經網絡的訓練樣本輸出。 神經網絡在預測前通常會對數據樣本進行歸一化處理,其目的是取消輸入輸出間的數量級差別,從而減小預測誤差。歸一化的方法有最大最小法和平均數方差法,本研究采用最大最小法: 式中:x表示歸一化后的數;xk表示需歸一化的數; xmax、xmin分別表示序列中的最大值、最小值。 用θPim(i=1,2,3;m=1,2,…,N)表示預測得到的關節角,θTim(i=1,2,3;m=1,2,…,N)表示實際的關節角,其中i是關節角序號,N是測試樣本序號。評價指標公式如下: 式中em為預測的關節角與實際關節角之間的誤差。 記用于Zonei(i=1,2)中樣本訓練的BP神經網絡為neti,令M=12,I=12,J=24,分別得到 3 456組樣本,根據3.2節的步驟,在Matlab中訓練BP神經網絡權值,參數設置如下: net1中,net.trainParam.epochs=400,hiddenSizes=[26 23],net.trainParam.goal=10-6; net2中,hiddenSizes=[21 18],net.trainParam.epochs= 425,net.trainParam.goal=10-6。 兩個網絡隱含層的激活函數設為tansig函數,輸出層的激活函數設為線性函數purelin,其余均設為默認值。 圖8是net1和net2的訓練結果及測試結果,實線、虛線、中心線分別是訓練樣本的均方差、校驗樣本的均方差和測試樣本的均方差。 圖8 兩個網絡的訓練結果Fig.8 Training results of two networks 圖9和10是兩個網絡測試樣本中預測得到的關節角與實際關節角之間的誤差,由圖可以看到,兩個網絡的預測誤差均在-0.1~0.1 rad之間。 圖9 net1網絡預測各關節角誤差Fig.9 Prediction errors of network 1 圖10 net2網絡預測各關節角誤差Fig.10 Prediction errors of network 2 圖11是Zonei(i=1,2)對應的工作空間。 圖11 兩個子空間對應的工作空間Fig.11 Workspace corresponding to the two sub-spaces 為進一步驗證用該方法訓練好的兩個BP神經網絡,可以求3R機械手的逆運動學多解,在兩個工作空間公共部分規劃一段圓形軌跡,其方程為 根據前文中的結論,在兩個工作空間的位置增加一個方位角,就可以在關節子空間中得到對應的唯一逆運動學解,給所取的43個點分別加上以下方位角: 式中方位角Θd表示末端執行器和坐標原點的連線與X軸間的夾角,其滿足式(9)的邊界約束。 圖12是兩個網絡分別預測得到的棍軌跡圖,圖中3種不同線型的線段分別表示3根連桿在各組解時的位形,“*”是預測得到的點位置。從圖中可以看出,兩個網絡預測得到的兩段軌跡都很平滑,基本在原軌跡附近。 圖12 兩個網絡預測得到的軌跡Fig.12 Trajectories predicted by two networks 本文通過連桿分離-重新結合的方式進行幾何分析,將3R機械手劃分為兩個子空間,并將子空間中的逆運動學解問題轉化為幾何中圓與圓平面之間的位置關系:當圓平面與圓相離時,機械手無逆運動學解;當圓平面與圓外切時,機械手存在唯一逆運動學解;當圓平面與圓相交或內切時,機械手存在無窮組逆運動學解。兩個子空間分別用一個含2層隱含層的BP神經網絡進行訓練,并在每個BP神經網絡中添加方位角作為樣本輸入的特征參數,消除了各子空間中存在無窮組逆運動學解時的映射錯誤。最終用訓練好的兩個BP神經網絡分別預測同一段規劃好的圓形軌跡,都得到了平滑的預測軌跡。另外,使用LM學習算法的BP神經網絡具有收斂速度快、誤差小等優點。












2.2 正向運動學模型



3 BP神經網絡及其Matlab實現
3.1 BP神經網絡的結構


3.2 Matlab神經網絡工具箱



3.3 樣本選取


3.4 樣本歸一化

3.5 預測效果評定

4 仿真實例
4.1 神經網絡訓練及其測試結果




4.2 運動軌跡




5 結語