石煒,林家祥,郭彤
(廣西科技大學 機械與交通工程學院,廣西 柳州 545000)
工業(yè)機器人是指應用在工業(yè)領域的多自由度的機械裝置。六軸機器人是連桿的自由度個數有六個且全部為轉動關節(jié),前三個關節(jié),可以表示空間中任意位置,后三個關節(jié)軸線相交于一點,表示達到末端位置時不同的姿態(tài)要求[1]。
機器人運動學及軌跡規(guī)劃國內外學者都進行了大量的研究。Fatima Zahra Baghli等[2]因為已知ACO對搜索和優(yōu)化問題具有魯棒性,因此使用蟻群算法作為優(yōu)化工具,在五個矩形形狀和大小不一的障礙物中,規(guī)劃出從初始位置到最終位置的最佳路徑;田恒[3]等人提出一種快速收斂的粒子群算法,以機器人完成不同動作時軌跡的平滑度和所用時間為主要優(yōu)化目標,通過調整比例系數和全局學習因子的比重獲得更快的收斂速度。上述使用的群體智能算法,除了常見的控制參數,不同的算法還需要自己特定的控制參數,且控制參數要適當的進行調整,否則容易產生局部最優(yōu)解。采用的教學優(yōu)化算法模擬老師授課教學的過程和學生間互相學習的過程來提高學生成績,該算法不需要特定的算法參數,而且收斂速度快,收斂能力強,響應時間短,提高了實際生產效率。
D-H方法[4]主要為了建立起機器人末端執(zhí)行器在笛卡爾空間上的聯系。根據建立的坐標系在桿件前后的不同位置,又分為標準D-H方法和改進D-H方法。本研究采用標準D-H方法建立模型并分析機器人各連桿之間的關系,表1為連桿的標準D-H參數定義。
表1 連桿的標準D-H參數定義
使用4×4矩陣i-1Ti表示相鄰兩連桿之間的坐標變換關系:
將D-H參數帶入上述公式中,0T1、1T2、2T3、3T4、4T5、5T6表示了從關節(jié)1到關節(jié)6分別相對于基坐標系的位姿關系。根據D-H方法建模即可得到機器人各連桿的空間位姿信息。
IRB2600是一個六個轉動關節(jié)的六軸工業(yè)機器人。表2給出IRB2600的D-H參數,采用標準D-H方法建模,建立如圖1示的D-H模型。
表2 IRB2600機器人D-H參數表
圖1 機器人D-H模型
借用MATLAB中的Link函數、SerialLink函數、Robot函數構造函數,其MATLAB程序如下:
其中theta、alpha、sigma均為D-H參數,sigma可取0或者1,分別表示轉動關節(jié)和移動關節(jié),convetion表示D-H建模方法,本研究使用的是標準D-H建模方法,則convetion=standard,調用函數SerialLink將各個關節(jié)和連桿連接起來,組成完整的機器人模型,并取名為“ABB-IRB2600”,如圖2所示。
圖2 MATLAB建模
六軸機器人運動學分析,即計算分析笛卡爾空間和關節(jié)空間中的位姿變化。正運動計算,即代入已知的各個關節(jié)角度,通過變換矩陣相乘,得到末端執(zhí)行器的位姿矩陣;逆運動計算,即已知初末位置的位姿信息,通過不同的方法計算,求得各關節(jié)的角度。
將表2中IRB2600六軸機器人的參數代入式(1),六個連桿的變換矩陣相乘,得到末端執(zhí)行器在笛卡爾空間中的位姿矩陣0T6,即:
假設各個關節(jié)的關節(jié)角θ均為零,用q0=[0 0 0 0 0 0]表示,使用MATLAB中機器人工具箱的fkine函數對正運動求解,通過T=fkine(robot,q0)命令,得出:
所得矩陣為零位狀態(tài)時,IRB-2600機器人末端執(zhí)行器的位姿矩陣。
逆運動學計算即已知初末位置信息,通過逆運動計算得到各關節(jié)角度。因為六軸機器人的后三個關節(jié)的軸線相交于一點,則一定會存在逆解。本研究采用代數法[5]進行求解,代數法雖然計算量偏大,但是求解過程及結果更加直觀明確。李飛在文獻[5]中運用代數法解得IRB2600六軸機器人的各關節(jié)角度,注意各關節(jié)角度在不同區(qū)間對應的公式以及多重解問題。
以零位狀態(tài)下為例,上文中正運動求得末端執(zhí)行器的位姿矩陣T,在機器人工具箱中通過q=ikine(robot,T)命令求得關節(jié)角度,所得各關節(jié)角度均為0,驗證得出逆解無誤。
機器人所能達到的空間中的點的集合稱為工作空間,對于結構設計和尺寸優(yōu)化具有重要意義。機器人的工作空間不考慮末端位置的姿態(tài),只注重機器人末端執(zhí)行器所達的位置。所有末端執(zhí)行器達到的位置的集合,就是機器人的工作空間。
蒙特卡洛(Monte Carlo)方法,是一種通過隨機變量的統(tǒng)計試驗、隨機模擬,求解數學物理、工程技術問題近似解的數值方法[6]。該方法簡單直觀,應用于機器人工作空間沒有關節(jié)類型、自由度等要求。具體操作步驟如下:
(1)位置坐標向量。因為計算工作空間不需要六軸機器人末端姿態(tài),因此只需帶入正運動計算結果中的位置坐標向量[px py pz]T即可;
(2)關節(jié)角度區(qū)間。根據IRB2600六軸機器人的關節(jié)轉動范圍,調用MATLAB中隨機函數rand,使關節(jié)轉動范圍的最小值,加上轉動角度最大值與最小值之差乘以隨機數rand的積,即可表示相應關節(jié)角度的區(qū)間。各關節(jié)角度區(qū)間的MATLAB程序如下:
(3)將式(4)中的六個關節(jié)角度區(qū)間帶入位置坐標向量px、py和pz中,在MATLAB中繪制出來,即可得到六軸機器人的工作空間。取點數N=10000,得到工作空間如圖3所示。
圖3 IRB2600六軸機器人工作空間
教學優(yōu)化算法屬于群體智能算法,模擬教師教學與同學間互相學習的過程,通過成績不斷迭代提高,最終達到目標值的方式來解決最優(yōu)化問題。因為TLBO算法需要的參數少、收斂能力強和收斂速度快等優(yōu)點,在各個領域得到很好的應用[7]。
3.2.1 “教學”階段
在教學階段,模擬老師教學和學生與班級平均水平的差異來提高自身成績。對于班級中的第i個學習者,最新成績如下:
式中:Xi和分別表示第i和學生在學習前和學習后的數值;Mean是所有學生成績的平均值;教學因子TF=round[1+rand(0,1)];rand是[0,1]之間的隨機數。
3.2.2 “學習”階段
在學習階段,模擬學生之間相互學習的方式來提高自己的成績。對于學生Xi,最新成績如下:
式中:Xk是一個不同于第i個的學生,f(Xi)和f(Xk)分別表示Xi和Xk的適應度,適應度盡可能接近該函數的極小值。
3.2.3 更新成績
學生在不同階段都要更新成績,類似于遺傳算法的種群的選擇,將學習前后的成績以適應度的形式作對比,淘汰適應度函數值高對應的成績,經過一定次數的迭代學習,最終獲得更新后的成績。
軌跡規(guī)劃,是根據工作需要基于某種方法計算規(guī)劃出預期的軌跡。根據規(guī)劃空間不同,分為關節(jié)空間和笛卡爾空間的軌跡規(guī)劃。關節(jié)空間的軌跡規(guī)劃是指機器人在不同關節(jié)中進行軌跡規(guī)劃,該方法可以確保末端執(zhí)行器經過給定的目標點,且不會存在奇異性問題,但是該方法規(guī)劃的方法不直觀。笛卡爾空間的軌跡規(guī)劃是指在基坐標中進行軌跡規(guī)劃,該方法規(guī)劃的路徑直觀準確,但是需要實時在笛卡爾空間和關節(jié)空間進行轉換,需要大量的反解計算,且可能存在奇異解。
針對機器人的運動方式主要又分為兩種:點到點運動(PTP)和連續(xù)點運動(CP)。PTP運動主要指的是點對點的規(guī)劃,需要在關節(jié)空間中進行,該運動計算簡單可靠,不用考慮逆解存在的各種情況和奇異點問題;CP運動是以點到點運動為基礎,各個關節(jié)相互聯動的連續(xù)點軌跡規(guī)劃。本研究主要針對關節(jié)空間進行軌跡規(guī)劃,因此選擇PTP運動。
仿真以點對點運動為例,隨機選取系列點,以P1(-pi/6,0,0,0,0,0)為起始點,P2(-pi/4,-pi/3-pi/5,pi/2,pi/4,pi/6)為終止點,Pmid(0,0,0,0,0,0)為插值點。軌跡仿真中,在末端執(zhí)行器從P1點經過Pmid運動到P2點,得到機器人各關節(jié)的角度、角速度和角加速度隨時間的變化曲線,從曲線中可得出規(guī)劃的軌跡是否平滑和連續(xù),是否產生位移與速度的突變。
假設從P1點到P2點用時為10 s,步長取50 ms。機器人各個關節(jié)的變化曲線分別如圖4~6所示,圖7為x,y,z三個關節(jié)隨時間的位置變化。
圖4 關節(jié)角度的變化曲線
圖7 關節(jié)x,y,z的變化曲線
由圖6可得,加速度曲線雖然是折線不夠平滑,但卻是連續(xù)的,表明各關節(jié)速度是平滑且連續(xù)的;圖5表明各關節(jié)速度平滑且連續(xù),表明各關節(jié)角度是平滑的,圖4各關節(jié)角度的變化曲線和圖7關節(jié)x,y,z的變化曲線也證明了在六軸工業(yè)機器人運動過程中沒有發(fā)生突變和奇異現象。
圖5 關節(jié)角速度的變化曲線
圖6 關節(jié)角加速度的變化曲線
圖8所示為規(guī)劃出的完整軌跡曲線,整體直觀體現出曲線是平滑完整的;圖9所示為仿真過程中的迭代次數曲線,由圖可得,該算法進行此次仿真大概在8-10次迭代后就已經趨于穩(wěn)定,迭代收斂快。仿真結果表明,基于教學優(yōu)化算法的六軸機器人在運動過程中,運動軌跡連續(xù)且平滑,迭代收斂速度快,滿足規(guī)劃要求。
圖8 規(guī)劃的軌跡曲線
圖9 迭代次數
通過MATLAB Robotics Toolbox建立IRB2600六軸機器人模型,并對進行運動學分析和軌跡規(guī)劃,以關節(jié)變化曲線對規(guī)劃路徑進行驗證,得到如下結論:
(1)在軌跡規(guī)劃中,使用群智能算法中教學優(yōu)化算法對固定點進行軌跡規(guī)劃,關節(jié)變化曲線證明:使用該算法規(guī)劃出的軌跡平滑且連續(xù),沒有突變與奇異點,為后續(xù)復雜軌跡的焊接任務提供理論依據;
(2)只針對離散點進行軌跡規(guī)劃,并未使用教學優(yōu)化算法對復雜軌跡進行規(guī)劃,后續(xù)將進行更加深入的研究。