樂 英,庫 巍,董志聰,陳亞亮
(華北電力大學 能源動力與機械工程學院,河北 保定 071000)
軌跡規(guī)劃是機器人運動學的具體應用,它的目的是根據任務要求計算出預期的運動軌跡,從而對機器人的任務、軌跡等進行描述[1].常用的機器人軌跡規(guī)劃分為笛卡爾空間軌跡規(guī)劃和關節(jié)角度空間軌跡規(guī)劃.在關節(jié)角度空間規(guī)劃中通常給出起始點,運動軌跡上的中間點是通過插值來進行求取的.具體的過程是在關節(jié)空間中描述各作業(yè)點的位姿,然后在插補點的基礎上擬合成光滑的函數.由于各關節(jié)函數描述了各關節(jié)所經過的點,機器人在聯動的情況下,各關節(jié)通過各自軌跡段的時間是相同的,所以它們在滿足各自的期望位姿之外同時達到軌跡段的終點.機器人的軌跡規(guī)劃方法主要是利用多項式、樣條曲線以及結合幾種不同的曲線來對關節(jié)進行規(guī)劃[2].在實際工程應用中,大多采用三次多項式[3].文獻[4]采用Matlab機器人工具箱建立機器人三維仿真模型對其進行仿真,但是可視感不強,而且對機器人規(guī)劃的軌跡不夠直觀.針對這些問題,本文通過用Matlab的圖形用戶界面(Graphical User Interface,GUI)工具編寫6自由度機器人的仿真界面.
機器人控制系統(tǒng)是機器人運動學的核心內容,它越來越多地使用開放式結構,DMC是美國GALIL公司的產品.與其他運動控制器相比,DMC具有產品繁多、價格便宜、使用簡單等特點[5].DMC-21x/21x3系列是GALIL經濟型多軸獨立控制器,該控制器提供了強大的功能.與早期型號相比,除了更高的通信速度與編碼器反饋速度外,提供的選件更豐富.DMC-21x/21x3是為解決復雜運動問題而設計的,它能包括點動、點到點定位、矢量定位、電子齒輪同步、電子凸輪、軌跡運動等[6].此外,控制器能夠對運動規(guī)劃曲線進行平滑處理,可很大程度地減少對機械部分的運動沖擊.
本文主要在Matlab編寫的仿真平臺上,對6自由度工業(yè)機器人進行軌跡規(guī)劃,然后研究三次多項式軌跡規(guī)劃算法及其在DMC運動控制器上的具體實現方式.首先以實驗室深圳元創(chuàng)興REBOT-V-6R機器人為研究對象,用Matlab建立6自由度工業(yè)機器人仿真平臺,在該平臺上對機器人規(guī)劃矩形軌跡,并得到笛卡爾空間的軌跡圖、各關節(jié)角位移、角速度和角加速度的變化圖;然后將6個關節(jié)的角度變量輸入到C++編程的控制平臺上;最后通過該控制平臺控制實驗室的實體機器人,驗證本文所研究的軌跡規(guī)劃算法的可行性和可靠性.
以實驗室的機器人為研究對象,通過用Matlab編寫三維實體函數建立機器人三維實體模型;然后利用guide函數,在彈出的向導選項中選擇一個空的選項,進入一個編輯界面,為了滿足一些特殊的命令要求,在界面中添加一些必要的功能控件,在對應的控件下編寫各自的回調函數后,就能得到機器人的仿真界面.
由于Matlab中沒有三維實體函數,為了建立與實體機器人相似的模型,需要編寫三維實體函數,其中空心的長方體單元函數部分代碼如下:
function h =changfangti(c,k,g,px,py,pz,cl)
%c,k,g為長方體長寬高,px,py,pz為3個方向的偏移量,cl為長方體的顏色設置.
[X1,Y1]=meshgrid(-c/2:0.1:c/2,-k/2:0.1:k/2);%生成x,y坐標
h1=surf(X1+px,Y1+py,zeros(size(X1,1),size(X1,2))+ pz,′FaceColor′,cl,′LineStyle′,′none′);hold on
h2 = surf(X1+px,Y1+py,zeros(size(X1,1),size(X1,2))+pz+g,′FaceColor′,cl,′LineStyle′,′none′);hold on
……
[X32,Y32]=meshgrid(-g+c/2:0.1:c/2,-k/2:0.1:k/2);
h6=surf(X32+px,Y32+py,zeros(size(X32,1),size(X32,2))+pz,′FaceColor′,cl,′LineStyle′,′none′);hold on
rotate(h6,[0 1 0],90,[px+c/2,py,pz]);
h=[h1 h2 h3 h4 h5 h6];
為了增強機器人模型的可視感,還需要編寫空心圓柱等函數.通過用Matlab的GUI編寫6自由度工業(yè)機器人的仿真界面,如圖1所示.
圖1 6自由度機器人仿真平臺Fig.1 Six degrees of freedom robot simulation platform
采用三次多項式在關節(jié)空間對機器人軌跡進行規(guī)劃.根據已知的工作空間原始路徑點,利用編寫的機器人運動學算法,反求出關節(jié)空間中各關節(jié)對應的角位移值[7].再根據各種規(guī)劃方法中具體的求解算法,求出相應的速度、加速度值,從而得到各關節(jié)軌跡曲線,以對機器人的軌跡進行規(guī)劃.
三次多項式樣條中,兩節(jié)點之間的曲線段是由三次多項式擬合生成.三次多項式表達式中共有4個未知系數(a0,a1,a2,a3),對其求一階、二階導,可求出機器人末端關于時間t的速度、加速度的函數式[8]:
其中與始末時間點t0,tf對應的角位移θ0和θf為已知,且滿足條件
θ(0)=θ0,θ(tf)=θf
(4)
在每段多項式始末兩點處滿足二階連續(xù),設置始末點的速度、加速度,且滿足條件[9]
(5)
每個點的角位移值已知,設定其角速度和角加速度為一常數,兩點共可得到4個已知條件.將已知條件代入式(1)~(3)中并聯立求解,可解出全部未知的系數.
在機器人仿真平臺上用三次多項式模擬機器人末端執(zhí)行機構規(guī)劃一個矩形軌跡,然后得到機器人6個關節(jié)的角度.點擊“Rectangular”按鈕,仿真平臺中的機器人開始運動,具體如圖2所示.
圖2 規(guī)劃一個矩形的仿真圖Fig.2 Plan a rectangle of simulation
此時得到機器人前3個關節(jié)在[4.5 s,5.5 s]的運動曲線分別如圖3所示.
圖3 截取的三次多項式規(guī)劃1~3關節(jié)運動曲線Fig.3 The three polynomials are planned for the1~3 joint motion curve
DMC-21x/21x3為用戶提供了100多條指令用于運動控制和參數設置,而且這些指令能以ASCII碼或者二進制碼發(fā)送.它的大部分命令指令都是兩字符命令,并提供了在多種環(huán)境下(如Visual Basic,C,C++等)開發(fā)的工具軟件,可以與DOS,QNX,Windows,Linux相兼容.機器人控制系統(tǒng)軟件以Visual Studio 2015集成開發(fā)環(huán)境為平臺,結合Microsoft的基本類庫(MFC),基于Windows XP操作系統(tǒng)開發(fā)的[10],采用C++語言進行編程,包括編寫機器人運動學算法、連接控制器等操作.另外,嵌入GALIL公司提供的動態(tài)鏈接庫DMCWin3,它可以建立操作系統(tǒng)與DMC 控制器之間的通信,在對機器人末端軌跡進行規(guī)劃的過程中,在已經搭建好的6自由度機器人控制平臺上,對機器人規(guī)劃矩形軌跡.
將圖2的矩形軌跡規(guī)劃中的機器人6個關節(jié)的角度變量轉換對應關節(jié)的脈沖數,各關節(jié)的運動協(xié)調控制由 DMC多維直線插補模式完成.
部分關鍵代碼如下:
m_DMCWin.Command("LMABCDEF ",,szResponse,sizeof(szResponse));
…
m_DMCWin.Command("LE ",,szResponse,sizeof(szResponse));
m_DMCWin.Command("VA5000,5000,5000,5000,5000,5000 ",szResponse,sizeof(szResponse));
m_DMCWin.Command("VD5000,5000,5000,5000,5000,5000 ",szResponse,sizeof(szResponse));
m_DMCWin.Command("BGS ",szResponse,sizeof(szResponse));
得到6自由度機器人控制平臺如圖4所示.
圖4 6自由度機器人控制平臺Fig.4 Six degrees of freedom robot control platform
將保存的6個關節(jié)的脈沖數以文本的形式導入到控制平臺,點擊運行按鈕后,得到機器人實體的仿真軌跡,如圖5所示.
從圖5中可以看出,根據上述規(guī)劃方法,實體機器人能夠得到與圖2仿真平臺中一樣的矩形軌跡,仿真結果得到了驗證.
圖5 機器人實體規(guī)劃一個矩形的仿真圖Fig.5 The robot entity plans a rectangular simulation
本文用Matlab建立6自由度機器人仿真界面,在仿真界面上,采用三次多項式對機器人末端規(guī)劃一個矩形軌跡,得到機器人6個關節(jié)的運動曲線.在此基礎上,采用基于DMC的開放式運動控制系統(tǒng)的6自由度機器人軌跡插補算法,采用C++語言實現上述算法,在已經搭建好的6自由度機器人平臺上運行.實驗結果表明,機器人末端手爪能在笛卡爾空間精確行走矩形軌跡,運動軌跡連續(xù)平滑,證明了文中所采用DMC運動控制器的運動模式方案能精確、可靠地實現關節(jié)型機器人的軌跡規(guī)劃運動.實驗結果達到了預期要求.
參考文獻:
[1] 孫亮,馬江,阮曉鋼.6自由度機械臂軌跡規(guī)劃與仿真研究[J].控制工程,2010(3):388-392.
SUN L,MA J,RUAN X G.Six degrees of freedom of manipulator track planning and simulation[J].Control Engineering,2010(3):388-392.
[2] 朱世強,劉松國,王宣銀,等.機械手時間最優(yōu)脈動連續(xù)軌跡規(guī)劃算法[J].機械工程學報,2010,46(3):47-52.
ZHU S Q,LIU S G,WANG X Y,et al.The optimal pulsating trajectory planning algorithm for manipulator time[J].Journal of Mechanical Engineering,2010,46(3):47-52.
[3] 王學林,邢仁鵬,肖永飛,等.機械臂途經N路徑點的連續(xù)軌跡插補算法研究[J].組合機床與自動化加工技術,2014(11):92-96.
WANG X L,XING R P,XIAO Y F,et al.The mechanical arm is studied by the continuous trajectory interpolation algorithm ofNpath points[J].Combination Machine Tool and Automatic Processing Technology,2014(11):92-96.
[4] 張舒曼,周亞軍.基于Matlab的機器人運動學分析與軌跡規(guī)劃仿真[J].工業(yè)控制計算機,2014(8):12-14.
ZHANG S M,ZHOU Y J.Matlab based robot kinematics analysis and trajectory planning simulation[J].Industrial Control Computer,2014(8):12-14.
[5] 王國棟,王剛,肖聚亮,等.DMC及其在開放式機器人控制器中的應用[J].機床與液壓,2003(6):207-209.
WANG G D,WANG G,XIAO J L,et al.DMC and its application in open robot controller[J].Machine Tool and Hydraulic,2003(6):207-209.
[6] 王謙.基于DMC的機器人軌跡規(guī)劃研究與實現[J].工業(yè)儀表與自動化裝置,2011(3):86-88.
WANG Q.Based on DMC’s robot trajectory planning research and implementation[J].Industrial Instruments and Automation Devices,2011(3):86-88.
[7] 任志貴,陳進,賀康生,等.基于運動學分析的挖掘機器人軌跡規(guī)劃新方法[J].中國工程機械學報,2012,10(2):150-155.
REN Z G,CHEN J,HE K S,et al.Based on kinematics analysis,a new method of tracking robot trajectory is proposed[J].Chinese Journal of Construction Machinery,2012,10(2):150-155.
[8] 林仕高,劉曉麟,歐元賢.機械手笛卡爾空間軌跡規(guī)劃研究[J].機械設計與制造,2013(3):49-52.
LIN S G,LIU X L,OU Y X.Cartesian space trajectory planning study[J].Mechanical Design and Manufacturing,2013(3):49-52.
[9] 徐海黎,解祥榮,莊健,等.工業(yè)機器人的最優(yōu)時間與最優(yōu)能量軌跡規(guī)劃[J].機械工程學報,2010(9):19-25.
XU H L,XIE X R,ZHUANG J,et al.Optimal time and optimal energy trajectory planning for industrial robots[J].Journal of Mechanical Engineering,2010(9):19-25.
[10] 胡繩蓀,王明建,申俊琦,等.J形坡口焊接機器人運動控制系統(tǒng)設計[J].天津大學學報(自然科學與工程技術版),2014,47(4):371-376.
HU Y S,WANG M J,SHEN J Q,et al.J-groove welding robot movement control system design[J].Journal of Tianjin University(Natural Science and Engineering),2014,47(4):371-376.