張立軍,房紹偉,張?zhí)炝Γ鹩郎?,張德瀟,王旱祥,張 辛,姜 浩
(中國石油大學(xué)(華東)機電工程學(xué)院,山東 青島 266580)
切削技術(shù)是機械制造技術(shù)中應(yīng)用最廣泛的技術(shù)之一,在“切削原理與刀具”“機械加工概論”“先進制造技術(shù)”等課程中均有其相關(guān)知識點的講述。近幾年,切削技術(shù)與計算機輔助制造技術(shù)、機器人技術(shù)不斷交叉融合,使得現(xiàn)代切削裝備的發(fā)展突飛猛進。面對日新月異的技術(shù)發(fā)展,有必要讓學(xué)生在掌握基本的切削技術(shù)的同時,也了解相關(guān)的新興切削技術(shù)。
在切削技術(shù)的實踐學(xué)習(xí)中,學(xué)生們所能接觸到的切削設(shè)備大部分只有三個自由度,不能對空間復(fù)雜曲線進行高效率的切割,在切削操作時仍需要學(xué)生手動編程控制切削路跡,這一教學(xué)現(xiàn)狀與切削設(shè)備智能化、自動化、高自由度化的發(fā)展方向存在一定偏離。為加深學(xué)生對現(xiàn)代化切割技術(shù)智能化的認識和理解,體會與其他學(xué)科交叉融合后的現(xiàn)代切割技術(shù)與傳統(tǒng)切割技術(shù)的區(qū)別,筆者開發(fā)了一套牙齒熱壓模型切割教學(xué)實驗平臺。在實踐教學(xué)中,學(xué)生可以通過自己的實踐操作了解和學(xué)習(xí)D-H參數(shù)法的基本原理和逆運動學(xué)求解的方式方法,體會計算機輔助制造技術(shù)、機器人技術(shù)與切削技術(shù)的發(fā)展和融合。
本教學(xué)實驗平臺以牙齒熱壓模型的切割為應(yīng)用背景,希望學(xué)生體會到現(xiàn)代切割技術(shù)在工程實踐中的應(yīng)用。隱形牙套是目前醫(yī)療領(lǐng)域中應(yīng)用在隱形正畸方面的主要矯正工具。牙齒熱壓模型是隱形牙套的半成品,利用3-D打印技術(shù)和真空熱壓成型技術(shù)制作而成。通過后續(xù)的切割,可以將隱形牙套從熱壓模型上分離出來[1]。目前的切割方式主要是操作人員使用小磨鉆進行手工切割,費時費力且精度不高。由于牙齦線復(fù)雜的空間結(jié)構(gòu),使用手工編程的切割設(shè)備也不具有可操作性。
本教學(xué)實驗平臺分為軌跡規(guī)劃軟件和激光切割設(shè)備兩部分。軌跡規(guī)劃軟件在計算機端的控制平臺運行,主要功能為切割路徑的規(guī)劃以及執(zhí)行代碼的生成;激光切割設(shè)備是執(zhí)行平臺,主要功能為按照規(guī)劃好的路徑以及生成的執(zhí)行代碼進行切割操作。整體結(jié)構(gòu)如圖1所示。
圖1 牙齒熱壓模型切割教學(xué)實驗平臺
本實驗平臺的整體工作流程如圖2所示。首先,軌跡規(guī)劃平臺初始化,同時激光切割平臺各運動軸歸零;其次,雙目相機啟動,通過控制載物平臺的旋轉(zhuǎn)采集完整的牙齒熱壓模型的圖像信息,對所得到的圖像信息進行細化、匹配等一系列的處理后獲得牙齦線的三維坐標(biāo)信息;然后,將所得到的牙齦線坐標(biāo)信息導(dǎo)入到軌跡規(guī)劃軟件中,軌跡規(guī)劃軟件通過逆運動學(xué)求解得到各運動軸的移動信息,并將這些信息以G代碼的形式輸出;最后,將輸出的G代碼導(dǎo)入到激光切割設(shè)備,進而驅(qū)動激光切割設(shè)備進行切割動作。
圖2 實驗平臺切割過程的工作流程圖
軌跡規(guī)劃軟件使用 D-H參數(shù)法建立激光切割設(shè)備的運動模型,通過導(dǎo)入牙齦線的位置坐標(biāo),進行逆運動學(xué)求解,將求解結(jié)果轉(zhuǎn)換成激光切割平臺可以執(zhí)行的G代碼指令,實現(xiàn)自動化的編程功能。軌跡規(guī)劃軟件利用MATLAB平臺下的圖形用戶界面(graphical user interface,GUI)編寫而成。MATLAB的GUI功能十分強大,含有各種功能按鈕控件和自定義的功能菜單,用戶能依據(jù)自己的需要去定義屬性、特征和菜單等編輯器,可以根據(jù)用戶的需要構(gòu)建一個功能完善的虛擬操作平臺,進而能夠?qū)崿F(xiàn)用戶與計算機之間信息的傳遞[2]。圖形用戶界面使學(xué)生在使用時不再需要編寫冗長且復(fù)雜的代碼,所需要的功能主要依靠點擊圖形按鈕來實現(xiàn),利用可視化的方式,降低了學(xué)生的學(xué)習(xí)成本,方便實踐活動中的實際操作。新建GUI包括兩個文件:一是包含callback函數(shù)的m文件,進行編程時內(nèi)容保存在m文件中;二是包含GUI控件的fig文件,設(shè)計用戶界面時內(nèi)容保存在fig文件中[3-5]。該系統(tǒng)可以將其轉(zhuǎn)化為exe文件脫離MATLAB環(huán)境運行。
軌跡規(guī)劃軟件主要有數(shù)據(jù)導(dǎo)入、仿真計算、G代碼導(dǎo)出三個功能。通過數(shù)據(jù)導(dǎo)入命令將需要實現(xiàn)的末端移動軌跡導(dǎo)入仿真平臺,利用坐標(biāo)圖進行直觀的展示;以搭建出的模型為基礎(chǔ),以導(dǎo)入的末端軌跡數(shù)據(jù)為依據(jù),進行逆運動學(xué)求解,將最終結(jié)果以動態(tài)視頻的形式展現(xiàn)出來;將求解之后各軸的運動角度和運動距離通過G代碼的形式導(dǎo)出。
根據(jù)總體設(shè)計框架的思路,使用按鈕、坐標(biāo)系、靜態(tài)文本等界面元素,整個界面包括操作部分、顯示部分和工具欄部分。操作部分主要通過單擊按鈕控件調(diào)用對應(yīng)的callback函數(shù),實現(xiàn)讀取數(shù)據(jù)、彈出下一級窗口等功能;顯示部分主要使用坐標(biāo)系控件和靜態(tài)文本控件,在坐標(biāo)系內(nèi)通過三維圖的形式展現(xiàn)最終的計算結(jié)果,在靜態(tài)文本內(nèi)顯示當(dāng)前末端執(zhí)行器所處的位置;界面上方的工具欄部分包括放大、縮小、平移和三維旋轉(zhuǎn)等四個功能按鈕,方便學(xué)生以不同的視覺角度去觀察仿真規(guī)劃的結(jié)果。軟件界面如圖3所示。
圖3 軌跡規(guī)劃軟件界面
D-H參數(shù)法是由Denavit和Hartenberg提出的建立機械臂運動學(xué)方程的方法,這種方法對每個連桿建立坐標(biāo)系,用齊次矩陣來描述相鄰連桿的空間關(guān)系,通過矩陣的乘積得到最后一個連桿相對第一個連桿的位姿[6]。
根據(jù)D-H參數(shù)法,對一個具有n個關(guān)節(jié)、(n+1)個連桿的機械臂各部件進行編號。一般情況下連桿 0是機械臂的基座,連桿(n+1)用來固接工具視作末端執(zhí)行器[7-8]。連桿(j+1)和連桿j通過關(guān)節(jié)j相連。用連桿長度aj和扭轉(zhuǎn)角αj兩個參數(shù)來描述一個連桿。用連桿偏移dj和關(guān)節(jié)角θj來描述一個關(guān)節(jié),如圖4所示。
圖4 D-H參數(shù)法原理圖
由圖4可以進一步了解到連桿長度aj是指關(guān)節(jié) j和關(guān)節(jié)(j+1)的兩條軸線的公法線的長度,扭轉(zhuǎn)角αj是指垂直于aj的所在平面內(nèi)兩軸的夾角,連桿偏移dj是指沿著關(guān)節(jié) j的軸線從一個連桿坐標(biāo)系到另一個連桿坐標(biāo)系的距離,關(guān)節(jié)角θj是指連桿(j-1)相對于連桿j關(guān)于關(guān)節(jié)j的軸線的轉(zhuǎn)動角度。
為方便建模,首先對每個關(guān)節(jié)建立一個本地坐標(biāo)系,對于每個關(guān)節(jié)來說,必須人為指定z和x軸,但一般不需要指定y軸,因為y軸總是垂直于z和x軸[9]。通常情況下將關(guān)節(jié)的軸線定義為z軸,若關(guān)節(jié)為平移關(guān)節(jié)則將z軸定義為沿直線運動的方向;將兩相鄰軸線的公法線定義為x軸。特別的,若出現(xiàn)兩個關(guān)節(jié)的z軸相互平行的情況,它們之間就會有無數(shù)條公法線,這時可挑選與前一關(guān)節(jié)的公法線共線的一條公法線作為x軸。
接下來將 zj-1-xj-1坐標(biāo)系轉(zhuǎn)換到 zj-xj坐標(biāo)系,依據(jù)前面總結(jié)的位置特點,按如圖5所示流程進行。首先,將 zj-1-xj-1坐標(biāo)系繞 zj-1軸旋轉(zhuǎn) θj,因為 xj-1軸和xj軸都與zj-1軸垂直,這樣可以使得xj-1和xj平行;然后,沿著zj-1軸將zj-1-xj-1坐標(biāo)系平移dj的距離,使xj-1和 xj共線;接下來,沿著 xj軸的方向,將 zj-1-xj-1坐標(biāo)系平移 aj的距離,使坐標(biāo)系 zj-1-xj-1和坐標(biāo)系 zj-xj的原點重合;最后,將 zj-1-xj-1坐標(biāo)系繞 xj軸旋轉(zhuǎn) αj的角度,使 zj軸和 zj-1軸重合。通過這樣的變化就能使得 zj-1-xj-1坐標(biāo)系轉(zhuǎn)換到 zj-xj坐標(biāo)系。這種變化可以用四個齊次變換矩陣來表示,稱為Aj矩陣[10]。
圖5 坐標(biāo)系轉(zhuǎn)換流程圖
對于轉(zhuǎn)動關(guān)節(jié)展開可得:
對于移動關(guān)節(jié)展開可得
對于指定的連桿,參數(shù)aj和αj始終是常量;對于轉(zhuǎn)動關(guān)節(jié),θj是變量,dj是常量;對于移動關(guān)節(jié),dj是常量,θj是變量[11]。
依據(jù)以上規(guī)則,從第1個關(guān)節(jié)開始變換到第2個關(guān)節(jié),然后到第3個關(guān)節(jié),一直到最終的末端執(zhí)行器[12]。若把每個變換均用A矩陣的形式進行描述,則在基座與末端執(zhí)行器之間的變換總則為:
激光切割設(shè)備可以看做由一組連桿組成,這些連桿通過關(guān)節(jié)連接起來??刂魄懈钇脚_在 X、Y方向上移動的H形結(jié)構(gòu)視作連桿由平移關(guān)節(jié)鏈接;調(diào)整激光射入角度的激光頭運動模塊視作兩個連桿由轉(zhuǎn)動關(guān)節(jié)鏈接。這些關(guān)節(jié)的平移或轉(zhuǎn)動改變了相鄰連桿的位置關(guān)系,進而改變了末端執(zhí)行器的位姿。本實驗平臺使用MATLAB工具箱robot9.10開發(fā)而成,此工具箱提供了逆運動學(xué)封閉解求解函數(shù)ikine6s,但此函數(shù)僅對PUMA560型機械臂有效。PUMA560型機械臂具有前三個關(guān)節(jié)定位,后三個關(guān)節(jié)調(diào)整末端執(zhí)行器的位姿的特點,由于這一特點與激光切割設(shè)備具有高度的相似性,因此采用等效處理的方式來建立實驗平臺的模型。
在保證同樣的工作空間的前提下,PUMA560可以到達空間的任意位置,H形結(jié)構(gòu)配合Z軸升降也可以保證激光切割平臺到達工作空間的任意位置,這樣就將PUMA560的前三個轉(zhuǎn)動關(guān)節(jié)與激光切割平臺的H型結(jié)構(gòu)等效;將PUMA560的連桿6所有參數(shù)設(shè)為0,這樣就將PUMA560的后三個連桿與切割平臺的后兩個連桿進行了等效。等效之后的建模數(shù)據(jù)如表1。
表1 切割平臺的建模數(shù)據(jù)
這樣既保證了軌跡規(guī)劃平臺與激光切割平臺的統(tǒng)一性,也方便在計算逆運動學(xué)解時可以直接使用工具箱中的ikine6s函數(shù)。
使用MATLAB GUIDE進行應(yīng)用程序的編寫,關(guān)鍵在于回調(diào)函數(shù)的編寫以及各功能模塊的數(shù)據(jù)聯(lián)通、協(xié)調(diào)配合[13]。
1)打開MATLAB,通過GUIDE新建一個空白的GUI。
雙擊GUI界面的空白位置彈出屬性檢查器,修改units、position、Resize等參數(shù),使界面在桌面的合適位置出現(xiàn)。
2)在圖像界面上放置控件并修改其屬性參數(shù)。
在界面左側(cè)放置三個按鈕控件,分別修改其string屬性為“數(shù)據(jù)導(dǎo)入”“仿真規(guī)劃”“G代碼導(dǎo)出”;在界面中間放置兩個坐標(biāo)系控件,用來實現(xiàn)軌跡的可視化;在界面右側(cè)放置面板控件,修改其string屬性為“坐標(biāo)顯示區(qū)”。在面板左側(cè)放置三個靜態(tài)文本,修改其string 屬性為“X”“Y”“Z”,通過修改 ForegroundColor屬性改變字體顏色;在面板右側(cè)放置三個靜態(tài)文本,修改BlackgroundColor屬性改變背景顏色,用來顯示當(dāng)前末端執(zhí)行器所在的空間坐標(biāo)。
3)編寫三個按鈕的回調(diào)函數(shù)。
整理回調(diào)函數(shù)設(shè)計流程如圖6,首先確定各個按鈕所要實現(xiàn)的具體功能,依據(jù)總體設(shè)計邏輯,編寫數(shù)據(jù)導(dǎo)入按鈕的回調(diào)函數(shù),此按鈕的主要功能通過圖7的語句實現(xiàn)。
圖6 回調(diào)函數(shù)編寫流程
圖7 數(shù)據(jù)導(dǎo)入按鈕的回調(diào)函數(shù)
在檢查功能正確實現(xiàn)之后,繼續(xù)編寫仿真規(guī)劃按鈕的回調(diào)函數(shù),其主要代碼如圖8所示。
圖8 仿真規(guī)劃按鈕的回調(diào)函數(shù)
最后編寫G代碼導(dǎo)出按鈕的回調(diào)函數(shù),需要注意的是一般的 G代碼在指令之后只有 X、Y、Z三個位置參數(shù),針對切割平臺的實際情況在G代碼之后添加了A、B兩個位置參數(shù)用來控制機械手臂上的兩臺舵機,主要代碼如圖9所示。在全部編寫完成后,運行調(diào)試。
圖9 G代碼導(dǎo)出按鈕的回調(diào)函數(shù)
激光切割設(shè)備的搭建重點在于機械結(jié)構(gòu)的設(shè)計、電路的設(shè)計以及控制程序的編寫。
由圖10可以看出,激光切割設(shè)備主要由視覺重構(gòu)部分和切割部分組成。視覺重構(gòu)部分使用雙目相機對牙齒熱壓模型進行拍照,經(jīng)后期處理得到牙齦線坐標(biāo)。切割部分由空間移動機構(gòu)和激光切割手臂兩部分組成,其中空間移動機構(gòu)通過H形結(jié)構(gòu)和升降結(jié)構(gòu)的聯(lián)動使激光切割手臂到達工作空間的指定位置,而激光切割手臂通過兩臺舵機構(gòu)成云臺懸掛于H形結(jié)構(gòu)下方,通過調(diào)整兩臺舵機的旋轉(zhuǎn)角度調(diào)整激光的射入角度。
圖10 激光切割設(shè)備結(jié)構(gòu)設(shè)計圖
如圖11和12所示,H形結(jié)構(gòu)模塊由光軸、H形同步帶、兩個同步輪、兩個移動塊及配套軸承組成。兩臺用來驅(qū)動H形結(jié)構(gòu)的步進電機安裝在機架底端,通過驅(qū)使兩個同步輪轉(zhuǎn)動進而帶動同步帶驅(qū)動H結(jié)構(gòu)上的兩個移動塊,使切割平臺實現(xiàn) X、Y軸方向上的移動。升降結(jié)構(gòu)采用步進電機驅(qū)動絲杠實現(xiàn)載物平臺在Z軸方向上的移動。激光切割手臂使用一臺單軸舵機和一臺雙軸舵機組成,單軸舵機固定于H形結(jié)構(gòu)模塊的下方,實現(xiàn)激光頭在 XY平面上的轉(zhuǎn)動;雙軸舵機下方固定激光頭,實現(xiàn)激光頭垂直Z軸旋轉(zhuǎn)。
圖11 H形結(jié)構(gòu)模塊圖
圖12 激光切割手臂圖
本切割設(shè)備的電路設(shè)計是在 Ramps1.4電路板的基礎(chǔ)上通過修改得到,電路原理如圖13所示。
因為本實驗平臺需要控制多個舵機和步進電機及激光的開閉等,為滿足開發(fā)要求,選用具有54路數(shù)字輸出/輸入的Arduino Mega2560作為控制芯片??臻g移動機構(gòu)采用A4988微步電機驅(qū)動器驅(qū)動42步進電機;激光切割手臂機構(gòu)采用LD-220MG和LD-27MG兩種型號的數(shù)字舵機,理論最小可控角度為 0.3°;電源部分采用S-250-12穩(wěn)壓電源給實驗平臺供電。
控制程序部分的重點在于控制各軸的加減速以及步進電機與舵機之間的聯(lián)動,為此設(shè)計編程邏輯如圖14所示。
圖13 電路原理圖
圖14 編程邏輯流程圖
如圖14所示,首先將規(guī)劃之后的路徑數(shù)據(jù)儲存起來,需要注意的是常規(guī)G代碼只有空間坐標(biāo)數(shù)據(jù)和進給速度,為使G代碼與本實驗平臺兼容,更改了G代碼的表達形式和讀取命令,添加了 A、B兩個參數(shù),用來確定激光切割手臂上兩個舵機的轉(zhuǎn)動角度;之后讀取路徑數(shù)據(jù);數(shù)據(jù)讀取完成后啟動定時器;定時器中斷時給X、Y、Z軸的步進電機發(fā)送脈沖,定時器定時長短的變化可以改變步進電機的運動速度,使其從第1個點到第2個點時經(jīng)歷加速、勻速、減速三個階段,且第2個點到第3個點的加速階段的起始速度與第1個到第2個點的減速階段的最終速度相同,這樣可以保證整體的切割過程平滑順暢;在達到指定點之后啟動舵機轉(zhuǎn)到相應(yīng)的位置。
(1)在上位機運行軌跡規(guī)劃軟件,激光切割設(shè)備開機并初始化。
(2)點擊“數(shù)據(jù)導(dǎo)入”按鈕,在彈出的對話框中選擇需要導(dǎo)入的數(shù)據(jù),數(shù)據(jù)導(dǎo)入完成后,學(xué)生可以在第1個坐標(biāo)系上看到牙齦線的三維模型,通過點擊工具欄上“放大”“縮小”以及“旋轉(zhuǎn)”三個按鈕可以觀察不同視角下的牙齦線模型,如圖15和16所示。
(3)點擊“仿真規(guī)劃”按鈕,等待規(guī)劃完成后,可以在第 2個坐標(biāo)系下觀察到模型機械手的運動軌跡,在最右側(cè)的坐標(biāo)顯示區(qū)可以觀察到此時機械手末端執(zhí)行器所處的空間坐標(biāo),如圖17所示。
圖15 導(dǎo)入牙齦線數(shù)據(jù)
圖16 牙齦線三維模型展示
(4)點擊“G代碼導(dǎo)出”按鈕,在彈出的對話框中選擇導(dǎo)出位置,導(dǎo)出完成后,學(xué)生便可以在導(dǎo)出位置看到命名為output的txt文件,雙擊打開即可觀察到導(dǎo)出的G代碼指令,將后綴修改為gcode即可轉(zhuǎn)換為G代碼文件,如圖18和19所示。
(5)將生成的G代碼文件拷貝進SD卡中并導(dǎo)入到激光切割平臺,通過LCD顯示屏左側(cè)的旋鈕選中導(dǎo)入的G代碼文件,摁下旋鈕,可以觀察到激光切割平臺開始運行,沿著牙齦線的軌跡切割牙齒熱壓模型。
圖17 軌跡規(guī)劃過程
圖18 選擇G代碼的保存位置
圖19 部分G代碼展示
本文開發(fā)了牙齒熱壓模型切割教學(xué)實驗平臺。使用 MATLAB編寫了軌跡規(guī)劃軟件,通過建立仿真模型求解逆運動學(xué)解,生成可供激光切割設(shè)備直接運行的G代碼,并通過激光切割設(shè)備中的空間移動機構(gòu)和激光切割手臂配合,實現(xiàn)了沿牙齦線切割牙齒熱壓模型。該過程直觀地展示了自動化的現(xiàn)代切割技術(shù)在工程實際中的應(yīng)用,以及計算機輔助技術(shù)對于完成復(fù)雜切割軌跡的幫助。學(xué)生通過本實驗平臺可以了解D-H參數(shù)法建模方法,掌握運動控制的編程方法,認識和熟悉多軸運動原理,加深對先進制造技術(shù)、機電信息檢測與處理技術(shù)、切削技術(shù)與原理等相關(guān)課程的理解,達到了良好的實驗效果。