盧 冉,何秋生,王 垚
(太原科技大學(xué) 電子信息工程學(xué)院,太原 030024)
在機(jī)器人笛卡爾空間規(guī)劃中[1],機(jī)器人末端的運(yùn)動(dòng)軌跡一般都是圓弧或者直線,對(duì)于一些形狀復(fù)雜的曲線、曲面,傳統(tǒng)的方法是將曲線劃分為大量微小直線段或圓弧段,然后進(jìn)行線性插補(bǔ)。在通過這些微線段的過程中機(jī)器人需頻繁加減速,可能導(dǎo)致電機(jī)振動(dòng),降低機(jī)器人壽命;對(duì)大量微線段的運(yùn)算處理也會(huì)增加系統(tǒng)的負(fù)擔(dān),影響實(shí)時(shí)性。針對(duì)這些缺陷,一些高檔數(shù)控系統(tǒng)引入了樣條插補(bǔ)功能。
不同于傳統(tǒng)的小線段插補(bǔ)或圓弧段插補(bǔ),樣條插補(bǔ)無需將曲線離散化為大量微線段,可直接對(duì)參數(shù)曲線進(jìn)行插補(bǔ),不僅能減少工件的程序量,還能避免機(jī)器人的頻繁加減速控制,為高速、高精、高質(zhì)量加工提供了新思路[2-3]。
常用的樣條曲線有三次樣條曲線、B樣條曲線和NURBS曲線等[4-5]。NURBS插補(bǔ)算法的研究一直是數(shù)控插補(bǔ)算法研究中的熱點(diǎn)和重點(diǎn)[6-7]。目前已經(jīng)有許多學(xué)者針對(duì)NURBS的擬合開展了大量研究工作。Yeh和Su等[8]采用了最小二乘法將離散的數(shù)據(jù)點(diǎn)擬合成連續(xù)的NUBRS曲線,然后進(jìn)行樣條插補(bǔ)。Wang和Yau[9]則采用三角形測試和雙弦高誤差測試識(shí)別出連續(xù)的加工區(qū)域,然后擬合成NURBS曲線進(jìn)行插補(bǔ)。由于NURBS曲線并不能穿過每一個(gè)數(shù)據(jù)點(diǎn),其擬合形狀有時(shí)會(huì)與數(shù)據(jù)點(diǎn)的真實(shí)輪廓有一定差距,一些研究人員對(duì)此進(jìn)行了改進(jìn)。董甲甲[10]在三次均勻B樣條曲線基礎(chǔ)上進(jìn)行改進(jìn),通過增加控制頂點(diǎn),獲得了一種新的通過型值點(diǎn)、首尾點(diǎn)的B樣條曲線,獲得了更高精度,且保留了傳統(tǒng)B樣條曲線局部性、凸包性。陳爽[11]通過曲線反算的方法生成了一條經(jīng)過所有示教點(diǎn)的曲線,實(shí)驗(yàn)證明該方法能以較少的示教點(diǎn)生成所需的復(fù)雜曲線,提高了示教效率??讘c博[12]提出了一種改進(jìn)的5次多項(xiàng)式插值法,在5次多項(xiàng)式插值的基礎(chǔ)上加入B樣條插值,優(yōu)化后的關(guān)節(jié)曲線更加光滑平穩(wěn),能較好地消除突變現(xiàn)象,避免了機(jī)器人在運(yùn)動(dòng)過程中的振動(dòng)和沖擊。
為了達(dá)到平滑路徑,提高擬合精度的目的,本文分別分析了三次樣條曲線和NURBS樣條曲線的優(yōu)缺點(diǎn),以實(shí)驗(yàn)室六自由度機(jī)器人為研究對(duì)象,采用改進(jìn)的曲線擬合方法規(guī)劃機(jī)器人的末端路徑,并進(jìn)行曲線擬合實(shí)驗(yàn),驗(yàn)證方法的有效性。
設(shè)區(qū)間在[a,b]內(nèi),通過一組插值節(jié)點(diǎn)將其分為小空間,a=x0 (1)在每一個(gè)結(jié)點(diǎn)上滿足S(xi)=yi,(i=1,2,3,…,n-1); (2)在每一個(gè)子區(qū)間[xk-1,xk](k=1,2,…,n)上,S(xi)是一個(gè)不超過三次的多項(xiàng)式; (3)S(x),S′(x),S″(x)在[a,b]上連續(xù)。 則稱S(x)為結(jié)點(diǎn)x上插值與y的三次樣條插值函數(shù)。 三次樣條曲線可以精確的穿過每一個(gè)數(shù)據(jù)點(diǎn),但是三次樣條曲線的局部性較差,任何一個(gè)數(shù)據(jù)點(diǎn)或坐標(biāo)點(diǎn)位置的改變,會(huì)對(duì)整個(gè)樣條曲線產(chǎn)生影響。而且隨著路徑點(diǎn)的增多,計(jì)算的復(fù)雜度也隨之增大。 NURBS曲線是在貝塞爾曲線和普通B樣條曲線的基礎(chǔ)上發(fā)展來的,且很好的兼容了兩種參數(shù)曲線。其原理是通過控制點(diǎn)組成的多邊形來擬合曲線,能夠通過控制頂點(diǎn)及權(quán)因子修改曲面與曲線的形狀。NURBS曲線的方程可以表示成如下形式[14]。 (1) 其中,u為NURBS曲線的參數(shù),di為控制點(diǎn),ωi為對(duì)應(yīng)控制點(diǎn)的權(quán)因子,Ni,k(u)為定義在非周期節(jié)點(diǎn)矢量U=[u0,u1,…,un+k+1]上的k次B樣條基函數(shù),基函數(shù)的遞推公式為: (2) 若{ωi}={1,…,1},則NURBS曲線表達(dá)式變?yōu)锽樣條。 NURBS曲線的形狀控制功能強(qiáng)大靈活,能統(tǒng)一精確地表示自由曲線和曲面,在曲線局部調(diào)整方面優(yōu)于三次樣條插值,但NURBS曲線并不會(huì)完整地經(jīng)過每一個(gè)示教點(diǎn),而對(duì)于高精度機(jī)器人運(yùn)動(dòng)控制系統(tǒng)中,常常需要能經(jīng)過示教點(diǎn)的樣條插值曲線。 對(duì)擬合后的曲線參數(shù)化,進(jìn)行NURBS插值時(shí),利用用弦長ΔLi逼近弧長ΔSi的方法。設(shè)當(dāng)前插補(bǔ)點(diǎn)C(ui)理想進(jìn)給速度為V(u,),理想的下一個(gè)插補(bǔ)點(diǎn)C(ui+1)的插補(bǔ)參數(shù)為ui+1.根據(jù)微分幾何,沿曲線移動(dòng)所需的速度為: (3) 通過上式,可以得到: (4) 本文采用一階泰勒展開方法來進(jìn)行參數(shù)求解。設(shè)T為插補(bǔ)周期,則可得: (5) 通過上式即可算出的參數(shù)ui+1對(duì)應(yīng)的插補(bǔ)點(diǎn)C(ui+1)的位置。 為了確保擬合精度同時(shí)計(jì)算減小量,本文在選取控制點(diǎn)時(shí)引入了弦誤差約束對(duì)方法進(jìn)行改進(jìn)。針對(duì)三次樣條插值與NURBS插值的優(yōu)缺點(diǎn),本文采用了對(duì)三次樣條形成的插補(bǔ)點(diǎn)進(jìn)行篩選,篩選后的點(diǎn)作為NURBS的控制點(diǎn)的改進(jìn)的擬合方法。 在進(jìn)行曲線擬合前,需要選取控制點(diǎn),為了保證擬合的精度,需要獲得關(guān)鍵控制點(diǎn)。但如果控制點(diǎn)太多,小于最大弦誤差,就會(huì)增加計(jì)算量。所以引入最大弦誤差來除去多余控制點(diǎn)[13]。 圖1所示為弦誤差示意圖,設(shè)Pi-1,Pi,Pi+1是三個(gè)相鄰的控制點(diǎn),li-1,li是連接這三個(gè)點(diǎn)的直線段。Pi-1,Pi,Pi+1三點(diǎn)可構(gòu)成一個(gè)圓弧,設(shè)該圓的半徑為R,通過圖中幾何關(guān)系,可得到弦誤差σ1,σ2的計(jì)算公式為: 圖1 弦誤差示意圖 δ1=R(1-cosβ) (6) δ2=R(1-cos(π-θi-β)) (7) 規(guī)定最大弦誤差為σmax,如果弦誤差σ1,σ2同時(shí)小于σmax,則控制點(diǎn)Pi為多余點(diǎn),移除該點(diǎn),繼續(xù)計(jì)算下一組相鄰控制點(diǎn)的弦誤差,直到篩選完所有的控制點(diǎn),則完成控制點(diǎn)的選取。 如圖所示,相鄰插補(bǔ)點(diǎn)Qi-1,Qi,Qi+1的連線形成夾角θi,θi的求解公式為: (8) 設(shè)定插補(bǔ)點(diǎn)連線間的最大允許夾角為σmax,如果θi<θmax,則移除插補(bǔ)點(diǎn)Qi,繼續(xù)計(jì)算下一組相鄰插補(bǔ)點(diǎn)連線的夾角,直到完成所有插補(bǔ)點(diǎn)的篩選,就可以作為NURBS曲線的控制點(diǎn),其原理與控制點(diǎn)的選取相同。通過夾角約束篩選的插補(bǔ)點(diǎn)作為NURBS曲線的控制點(diǎn),在達(dá)到精度的同時(shí)也可以減少計(jì)算量。 本文方法的整體流程如圖2所示。方法的具體步驟為: 圖2 插補(bǔ)點(diǎn)連線夾角示意圖 (1)通過引入最大弦誤差δmax從離散點(diǎn)中選取合適的控制點(diǎn); (3)篩選的插補(bǔ)點(diǎn)作為NURBS函數(shù)的控制點(diǎn),根據(jù)公式(1)生成NURBS樣條曲線。 圖3 總體方法流程圖 (1)實(shí)驗(yàn)一: 在空間中任取九個(gè)控制點(diǎn)(0,-40)、(0.75,-6.9)、(1.5,8.75)、(2.25,12)、(3,8)、(3.75,1.71)、(4.5,-1.75)、(5.25,2.65)、(6,20),分別使用傳統(tǒng)的NURBS、三次樣條和改進(jìn)的方法進(jìn)行擬合。如圖4所示,圖中空心點(diǎn)為控制點(diǎn),星型點(diǎn)為選取的插補(bǔ)點(diǎn)。 仿真結(jié)果如圖4所示,通過NURBS擬合的曲線雖然光滑,但沒有通過所有的控制點(diǎn),擬合精度較低。通過插補(bǔ)點(diǎn)連線的夾角選取插補(bǔ)點(diǎn)后,生成的三次樣條曲線雖然通過了每個(gè)控制點(diǎn),但平滑性較差。而改進(jìn)后的擬合曲線整體光滑,相對(duì)于三次樣條插值減少了計(jì)算量,并且通過了每個(gè)控制點(diǎn),提高了曲線擬合精度。 圖4 擬合曲線仿真圖 為了更清晰的表明本文擬合方法精度的提高,對(duì)擬合曲線與期望曲線的誤差進(jìn)行比較。圖5和圖6分別為傳統(tǒng)NURBS曲線和改進(jìn)曲線的擬合誤差,結(jié)果表明改進(jìn)后的方法減小了擬合誤差,大大提高了曲線的擬合精度。 圖5 NURBS曲線誤差 圖6 改進(jìn)后曲線誤差 (2)實(shí)驗(yàn)二: 根據(jù)弦誤差提取圖7中心形圖形的21個(gè)控制點(diǎn),分別使用NURBS、三次樣條和改進(jìn)的方法進(jìn)行擬合。仿真結(jié)果如圖8所示,NURBS擬合曲線與與原圖形輪廓貼合程度相差較大,根據(jù)篩選的插補(bǔ)點(diǎn)擬合的三次樣條曲線平滑性較差,本文方法擬合的曲線平滑且與原圖輪廓更加貼合,擬合精度較高。 圖7 心形圖形 圖8 心形擬合仿真圖 為了更好的驗(yàn)證本方法的可行性和有效性,本文使用實(shí)驗(yàn)室現(xiàn)有Denso VP6242G機(jī)器人進(jìn)行毛筆書寫實(shí)驗(yàn),圖9為機(jī)器人實(shí)驗(yàn)平臺(tái)。首先,根據(jù)機(jī)器人的工作空間選取合適的書寫坐標(biāo)范圍,對(duì)字體進(jìn)行軌跡規(guī)劃,規(guī)劃時(shí)考慮毛筆書法回筆等書寫動(dòng)作的需要,選取字體的關(guān)鍵離散點(diǎn)。然后對(duì)離散點(diǎn)進(jìn)行插值擬合,生成平面的書寫軌跡。 圖9 機(jī)器人實(shí)驗(yàn)平臺(tái) 圖10為字體軌跡的仿真結(jié)果??紤]到書寫動(dòng)作的落筆、提筆與按筆,對(duì)z軸方向還需進(jìn)行軌跡的設(shè)計(jì)與規(guī)劃。把插值生成的插補(bǔ)點(diǎn)數(shù)據(jù)輸入到機(jī)器人的simulink位姿矩陣模塊。然后控制機(jī)器人做出相應(yīng)的位姿移動(dòng)進(jìn)行書寫實(shí)驗(yàn)。 圖11為機(jī)器人實(shí)際的書寫效果,圖中圓圈所標(biāo)記的書寫弧度與圖10中規(guī)劃的圓弧軌跡相對(duì)應(yīng),如圖所示達(dá)到了預(yù)計(jì)的弧度效果。結(jié)果表明,本文研究的方法能體現(xiàn)處毛筆書寫行為中力度大小的變化,在繪制過程中能夠較好的實(shí)現(xiàn)各種直線、曲線等書法輪廓的控制,字跡光滑,有良好的臨摹效果。 圖10 水平軌跡仿真 圖11 機(jī)器人實(shí)際書寫效果 本文主要對(duì)機(jī)器人末端路徑規(guī)劃中,使用傳統(tǒng)曲線擬合方法擬合精度低、曲線局部性較差的問題,提出了改進(jìn)的樣條擬合的方法,即三次樣條插值與非均勻有理B樣條相結(jié)合的方法。通過Matlab仿真以及機(jī)器人書寫實(shí)驗(yàn)驗(yàn)證,此方法可使機(jī)器人生成光滑的運(yùn)動(dòng)軌跡,還可以提高曲線擬合精度,使曲線通過每個(gè)控制點(diǎn)。1.2 NURBS曲線
1.3 樣條曲線插補(bǔ)
2 曲線擬合方法的改進(jìn)
2.1 控制點(diǎn)的選取
2.2 插補(bǔ)點(diǎn)篩選
2.3 方法整體思路
3 仿真實(shí)驗(yàn)與分析
3.1 曲線擬合仿真
3.2 機(jī)器人書寫實(shí)驗(yàn)驗(yàn)證
4 結(jié)論