趙海濱 劉沖 陸志國 于清文 顏世玉
摘 要 在機器人理論教學(xué)中,運動學(xué)、軌跡規(guī)劃、動力學(xué)和控制等內(nèi)容比較抽象和復(fù)雜,存在大量的公式推導(dǎo)和微分方程。為了提高教學(xué)質(zhì)量,在機器人實驗教學(xué)探索和實踐中,以兩自由度機器人為研究對象,采用MATLAB/Simulink軟件進行機器人的仿真和控制實驗。實踐結(jié)果表明,教學(xué)效果良好,能激發(fā)學(xué)生的學(xué)習(xí)熱情,有助于培養(yǎng)學(xué)生的編程能力和創(chuàng)新能力。
關(guān)鍵詞 機器人;仿真實驗;MATLAB/Simulink;實驗教學(xué)
中圖分類號:G642.423 文獻標(biāo)識碼:B
文章編號:1671-489X(2018)12-0125-03
1 引言
機器人學(xué)一門多學(xué)科交叉的前沿學(xué)科,包括機械工程、電氣與電子工程、計算機科學(xué)、認(rèn)知科學(xué)、生物學(xué)、控制論與控制工程學(xué)及許多其他學(xué)科[1],無論是在基礎(chǔ)理論方面,還是在實踐應(yīng)用方面,發(fā)展速度都非??臁T絹碓蕉嗟母叩葘W(xué)校機械工程學(xué)科面向高年級本科生和低年級研究生開設(shè)機器人相關(guān)課程。機器人課程的教學(xué)包括理論教學(xué)和實驗教學(xué),其中在理論教學(xué)中存在大量的公式推導(dǎo)和微分方程,需要學(xué)生具有扎實的數(shù)學(xué)基礎(chǔ),特別是矩陣分析和微分方程等知識[2-4]。而機械工程學(xué)科的學(xué)生這方面比較薄弱。
MATLAB/Simulink具有強大的數(shù)學(xué)運算能力,以及方便實用的繪圖功能,已經(jīng)成為系統(tǒng)仿真和自動控制領(lǐng)域普遍采用的計算機輔助設(shè)計工具[5]。Simulink是一種基于MATLAB軟件的框圖設(shè)計環(huán)境,能夠完成系統(tǒng)的建模、仿真和分析等工作[6]。Simulink和外界硬件的接口還可以建立半實物仿真和實時控制實驗。在Simulink中采用普通的模塊搭建復(fù)雜控制系統(tǒng)非常困難,采用User-Defined Functions庫中的MATLAB Function模塊,可以采用MATLAB語言非常方便靈活地建立復(fù)雜的系統(tǒng)[7]。
本文結(jié)合機械工程專業(yè)的機器人課程實驗教學(xué)現(xiàn)狀,為了提高教學(xué)質(zhì)量,將MATLAB/Simulink軟件引入實驗教學(xué)中,以兩自由度機器人為研究對象,建立機器人仿真和控制實驗,將理論課學(xué)習(xí)的運動學(xué)、軌跡規(guī)劃、動力學(xué)和控制等內(nèi)容,在MATLAB/Simulink軟件中仿真實現(xiàn)。學(xué)生可以修改系統(tǒng)的參數(shù)和程序,然后進行動態(tài)仿真。該仿真系統(tǒng)能夠加深學(xué)生對理論知識的理解,能夠增強學(xué)生的學(xué)習(xí)興趣和熱情,并有助于培養(yǎng)學(xué)生的編程能力和創(chuàng)新能力。
2 兩自由度機器人
在機器人課程理論教學(xué)中,運動學(xué)、軌跡規(guī)劃、動力學(xué)和控制等內(nèi)容存在大量公式推導(dǎo)和微分方程,對于機械工程專業(yè)的學(xué)生而言比較抽象和復(fù)雜。在機器人實驗課中,由于涉及的電機和傳感器等硬件以及編程語言等都非常復(fù)雜,學(xué)生很難和理論知識相結(jié)合,因此采用MATLAB/Simu-link軟件進行機器人的仿真和控制實驗非常必要。教材中機器人動力學(xué)部分的公式推導(dǎo)均以兩自由度機器人為例,因此,機器人仿真和控制實驗也以兩自由度機器人為研究對象。
運動學(xué)方程 機器人正運動學(xué)是根據(jù)各個關(guān)節(jié)的角度值來確定機器人各個關(guān)節(jié)的位置。對于具有兩個自由度的機器人,q1和q2分別為兩個關(guān)節(jié)的角度,a1和a2分別為兩個關(guān)節(jié)的長度,則第一個關(guān)節(jié)末端的位置坐標(biāo)(x1,y1)為:
3 MATLAB/Simulink仿真實驗
由于機器人價格昂貴,以及實驗場地的限制,不能每個學(xué)生一臺實際的機器人。對于實際機器人的編程,由于涉及硬件驅(qū)動、傳感器和編程語言等,在實驗課時非常有限的情況下,學(xué)生很難進行深入理解。因此,根據(jù)理論課學(xué)到的運動學(xué)、軌跡規(guī)劃、動力學(xué)和控制等內(nèi)容,以兩自由度機器人為研究對象,建立綜合性實驗。采用五階多項式方法進行軌跡規(guī)劃,然后采用帶重力補償?shù)腜D控制器對兩自由度機器人進行控制,機器人的角度值通過運動學(xué)轉(zhuǎn)換為工作空間中的坐標(biāo)。最后,通過工作空間中的坐標(biāo),將機器人的運動通過圖形動畫的形式顯示。
采用MATLAB/Simulink建立兩自由度機器人如圖1所示。系統(tǒng)仿真采用變步長的ode45算法,最大仿真步長為
1 ms,仿真時間為3 s。在圖1中,動力學(xué)方程模塊采用公式(5)得到角加速度,然后采用兩個積分器,分別得到角速度和角度值。
整個機器人控制系統(tǒng)如圖2所示。在圖2中,采用五次多項式軌跡規(guī)劃,得到期望的軌跡,然后采用帶重力補償?shù)腜D控制器進行機器人的控制。機器人的輸出角度值通過運動學(xué)轉(zhuǎn)換為操作空間中的坐標(biāo)。運行仿真后,通過Scope模塊查看機器人的角度、角速度和輸入力矩等,通過To Workspace模塊將輸出值保存到MATLAB軟件的工作空間中。
機器人兩個關(guān)節(jié)的長度均為1,在工作空間中兩個關(guān)節(jié)的運動如圖3所示。初始位置兩個關(guān)節(jié)的角度均為0,終點位置兩個關(guān)節(jié)的角度分別為3π/4和π/3,采用帶重力補償?shù)腜D控制器進行控制,可以看到機器人兩個關(guān)節(jié)的運動過程。
4 結(jié)論
本文針對機器人動力學(xué)方程非常抽象復(fù)雜和難以理解的特點,利用MATLAB/Simulink軟件建立兩自由度機器人仿真和控制實驗。仿真模型結(jié)構(gòu)清晰,容易理解,能夠讓學(xué)生對機器人仿真和控制有一個非常直觀的了解。教學(xué)實踐表明,該實驗?zāi)軌蜃寣W(xué)生加深對理論知識的學(xué)習(xí),增強學(xué)習(xí)的興趣和動力,并有助于編程能力和創(chuàng)新能力的提高。
參考文獻
[1]蔡自興.機器人學(xué)[M].2版.北京:清華大學(xué)出版社,2009.
[2]唐艷華,張慶玲.機器人技術(shù)基礎(chǔ)實驗教學(xué)的改革與實踐[J].教學(xué)研究,2015,38(2):103-105.
[3]張奔.以實踐為導(dǎo)向的機器人教學(xué)改革探索[J].中國教育技術(shù)裝備,2017(6):91-92.
[4]雷靜桃,劉亮,張海洪.“機器人學(xué)”課程教學(xué)改革與實踐[J].實驗室研究與探索,2013,32(5):179-182.
[5]謝斌,蔡自興.基于MATLAB Robotics Toolbox的機器人學(xué)仿真實驗教學(xué)[J].計算機教育,2010(19):140-143.
[6]高道祥,薛定宇.基于MATLAB/Simulink機器人魯棒自適應(yīng)控制系統(tǒng)仿真研究[J].系統(tǒng)仿真學(xué)報,2006,18(7):2022-2025.
[7]薛定宇,陳陽泉.基于MATLAB/Simulink的系統(tǒng)仿真技術(shù)與應(yīng)用[M].2版.北京:清華大學(xué)出版社,2011.