趙建勇,程 亞
(杭州電子科技大學(xué) 國家級(jí)計(jì)算機(jī)實(shí)驗(yàn)教學(xué)示范中心,杭州 310018)
我國工業(yè)機(jī)器人連續(xù)五年成為全球第一大應(yīng)用市場,然而掌握核心控制算法人才的缺乏,嚴(yán)重制約了我國機(jī)器人行業(yè)的發(fā)展及國家戰(zhàn)略的實(shí)施。為加快機(jī)器人人才培養(yǎng),越來越多的高等院校開設(shè)了機(jī)器人工程專業(yè)[1~3],及機(jī)械、控制、計(jì)算機(jī)等專業(yè)也開設(shè)了機(jī)器人課程。工業(yè)機(jī)器人運(yùn)動(dòng)控制作為主要專業(yè)課程,具有理論與實(shí)踐強(qiáng)耦合的特點(diǎn),課程的教學(xué)需要開放的編程實(shí)驗(yàn)條件驗(yàn)證與支撐。然而,目前工業(yè)機(jī)器人運(yùn)動(dòng)控制相關(guān)實(shí)驗(yàn)教學(xué)[4~7]普遍存在以下三個(gè)問題:1)機(jī)器手臂不具備開放控制的條件。一旦開放,控制算法錯(cuò)誤或者存在算法缺陷,將造成機(jī)器人手臂運(yùn)行超限,從而導(dǎo)致機(jī)器人永久損壞,高校無法承受這樣的經(jīng)濟(jì)損失。2)控制系統(tǒng)技術(shù)封閉。通過機(jī)器人示教系統(tǒng)進(jìn)行的機(jī)器人編程模式只能進(jìn)行應(yīng)用編程,無法觸及機(jī)器人關(guān)節(jié)運(yùn)動(dòng)控制算法編程,無法滿足算法人才培養(yǎng)的需求。3)機(jī)器人實(shí)驗(yàn)教學(xué)平臺(tái)普遍以實(shí)操為主開展應(yīng)用案例教學(xué)。
虛擬仿真是通過軟件仿真手段,模擬真實(shí)環(huán)境的運(yùn)行過程及故障仿真。隨著仿真技術(shù)的興起,通過軟件仿真解決傳統(tǒng)各種實(shí)體實(shí)驗(yàn)缺陷,成為了當(dāng)今各高校研究的熱門課題[8~10],為解決上述問題提供了新的方法。鄧曉燕、張華文等對(duì)機(jī)器人實(shí)驗(yàn)教學(xué)平臺(tái)進(jìn)行了研究,建立了五/六自由度機(jī)械臂仿真實(shí)驗(yàn)平臺(tái)[11~14],能較好地反映機(jī)械臂的運(yùn)動(dòng),在一定程度上促進(jìn)了機(jī)器人實(shí)驗(yàn)教學(xué)的發(fā)展。但是,基于PC軟件仿真的控制算法開發(fā)模式,與實(shí)體機(jī)器人的控制算法開發(fā)和調(diào)試方法有很大區(qū)別,在培養(yǎng)機(jī)器人運(yùn)動(dòng)控制人才的行業(yè)適應(yīng)度上有所欠缺。
針對(duì)上述問題,結(jié)合當(dāng)前工業(yè)機(jī)器人系統(tǒng)廣泛使用可編程控制器實(shí)現(xiàn)機(jī)械手臂控制的現(xiàn)狀,本文提出基于可編程控制器的虛實(shí)結(jié)合的開放式工業(yè)機(jī)器人控制實(shí)驗(yàn)方法,以實(shí)體控制器結(jié)合虛擬機(jī)器人方式,實(shí)現(xiàn)工業(yè)機(jī)器人運(yùn)動(dòng)控制算法實(shí)驗(yàn),滿足機(jī)器人運(yùn)動(dòng)控制實(shí)驗(yàn)的算法可編、程序可調(diào)、數(shù)據(jù)可視、功能塊可開發(fā)的要求,為我國高校機(jī)器人工程專業(yè),以及機(jī)械、機(jī)電、自動(dòng)化專業(yè)開設(shè)的工業(yè)機(jī)器人原理課程實(shí)驗(yàn)提供參考。
在實(shí)驗(yàn)原理講解階段,以實(shí)體機(jī)器人為教學(xué)對(duì)象,教師通過機(jī)器人虛擬軟件Vrep,引導(dǎo)學(xué)生以軸(Joint)和連桿(Link)構(gòu)建與實(shí)體機(jī)器人對(duì)應(yīng)的虛擬機(jī)器人模型,并通過機(jī)器人模型控制進(jìn)行啟發(fā)式討論,引導(dǎo)學(xué)生認(rèn)識(shí)機(jī)器人位姿的控制及同一位姿下可能采取的不同控制方法,分析和討論開放式控制可能會(huì)引起的碰壁、超限現(xiàn)象。在講解過程中,通過圖文結(jié)合的方式,使學(xué)生更加直觀的認(rèn)識(shí)到機(jī)器人對(duì)應(yīng)的知識(shí)點(diǎn),從而加深理解。通過案例互動(dòng)式教學(xué)方法,培養(yǎng)學(xué)生獨(dú)立思考、分析問題、解決問題的能力,避免傳統(tǒng)的填鴨式教學(xué)。
“Try”理念教學(xué)方法通過虛擬環(huán)境提供的容錯(cuò)機(jī)制,通過實(shí)體控制器控制虛擬機(jī)器人,既能在真實(shí)環(huán)境下實(shí)現(xiàn)機(jī)器人控制算法開發(fā),又能讓學(xué)生丟掉思想包袱,在虛擬機(jī)器人環(huán)境下反復(fù)實(shí)踐(“Try”)中不斷發(fā)現(xiàn)問題、解決問題,找到正確的解決方法,實(shí)現(xiàn)機(jī)器人控制算法的編程,體會(huì)機(jī)器人不同控制方法的控制效果,從而掌握算法實(shí)現(xiàn)方法。
教學(xué)路線設(shè)計(jì)上,基于從硬件到軟件的一體化設(shè)計(jì),以“本體結(jié)構(gòu)→數(shù)學(xué)描述→運(yùn)動(dòng)控制技術(shù)→算法開發(fā)與實(shí)踐→示教系統(tǒng)設(shè)計(jì)”的知識(shí)點(diǎn)為主線開展工業(yè)機(jī)器人運(yùn)動(dòng)控制實(shí)驗(yàn)教學(xué),教學(xué)路線如圖1所示。
圖1 實(shí)驗(yàn)教學(xué)路線
如圖1所示,通過本體結(jié)構(gòu)知識(shí)點(diǎn)的講解(S1),使學(xué)生明白機(jī)器人軸、關(guān)節(jié)、手臂、減速器、單軸運(yùn)動(dòng)、協(xié)調(diào)運(yùn)動(dòng)等基本概念,為控制打下基礎(chǔ),并通過數(shù)學(xué)描述方法闡述正、逆向運(yùn)動(dòng)學(xué)(S2),實(shí)現(xiàn)從本體結(jié)構(gòu)到數(shù)學(xué)描述方法的轉(zhuǎn)化。在可編程控制器環(huán)境下,基于功能塊的運(yùn)動(dòng)控制編程技術(shù)(S3),將數(shù)學(xué)描述轉(zhuǎn)化為功能塊接口,通過ST語言,實(shí)現(xiàn)控制軟件開發(fā)(S4),掌握機(jī)器人控制的編程和調(diào)試方法,實(shí)現(xiàn)控制原理算法的教學(xué)目的。為過渡到機(jī)器人應(yīng)用,增加示教系統(tǒng)的設(shè)計(jì)環(huán)節(jié)(S5),實(shí)現(xiàn)控制算法和應(yīng)用的接口,從而覆蓋機(jī)器人系統(tǒng)的全過程知識(shí)學(xué)習(xí)。
基于“能實(shí)不虛、虛實(shí)結(jié)合”仿真實(shí)驗(yàn)教學(xué)理念,采用圖2所示的虛實(shí)結(jié)合實(shí)驗(yàn)環(huán)境,將實(shí)體可編程控制器運(yùn)動(dòng)控制與仿真機(jī)器人環(huán)境相結(jié)合,在可編程控制器上實(shí)現(xiàn)機(jī)器人控制算法的開發(fā),包括單軸與多軸協(xié)調(diào)控制,掌握可編程控制器環(huán)境下控制機(jī)器人的原理方法,并通過虛擬機(jī)器人驗(yàn)證實(shí)體環(huán)境的算法正確性。
圖2 機(jī)器人實(shí)驗(yàn)環(huán)境
圖2所示,本文使用倍福的可編程控制器CX2020作為編程對(duì)象,使用TwinCAT3.0軟件,實(shí)現(xiàn)機(jī)器人算法開發(fā)。虛擬機(jī)器人機(jī)械手臂使用Vrep教學(xué)版機(jī)器人仿真軟件構(gòu)建。
在可編程控制器實(shí)現(xiàn)的機(jī)器人控制系統(tǒng)中,控制器與驅(qū)動(dòng)器普遍使用實(shí)時(shí)以太網(wǎng)進(jìn)行通信。本文使用Java構(gòu)建虛擬通訊中間件VCOM,仿真實(shí)時(shí)以太網(wǎng)的通訊過程。VCOM與可編程控制器通訊使用ADS建立連接,與虛擬機(jī)器人采用IP方式通訊,實(shí)現(xiàn)機(jī)器人控制指令和機(jī)器人運(yùn)動(dòng)狀態(tài)的交互。從虛擬機(jī)器人切換到實(shí)體時(shí),只需重新配置通訊即可,可方便實(shí)現(xiàn)虛擬到實(shí)體的轉(zhuǎn)換。
本文以機(jī)器人末端空間點(diǎn)到點(diǎn)直線運(yùn)動(dòng)講述實(shí)驗(yàn)方法步驟。
在構(gòu)建虛擬機(jī)器人過程中,以實(shí)際機(jī)器人本體(圖3左)為參考,使用Vrep工具箱中的Joint和Cylinder組件,構(gòu)建由關(guān)節(jié)和連桿構(gòu)成的虛擬機(jī)器人(圖3中),并根據(jù)D-H坐標(biāo)系法則建立對(duì)應(yīng)坐標(biāo)系(圖3右)。機(jī)械臂初始角度為θ1=0°,θ2=-90°,θ3=0°,θ4=0°,θ5=90°,θ6=0°,對(duì)應(yīng)為D-H參數(shù)表如表1所示。
圖3 虛擬機(jī)器人構(gòu)建方法
表1 D-H參數(shù)表
表1中,di=沿Zi軸,從Xi-1移動(dòng)到Xi的距離;θi=繞Zi軸,從Xi-1旋轉(zhuǎn)到Xi的角度;ai-1=沿Xi-1軸,從Zi-1移動(dòng)到Zi的距離;αi-1=繞Xi-1軸,從Zi-1旋轉(zhuǎn)到Zi的角度。
1)齒輪參數(shù)
齒輪參數(shù)用于設(shè)置編碼器位數(shù)以及減速箱減速比參數(shù),確定軸轉(zhuǎn)動(dòng)一圈(360°)對(duì)應(yīng)的脈沖個(gè)數(shù),或者是每個(gè)脈沖對(duì)應(yīng)的角度。設(shè)置軸參數(shù)后,實(shí)現(xiàn)軸運(yùn)動(dòng)算法編程時(shí)即可使用角度控制,算法代碼可根據(jù)角度計(jì)算出脈沖個(gè)數(shù)。該參數(shù)在TwinCAT中設(shè)置,并寫入可編程控制器。
2)軸屬性
在虛擬仿真方式下,設(shè)置機(jī)器人關(guān)節(jié)軸為虛軸,并禁用硬件驅(qū)動(dòng)器。虛軸模式和實(shí)軸模式程序開發(fā)方式一致,在虛軸模式下,運(yùn)動(dòng)控制指令發(fā)出后,虛軸根據(jù)輸入條件立即返回驅(qū)動(dòng)器的理論狀態(tài)。該參數(shù)在TwinCAT中設(shè)置,并寫入可編程控制器。
3)通訊參數(shù)
在仿真方式下,編程環(huán)境通訊參數(shù)包括運(yùn)動(dòng)控制參數(shù)和網(wǎng)絡(luò)端口參數(shù),即將運(yùn)動(dòng)控制參數(shù)綁定到ADS通訊緩沖區(qū),由VOCM主動(dòng)獲取并傳送到虛擬機(jī)器人。同時(shí),在虛擬機(jī)器人端設(shè)置Vrep機(jī)器人通訊端口,并且VCOM設(shè)置的遠(yuǎn)端IP地址和端口必須和Vrep中是的端口一致。設(shè)置完成后,啟動(dòng)VCOM運(yùn)行,保持可編程控制器和虛擬機(jī)器人的關(guān)節(jié)運(yùn)動(dòng)數(shù)據(jù)實(shí)時(shí)交互。
單軸運(yùn)動(dòng),即控制機(jī)械手臂的單個(gè)軸按照指定的角度絕對(duì)運(yùn)動(dòng)或相對(duì)運(yùn)動(dòng)。在控制算法實(shí)現(xiàn)中,需要指定軸名、啟動(dòng)信號(hào)、位置(角度)、速度加速度、減速度等參數(shù),單軸運(yùn)動(dòng)功能塊可調(diào)用PLC平臺(tái)的基本運(yùn)動(dòng)功能塊,絕對(duì)位置運(yùn)動(dòng)控制功能塊為MC_MoveAbsolute,相對(duì)運(yùn)動(dòng)為MC_MoveRelative。
機(jī)器人末端的點(diǎn)到點(diǎn)運(yùn)動(dòng)控制,需要根據(jù)工件坐標(biāo)位置,通過運(yùn)動(dòng)學(xué)的逆運(yùn)算計(jì)算出六個(gè)軸的運(yùn)動(dòng)角度,再通過單軸運(yùn)動(dòng)指令,實(shí)現(xiàn)多軸運(yùn)動(dòng)。具體步驟如下:
坐標(biāo)逆變換。本文使用幾何法[15]將本例機(jī)器人末端位姿推導(dǎo)出各個(gè)關(guān)節(jié)的角度如下,式中()為機(jī)器人末端坐標(biāo),si=sinθ1,ci=cosθ1,sij=sin(θ1+θj),cij=cos(θ1+θj),其中i,j∈(1,6)。
2)運(yùn)動(dòng)功能塊實(shí)現(xiàn)
根據(jù)幾何法求出的各個(gè)角度與機(jī)器人末端坐標(biāo)關(guān)系,實(shí)現(xiàn)從目標(biāo)位置到角度的坐標(biāo)逆變換的功能塊,功能塊參考定義如下:
在MC_AngleTransforms功能塊中,通過調(diào)用幾何法推導(dǎo)出的6個(gè)θ角度計(jì)算公式,實(shí)現(xiàn)從機(jī)器人末端坐標(biāo)系的位置計(jì)算出六個(gè)關(guān)節(jié)在軸坐標(biāo)系下的角度值McAngle。
在計(jì)算出McAngle的基礎(chǔ)上,定義點(diǎn)到點(diǎn)運(yùn)動(dòng)功能塊,根據(jù)目標(biāo)角度McAngle調(diào)用單軸運(yùn)動(dòng)功能塊MC_MoveAbsolute,實(shí)現(xiàn)點(diǎn)到點(diǎn)運(yùn)動(dòng),功能塊定義如下:
根據(jù)上述步驟將開發(fā)好的程序?qū)懭肟删幊炭刂破?,即可?shí)現(xiàn)機(jī)器人控制,通過虛擬機(jī)器人的運(yùn)動(dòng)軌跡,可以檢測控制算法運(yùn)行的正確性。
示教應(yīng)用,是機(jī)器人編程從開發(fā)到應(yīng)用的必經(jīng)環(huán)節(jié),通過示教器的編程設(shè)計(jì),掌握機(jī)器人的應(yīng)用方法,最終從實(shí)驗(yàn)走向應(yīng)用。在實(shí)驗(yàn)教學(xué)中,根據(jù)算法的調(diào)試需求,引導(dǎo)學(xué)生完成示教界面的開發(fā),并通過示教界面和運(yùn)動(dòng)算法的結(jié)合,掌握機(jī)器人運(yùn)動(dòng)控制原理的全方位學(xué)習(xí)。本文設(shè)計(jì)示教界面如圖4所示,供學(xué)生實(shí)驗(yàn)室參考設(shè)計(jì)。
圖4 示教界面設(shè)計(jì)示例
根據(jù)上述實(shí)驗(yàn)方法,結(jié)合工業(yè)機(jī)器人運(yùn)動(dòng)控制課程內(nèi)容,設(shè)計(jì)了9個(gè)實(shí)驗(yàn)項(xiàng)目,分為基本功能實(shí)驗(yàn)(序號(hào)1~5)和復(fù)雜運(yùn)動(dòng)控制實(shí)驗(yàn)(序號(hào)6~9)兩個(gè)層次,實(shí)驗(yàn)項(xiàng)目如表2所示。實(shí)驗(yàn)項(xiàng)目以行業(yè)需求為背景,結(jié)合機(jī)器人技術(shù)、計(jì)算機(jī)技術(shù)、可編程控制技術(shù)、運(yùn)動(dòng)控制理論、數(shù)學(xué)理論、機(jī)械原理于一體的綜合性創(chuàng)新實(shí)驗(yàn),其內(nèi)容圍繞六軸工業(yè)機(jī)器人關(guān)節(jié)運(yùn)動(dòng)控制原理、開放式控制算法編程而設(shè)計(jì),涵蓋工業(yè)機(jī)器人本體結(jié)構(gòu)、機(jī)器人坐標(biāo)系表示方法與坐標(biāo)轉(zhuǎn)換方法、單軸控制、多軸協(xié)調(diào)運(yùn)動(dòng)、機(jī)器人運(yùn)動(dòng)控制調(diào)試和應(yīng)用等方面知識(shí)點(diǎn)。
表2 實(shí)驗(yàn)項(xiàng)目列表
本實(shí)驗(yàn)項(xiàng)目于2017年試用上線,并在實(shí)踐過程中讓學(xué)生對(duì)教學(xué)方法、教學(xué)內(nèi)容和教學(xué)效果進(jìn)行評(píng)價(jià),提出意見和建議。授課教師針對(duì)意見和建議,對(duì)課程實(shí)驗(yàn)教學(xué)進(jìn)行不斷完善。為檢驗(yàn)效果,分別對(duì)2018、2019兩屆共50名學(xué)生進(jìn)行調(diào)查問卷,學(xué)生總體反饋良好,數(shù)據(jù)如下:對(duì)機(jī)器人仿真實(shí)驗(yàn)感興趣的學(xué)生為48名,占96%;認(rèn)為運(yùn)動(dòng)控制編程能力得到鍛煉的學(xué)生為46名,占92%;對(duì)教學(xué)案例內(nèi)容滿意的為47名,94%。
本文在分析當(dāng)前工業(yè)機(jī)器人實(shí)驗(yàn)教學(xué)現(xiàn)狀基礎(chǔ)上,提出了基于虛實(shí)結(jié)合的工業(yè)機(jī)器人運(yùn)動(dòng)控制實(shí)驗(yàn)方法改革,通過兩年多的實(shí)驗(yàn)教學(xué)驗(yàn)證本實(shí)驗(yàn)方法及內(nèi)容可行。該實(shí)驗(yàn)方法可滿足工業(yè)機(jī)器人運(yùn)動(dòng)控制原理實(shí)驗(yàn)教學(xué)的需求,為高校工業(yè)機(jī)器人控制算法原理教學(xué)提供參考。