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