(青島大學(xué) 自動(dòng)化與電氣工程學(xué)院,青島 266071)
機(jī)器人軌跡規(guī)劃是滿足實(shí)際需求任務(wù)的基礎(chǔ),是開(kāi)發(fā)機(jī)器人運(yùn)動(dòng)控制系統(tǒng)軟件的重要研究?jī)?nèi)容,因此對(duì)軌跡規(guī)劃算法的研究和實(shí)際軌跡精度的控制有著重要意義和作用。機(jī)器人想要在作業(yè)空間中完成特定的作業(yè),其末端執(zhí)行器則必須按照特定的軌跡運(yùn)行[3]。軌跡規(guī)劃是指按照廠家提出的工藝要求,求出運(yùn)動(dòng)軌跡的參數(shù)并生成我們所期望的運(yùn)動(dòng)軌跡。機(jī)器人軌跡規(guī)劃目前主要有基于關(guān)節(jié)坐標(biāo)和基于直角坐標(biāo)的兩種軌跡規(guī)劃方案[4]?,F(xiàn)實(shí)應(yīng)用中軌跡規(guī)劃具有重要的基礎(chǔ)意義,也是工業(yè)生產(chǎn)向高精度方向發(fā)展的必然需求。
本文研究的工業(yè)型六自由度串聯(lián)機(jī)器人由底座,機(jī)械臂,末端執(zhí)行器,伺服電機(jī)驅(qū)動(dòng)系統(tǒng)以及本體管線包等部件組成[5]。結(jié)構(gòu)示意圖如圖1所示。該類型的工業(yè)型機(jī)器人共有六套伺服系統(tǒng),伺服系統(tǒng)可以驅(qū)動(dòng)伺服電機(jī)來(lái)控制關(guān)節(jié)實(shí)現(xiàn)不同形式的運(yùn)動(dòng),改變運(yùn)末端執(zhí)行器中心點(diǎn)的位置和姿態(tài)完成實(shí)際生產(chǎn)作業(yè)任務(wù)。
圖1 ER3A-C60機(jī)器人結(jié)構(gòu)示意圖
機(jī)器人作業(yè)空間是指末端執(zhí)行器運(yùn)動(dòng)描述參考點(diǎn)所能達(dá)到的空間點(diǎn)的集合,一般用水平面和垂直面的投影表示[6]。每個(gè)機(jī)器人的作業(yè)空間范圍都與其特性指標(biāo)密切相關(guān),作業(yè)空間描述的是機(jī)器人各個(gè)關(guān)節(jié)之間的約束關(guān)系。每個(gè)機(jī)器人都有其特定的作業(yè)空間范圍,所以在使用機(jī)器人的時(shí)候必須研究其作業(yè)空間,以確保機(jī)器人末端執(zhí)行器能夠到達(dá)要求的點(diǎn)完成加工任務(wù)。本文研究的工業(yè)型機(jī)器人能達(dá)到的作業(yè)空間如圖2所示。
圖2 機(jī)器人作業(yè)空間及常用坐標(biāo)系示意圖
機(jī)器人的控制算法流程框架如圖3所示。首先根據(jù)給定的起始位置、終點(diǎn)位置、最大速度、最大加速度、最大加加速度、仿真步長(zhǎng)等信息,計(jì)算插補(bǔ)過(guò)程中每一仿真步長(zhǎng)的位移,然后分別映射到笛卡爾坐標(biāo)系中的XYZ坐標(biāo)上[7],即:
圖3 機(jī)器人控制結(jié)構(gòu)圖
然后再進(jìn)行逆運(yùn)動(dòng)學(xué)運(yùn)算轉(zhuǎn)化為各個(gè)關(guān)節(jié)的相對(duì)角度信息(相對(duì)于零點(diǎn))。由于角度×減速比×電機(jī)反饋脈沖數(shù)/360=脈沖個(gè)數(shù),默認(rèn)仿真步長(zhǎng)是4ms,將相鄰兩個(gè)點(diǎn)的脈沖個(gè)數(shù)做差,然后除以時(shí)間4ms,得到速度脈沖/毫秒,據(jù)此配置運(yùn)動(dòng)控制卡。若要高精度控制,在逆運(yùn)動(dòng)學(xué)之后,還要在關(guān)節(jié)空間內(nèi)進(jìn)行高次項(xiàng)插值[8]。
首先需要了解機(jī)器人關(guān)節(jié)坐標(biāo)運(yùn)動(dòng)時(shí)的軌跡規(guī)劃方法,常見(jiàn)的有關(guān)節(jié)空間的路徑規(guī)劃和笛卡爾坐標(biāo)系下的路徑規(guī)劃兩種[9]。運(yùn)動(dòng)過(guò)程中的插補(bǔ)一般包括直線插補(bǔ),圓弧插補(bǔ)兩大類。
還需要了解機(jī)器人關(guān)節(jié)運(yùn)動(dòng)的常見(jiàn)的兩種速度模式:梯形速度模式以及S形速度模式;注意機(jī)器人兩種位置模式的區(qū)別(相對(duì)運(yùn)動(dòng)位置模式和絕對(duì)運(yùn)動(dòng)位置模式)[10]?;诖?,使用MATLAB對(duì)機(jī)器人執(zhí)行器末端執(zhí)行器進(jìn)行直線和圓弧兩種路徑規(guī)劃,并在MATLAB中建立機(jī)器人的數(shù)學(xué)模型,對(duì)規(guī)劃的兩種路徑進(jìn)行在線驗(yàn)證。
離線編程主要是使用外部規(guī)劃程序,規(guī)劃?rùn)C(jī)器人的軌跡,并通過(guò)逆運(yùn)動(dòng)學(xué)轉(zhuǎn)化為各個(gè)關(guān)節(jié)的角度值[11],然后使用Simulink加載數(shù)據(jù),通過(guò)模型以實(shí)時(shí)運(yùn)行進(jìn)行控制實(shí)際機(jī)器人的控制。機(jī)器人模型實(shí)時(shí)獲取數(shù)據(jù),然后進(jìn)行角度轉(zhuǎn)換,最后驅(qū)動(dòng)運(yùn)動(dòng)控制卡進(jìn)而驅(qū)動(dòng)機(jī)器人本體[12]。所有算法全部使用Simulink模型,搭建的機(jī)器人控制模型如圖4所示,主要實(shí)現(xiàn)功能是直線運(yùn)動(dòng)。算法中主要分為四部分,參數(shù)給定包括DH參數(shù)信息,軌跡規(guī)劃算法,逆運(yùn)動(dòng)學(xué)算法,運(yùn)動(dòng)控制卡控制部分。除了運(yùn)動(dòng)控制卡控制模塊部分不用進(jìn)行修改,其余模塊,都可以根據(jù)需求進(jìn)行更改替換。例如逆運(yùn)動(dòng)學(xué),在確保輸入輸出參數(shù)不變的情況下,可以進(jìn)行直接替換。為確保安全,在替換模型之前需要先進(jìn)行數(shù)字仿真驗(yàn)證,再把模型轉(zhuǎn)化為二進(jìn)制可執(zhí)行代碼加載到機(jī)器人本體進(jìn)行實(shí)際驗(yàn)證。
圖4 機(jī)器人模型仿真示意圖
將機(jī)器人的控制算法比如軌跡規(guī)劃、逆運(yùn)動(dòng)學(xué)、關(guān)節(jié)空間插值等算法使用VS2008的純軟件工程實(shí)現(xiàn),并生成軌跡數(shù)據(jù)直角坐標(biāo)系插值數(shù)據(jù)和關(guān)節(jié)空間數(shù)據(jù)。將角度數(shù)據(jù)通過(guò)編寫的腳本文件加載到MATLAB工作空間,然后再運(yùn)行模型、編譯模型,將模型導(dǎo)入rt-sim軟件中,控制實(shí)際的機(jī)器人本體按照規(guī)劃的路徑運(yùn)行[13]。仿真流程如圖5所示。
圖5 機(jī)器人仿真流程圖
離線仿真的具體步驟如下:
1)修改LinuxCNC相對(duì)的代碼;
2)運(yùn)行l(wèi)inuxCNC程序,生成規(guī)劃的數(shù)據(jù)點(diǎn);
3)將文件復(fù)制到Matlab對(duì)應(yīng)的目錄下;
4)運(yùn)行MATLAB的配置腳本;
5)運(yùn)行Simulink模型,查看各個(gè)速度波形的曲線;
6)編譯MATLAB的Simulink模型;
7)使用rtsim軟件加載控制模型,并進(jìn)行控制。
在linuxCNC中規(guī)劃從零位到終點(diǎn),然后從終點(diǎn)回零位的操作。規(guī)劃?rùn)C(jī)器人末端執(zhí)行器從零點(diǎn)沿Y軸運(yùn)行10cm,然后再回到零位。編譯工程并運(yùn)動(dòng),將得到文件加載到MATLAB空間,通過(guò)3D畫圖解耦plot函數(shù)繪制立體圖,是否和規(guī)劃的路徑相同[14]。在軌跡規(guī)劃中,給定點(diǎn)的時(shí)候,程序中會(huì)判斷是否在運(yùn)行范圍之內(nèi),如果給定的坐標(biāo)超過(guò)了可達(dá)范圍,會(huì)終止程序執(zhí)行,故需要查看文件的數(shù)據(jù),確保能夠完成軌跡規(guī)劃[15]。將上述得到的軌跡數(shù)據(jù)復(fù)制到和模型一個(gè)目錄,運(yùn)動(dòng)腳本文件加載數(shù)據(jù)到工作空間中,然后運(yùn)行模型查看各個(gè)關(guān)節(jié)運(yùn)動(dòng)的軌跡和速度。直線運(yùn)動(dòng)軌跡及速度曲線如圖6所示。
圖6 直線運(yùn)動(dòng)軌跡及速度曲線圖
圓弧運(yùn)動(dòng)模型操作和直線運(yùn)動(dòng)操作流程類似,主要區(qū)別是一段圓弧需要設(shè)置三個(gè)點(diǎn),當(dāng)前零位算一個(gè)點(diǎn),然后再另外規(guī)劃三個(gè)點(diǎn)[16]。在機(jī)器人末端執(zhí)行器進(jìn)行圓弧運(yùn)動(dòng)過(guò)程中,進(jìn)行三次項(xiàng)或五次項(xiàng)插值運(yùn)算,達(dá)到較好的運(yùn)動(dòng)效果。
起始坐標(biāo):[-428.848 0 662.568 0 -90 0]
第一個(gè)點(diǎn)坐標(biāo):[-428.848 80 662.568 0 -90 0]
第二個(gè)點(diǎn)坐標(biāo):[-428.848 100 662.568 0 -90 0]
第三個(gè)點(diǎn)坐標(biāo):[-428.848 0 662.568 0 -90 0]
規(guī)劃出來(lái)的圓弧軌跡以及速度曲線如圖7所示。
圖7 圓弧運(yùn)動(dòng)軌跡及速度曲線圖
在設(shè)計(jì)了直線運(yùn)動(dòng)和圓弧運(yùn)動(dòng)之后,對(duì)MATLAB環(huán)境下建立的機(jī)器人模型進(jìn)行在線驗(yàn)證[17],兩種運(yùn)動(dòng)方式下的機(jī)器人模型運(yùn)動(dòng)軌跡圖像如圖8所示。
圖8 直線、圓弧運(yùn)動(dòng)軌跡曲線圖
經(jīng)過(guò)研究分析:機(jī)器人模型的直線和圓弧兩種運(yùn)動(dòng)軌跡曲線與預(yù)想的軌跡曲線基本吻合,由此驗(yàn)證了機(jī)器人模型的正確性,從而也驗(yàn)證了運(yùn)動(dòng)軌跡設(shè)計(jì)的合理性。
本文對(duì)一類工業(yè)型六自由度串聯(lián)機(jī)器人在MATLAB環(huán)境下建立機(jī)器人仿真模型,進(jìn)行直線和圓弧兩種路徑規(guī)劃,并且對(duì)建立的模型進(jìn)行仿真驗(yàn)證。在工業(yè)生產(chǎn)當(dāng)中,機(jī)器人需要進(jìn)行路徑規(guī)劃以便完成各種復(fù)雜的工藝生產(chǎn)動(dòng)作,依據(jù)設(shè)計(jì)好的路徑對(duì)機(jī)器人進(jìn)行有效控制,完成實(shí)際工作需求。