石煒,林家祥,郭彤
(廣西科技大學(xué) 機械與交通工程學(xué)院,廣西 柳州 545000)
工業(yè)機器人是指應(yīng)用在工業(yè)領(lǐng)域的多自由度的機械裝置。六軸機器人是連桿的自由度個數(shù)有六個且全部為轉(zhuǎn)動關(guān)節(jié),前三個關(guān)節(jié),可以表示空間中任意位置,后三個關(guān)節(jié)軸線相交于一點,表示達到末端位置時不同的姿態(tài)要求[1]。
機器人運動學(xué)及軌跡規(guī)劃國內(nèi)外學(xué)者都進行了大量的研究。Fatima Zahra Baghli等[2]因為已知ACO對搜索和優(yōu)化問題具有魯棒性,因此使用蟻群算法作為優(yōu)化工具,在五個矩形形狀和大小不一的障礙物中,規(guī)劃出從初始位置到最終位置的最佳路徑;田恒[3]等人提出一種快速收斂的粒子群算法,以機器人完成不同動作時軌跡的平滑度和所用時間為主要優(yōu)化目標(biāo),通過調(diào)整比例系數(shù)和全局學(xué)習(xí)因子的比重獲得更快的收斂速度。上述使用的群體智能算法,除了常見的控制參數(shù),不同的算法還需要自己特定的控制參數(shù),且控制參數(shù)要適當(dāng)?shù)倪M行調(diào)整,否則容易產(chǎn)生局部最優(yōu)解。采用的教學(xué)優(yōu)化算法模擬老師授課教學(xué)的過程和學(xué)生間互相學(xué)習(xí)的過程來提高學(xué)生成績,該算法不需要特定的算法參數(shù),而且收斂速度快,收斂能力強,響應(yīng)時間短,提高了實際生產(chǎn)效率。
D-H方法[4]主要為了建立起機器人末端執(zhí)行器在笛卡爾空間上的聯(lián)系。根據(jù)建立的坐標(biāo)系在桿件前后的不同位置,又分為標(biāo)準(zhǔn)D-H方法和改進D-H方法。本研究采用標(biāo)準(zhǔn)D-H方法建立模型并分析機器人各連桿之間的關(guān)系,表1為連桿的標(biāo)準(zhǔn)D-H參數(shù)定義。

表1 連桿的標(biāo)準(zhǔn)D-H參數(shù)定義
使用4×4矩陣i-1Ti表示相鄰兩連桿之間的坐標(biāo)變換關(guān)系:

將D-H參數(shù)帶入上述公式中,0T1、1T2、2T3、3T4、4T5、5T6表示了從關(guān)節(jié)1到關(guān)節(jié)6分別相對于基坐標(biāo)系的位姿關(guān)系。根據(jù)D-H方法建模即可得到機器人各連桿的空間位姿信息。
IRB2600是一個六個轉(zhuǎn)動關(guān)節(jié)的六軸工業(yè)機器人。表2給出IRB2600的D-H參數(shù),采用標(biāo)準(zhǔn)D-H方法建模,建立如圖1示的D-H模型。

表2 IRB2600機器人D-H參數(shù)表

圖1 機器人D-H模型
借用MATLAB中的Link函數(shù)、SerialLink函數(shù)、Robot函數(shù)構(gòu)造函數(shù),其MATLAB程序如下:

其中theta、alpha、sigma均為D-H參數(shù),sigma可取0或者1,分別表示轉(zhuǎn)動關(guān)節(jié)和移動關(guān)節(jié),convetion表示D-H建模方法,本研究使用的是標(biāo)準(zhǔn)D-H建模方法,則convetion=standard,調(diào)用函數(shù)SerialLink將各個關(guān)節(jié)和連桿連接起來,組成完整的機器人模型,并取名為“ABB-IRB2600”,如圖2所示。

圖2 MATLAB建模
六軸機器人運動學(xué)分析,即計算分析笛卡爾空間和關(guān)節(jié)空間中的位姿變化。正運動計算,即代入已知的各個關(guān)節(jié)角度,通過變換矩陣相乘,得到末端執(zhí)行器的位姿矩陣;逆運動計算,即已知初末位置的位姿信息,通過不同的方法計算,求得各關(guān)節(jié)的角度。
將表2中IRB2600六軸機器人的參數(shù)代入式(1),六個連桿的變換矩陣相乘,得到末端執(zhí)行器在笛卡爾空間中的位姿矩陣0T6,即:

假設(shè)各個關(guān)節(jié)的關(guān)節(jié)角θ均為零,用q0=[0 0 0 0 0 0]表示,使用MATLAB中機器人工具箱的fkine函數(shù)對正運動求解,通過T=fkine(robot,q0)命令,得出:

所得矩陣為零位狀態(tài)時,IRB-2600機器人末端執(zhí)行器的位姿矩陣。
逆運動學(xué)計算即已知初末位置信息,通過逆運動計算得到各關(guān)節(jié)角度。因為六軸機器人的后三個關(guān)節(jié)的軸線相交于一點,則一定會存在逆解。本研究采用代數(shù)法[5]進行求解,代數(shù)法雖然計算量偏大,但是求解過程及結(jié)果更加直觀明確。李飛在文獻[5]中運用代數(shù)法解得IRB2600六軸機器人的各關(guān)節(jié)角度,注意各關(guān)節(jié)角度在不同區(qū)間對應(yīng)的公式以及多重解問題。
以零位狀態(tài)下為例,上文中正運動求得末端執(zhí)行器的位姿矩陣T,在機器人工具箱中通過q=ikine(robot,T)命令求得關(guān)節(jié)角度,所得各關(guān)節(jié)角度均為0,驗證得出逆解無誤。
機器人所能達到的空間中的點的集合稱為工作空間,對于結(jié)構(gòu)設(shè)計和尺寸優(yōu)化具有重要意義。機器人的工作空間不考慮末端位置的姿態(tài),只注重機器人末端執(zhí)行器所達的位置。所有末端執(zhí)行器達到的位置的集合,就是機器人的工作空間。
蒙特卡洛(Monte Carlo)方法,是一種通過隨機變量的統(tǒng)計試驗、隨機模擬,求解數(shù)學(xué)物理、工程技術(shù)問題近似解的數(shù)值方法[6]。該方法簡單直觀,應(yīng)用于機器人工作空間沒有關(guān)節(jié)類型、自由度等要求。具體操作步驟如下:
(1)位置坐標(biāo)向量。因為計算工作空間不需要六軸機器人末端姿態(tài),因此只需帶入正運動計算結(jié)果中的位置坐標(biāo)向量[px py pz]T即可;
(2)關(guān)節(jié)角度區(qū)間。根據(jù)IRB2600六軸機器人的關(guān)節(jié)轉(zhuǎn)動范圍,調(diào)用MATLAB中隨機函數(shù)rand,使關(guān)節(jié)轉(zhuǎn)動范圍的最小值,加上轉(zhuǎn)動角度最大值與最小值之差乘以隨機數(shù)rand的積,即可表示相應(yīng)關(guān)節(jié)角度的區(qū)間。各關(guān)節(jié)角度區(qū)間的MATLAB程序如下:

(3)將式(4)中的六個關(guān)節(jié)角度區(qū)間帶入位置坐標(biāo)向量px、py和pz中,在MATLAB中繪制出來,即可得到六軸機器人的工作空間。取點數(shù)N=10000,得到工作空間如圖3所示。

圖3 IRB2600六軸機器人工作空間
教學(xué)優(yōu)化算法屬于群體智能算法,模擬教師教學(xué)與同學(xué)間互相學(xué)習(xí)的過程,通過成績不斷迭代提高,最終達到目標(biāo)值的方式來解決最優(yōu)化問題。因為TLBO算法需要的參數(shù)少、收斂能力強和收斂速度快等優(yōu)點,在各個領(lǐng)域得到很好的應(yīng)用[7]。
3.2.1 “教學(xué)”階段
在教學(xué)階段,模擬老師教學(xué)和學(xué)生與班級平均水平的差異來提高自身成績。對于班級中的第i個學(xué)習(xí)者,最新成績?nèi)缦拢?/p>

式中:Xi和分別表示第i和學(xué)生在學(xué)習(xí)前和學(xué)習(xí)后的數(shù)值;Mean是所有學(xué)生成績的平均值;教學(xué)因子TF=round[1+rand(0,1)];rand是[0,1]之間的隨機數(shù)。
3.2.2 “學(xué)習(xí)”階段
在學(xué)習(xí)階段,模擬學(xué)生之間相互學(xué)習(xí)的方式來提高自己的成績。對于學(xué)生Xi,最新成績?nèi)缦拢?/p>

式中:Xk是一個不同于第i個的學(xué)生,f(Xi)和f(Xk)分別表示Xi和Xk的適應(yīng)度,適應(yīng)度盡可能接近該函數(shù)的極小值。
3.2.3 更新成績
學(xué)生在不同階段都要更新成績,類似于遺傳算法的種群的選擇,將學(xué)習(xí)前后的成績以適應(yīng)度的形式作對比,淘汰適應(yīng)度函數(shù)值高對應(yīng)的成績,經(jīng)過一定次數(shù)的迭代學(xué)習(xí),最終獲得更新后的成績。
軌跡規(guī)劃,是根據(jù)工作需要基于某種方法計算規(guī)劃出預(yù)期的軌跡。根據(jù)規(guī)劃空間不同,分為關(guān)節(jié)空間和笛卡爾空間的軌跡規(guī)劃。關(guān)節(jié)空間的軌跡規(guī)劃是指機器人在不同關(guān)節(jié)中進行軌跡規(guī)劃,該方法可以確保末端執(zhí)行器經(jīng)過給定的目標(biāo)點,且不會存在奇異性問題,但是該方法規(guī)劃的方法不直觀。笛卡爾空間的軌跡規(guī)劃是指在基坐標(biāo)中進行軌跡規(guī)劃,該方法規(guī)劃的路徑直觀準(zhǔn)確,但是需要實時在笛卡爾空間和關(guān)節(jié)空間進行轉(zhuǎn)換,需要大量的反解計算,且可能存在奇異解。
針對機器人的運動方式主要又分為兩種:點到點運動(PTP)和連續(xù)點運動(CP)。PTP運動主要指的是點對點的規(guī)劃,需要在關(guān)節(jié)空間中進行,該運動計算簡單可靠,不用考慮逆解存在的各種情況和奇異點問題;CP運動是以點到點運動為基礎(chǔ),各個關(guān)節(jié)相互聯(lián)動的連續(xù)點軌跡規(guī)劃。本研究主要針對關(guān)節(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點經(jīng)過Pmid運動到P2點,得到機器人各關(guān)節(jié)的角度、角速度和角加速度隨時間的變化曲線,從曲線中可得出規(guī)劃的軌跡是否平滑和連續(xù),是否產(chǎn)生位移與速度的突變。
假設(shè)從P1點到P2點用時為10 s,步長取50 ms。機器人各個關(guān)節(jié)的變化曲線分別如圖4~6所示,圖7為x,y,z三個關(guān)節(jié)隨時間的位置變化。

圖4 關(guān)節(jié)角度的變化曲線

圖7 關(guān)節(jié)x,y,z的變化曲線
由圖6可得,加速度曲線雖然是折線不夠平滑,但卻是連續(xù)的,表明各關(guān)節(jié)速度是平滑且連續(xù)的;圖5表明各關(guān)節(jié)速度平滑且連續(xù),表明各關(guān)節(jié)角度是平滑的,圖4各關(guān)節(jié)角度的變化曲線和圖7關(guān)節(jié)x,y,z的變化曲線也證明了在六軸工業(yè)機器人運動過程中沒有發(fā)生突變和奇異現(xiàn)象。

圖5 關(guān)節(jié)角速度的變化曲線

圖6 關(guān)節(jié)角加速度的變化曲線
圖8所示為規(guī)劃出的完整軌跡曲線,整體直觀體現(xiàn)出曲線是平滑完整的;圖9所示為仿真過程中的迭代次數(shù)曲線,由圖可得,該算法進行此次仿真大概在8-10次迭代后就已經(jīng)趨于穩(wěn)定,迭代收斂快。仿真結(jié)果表明,基于教學(xué)優(yōu)化算法的六軸機器人在運動過程中,運動軌跡連續(xù)且平滑,迭代收斂速度快,滿足規(guī)劃要求。

圖8 規(guī)劃的軌跡曲線

圖9 迭代次數(shù)
通過MATLAB Robotics Toolbox建立IRB2600六軸機器人模型,并對進行運動學(xué)分析和軌跡規(guī)劃,以關(guān)節(jié)變化曲線對規(guī)劃路徑進行驗證,得到如下結(jié)論:
(1)在軌跡規(guī)劃中,使用群智能算法中教學(xué)優(yōu)化算法對固定點進行軌跡規(guī)劃,關(guān)節(jié)變化曲線證明:使用該算法規(guī)劃出的軌跡平滑且連續(xù),沒有突變與奇異點,為后續(xù)復(fù)雜軌跡的焊接任務(wù)提供理論依據(jù);
(2)只針對離散點進行軌跡規(guī)劃,并未使用教學(xué)優(yōu)化算法對復(fù)雜軌跡進行規(guī)劃,后續(xù)將進行更加深入的研究。