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