徐海璐,房劍飛,韓雪,戎新萍
(南京工業(yè)大學(xué) 浦江學(xué)院,南京211100)
傳統(tǒng)3D打印機(jī)主要有3種,如圖1所示。第一種為龍門(mén)架結(jié)構(gòu)[1],此結(jié)構(gòu)又稱為i3結(jié)構(gòu),打印頭位于X軸運(yùn)動(dòng)導(dǎo)軌上,底盤(pán)架設(shè)在Y軸運(yùn)動(dòng)導(dǎo)軌上,Z軸方向沿著龍門(mén)架向上,此種打印機(jī)結(jié)構(gòu)較為簡(jiǎn)單。第二種是三角洲3D打印機(jī),該結(jié)構(gòu)屬于Delta式結(jié)構(gòu),由瑞士洛桑理工學(xué)院的Reymond Clavel教授于20世紀(jì)80年代發(fā)明[2]。最早的Delta式并聯(lián)機(jī)械臂主要用來(lái)設(shè)計(jì)一種能以很快速度操作輕小物體的機(jī)器人,這是一種通過(guò)一系列互相連接的平行四邊形來(lái)控制目標(biāo)在X、Y、Z軸上的運(yùn)動(dòng)的機(jī)械結(jié)構(gòu)。這種結(jié)構(gòu)運(yùn)動(dòng)相對(duì)穩(wěn)定,但由于并聯(lián)機(jī)械臂占用了較大的空間,使得該打印機(jī)的打印范圍易受到限制[3]。第三種是目前較為常見(jiàn)的XYZ箱體機(jī)構(gòu)打印機(jī),如市場(chǎng)上典型的Einstart系列打印機(jī)[4],此種結(jié)構(gòu)X軸和Y軸在一個(gè)平面上運(yùn)動(dòng),打印基座固定在Z軸上。打印機(jī)空間利用率較高,并且打印更加穩(wěn)定,打印精度也相對(duì)較高。
圖1 3D打印機(jī)
對(duì)于龍門(mén)架結(jié)構(gòu)和XYZ箱體式結(jié)構(gòu)打印機(jī),X Y Z軸相互垂直,可以直接將每個(gè)軸運(yùn)動(dòng)距離換算成電動(dòng)機(jī)的脈沖數(shù),計(jì)算相對(duì)簡(jiǎn)單。三角洲打印機(jī)坐標(biāo)系需要進(jìn)行正逆解計(jì)算,圓弧路徑也必須用直線進(jìn)行逼近因而計(jì)算相對(duì)復(fù)雜,故導(dǎo)致打印精度降低。
圖2 串聯(lián)機(jī)械臂3D打印機(jī)的研究技術(shù)路線
本文提出了一種三軸串聯(lián)機(jī)械臂3D打印機(jī),其研究技術(shù)路線如圖2所示。將目標(biāo)坐標(biāo)值設(shè)定好之后,首先計(jì)算目標(biāo)位置(X,Y,Z) 和當(dāng)前位置(X0,Y0,Z0)的位置之差,并將位置進(jìn)行分段,對(duì)每一小段獲取當(dāng)前位置值和目標(biāo)位置值,然后通過(guò)機(jī)械臂正逆解求得3個(gè)軸的角度值。為防止機(jī)械臂加減速抖動(dòng)需要對(duì)每一小段做加速度和速度規(guī)劃,最后將角度值轉(zhuǎn)換為電動(dòng)機(jī)脈沖數(shù)驅(qū)動(dòng)機(jī)械臂運(yùn)動(dòng)。在每個(gè)小段路徑運(yùn)動(dòng)過(guò)程中需要和目標(biāo)位置進(jìn)行對(duì)比,沒(méi)有到達(dá)目標(biāo)位置將繼續(xù)運(yùn)動(dòng),直至到達(dá)目標(biāo)位置[5]。
如圖3所示,機(jī)械臂運(yùn)動(dòng)到目標(biāo)坐標(biāo),需將目標(biāo)坐標(biāo)轉(zhuǎn)換為機(jī)械臂每個(gè)軸的角度,這就需要做機(jī)械臂正逆解計(jì)算。
圖3 機(jī)械臂正逆解計(jì)算
正逆解需要求解α、β和水平運(yùn)動(dòng)角度γ。
式中:S1和S2為α和β對(duì)應(yīng)的機(jī)械臂臂長(zhǎng)的平方;l1為α對(duì)應(yīng)機(jī)械臂的長(zhǎng)度;C1為機(jī)械臂前臂和后臂長(zhǎng)度之和;C2為常數(shù);(sx,sy,sz)是機(jī)械臂末端相對(duì)于機(jī)械臂坐標(biāo)原點(diǎn)的坐標(biāo)值;(x,y,z)是機(jī)械臂末端相對(duì)于機(jī)械臂物理原點(diǎn)坐標(biāo)值;H是機(jī)械臂物理原點(diǎn)相對(duì)于機(jī)械臂坐標(biāo)原點(diǎn)Z軸方向的軸偏距;r是機(jī)械臂在水平方向的投影長(zhǎng)度;q1、q2分別為機(jī)械臂末端與坐標(biāo)原點(diǎn)連線與水平面和機(jī)械臂的角度值;P1為機(jī)械臂末端和機(jī)械臂原點(diǎn)的距離。
通過(guò)上述公式可以解出3個(gè)軸分別運(yùn)動(dòng)的角度值。
為了能使機(jī)械臂進(jìn)行曲線運(yùn)動(dòng)并提高3D打印平穩(wěn)性和精度,需要對(duì)機(jī)械臂進(jìn)行運(yùn)動(dòng)規(guī)劃。
機(jī)械臂運(yùn)動(dòng)規(guī)劃指的是運(yùn)動(dòng)插補(bǔ),在起始點(diǎn)和終止點(diǎn)之間插入中間點(diǎn)序列,實(shí)現(xiàn)沿著軌跡的平穩(wěn)運(yùn)動(dòng)。運(yùn)動(dòng)規(guī)劃包含路徑規(guī)劃(path planning)和軌跡規(guī)劃,路徑規(guī)劃是規(guī)劃位置,在起終點(diǎn)之間經(jīng)過(guò)的路徑點(diǎn)。軌跡規(guī)劃是規(guī)劃時(shí)間,將路徑點(diǎn)與時(shí)間相對(duì)應(yīng)。機(jī)械臂在打印過(guò)程中需要進(jìn)行頻繁啟停,軌跡規(guī)劃好壞將直接影響3D打印產(chǎn)品質(zhì)量、3D打印機(jī)的穩(wěn)定性及其使用壽命。本方案速度規(guī)劃采用梯形加減速[6]。
如圖4(a)所示,采用梯形加速度做速度曲線規(guī)劃,初速度為v0,末速度為vt,中間過(guò)程運(yùn)行速度為vn。
圖4 梯形加減速圖
加速距離
若s2>0,則證明有恒速段,加速段和勻速段總距離sk=s1+s2。
當(dāng)s2<0時(shí),無(wú)恒速段,曲線只有加速和減速過(guò)程,如圖4(b)所示,設(shè)加速段和減速度段交點(diǎn)處速度為vm,則有關(guān)系式:
本方案曲線運(yùn)動(dòng)采用直線逼近的方式,如圖5所示,對(duì)于起始點(diǎn)p1(x1,y1,z1)、終點(diǎn)pn(xn,yn,zn),計(jì)算時(shí)將兩點(diǎn)之間的距離進(jìn)行插值。每一段做梯形加減速進(jìn)行速度規(guī)劃。
圖5 運(yùn)動(dòng)插補(bǔ)圖
1)首先求出目標(biāo)坐標(biāo)和當(dāng)前位置坐標(biāo)的差值xdiff、ydiff和zdiff。
X坐標(biāo):
Y坐標(biāo):
Z坐標(biāo):
2)求坐標(biāo)之間距離Ddfif。
3)已知線段分段個(gè)數(shù)n,求每一段長(zhǎng)度Llength。
xdestination是目標(biāo)點(diǎn)x值,xcurrent是當(dāng)前點(diǎn)x坐標(biāo)值,其他同理;Llength_x、Llength_y、Llength_z分別是每一段線段在x、y、z方向的投影長(zhǎng)度。
4)對(duì)每一段進(jìn)行累加并求機(jī)械臂角度。
如圖6所示,將L1段求機(jī)械臂逆解可得三軸角度,同理將L2段求機(jī)械臂逆解可得另一組三軸角度。p14到p15之間的X、Y、Z方向脈沖數(shù)分別為三軸運(yùn)動(dòng)角度對(duì)應(yīng)的脈沖數(shù)。由于細(xì)分?jǐn)?shù)目可以控制,所以線段數(shù)量可以做到很大,每條線段很短,可以更加準(zhǔn)確逼近曲線,當(dāng)然分段數(shù)越多對(duì)算法用時(shí)較長(zhǎng)會(huì)影響3D打印速度。
圖6 插值點(diǎn)計(jì)算示意圖
本研究基于Win10 64位操作系統(tǒng),內(nèi)存16.0GB,Intel(R) Core(TM)i7-6500U CPU @2.5GHz。開(kāi)發(fā)軟件基于VS2013 64位。將軟件燒錄進(jìn)單片機(jī)Arduino MEGA2560,首先用機(jī)械臂做簡(jiǎn)單畫(huà)圖實(shí)驗(yàn),結(jié)果顯示圓形路徑規(guī)劃較好。然后用機(jī)械臂做寫(xiě)字實(shí)驗(yàn),結(jié)果如圖7(a)所示,最后用機(jī)械臂做3D打印實(shí)驗(yàn),如圖7(b)和圖7(c)所示,打印齒輪和軸承座模型,打印機(jī)運(yùn)行平穩(wěn),打印產(chǎn)品質(zhì)量較好。
圖7 基于機(jī)械臂的3D打印機(jī)及打印模型
與3D打印技術(shù)相結(jié)合,對(duì)機(jī)械臂進(jìn)行控制系統(tǒng)設(shè)計(jì),包括對(duì)機(jī)械臂運(yùn)動(dòng)進(jìn)行正逆解計(jì)算,對(duì)路徑進(jìn)行插值計(jì)算,最后做軌跡規(guī)劃,使機(jī)械臂實(shí)現(xiàn)3D打印功能,提高打印機(jī)運(yùn)動(dòng)平穩(wěn)性和打印精度。對(duì)傳統(tǒng)3D打印機(jī)進(jìn)行改進(jìn),實(shí)現(xiàn)一機(jī)多用,提高工作效率,降低成本。在“新工科”背景下,理論結(jié)合實(shí)際,提高工程實(shí)踐能力和科研創(chuàng)新思維。