曹 原,賈 凱,杜振軍,徐 方
(1.中國科學(xué)院沈陽自動化研究所機器人學(xué)國家重點實驗室,遼寧 沈陽 110016;2.中國科學(xué)院機器人與智能制造創(chuàng)新研究院,遼寧 沈陽 110169;3.中國科學(xué)院大學(xué),北京 100049;4.沈陽新松機器人自動化股份有限公司,遼寧 沈陽 110168)
隨著社會的進步,機器人技術(shù)的發(fā)展,工業(yè)機器人中誕生了一種能夠與人一同協(xié)作,并與人類共同完成不同任務(wù)的一類機器人—協(xié)作機器人。協(xié)作機器人解決了傳統(tǒng)工業(yè)機器人部署成本高、無法滿足中小型企業(yè)需求、無法滿足新興協(xié)作市場需求等缺點,被廣泛的應(yīng)用在醫(yī)療、食品、物流、精密加工、科研、3C 等行業(yè),為工業(yè)機器人的發(fā)展開啟了新時代[1]。
桌面級協(xié)作機器人是未來機器人發(fā)展的一個重要方向[2],它具有低成本、小型化、模塊化等特點,能夠好的服務(wù)于科研、教育、醫(yī)療等行業(yè)。基于模塊化關(guān)節(jié)設(shè)計了六自由度(6R)桌面級協(xié)作機械臂,并分析了機械臂的正、逆運動學(xué),對機械臂逆運動學(xué)的求解在算法上進行了優(yōu)化;最后基于CoppeliaSim建立了虛擬樣機,并聯(lián)合Matlab進行仿真分析,驗證了結(jié)果的正確性與可行性。
為滿足6R協(xié)作機械臂小型化、模塊化的需求,設(shè)計采用了模塊化關(guān)節(jié),該關(guān)節(jié)輸出扭矩更大,運行更穩(wěn)定,高度集成化使得機械臂整體體積更小,具體參數(shù),如表1所示。
表1 模塊化關(guān)節(jié)具體參數(shù)Tab.1 Modular Joint Specific Parameters
桌面級6R協(xié)作機械臂有效負(fù)載1kg,外形設(shè)計盡量小型化,機械臂關(guān)節(jié)的最大力矩小于模塊化關(guān)節(jié)規(guī)定的最大扭矩,通過三維設(shè)計軟件Solidworks,基于模塊化關(guān)節(jié)共設(shè)計了三種方案,如圖1所示。
圖1 機械臂設(shè)計方案Fig.1 Robotic Arm Design
方案a整體外形參照UR機器人;方案b參照INNFOS團隊自主研發(fā)設(shè)計的智能柔性執(zhí)行器系列Smart Compliant Actuator(SCA);方案c是對方案a、b的補充改進:機械臂各關(guān)節(jié)所受力矩由作用在各關(guān)節(jié)的力和力臂決定,在關(guān)節(jié)類型確定的大前提下,盡可能減小力臂,可達到增大末端有效負(fù)載的效果,因此方案c中將第5關(guān)節(jié)前置,使機器人的整體重心前移,有效的減小了第二關(guān)節(jié)的力矩。
關(guān)節(jié)2所受靜力矩由力和力臂相乘得到:力臂指關(guān)節(jié)2之后的構(gòu)件重心與關(guān)節(jié)2旋轉(zhuǎn)軸線的距離,力指關(guān)節(jié)2之后的總重量(包括末端負(fù)載1kg),兩個參數(shù)均通過三維設(shè)計軟件測量得到,詳細(xì)數(shù)據(jù),如表2所示。
表2 各方案關(guān)節(jié)峰值力矩表Tab.2 Joint Peak Torque Table for Each Plan
關(guān)節(jié)2峰值力矩是在機械臂各連桿處于水平位置繞關(guān)節(jié)2瞬時啟動時經(jīng)過仿真測量得到,只對關(guān)節(jié)2設(shè)置旋轉(zhuǎn)速度,此時力臂最大,關(guān)節(jié)2受到的啟動力矩最大。根據(jù)對三種方案的對比,綜合考慮多種因素,采用具有較小靜力矩和動力矩的關(guān)節(jié)前置型方案,滿足模塊化關(guān)節(jié)提供的最大扭矩,該方案瞬時啟動產(chǎn)生的峰值力矩,如圖2所示。瞬時啟動關(guān)節(jié)2所受峰值扭矩15.27N·m。
圖2 關(guān)節(jié)前置型瞬時啟動力矩圖Fig.2 Joint Front Type Instantaneous Start Torque Diagram
機械臂整體外形尺寸,如圖3 所示。外殼材料選用鋁合金7075,大臂180mm,小臂208.2mm,整體高度611.6mm,額定負(fù)載1kg,相比INNFOS團隊研發(fā)的六軸機械臂(額定負(fù)載500g),該方案實現(xiàn)了小型化、輕量化,并有效的增大了末端負(fù)載。
圖3 關(guān)節(jié)前置型機械臂整體尺寸Fig.3 The Overall Size of the Front Joint Robot Arm
在關(guān)節(jié)前置型方案中,所有模塊化關(guān)節(jié)滿足峰值力矩要求,但機械臂本身強度、剛度是否達到要求還有待驗證。因此,本節(jié)最后對上述確定的機械臂方案(關(guān)節(jié)前置型機械臂)進行有限元分析,如圖4 所示。對末端負(fù)載設(shè)置1kg,分別完成了對機械臂的靜應(yīng)力分析、靜態(tài)位移分析以及靜態(tài)應(yīng)變分析,得到最大靜應(yīng)力點6.857×107N/m2,最大靜態(tài)位移0.3568mm,最大靜態(tài)應(yīng)變3.301×10-4,滿足強度、剛度等需求,詳細(xì)分析,如圖4所示。
圖4 機械臂有限元分析Fig.4 Finite Element Analysis of Robotic Arm
目前,對于開鏈機器人正向運動學(xué)模型建立的方法主要有D-H 參數(shù)法[3,4](Denavit-Hartenberg parameter)和基于旋量理論的指數(shù)積公式法[5](Product of Exponential,PoE)。D-H 參數(shù)法的優(yōu)點在于只需要最少數(shù)量的參數(shù)來描述機器人運動學(xué),即對于一個n桿機器人,可以用3n個參數(shù)描述機器人結(jié)構(gòu),n個參數(shù)表示關(guān)節(jié)變量;而PoE模型并不是最少參數(shù)的參數(shù)形式(需要6n個參數(shù)來描述n個關(guān)節(jié)軸運動旋量,外加n個參數(shù)表示關(guān)節(jié)變量),但其優(yōu)點也是十分明顯的,不需要建立連桿坐標(biāo)系,避免了由于D-H 參數(shù)法參數(shù)錯誤而導(dǎo)致的運動學(xué)模型建立錯誤[6]。因此,選用PoE 公式進行關(guān)節(jié)前置型機械臂運動學(xué)模型的建立。
對于n自由度開鏈空間機器人,如圖5所示。
圖5 n桿開鏈機器人PoE公式圖示Fig.5 Illustration of the PoE Formula for An n-Link Spatial Open Chain
為應(yīng)用PoE公式,首先選擇基坐標(biāo)系{s}和附著在最后一根桿上的末端坐標(biāo)系{b},并將機器人置于零位,此時所有關(guān)節(jié)變量初值為0,每個關(guān)節(jié)正向位移的方向指定,令M∈SE(3)表示末端坐標(biāo)系{b}相對基坐標(biāo)系{s}的初始位形。
則n自由度開鏈空間機器人正向運動學(xué)的指數(shù)積公式可寫成:
式中:Sn:Sn=(ωn,vn)—在基坐標(biāo)系中的關(guān)節(jié)n的旋量坐標(biāo);
ωn∈R3—沿關(guān)節(jié)軸正向的單位向量;
vn=-ωn×qn,qn—關(guān)節(jié)軸上任意一點,坐標(biāo)值在基座標(biāo)系中進行度量;
θn—關(guān)節(jié)n對應(yīng)的關(guān)節(jié)變量。
這里設(shè)計的機械臂零位,如圖6所示。該位置為機器人的初始位置,各關(guān)節(jié)及其旋轉(zhuǎn)方向如圖中標(biāo)示,其中,基座標(biāo)系{0},末端坐標(biāo)系{6},L1=146.7mm,L2=180mm,L3=208.2mm,L4=76.7mm。令M∈SE(3)表示機器人處于初始位置時的末端位形,直接觀察可得:
圖6 關(guān)節(jié)前置型機械臂零位圖示Fig.6 The Zero Position of the Front-Joint Manipulator
機器人各螺旋軸Si=(ωi,vi),i=1,…,6,坐標(biāo),如表3所示。
表3 各螺旋軸Si坐標(biāo)Tab.3 Coordinates of Each Screw Axis Si
由此可得到上述六個螺旋軸的(4×4)矩陣,表示形式如下:
將初始位形M和各螺旋軸代入式(1),關(guān)節(jié)變量θi,T(θ)即為機械臂運動學(xué)正解。鑒于此,旋量法建模明顯簡化了運動學(xué)計算過程的復(fù)雜性,便于開發(fā)人員高效的建立機器人模型。
機器人運動學(xué)反解是正向運動學(xué)的反向求解過程,即已知機器人末端位姿X∈SE(3),找出滿足T(θ)=X的關(guān)節(jié)角θ(ii=1,2,3,4,5,6)的過程。6R關(guān)節(jié)前置型機械臂的運動學(xué)方程如下:
機器人運動學(xué)反解的方法眾多,主要分為兩大類:解析解和數(shù)值解[7]。采用解析解時,前三個關(guān)節(jié)的求解可以根據(jù)機器人前三個關(guān)節(jié)構(gòu)成的連桿結(jié)構(gòu)進行求解,機器人后三個關(guān)節(jié)軸相交于一點,所以前三個關(guān)節(jié)決定了機器人末端的位置,后三個關(guān)節(jié)決定了機器人末端的姿態(tài)。
(1)機器人末端位置的求解
機器人前三關(guān)節(jié)的逆向位置求解示意圖,如圖7所示。機器人后三個關(guān)節(jié)軸相交于一點Om(PXX,PYY,PZZ),Om坐標(biāo)與末端位姿X的關(guān)系如下:
圖7 6R關(guān)節(jié)前置型機械臂的逆向位置求解Fig.7 Solving the Reverse Position of the 6R Joint Front Type Manipulator
將Om點向X0-Y0平面投影,通過投影關(guān)系可以求出第一關(guān)節(jié)角的兩個有效值:
確定機械臂關(guān)節(jié)角θ2、θ3的過程,可以進一步簡化為求解平面兩連桿機構(gòu)的逆運動學(xué)問題,其中:
由此可得第三關(guān)節(jié)角的兩個有效值:
類似的方法可求出第二關(guān)節(jié)角的值:
(2)機器人末端姿態(tài)的求解
已知末端姿態(tài),求解關(guān)節(jié)角θ4、θ5、θ6。前一部分已經(jīng)求得前三關(guān)節(jié)角,根據(jù)正向運動學(xué)式(3),可寫成:
等式右邊已知,后三個關(guān)節(jié)軸方向分別是ω4=(1,0,0),ω5=(0,1,0),ω6=(0,0,1);現(xiàn)定義右邊項得轉(zhuǎn)動部分為R,c4=cosθ4,c5=cosθ5,c6=cosθ6,s4=sinθ4,s5=sinθ5,s6=sinθ6;腕部關(guān)節(jié)角可以通過求解下式得到:
機器人前三關(guān)節(jié)存在四組解,腕部的后三個關(guān)節(jié)通過“翻轉(zhuǎn)”可以得到第二組解:θ4'=θ4+π;θ5'=θ5;θ6'=θ6+π。通過上述位置和姿態(tài)的求解與組合,6R關(guān)節(jié)前置型機械臂一共存在8組解。
在不同的情況下,機器人逆解采用的優(yōu)化準(zhǔn)則也是不同的,關(guān)節(jié)前置型機械臂一共有八組解,采用“最小變化角”準(zhǔn)則進行優(yōu)化,即每次關(guān)節(jié)運動所有關(guān)節(jié)移動量為最小的解。在不考慮障礙的前提下,尋求逆運動學(xué)的最優(yōu)解就是在關(guān)節(jié)空間中選取一個最接近起始點的解,關(guān)節(jié)前置型機械臂前三個連桿的尺寸較大,后三個較小,主要用于定向[8],在這種情況下,需要使用加權(quán)系數(shù)來衡量接近的程度。取目標(biāo)函數(shù)M:
式中:Mi=1…8—8組解對應(yīng)的變化角;λi—加權(quán)系數(shù),加權(quán)系數(shù)選擇應(yīng)遵循“多移動小關(guān)節(jié),少移動大關(guān)節(jié)”原則[9],這樣可以有效的減少機器人工作中的硬損傷[10]。
在進行物理平臺實驗前,完成基于機械臂虛擬樣機的仿真分析,包括機械臂正、逆運動學(xué)驗證,確保以最小變化角為準(zhǔn)則的位置控制算法的可行性,能夠有效保證后期物理平臺實驗的安全性、準(zhǔn)確性和高效性。將關(guān)節(jié)前置型機械臂模型從Solidworks導(dǎo)入CoppeliaSim,首先完成對各桿件的連接約束,對各桿件添加相應(yīng)質(zhì)量,并在各電機與連桿間添加驅(qū)動關(guān)節(jié)(Revolute Joint),關(guān)節(jié)旋轉(zhuǎn)方向按圖6所示放置,經(jīng)過上述步驟,關(guān)節(jié)前置型機械臂虛擬樣機基本建立完成。添加完連接約束和旋轉(zhuǎn)關(guān)節(jié)后的關(guān)節(jié)前置型機械臂虛擬樣機,如圖8所示。
圖8 機械臂虛擬樣機Fig.8 Virtual Prototype of Robotic Arm
利用CoppeliaSim 與Matlab 進行驗證,機械臂形態(tài)1,如圖9(a)所示。對應(yīng)θ=[-pi/4 -pi/4pi/4 0 -pi/4 0],依據(jù)式(3)求出末端位姿T(θ)1;機械臂形態(tài)2,如圖9(b)所示。對應(yīng)θ=[pi/4pi/4 0 -pi/4 0 0],求出末端位姿T(θ)2。分別對虛擬樣機進行形態(tài)1、2關(guān)節(jié)角的設(shè)置,通過對比樣機末端位姿與T(θ)1、T(θ)2,結(jié)果正確。
圖9 正向運動學(xué)驗證Fig.9 Positive Kinematics Verification
通過Matlab新建腳本,根據(jù)上述逆解的解析式,建立針對機械臂的以最小變化角為準(zhǔn)則的位置控制算法,完成對機械臂的運動控制;最后通過Matlab與CoppeliaSim聯(lián)合控制,實現(xiàn)對虛擬樣機的實時控制。如圖10(a)所示,仿真中機械臂完成了從點(0.2,-0.2,0.3)至點(0.2,0.2,0.3)至點(-0.2,0.2,0.3)至點(-0.2,0.2,0.3)的運動;圖10(b)將仿真得到的具體位置數(shù)據(jù)(每時刻的末端位置x、y、z坐標(biāo))輸出到Matlab并進行作圖得到實際運動軌跡,通過期望軌跡與實際軌跡的對比,兩條軌跡基本一致。
圖10 逆向運動學(xué)仿真驗證對比Fig.10 Comparison of Inverse Kinematics Simulation Verification
如圖11進一步將第一段的期望位置與實際位置通過作差進行誤差分析,由圖可得x、y、z軸方向誤差均小于0.02mm,實際距離誤差基本控制在0.02mm以內(nèi),符合設(shè)計要求,以最小變化角為準(zhǔn)則的位置控制算法有效的控制了機械臂的運動。
圖11 實際軌跡誤差分析圖Fig.11 Actual Trajectory Error Analysis Chart
系統(tǒng)介紹了基于模塊化關(guān)節(jié)的桌面級協(xié)作機器人構(gòu)造設(shè)計及仿真分析過程,設(shè)計方案具備小型化、輕量化、模塊化特點;在Matlab軟件中運用PoE方法建立了桌面級協(xié)作機器人模型,并對機器人進行了正、逆運動學(xué)求解,這種方法極大的簡化了運動學(xué)逆解的求解;其次,利用CoppeliaSim建立了機器人虛擬樣機,通過Matlab和CoppeliaSim聯(lián)合控制完成了桌面級協(xié)作機器人的仿真分析,仿真誤差基本控制在0.02mm以內(nèi)。仿真結(jié)果表明,基于旋量理論的運動學(xué)求解方法計算簡單,以最小變化角為準(zhǔn)則的位置控制算法精確度高,具有較大的實用性。