劉 宇,張世超,龔集響
(廈門大學(xué)航空航天學(xué)院,福建廈門361102)
機(jī)器人建模和仿真是當(dāng)前開展機(jī)器人任務(wù)規(guī)劃和實(shí)際應(yīng)用的必要手段.目前國內(nèi)外對(duì)機(jī)器人的建模和仿真主要是基于通用計(jì)算機(jī)輔助設(shè)計(jì)/計(jì)算機(jī)輔助制造(CAD/CAM)軟件、MATLAB、OpenGL圖形庫、專用軟件(如RobotStudio、RoboGuide等)[1-2].UG、PRO/E等CAD/CAM軟件適用于產(chǎn)品設(shè)計(jì)與分析,可通過仿真進(jìn)行虛擬加工和制造,但其功能的擴(kuò)展性和開放性較差[3-4].MATLAB憑借其豐富的數(shù)學(xué)計(jì)算工具在機(jī)器人領(lǐng)域應(yīng)用較為廣泛[5].但是MATLAB不擅長三維圖形顯示,難以有效進(jìn)行機(jī)器人及其工作環(huán)境的三維仿真.OpenGL圖形庫功能強(qiáng)大,用于機(jī)器人建模和仿真時(shí)需大量軟件開發(fā)工作,對(duì)操作人員的編程能力和機(jī)器人相關(guān)知識(shí)的要求較高[6-7].而專用軟件適用于特定品牌的機(jī)器人,難以進(jìn)行擴(kuò)展開發(fā).
本研究提出了機(jī)器人建模和仿真的集成方法.該方法結(jié)合CAD軟件在三維建模、MATLAB在數(shù)值計(jì)算、V-REP在運(yùn)動(dòng)仿真方面的優(yōu)勢(shì),解決了不同系統(tǒng)集成時(shí)機(jī)器人約束模型的建立、從工件模型生成機(jī)器人刀具軌跡(簡稱刀軌)、MATLAB和V-REP聯(lián)合仿真等問題,實(shí)現(xiàn)了機(jī)器人加工軌跡生成和運(yùn)動(dòng)仿真.其中V-REP作為三維運(yùn)動(dòng)仿真平臺(tái),具有開源性和包含豐富的應(yīng)用程序編程接口(API)等優(yōu)點(diǎn)[8-9].MATLAB則作為外部控制程序進(jìn)行軌跡計(jì)算和提供通信接口.
本研究所提出的機(jī)器人建模和仿真方法主要包含以下步驟:首先在三維軟件中生成工件坐標(biāo)系下的加工刀具位置(簡稱刀位)文件;接著在MATLAB中計(jì)算機(jī)器人操作空間中末端刀具的軌跡,并通過逆運(yùn)動(dòng)學(xué)計(jì)算獲得刀具軌跡對(duì)應(yīng)的關(guān)節(jié)參數(shù)[10-11];然后在V-REP中建立與刀軌文件一致的機(jī)器人及其加工環(huán)境的三維模型;最后通過MATLAB中的外部控制程序和V-REP中的控制腳本、MATLAB和V-REP之間的通信接口,使V-REP中的機(jī)器人模型響應(yīng)外部控制程序進(jìn)行運(yùn)動(dòng)仿真和碰撞檢測(cè).下文將詳細(xì)介紹上述步驟中涉及到的機(jī)器人建模方法、機(jī)器人刀具軌跡生成方法、MATLAB和V-REP之間的任務(wù)分工及通信控制方法.
關(guān)節(jié)和連桿的統(tǒng)一坐標(biāo)系是指關(guān)節(jié)i的坐標(biāo)系與連桿i的坐標(biāo)系始終保持一致重合,而關(guān)節(jié)和連桿的運(yùn)動(dòng)由對(duì)應(yīng)的坐標(biāo)系的運(yùn)動(dòng)表示,故關(guān)節(jié)i的運(yùn)動(dòng)與連桿i的運(yùn)動(dòng)相同.
工業(yè)機(jī)器人常用的關(guān)節(jié)有旋轉(zhuǎn)、移動(dòng)和球關(guān)節(jié),分別用圓柱、長方體和球來表示3種關(guān)節(jié)的三維模型.其中旋轉(zhuǎn)關(guān)節(jié)有1個(gè)繞圓柱的軸線轉(zhuǎn)動(dòng)的自由度,移動(dòng)關(guān)節(jié)有1個(gè)沿與長方體長邊平行的中心軸移動(dòng)的自由度,球關(guān)節(jié)有3個(gè)繞球心轉(zhuǎn)動(dòng)的自由度.
為了描述關(guān)節(jié)的位姿,在每個(gè)關(guān)節(jié)上定義關(guān)節(jié)坐標(biāo)系,各關(guān)節(jié)坐標(biāo)系的原點(diǎn)均為其幾何中心.旋轉(zhuǎn)關(guān)節(jié)坐標(biāo)系的z軸是其旋轉(zhuǎn)軸,x軸和y軸是在與z軸垂直的平面內(nèi)互相正交的任意兩個(gè)方向.移動(dòng)關(guān)節(jié)坐標(biāo)系的z軸是其移動(dòng)軸,x軸和y軸是在與z軸垂直的平面內(nèi)互相正交的任意兩個(gè)方向.球關(guān)節(jié)坐標(biāo)系的x軸、y軸和z軸是任意3個(gè)組成右手正交坐標(biāo)系的方向.
連桿采用文獻(xiàn)[12]中的定義.如圖1所示,軸i-1和軸i分別是關(guān)節(jié)i-1和關(guān)節(jié)i的軸線,連桿i-1的連桿坐標(biāo)系為xi-1yi-1zi-1,連桿i的連桿坐標(biāo)系為xiyizi.連桿i-1由連桿長度ai-1、連桿扭角αi-1、關(guān)節(jié)i處的關(guān)節(jié)角θi和偏置距離di來描述.
圖1 連桿坐標(biāo)系的定義Fig.1 Definitions of the link-pole coordinate systems
根據(jù)連桿長度和扭角是否為零可將連桿形式分成4類;再根據(jù)關(guān)節(jié)偏置或者關(guān)節(jié)角是否為零,連桿形式進(jìn)一步各被分成8種類型.當(dāng)關(guān)節(jié)i是旋轉(zhuǎn)關(guān)節(jié)時(shí),根據(jù)關(guān)節(jié)偏置di=0和di≠0的2種情況,連桿i-1有8種可能的形式,表1給出了表示這8種L1~L8的連桿形式,此時(shí)關(guān)節(jié)變量為關(guān)節(jié)角θi.當(dāng)關(guān)節(jié)i是移動(dòng)關(guān)節(jié)時(shí),根據(jù)關(guān)節(jié)角θi=0和θi≠0的2種情況,連桿i-1也有8種形式,其關(guān)節(jié)變量為關(guān)節(jié)偏置di.
表1 旋轉(zhuǎn)關(guān)節(jié)對(duì)應(yīng)的8種連桿形式
根據(jù)連桿的不同形式來建立連桿的簡化三維模型.下面以旋轉(zhuǎn)關(guān)節(jié)對(duì)應(yīng)的8種形式的連桿的建模為例進(jìn)行說明.首先定義連桿坐標(biāo)系xi-1yi-1zi-1和xiyizi. 注意xi-1軸應(yīng)同時(shí)與zi-1軸和zi軸垂直.然后以連桿坐標(biāo)系的原點(diǎn)為球心生成三維球體,分別構(gòu)造長度為ai-1(ai-1≠0)、軸線方向?yàn)閤i-1的圓柱連桿i-1和長度為di(di≠0)、軸線方向?yàn)閦i的圓柱連桿i將球體連接起來.最后組合連桿坐標(biāo)系、球體和圓柱體得到如圖2所示的連桿i-1的簡化三維模型.注意連桿坐標(biāo)系xi-1yi-1zi-1相對(duì)連桿i-1是固定的.坐標(biāo)系xiyizi相對(duì)連桿i-1的位姿是隨關(guān)節(jié)變量θi的值變化的.
圖2 旋轉(zhuǎn)關(guān)節(jié)對(duì)應(yīng)的8種連桿的簡化三維模型Fig.2 Simplified 3D model of the 8 types of link-poles corresponding to rotational joints
圖3 相鄰兩連桿的簡化模型及其模型樹Fig.3 Simplified model of two adjacent link-poles and corresponding model tree
常見的工業(yè)機(jī)器人是由一系列連桿通過關(guān)節(jié)交替連接而成的開式鏈.文獻(xiàn)[12]中已經(jīng)給出不同連桿坐標(biāo)系之間的坐標(biāo)變換關(guān)系.基于關(guān)節(jié)和連桿的統(tǒng)一坐標(biāo)系按如下步驟進(jìn)行機(jī)器人的建模:1) 根據(jù)機(jī)器人的尺寸和規(guī)格,建立機(jī)器人的連桿坐標(biāo)系,獲得機(jī)器人的連桿參數(shù).2) 根據(jù)關(guān)節(jié)坐標(biāo)系與連桿坐標(biāo)系重合計(jì)算各關(guān)節(jié)在世界坐標(biāo)系中的位姿,并在同一場(chǎng)景中建立所有關(guān)節(jié)的三維模型.3) 確定關(guān)節(jié)的相互運(yùn)動(dòng)關(guān)系.從與基座相連的關(guān)節(jié)1開始,依次令前一關(guān)節(jié)為后一關(guān)節(jié)的父節(jié)點(diǎn),而后一關(guān)節(jié)為前一關(guān)節(jié)的子節(jié)點(diǎn).父關(guān)節(jié)的運(yùn)動(dòng)將疊加在子關(guān)節(jié)的運(yùn)動(dòng)上.4) 依 次建立連桿的三維模型,并通過連桿坐標(biāo)系與關(guān)節(jié)坐標(biāo)系重合的約束依次將連桿依附到對(duì)應(yīng)的關(guān)節(jié)上,使連桿的運(yùn)動(dòng)等于對(duì)應(yīng)關(guān)節(jié)的運(yùn)動(dòng),從而完成機(jī)器人的建模.基座沒有對(duì)應(yīng)的關(guān)節(jié).在建立基座的三維模型,確定基座相對(duì)世界坐標(biāo)系的位姿后,基座就作為根節(jié)點(diǎn)成為其他所有關(guān)節(jié)和連桿的父節(jié)點(diǎn).圖3所示為在V-REP中進(jìn)行機(jī)器人建模時(shí)連接起來的2個(gè)連桿的簡化模型及其模型樹.
上述機(jī)器人的建模方法不僅適用于從連桿的簡化模型快速建立機(jī)器人的簡化模型,也適用于從連桿的精確模型建立機(jī)器人的精確模型.但V-REP的三維建模能力較弱,難以建立連桿的精確模型.可以在UG、PRO/E等三維建模軟件中建立機(jī)器人的精確模型,然后由V-REP提供的接口(V-REP支持導(dǎo)入的格式為obj、stl、dxf、3ds等)將精確模型導(dǎo)入到V-REP中.但導(dǎo)入的過程中會(huì)丟失各個(gè)連桿模型的坐標(biāo)系的信息.V-REP會(huì)根據(jù)每個(gè)導(dǎo)入模型的最小包圍盒重新定義其坐標(biāo)系.在基于關(guān)節(jié)和連桿的統(tǒng)一坐標(biāo)系的機(jī)器人建模方法中,連桿的運(yùn)動(dòng)由關(guān)節(jié)的運(yùn)動(dòng)決定,因而V-REP的導(dǎo)入模型的坐標(biāo)系的設(shè)定不會(huì)影響機(jī)器人模型的運(yùn)動(dòng).
但連桿模型相對(duì)關(guān)節(jié)模型的位姿需與實(shí)際機(jī)器人一致,才能準(zhǔn)確進(jìn)行機(jī)器人的運(yùn)動(dòng)仿真和碰撞檢測(cè)等.V-REP會(huì)通過使導(dǎo)入模型的世界坐標(biāo)系與V-REP的世界坐標(biāo)系重合來確定導(dǎo)入模型在V-REP場(chǎng)景中的位置.在三維建模軟件中建立機(jī)器人的精確模型時(shí),需保證精確模型與對(duì)應(yīng)的連桿坐標(biāo)系之間的正確位姿,且調(diào)整精確模型的連桿坐標(biāo)系相對(duì)世界坐標(biāo)系的位姿,使之與V-REP中所建立的連桿坐標(biāo)系之間的位姿一致.這樣就能根據(jù)導(dǎo)入到V-REP的模型來建立準(zhǔn)確的機(jī)器人模型.
機(jī)器人末端刀具軌跡的生成過程分為2個(gè)步驟:1) 基于工件三維模型生成軌跡的APT文件;2) 將APT軌跡文件轉(zhuǎn)換為機(jī)器人的軌跡文件.以密胺脂餐盤的去毛邊和打磨操作為例,密胺脂餐盤的生產(chǎn)采用熱壓成型,成型后需打磨去除餐盤外邊緣和把手孔邊緣處形成的毛邊,以保證邊緣的光滑.目前去毛邊和打磨操作均由工人手工操作,工作效率不高,且產(chǎn)生的粉塵危害工人健康.若機(jī)器人配備圓柱銑刀或立銑刀沿餐盤邊緣銑削,則可在去除毛邊的同時(shí),獲得較好的加工表面光滑度,提高生產(chǎn)效率,改善工人工作環(huán)境.
首先在CAD/CAM軟件中生成刀軌及其APT文件.以圖4餐盤為例,圖4(a)中餐盤邊緣的粗線條為CAD/CAM軟件中生成的刀位軌跡,線條的寬度等于所采用的刀具的直徑.圖4(b)為刀軌所對(duì)應(yīng)的APT文件.在APT文件中,刀軌由線段和弧線段組成.
其次,為了使刀具沿給定的軌跡運(yùn)動(dòng),需將APT軌跡文件轉(zhuǎn)換為機(jī)器人的軌跡文件使機(jī)器人可以控制刀具的位置和姿態(tài)(主要是刀軸矢量).而文件轉(zhuǎn)換的關(guān)鍵在于將表示刀具的位置和姿態(tài)的刀具坐標(biāo)系{T}與表示刀具運(yùn)動(dòng)到目標(biāo)點(diǎn)的位置與姿態(tài)的目標(biāo)坐標(biāo)系{G}重合.刀具坐標(biāo)系的z軸與刀軸矢量共線,而x軸和y軸在與刀軸矢量垂直的平面內(nèi)選取,一般取與機(jī)器人末端連桿的連桿坐標(biāo)系的坐標(biāo)軸平行的方向矢量.
如圖5(a)所示,將APT軌跡文件轉(zhuǎn)換為機(jī)器人的軌跡文件還需知道工件坐標(biāo)系{P}、目標(biāo)坐標(biāo)系{G}、機(jī)器人基坐標(biāo)系{B}、機(jī)器人末端連桿坐標(biāo)系{6}、刀具坐標(biāo)系{T}之間的變換關(guān)系.這些坐標(biāo)系之間的位姿關(guān)系形成了圖5(b)所示的封閉環(huán),即
(1)
從式(1)可得機(jī)器人末端刀具沿給定軌跡運(yùn)動(dòng)時(shí),機(jī)器人的運(yùn)動(dòng)學(xué)方程:
(2)
圖4 通過CAD/CAM軟件獲取的刀軌和APT文件Fig.4 Tool paths and APT files obtained through CAD/CAM softwares
圖5 機(jī)器人和工件的相互位姿關(guān)系Fig.5 The pose relationship between a robot and a workpiece
圖6 FANUC-M10I機(jī)器人的連桿坐標(biāo)系Fig.6 Link-pole coordinate systems of FANUC-M10I robot
(3)
結(jié)合MATLAB和V-REP的優(yōu)勢(shì)進(jìn)行機(jī)器人的運(yùn)動(dòng)仿真和碰撞檢測(cè).MATLAB讀取APT軌跡文件,進(jìn)行軌跡插值和采樣,計(jì)算不同坐標(biāo)系之間的位姿變換矩陣,求取機(jī)器人運(yùn)動(dòng)學(xué)的正解和反解.另外,在MATLAB中編寫控制程序,通過MATLAB和V-REP之間的通信連接,使得V-REP中模型能夠響應(yīng)MATLAB中編寫的控制程序進(jìn)行運(yùn)動(dòng)仿真.
V-REP則用來建立機(jī)器人加工的三維場(chǎng)景,根據(jù)MATLAB提供的關(guān)節(jié)參數(shù)等的控制值進(jìn)行機(jī)器人運(yùn)動(dòng)仿真和碰撞檢測(cè).在V-REP中創(chuàng)建的機(jī)器人控制模型包括機(jī)器人及其加工環(huán)境的三維模型、機(jī)器人的控制代碼和通信接口.在V-REP的控制腳本中為機(jī)器人編寫控制代碼和連接通信接口.V-REP的控制腳本分為線程腳本和非線程腳本2種.線程腳本在運(yùn)動(dòng)模擬時(shí)能夠從通信接口不斷接受外部指令進(jìn)行運(yùn)動(dòng).因此選擇線程腳本,以便V-REP能不斷接受MATLAB控制程序發(fā)出的控制指令.
V-REP中的機(jī)器人控制模型和MATLAB控制程序之間需要可靠地?cái)?shù)據(jù)通信服務(wù).通信體系選擇常見的客戶端-服務(wù)器模式,以V-REP為客戶端,MATLAB控制程序?yàn)榉?wù)器端,具體的過程可以參考V-REP中的幫助文件.仿真開始時(shí),先點(diǎn)擊V-REP中的仿真按鍵,然后在MATLAB中運(yùn)行控制程序,V-REP中的機(jī)器人就會(huì)按照MATLAB控制程序生成的控制值進(jìn)行運(yùn)動(dòng).
以FANUC-M10I機(jī)器人對(duì)密胺脂餐盤進(jìn)行銑邊加工為例,對(duì)機(jī)器人加工過程進(jìn)行運(yùn)動(dòng)仿真和碰撞檢測(cè).
根據(jù)機(jī)器人尺寸規(guī)格等相關(guān)技術(shù)資料獲得表2所示的FANUC-M10I型機(jī)器人的連桿參數(shù),建立圖6所示的連桿坐標(biāo)系.根據(jù)表2中關(guān)節(jié)變量的取值和連桿參數(shù)定義連桿坐標(biāo)系在世界坐標(biāo)系中的位置,并采用前文所述關(guān)節(jié)和連桿統(tǒng)一坐標(biāo)系的建模方法在V-REP中建立關(guān)節(jié)模型、連桿模型、機(jī)器人模型.
表2 FANUC-M10I型機(jī)器人的連桿參數(shù)
考慮實(shí)際加工的需要,選擇銑刀的型號(hào)為UTEB9014,其刃徑為4 mm,切削長度為20 mm,總長為60 mm.根據(jù)銑刀的參數(shù),在V-REP中建立末端刀具和工作臺(tái)的簡化模型,并通過V-REP導(dǎo)入餐盤三維模型.最終建立了圖5(a)所示的機(jī)器人及其加工環(huán)境的三維模型.在建模過程中,確定了工件坐標(biāo)系和機(jī)器人基坐標(biāo)系之間、刀具坐標(biāo)系和機(jī)器人末端連桿坐標(biāo)系之間的位姿關(guān)系.
圖7 FANUC-M10I機(jī)器人銑邊過程的運(yùn)動(dòng)仿真Fig.7 Motion simulation of milling process of FANUC-M10I robot
借助CAD/CAM軟件生成密胺脂餐盤的刀軌跡及其APT文件.然后在MATLAB中讀取APT文件,重新計(jì)算軌跡點(diǎn),定義軌跡點(diǎn)處的目標(biāo)坐標(biāo)系,由式(2)和式(3)計(jì)算刀具沿軌跡運(yùn)動(dòng)時(shí)機(jī)器人的關(guān)節(jié)變量的取值.對(duì)于密胺脂餐盤,除去進(jìn)刀退刀的軌跡點(diǎn),共獲得了均勻分布的4 570個(gè)軌跡點(diǎn),軌跡點(diǎn)之間的間距約為0.4 mm,其中外邊緣有3 590個(gè)軌跡點(diǎn),左右把手的孔邊緣各有501個(gè)和479個(gè)軌跡點(diǎn).最后結(jié)合MATLAB和V-REP對(duì)銑邊過程進(jìn)行運(yùn)動(dòng)仿真.圖7是運(yùn)動(dòng)過程中4個(gè)時(shí)刻的截圖.
V-REP可在運(yùn)動(dòng)仿真中實(shí)時(shí)計(jì)算刀具與工件之間的最短距離,進(jìn)行碰撞檢測(cè).如果發(fā)生碰撞,則改變工件的顏色.在整個(gè)仿真過程中,均未出現(xiàn)工件改變顏色的情況,因而刀具沿所生成的軌跡運(yùn)動(dòng)時(shí)沒有與工件發(fā)生干涉.為了對(duì)碰撞情況進(jìn)行定量分析,獲取刀具在每個(gè)軌跡點(diǎn)時(shí)與工件的最短距離d.對(duì)于外邊緣軌跡,d的均值為0.05 mm,均方差為0.03 mm,d的最大值為0.15 mm.對(duì)于其中一個(gè)把手的孔邊緣軌跡,d的均值為0.08 mm,均方差為0.03 mm,d的最大值為0.18 mm.對(duì)于另一個(gè)把手的孔邊緣軌跡,d的均值為0.07 mm,均方差為0.03 mm,d的最大值為0.12 mm.由此可見刀具沿給定軌跡運(yùn)動(dòng)時(shí),刀具到工件的最短距離并沒有達(dá)到理想的零值.這是因?yàn)楣ぜP褪且跃W(wǎng)格模型導(dǎo)入到V-REP中的,存在模型近似和導(dǎo)入誤差.另外軌跡的提取和計(jì)算、坐標(biāo)系的建立和變換等還存在舍入誤差.這些誤差的積累導(dǎo)致刀具到工件的最短距離不為零.通過前述定量分析得到刀具到工件的最短距離保持在0.06 mm左右,均方差約為0.03 mm,滿足餐具盤銑邊加工的精度要求.
本文中提出了聯(lián)合MATLAB和V-REP進(jìn)行機(jī)器人加工軌跡生成和運(yùn)動(dòng)仿真的方法.在MATLAB中計(jì)算刀具軌跡和機(jī)器人運(yùn)動(dòng)學(xué)的正解和反解;在V-REP中建立機(jī)器人及其加工環(huán)境的三維模型;通過MATLAB中的外部控制程序和V-REP中的控制腳本、MATLAB和V-REP之間的通信接口,使V-REP中的機(jī)器人模型響應(yīng)外部控制程序進(jìn)行運(yùn)動(dòng)仿真和碰撞檢測(cè).
在機(jī)器人建模方面,定義了不同關(guān)節(jié)和連桿的簡化模型,提出了基于關(guān)節(jié)和連桿統(tǒng)一坐標(biāo)系的建模方法,給出了機(jī)器人簡化模型和精確模型的2種建模方式;在機(jī)器人軌跡生成方面,給出了從工件三維模型生成機(jī)器人刀具軌跡的方法,包括刀軌的APT文件獲取方式和APT文件到機(jī)器人軌跡的轉(zhuǎn)換方法.
采用本文中的方法對(duì)密胺脂餐盤的機(jī)器人銑邊過程進(jìn)行了仿真.建立了機(jī)器人及餐盤銑邊加工環(huán)境的三維模型,獲取了餐盤外輪廓和把手孔的銑邊軌跡,對(duì)銑邊過程進(jìn)行了運(yùn)動(dòng)仿真和干涉檢查.仿真結(jié)果表明所提出的方法能夠生成無干涉加工軌跡和正確的機(jī)器人關(guān)節(jié)運(yùn)動(dòng)參數(shù).下一步的工作包括對(duì)其他工件的加工過程進(jìn)行仿真,開展機(jī)器人加工實(shí)驗(yàn)等.
廈門大學(xué)學(xué)報(bào)(自然科學(xué)版)2018年5期