冷 舒,吳 克,居鶴華
(1. 南京航空航天大學(xué)航天學(xué)院,南京 210016;2. 北京空間飛行器總體設(shè)計(jì)部,北京 100094)
隨著機(jī)械臂在工業(yè)、航天等多個(gè)領(lǐng)域的廣泛應(yīng)用[1-2](見(jiàn)圖1),提高機(jī)械臂運(yùn)動(dòng)控制系統(tǒng)的精度引起了相關(guān)研究人員的廣泛關(guān)注,其中機(jī)械臂運(yùn)動(dòng)學(xué)建模及求解是決定運(yùn)動(dòng)精度的重要一環(huán)。運(yùn)動(dòng)學(xué)從功能上可分為正運(yùn)動(dòng)學(xué)及逆運(yùn)動(dòng)學(xué),正運(yùn)動(dòng)學(xué)通過(guò)給定機(jī)械臂的關(guān)節(jié)角度獲取機(jī)械臂桿件某一點(diǎn)的位置及姿態(tài)。逆運(yùn)動(dòng)學(xué)通過(guò)給定機(jī)械臂末端的位置及姿態(tài)計(jì)算機(jī)械臂各關(guān)節(jié)的運(yùn)動(dòng)量,其中逆運(yùn)動(dòng)學(xué)是運(yùn)動(dòng)學(xué)建模及求解的難點(diǎn)。機(jī)械臂正運(yùn)動(dòng)學(xué)模型為機(jī)械臂遞歸動(dòng)力學(xué)控制的每一步提供了桿件質(zhì)心位置及關(guān)節(jié)位置,而機(jī)械臂逆運(yùn)動(dòng)學(xué)與機(jī)械臂運(yùn)動(dòng)規(guī)劃是密不可分的。圖2體現(xiàn)了機(jī)械臂運(yùn)動(dòng)學(xué)在整個(gè)機(jī)械臂力位控制系統(tǒng)中的作用。
工程中絕大多數(shù)機(jī)械臂都是串聯(lián)結(jié)構(gòu),故本文主要調(diào)研該類(lèi)型結(jié)構(gòu)的運(yùn)動(dòng)學(xué)建模方法。求解方法主要分為解析法、數(shù)值解法及人工智能法。
圖1 航天機(jī)械臂及工業(yè)機(jī)械臂Fig.1 Manipulators in aerospace and industry
圖2 機(jī)械臂運(yùn)動(dòng)學(xué)在力位控制系統(tǒng)中的作用Fig.2 Manipulator kinematics in the control system
對(duì)機(jī)械臂運(yùn)動(dòng)學(xué)建模時(shí)通常采用兩種坐標(biāo)系。其一是1965年Denavit及Hartenberg在文獻(xiàn)[3]中提出的DH系,其二是結(jié)合零位參考系的POE模型。
DH系及DH參數(shù)表示了用關(guān)節(jié)連接的相鄰兩根桿件間的坐標(biāo)系及坐標(biāo)參數(shù)。其中ak,ck,αk為結(jié)構(gòu)參數(shù),定義了相鄰兩個(gè)關(guān)節(jié)間的固定值,φk為運(yùn)動(dòng)參數(shù),表示關(guān)節(jié)的運(yùn)動(dòng)量。Craig在專(zhuān)著[4]中介紹了建立改進(jìn)DH系的方法。改進(jìn)DH系與傳統(tǒng)DH系的不同之處在于,DH參數(shù)與桿件之間的對(duì)應(yīng)關(guān)系成為主要目標(biāo),而DH參數(shù)與關(guān)節(jié)之間的對(duì)應(yīng)關(guān)系被視為次要因素。改進(jìn)DH系在理論推導(dǎo)時(shí)物理意義更加明確,方便工程人員應(yīng)用。后文介紹的各正逆運(yùn)動(dòng)學(xué)建模及求解方法時(shí),都是以改進(jìn)DH系為基礎(chǔ)進(jìn)行推導(dǎo)的。因此本文直接將改進(jìn)DH系稱(chēng)為DH系,其定義如圖3所示:
圖3 DH系及DH參數(shù)Fig.3 DH frame and DH parameter
給定關(guān)節(jié)k-1及關(guān)節(jié)k,改進(jìn)DH系的建系過(guò)程如下:
1)令zk-1及zk分別為關(guān)節(jié)k-1及關(guān)節(jié)k的轉(zhuǎn)動(dòng)軸。
2)做zk-1及zk的公垂線,定義為xk,其中xk與zk-1交點(diǎn)定義為Ok*,xk與zk交點(diǎn)定義為Ok。
3)點(diǎn)Ok-1與點(diǎn)Ok*的距離記為ck。
4)點(diǎn)Ok*與Ok的距離記為ak。
5)軸zk-1與軸zk間的夾角為αk。
DH系在機(jī)械臂運(yùn)動(dòng)學(xué)建模及求解中起到重要作用,但其存在一個(gè)缺點(diǎn),即建系時(shí)相鄰桿件間的DH系旋轉(zhuǎn)不連續(xù),故在相鄰兩系的z軸平行時(shí),DH系存在奇異性。
文獻(xiàn)[5]中介紹了第二種坐標(biāo)系,該方法將系統(tǒng)各關(guān)節(jié)的運(yùn)動(dòng)軸矢量統(tǒng)一到同一個(gè)笛卡爾坐標(biāo)系下,該笛卡爾坐標(biāo)系作為整個(gè)系統(tǒng)的參考坐標(biāo)系,也稱(chēng)零位參考系。進(jìn)一步以李群為數(shù)學(xué)基礎(chǔ),用指數(shù)坐標(biāo)形式描述剛體的轉(zhuǎn)動(dòng),用旋量描述剛體在三維空間中的六自由度運(yùn)動(dòng)。剛體轉(zhuǎn)動(dòng)示意圖如圖4所示,其中ω是剛體轉(zhuǎn)動(dòng)的轉(zhuǎn)動(dòng)軸。該坐標(biāo)系不存在DH系的缺點(diǎn),在求解過(guò)程中不存在奇異過(guò)程。
圖4 剛體上一點(diǎn)繞ω軸的轉(zhuǎn)動(dòng)[5]Fig.4 A point in the rigid body rotate around axis ω[5]
求解n自由度機(jī)械臂正運(yùn)動(dòng)學(xué)時(shí),已知機(jī)械臂所有關(guān)節(jié)角組成的矢量φ,機(jī)械臂桿件k末端位姿矢量為sk,s={s1,…,sk}。則系統(tǒng)正運(yùn)動(dòng)學(xué)模型用公式描述:
s=f(φ)
(1)
因機(jī)械臂具有串聯(lián)構(gòu)型,由文獻(xiàn)[4]可知其末端位姿能通過(guò)運(yùn)動(dòng)學(xué)的正向傳播求得,故首先建立相鄰桿件間的關(guān)節(jié)運(yùn)動(dòng)學(xué)模型。假設(shè)關(guān)節(jié)k及桿件k對(duì)應(yīng)的DH系為Fk,關(guān)節(jié)k繞zk轉(zhuǎn)動(dòng)φk時(shí),F(xiàn)k-1轉(zhuǎn)動(dòng)至Fk的旋轉(zhuǎn)變換陣為:
(2)
其中,λk=cos(φk),μk=sin(φk),而Fk系原點(diǎn)Ok的運(yùn)動(dòng)值相對(duì)于Fk-1的原點(diǎn)Ok-1為:
(3)
用齊次變換陣k-1Tk描述體k運(yùn)動(dòng),記為:
(4)
若使用文獻(xiàn)[5]中介紹的基于POE模型的剛體運(yùn)動(dòng)學(xué)表示法,則關(guān)節(jié)k轉(zhuǎn)動(dòng)φk時(shí),k-1Qk表示為:
1+sin(φk)ωk+(1-cos(φk))(ωk)2
(5)
剛體的平移值k-1rk=[xk,yk,zk]是k系原點(diǎn)在k-1系下的坐標(biāo),如圖5所示。
圖5 POE模型中的平移Fig.5 Translation in the POE-based model
對(duì)于機(jī)械臂的任意桿件l,其末端位置sl表示為:
(6)
與式(1)類(lèi)似,nDOF機(jī)械臂逆運(yùn)動(dòng)學(xué)模型也可用一個(gè)通式表示:
φ=f-1(s)
(7)
其中,s={s1,…,sn,q1,…,qn},表示機(jī)械臂的末端位置及姿態(tài)。
最早出現(xiàn)的求機(jī)械臂逆解的方法是幾何法,該方法不建立關(guān)節(jié)及桿件的DH系及DH參數(shù),而是根據(jù)桿件間的平面幾何關(guān)系建立機(jī)械臂關(guān)節(jié)角與末端位置的約束方程。文獻(xiàn)[7]中提出了平面二自由度機(jī)械臂的逆運(yùn)動(dòng)學(xué)求解,如圖6所示。其中兩桿件的長(zhǎng)度分別為l1,l2,兩個(gè)關(guān)節(jié)角度分別為θ1,θ2,根據(jù)系統(tǒng)的幾何關(guān)系列寫(xiě)機(jī)械臂的運(yùn)動(dòng)學(xué)方程,從而得到機(jī)械臂末端位置與關(guān)節(jié)角的關(guān)系。在實(shí)際應(yīng)用中,根據(jù)已知的機(jī)械臂末端平面位置,反解兩個(gè)關(guān)節(jié)的角度分別為:
(8)
(9)
圖6 平面2DOF機(jī)械臂的幾何法解示意圖Fig.6 Geometry approach for a planer 2DOF manipulator
文獻(xiàn)[8]針對(duì)冗余自由度的平面機(jī)械臂提出了利用幾何法求機(jī)械臂逆解的方案,其定位方程為:
xtp=l1cos(θ1)+l2cos(θ1+θ2)+…+
lncos(θ1+…+θn)
ytp=l1sin(θ1)+l2sin(θ1+θ2)+…+
lnsin(θ1+…+θn)
(10)
為求解方程,假設(shè)θ1=α,θ2=θ3=…=θn=θ,引入兩個(gè)參數(shù)
(11)
其中,s只與θ相關(guān),而γ用來(lái)求解α。從而得到相應(yīng)的解。該機(jī)械臂構(gòu)型及求解示意圖如圖7所示。
圖7 nDOF平面機(jī)械臂及其求解示意[8]Fig.7 Geometry approach for a planer nDOF manipulator[8]
幾何法為解析法在平面上的特例,部分文獻(xiàn)將其歸結(jié)至解析法中,也有文獻(xiàn)將其單獨(dú)作為一種方法介紹。從上文中的兩個(gè)例子可知其實(shí)用性較弱,下文將介紹工業(yè)及航天領(lǐng)域中最多應(yīng)用的兩種求機(jī)械臂逆運(yùn)動(dòng)學(xué)解的方法—解析法及數(shù)值法。
利用解析法求機(jī)械臂逆運(yùn)動(dòng)學(xué)解時(shí),首先需要分析機(jī)械臂的關(guān)節(jié)個(gè)數(shù)及其結(jié)構(gòu)。在工業(yè)及航天領(lǐng)域中,三軸到七軸的機(jī)械臂都得到大量應(yīng)用,其中三軸到五軸機(jī)械臂主要用于深空探測(cè)任務(wù)中[9],如我國(guó)嫦娥三號(hào)機(jī)械臂為三軸機(jī)械臂[10],美國(guó)的洞察號(hào)安裝了四自由度機(jī)械臂,勇氣號(hào)與機(jī)遇號(hào)火星巡視器安裝了五軸機(jī)械臂[11-12]。工業(yè)機(jī)械臂與空間站機(jī)械臂通常具有六到七個(gè)關(guān)節(jié)。其中六自由度機(jī)械臂因具有工作空間大、運(yùn)動(dòng)靈活、非冗余等特點(diǎn)成為研究的首要目標(biāo)。而超過(guò)六軸的機(jī)械臂為冗余機(jī)械臂,??醋?+m構(gòu)型,七軸機(jī)械臂通常用6+1構(gòu)型研究。因此本文主要介紹六自由度(DOFs)機(jī)械臂的逆運(yùn)動(dòng)學(xué)解法。對(duì)于關(guān)節(jié)個(gè)數(shù)3 0T6=0T1·1T2·2T3·3T4·4T5·5T6 (12) 接著根據(jù)末端位置矢量0r6E及姿態(tài)四元數(shù)0q6,確定機(jī)械臂腕心位置0r3C,再根據(jù)腕心位置確定前三軸角度φ1,φ2,φ3,如式(13)所示。得到前三軸的姿態(tài)四元數(shù)0q3后,先根據(jù)0q6確定后三軸的姿態(tài)四元數(shù)3q6,再根據(jù)姿態(tài)對(duì)齊求得后三軸角度φ4,φ5,φ6。 圖8 機(jī)械臂分類(lèi)Fig.8 Classification of the manipulator (13) (14) 最后將六個(gè)關(guān)節(jié)的所有角度組合在一起,得到16個(gè)實(shí)數(shù)解。具體流程如圖9所示。 圖9 6R機(jī)械臂逆運(yùn)動(dòng)學(xué)求解流程圖Fig.9 The flowchart for solving inverse kinematics of6R manipulators 解耦機(jī)械臂是一種理想構(gòu)型,但因機(jī)械加工及機(jī)構(gòu)裝配存在誤差,實(shí)際應(yīng)用中幾乎不存在解耦構(gòu)型的機(jī)械臂。用上述方法求非解耦機(jī)械臂的逆解會(huì)導(dǎo)致關(guān)節(jié)角存在計(jì)算誤差,從而在實(shí)際應(yīng)用出現(xiàn)定位精度偏低等問(wèn)題,進(jìn)而可能出現(xiàn)碰撞等嚴(yán)重問(wèn)題。此時(shí)求通用機(jī)械臂逆運(yùn)動(dòng)學(xué)的解析法應(yīng)運(yùn)而生。 斯坦福大學(xué)的Raghavan及Roth[13]提出了一種通用六軸機(jī)械臂的消元法,該方法首先列出如式所示的機(jī)械臂定位方程組,其中每個(gè)方程是一個(gè)六元二次多項(xiàng)式方程。作者先將方程變?yōu)? (15) 根據(jù)0T6最后兩列與φ6無(wú)關(guān)的特點(diǎn)可以將φ6消元。此時(shí)等式左側(cè)只有φ1,φ2等式右側(cè)有φ3,φ4,φ5,表達(dá)式如式所示:其中s1表示sin(θ1),c1表示cos(θ1)。 (16) 其中,P是14×8階常數(shù)矩陣,而B(niǎo)是含φ3的14×9階矩陣。此時(shí)φ1,φ2可以用φ3,φ4,φ5進(jìn)行替換,接著再消元φ4,φ5得到一個(gè)只有φ3的16階多項(xiàng)式。求解該多項(xiàng)式得到φ3的所有解,最后將φ3依次代入式中,迭代求得其他各關(guān)節(jié)的所有解。仿真結(jié)果表明該方法對(duì)于六軸通用機(jī)械臂依然成立。Manocha等[14]在文獻(xiàn)[13]的基礎(chǔ)上優(yōu)化了求解該方程的方法。將式消元φ1,φ2后得到。 (17) 其中,Axy為3×3的矩陣,b為12×1的矢量,0為3×3的零矩陣。A中的每一個(gè)元素都只含有φ3,φ3為A的特征根。式成立的條件為det(A)=0,其中det(A)表示矩陣A的行列式。det(A)=0也可得到一個(gè)只有φ3的16階多項(xiàng)式,求解得到φ3的所有值。利用該方法求解速度可提升至11ms。上述兩種方法都以DH系為數(shù)學(xué)基礎(chǔ)建立了逆運(yùn)動(dòng)學(xué)模型,但由DH系的缺陷可知,它們?cè)谇蠼膺^(guò)程中存在奇異性。 隨著雙四元數(shù)概念[15]的提出,Husty等[16]利用雙四元數(shù)結(jié)合Segre流型求通用6R機(jī)械臂的逆解。他們將一個(gè)6R串聯(lián)機(jī)械臂從中間分開(kāi)變?yōu)槎€(gè)開(kāi)環(huán)的3R串鏈,斷點(diǎn)左右的兩個(gè)坐標(biāo)系ΣL=ΣR。上述3R串鏈都是只用一個(gè)參數(shù)表示的Segre流型,每個(gè)流型由四個(gè)超平面組成。兩個(gè)Segre流型的16個(gè)交點(diǎn)表示機(jī)械臂逆運(yùn)動(dòng)學(xué)的16個(gè)逆解,超平面方程由四個(gè)參數(shù)化表示的矢量的行列式等于零得到。數(shù)值仿真結(jié)果表明,16個(gè)逆解中有二個(gè)為實(shí)數(shù)解而其他14個(gè)為虛數(shù)解。北京郵電大學(xué)的Qiao等[17]利用雙四元數(shù)表示機(jī)械臂的定位方程,使得該方程變?yōu)殛P(guān)節(jié)角組合的多重線性型,并通過(guò)Dixon結(jié)式求解該定位方程。其數(shù)值仿真結(jié)果表明,16個(gè)解中有四個(gè)解是實(shí)數(shù)解有12個(gè)解為虛數(shù)解。上述方法求解速度較快,但表達(dá)式比較復(fù)雜,在實(shí)踐中需要工程人員有很強(qiáng)的數(shù)學(xué)基礎(chǔ)才能順利求解。 對(duì)于上文提到的解析法,在實(shí)際應(yīng)用中有比較成熟的開(kāi)源庫(kù)解決上述問(wèn)題。如文獻(xiàn)[20]中提到用Matlab的Robotics Toolbox庫(kù)求解6R機(jī)械臂的逆運(yùn)動(dòng)學(xué)解,其平均計(jì)算時(shí)間為0.27 ms。文獻(xiàn)[21]中用ikfast軟件庫(kù)計(jì)算機(jī)器人逆運(yùn)動(dòng)學(xué)。圖10展示了可用ikfast計(jì)算逆運(yùn)動(dòng)學(xué)的機(jī)器人種類(lèi),表1介紹了每種機(jī)器人計(jì)算逆解的時(shí)間及經(jīng)過(guò)10000次隨機(jī)試驗(yàn)得到的計(jì)算成功率。由表1可知,ikfast可以成功求得任意六軸機(jī)械臂的逆解,精度達(dá)10-7m。在求解七軸機(jī)械臂時(shí)精度仍能保持在10-7m,但無(wú)法保證成功率達(dá)到100%。 雖然用解析法求機(jī)械臂逆運(yùn)動(dòng)學(xué)解能高效地得到機(jī)械臂在期望位姿的全部逆解,但現(xiàn)有的方法都存在兩個(gè)缺陷。(1)在求解過(guò)程中無(wú)法滿足避障約束,需要在求得所有解后對(duì)其進(jìn)行后處理,篩選出可行解。(2)該方法很難處理在動(dòng)態(tài)環(huán)境下的機(jī)械臂逆運(yùn)動(dòng)學(xué)求解。在深空探測(cè)任務(wù)中,行星車(chē)不斷接近探測(cè)目標(biāo)時(shí),二者之間的相對(duì)位姿是時(shí)刻變化的,在不同時(shí)間點(diǎn)求得機(jī)械臂的期望位姿是不同的。因此應(yīng)用該方法執(zhí)行任務(wù)時(shí),必須等到行星車(chē)與探測(cè)目標(biāo)相對(duì)靜止后,再用解析法求機(jī)械臂逆運(yùn)動(dòng)學(xué)解,最后實(shí)現(xiàn)機(jī)械臂運(yùn)動(dòng)路徑規(guī)劃。 圖10 文獻(xiàn)[21]中用ikfast計(jì)算逆運(yùn)動(dòng)學(xué)的機(jī)械臂Fig.10 The manipulator inverse kinematic calculatedby ikfast[21] 機(jī)械臂類(lèi)型DOFs求解時(shí)間/(μs)成功率PA1067100%Barrett WAM66100%Puma Arm66100%Manus Arm66100%HRP27699.5%HRP37699.5%Kuka R85065100%Willow Garage PR27698.2% 多剛體逆運(yùn)動(dòng)學(xué)有多種數(shù)值解法,如雅可比迭代法、牛頓法及混合逆運(yùn)動(dòng)學(xué)法等,但在機(jī)械臂求逆解時(shí)幾乎都采用雅可比迭代法。因此本文提到的數(shù)值解法專(zhuān)指雅可比迭代法的研究現(xiàn)狀。雅可比迭代法[22]對(duì)于機(jī)械臂的關(guān)節(jié)數(shù)及結(jié)構(gòu)沒(méi)有特別要求,且適用于機(jī)械臂基座與目標(biāo)間存在相對(duì)運(yùn)動(dòng)的系統(tǒng)的逆運(yùn)動(dòng)學(xué)求解,因此在六軸空間機(jī)械臂[23]、n軸空間機(jī)械臂[24]及深空探測(cè)[25]等領(lǐng)域的理論及工程實(shí)踐中有不少應(yīng)用。用數(shù)值法可以得到機(jī)械臂從起始位姿到目標(biāo)位姿的一個(gè)包含運(yùn)動(dòng)路徑的逆解,因此一般直接用數(shù)值法進(jìn)行運(yùn)動(dòng)規(guī)劃。在數(shù)學(xué)上無(wú)法證明該逆解是最優(yōu)解,推測(cè)求得的解是次優(yōu)解或最優(yōu)解的逼近。 雅可比迭代法的基本公式仍為式,主要原理為通過(guò)雅可比矩陣J線性逼近一個(gè)可行解, (18) (19) 進(jìn)一步可以得到關(guān)節(jié)角度微小變化Δφ對(duì)機(jī)械臂末端位置變化Δs的影響。 Δs≈J(φ)Δφ (20) 因在機(jī)械臂規(guī)劃過(guò)程中,機(jī)械臂末端位置與期望位置之間存在誤差e,通過(guò)對(duì)微小角度的變化進(jìn)行迭代求解,可以逐步縮小誤差逼近期望位置。 e=J(φ)Δφ (21) 由于機(jī)械臂末端位置是一個(gè)三維矢量,而機(jī)械臂關(guān)節(jié)數(shù)量不定,故雅可比矩陣J不一定是方陣。而迭代求解關(guān)節(jié)位置時(shí)需要求J-1,非方陣的J無(wú)法求逆。針對(duì)該問(wèn)題,研究人員們想出多種解決方案。Unzueta等[26]提出雅可比轉(zhuǎn)置法,通過(guò)引入一個(gè)與雅可比矩陣相關(guān)的常數(shù)α與雅可比矩陣的轉(zhuǎn)置JT相乘的結(jié)果近似J-1,保證關(guān)節(jié)變量與末端位置之間的關(guān)系如式所示。式中〈x,y〉表示矢量x,y的內(nèi)積。 (22) 數(shù)值仿真結(jié)果表明α應(yīng)取較小值,否則系統(tǒng)末端將存在震蕩或不連續(xù)性。Buss[27]提出利用雅可比矩陣的偽逆近似雅可比矩陣的求逆。 Δφ=J?e (23) 其中,J?表示為J的偽逆矩陣。偽逆方法雖然解決了非方陣的雅可比矩陣的求逆問(wèn)題,但在奇異點(diǎn)附近存在不穩(wěn)定性。因此當(dāng)目標(biāo)位置在奇異點(diǎn)附近時(shí),利用上述方法會(huì)導(dǎo)致求解結(jié)果無(wú)法收斂。Liegeois[28]及Maciejewski等[29]采用零空間法改進(jìn)前文提到的偽逆法,他們將矩陣(I-J?J)投影至J的零空間上,I為單位陣。即對(duì)任意矢量v,J(I-J?J)v=0n,則方程改寫(xiě)為 Δφ=J?e+(I-J?J)v (24) 該方法通過(guò)選擇不同的v有一定幾率求出另一個(gè)解。雖然它提高了偽逆算法的實(shí)用性,但其在奇異點(diǎn)附近穩(wěn)定性依然很差。 為了改善偽逆算法在奇異點(diǎn)處穩(wěn)定性差的缺陷,Wampler[30]提出了Levenberg-Marquardt(LM)算法,Nakamura等[31]采用阻尼最小二乘法(DLS)。 Δφ=JT(JJT+λ2I)-1e (25) 上述方法不但可以減輕機(jī)械臂運(yùn)動(dòng)中的抖動(dòng),還可以改善偽逆算法在奇異點(diǎn)附近的表現(xiàn)。文獻(xiàn)[32]用試驗(yàn)表明LM算法優(yōu)于雅可比轉(zhuǎn)置法及偽逆求解法,但其存在收斂速度慢且對(duì)于目標(biāo)的跟蹤精度較差的缺點(diǎn)。 也有不少學(xué)者針對(duì)雅可比矩陣采用了奇異值分解法(SVD),文獻(xiàn)[33]通過(guò)SVD法對(duì)偽逆矩陣進(jìn)行分解 其中,σi=0是奇異條件。Maciejewski[34]結(jié)合SVD法改進(jìn)了DLS法,他利用SVD方法分解阻尼最小二乘矩陣: JT(JJT+λ2I)-1=VEUT= (26) 結(jié)果表明,在奇異點(diǎn)附近利用SVD方法計(jì)算機(jī)械臂的運(yùn)動(dòng)路徑比利用偽逆法得到的結(jié)果平滑許多,彌補(bǔ)了偽逆求解法的不足。 此外在實(shí)際工程中,機(jī)械臂的關(guān)節(jié)存在角度約束,運(yùn)動(dòng)空間內(nèi)存在碰撞約束等。Welman等[35]提出了解決關(guān)節(jié)角度約束的方法。文獻(xiàn)[36]及[37]分別提出了零空間飽和法,該方法有效的解決了關(guān)節(jié)角度約束及運(yùn)動(dòng)空間內(nèi)碰撞的問(wèn)題,上述方法是結(jié)合了優(yōu)化方法的雅可比迭代法。 文獻(xiàn)[38]中通過(guò)一個(gè)仿真試驗(yàn)對(duì)比了雅可比矩陣轉(zhuǎn)置法與阻尼最小二乘法之間的區(qū)別,雖然選擇的研究對(duì)象不是串聯(lián)機(jī)械臂而是更為復(fù)雜的并聯(lián)結(jié)構(gòu)。但該示例仍可說(shuō)明數(shù)值解法的特點(diǎn)。圖11展示了Y型及雙Y型結(jié)構(gòu)的示意圖,計(jì)算時(shí)間如表2所示。從結(jié)果可知雅可比轉(zhuǎn)置法比阻尼最小二乘法計(jì)算時(shí)間更短。 圖11 研究對(duì)象[32]Fig.11 The Y type and double-Y type structures[32] 到目前為止,結(jié)合優(yōu)化算法的雅克比迭代法已逐漸成為研究熱點(diǎn)。在實(shí)際應(yīng)用中存在成熟的開(kāi)源軟件庫(kù)及商業(yè)軟件庫(kù)用數(shù)值法結(jié)合優(yōu)化算法求解機(jī)械臂逆運(yùn)動(dòng)學(xué),幾種常見(jiàn)的軟件庫(kù)及其所用的算法如表3所示。其中KDL(Kinematics and dynamics library)中主要用KDL算法[39]及其改進(jìn)算法KDL-RR(KDL-Random Restarts),TRAC-IK庫(kù)[40]中應(yīng)用的TRAC-IK算法。商業(yè)軟件Optimization庫(kù)中用SQP(Sequential quadratic programming)算法[41]的改進(jìn)算法SQP-DQ[42](SQP-double quadratic)及SQP-SS[41](SQP-sum of squares)等。 文獻(xiàn)[40]中比較了幾種軟件庫(kù)中不同算法對(duì)于機(jī)器人逆運(yùn)動(dòng)學(xué)的求解成功率及平均解算時(shí)間。 分別選取五種人形機(jī)器人(如圖12所示)的串聯(lián)機(jī)械臂作為求逆運(yùn)動(dòng)學(xué)解的對(duì)象,用不同算法求逆解的結(jié)果如表4所示。其中TRAC-IK庫(kù)具有最高的求解成功率及最快的平均解算時(shí)間,KDL庫(kù)中KDL算法的求解成功率最低。SQP-DQ算法的平均解算時(shí)間最長(zhǎng)。 表2 兩種方法的計(jì)算時(shí)間對(duì)比[32]Table 2 The runtime of the two approaches[32] 表3 數(shù)值法求機(jī)械臂逆解所用的軟件庫(kù)及其算法Table 3 Illustration of source libraries and their algorithms innumerical method 圖12 測(cè)試用的五種機(jī)器人[40]Fig.12 The five robot models used for testing[40] 運(yùn)動(dòng)串鏈求機(jī)械臂逆運(yùn)動(dòng)學(xué)的數(shù)值算法機(jī)器人的機(jī)械臂DOFsKDLKDL-RRSQP-DQSQP-SSTRACK-IK求解率/%解算時(shí)間/ms求解率/%解算時(shí)間/ms求解率/%解算時(shí)間/ms求解率/%解算時(shí)間/ms求解率/%解算時(shí)間/msRobonaut2785.820.6191.210.597.760.8898.850.6499.540.4TRACBot778.880.3990.130.5999.850.9399.880.7599.950.44Atlas2013675.530.1590.660.2599.710.699.110.4399.850.26Atlas2015775.390.3985.50.5598.980.7899.320.6599.450.42Valkyrie744.830.682.11.1699.050.999.610.6299.830.51 從結(jié)果來(lái)看,雖然運(yùn)用各種數(shù)值算法求逆解的位置誤差與姿態(tài)誤差都可達(dá)到1e-6(m)及1e-6(deg),但其平均計(jì)算誤差是解析法計(jì)算結(jié)果的10倍,且該方法也存在著一個(gè)不可避免的缺陷:沒(méi)有一種算法的求解率可以達(dá)到100%。即使是六軸機(jī)械臂,其求解率無(wú)法像解析法那樣每次都能找到逆解。造成該問(wèn)題的原因在于數(shù)值法的非線性優(yōu)化過(guò)程過(guò)于依賴人為設(shè)置或隨機(jī)猜想的初始種子。數(shù)值法的核心是梯度下降,而種子決定著梯度下降的方向,若種子設(shè)置合理,則可以高效地求得理想的結(jié)果,若種子設(shè)置不合理,甚至?xí)霈F(xiàn)無(wú)解的情況。 近幾年,隨著人工智能熱潮的掀起,一些學(xué)者嘗試采用人工智能的方法求解機(jī)械臂逆運(yùn)動(dòng)學(xué),期望能用該方法求解特殊結(jié)構(gòu)的機(jī)械臂逆運(yùn)動(dòng)學(xué)。具有特殊結(jié)構(gòu)的機(jī)械臂大多用來(lái)處理某類(lèi)特定問(wèn)題,且該問(wèn)題無(wú)法用常見(jiàn)的機(jī)械臂解決,因此無(wú)論是航天領(lǐng)域還是工業(yè)領(lǐng)域,都有一定的應(yīng)用價(jià)值。 文獻(xiàn)[44]采用傳統(tǒng)遺傳算法及連續(xù)遺傳算法求機(jī)械臂逆解,遺傳算法的迭代過(guò)程中可以得到機(jī)械臂的運(yùn)動(dòng)路徑。實(shí)驗(yàn)結(jié)果表明連續(xù)遺傳算法及傳統(tǒng)遺傳算法都可以得到機(jī)械臂的逆解,但用第一種方法得到的運(yùn)動(dòng)路徑比第二種方法更加平穩(wěn)。文獻(xiàn)[45]提出了利用人工神經(jīng)網(wǎng)絡(luò)求機(jī)械臂逆運(yùn)動(dòng)學(xué)解的方法。其輸入為機(jī)械臂的末端位姿T,輸出為機(jī)械臂的關(guān)節(jié)角度φ。 (27) 結(jié)果表明,經(jīng)過(guò)大量訓(xùn)練后,訓(xùn)練集Strain的理論正逆互驗(yàn)精度可以達(dá)到10-7m。利用測(cè)試集Stest進(jìn)行測(cè)試的結(jié)果表明該方法的泛化能力在理論上可以接受,但無(wú)法用于工程中。文獻(xiàn)[46]結(jié)合了遺傳算法與神經(jīng)網(wǎng)絡(luò)求機(jī)械臂逆運(yùn)動(dòng)學(xué)解。神經(jīng)網(wǎng)絡(luò)的輸入及輸出與文獻(xiàn)[45]一致,但神經(jīng)網(wǎng)絡(luò)的權(quán)重值由遺傳算法進(jìn)行優(yōu)化。這項(xiàng)改進(jìn)提高了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,保證末端位姿誤差能以更快的時(shí)間降到目標(biāo)誤差以下。 文獻(xiàn)[47]介紹了基于Sarsa(λ)強(qiáng)化學(xué)習(xí)的空間機(jī)械臂求逆解及路徑規(guī)劃的研究,機(jī)械臂的每根桿件都被視作一個(gè)可決策的智能體,通過(guò)感知機(jī)械臂末端與目標(biāo)的偏差及各桿件和障礙物的距離程度,人工設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù),并對(duì)各桿件轉(zhuǎn)動(dòng)動(dòng)作進(jìn)行強(qiáng)化訓(xùn)練。形成了各智能體的狀態(tài)-動(dòng)作函數(shù)表,作為指導(dǎo)機(jī)械臂在線運(yùn)動(dòng)規(guī)劃的依據(jù)。結(jié)果表明該方法可以指導(dǎo)機(jī)械臂在求逆解中滿足避障約束及位置約束。但其無(wú)法保證機(jī)械臂滿足姿態(tài)約束,需要對(duì)運(yùn)動(dòng)空間進(jìn)行更細(xì)的劃分及設(shè)計(jì)更完善的獎(jiǎng)勵(lì)函數(shù)才能實(shí)現(xiàn)。 到目前為止,人工智能求解機(jī)械臂逆運(yùn)動(dòng)學(xué)的方法還很不成熟。所有人工智能方法都是離線算法,無(wú)法實(shí)現(xiàn)在線求機(jī)械臂逆運(yùn)動(dòng)學(xué)解及運(yùn)動(dòng)規(guī)劃。對(duì)于神經(jīng)網(wǎng)絡(luò)方法,仿真結(jié)果表明訓(xùn)練后的模型對(duì)于訓(xùn)練集Strain中的數(shù)據(jù)求逆解的效率及精度都能達(dá)到實(shí)際應(yīng)用的標(biāo)準(zhǔn),但訓(xùn)練集中并未給出工作空間內(nèi)的所有點(diǎn),由于泛化能力較弱,對(duì)于不在訓(xùn)練集內(nèi)的點(diǎn)的計(jì)算效果不佳。此外即使是同一類(lèi)型的兩臺(tái)機(jī)械臂A,B,也會(huì)有稍許不同,通過(guò)訓(xùn)練機(jī)械臂A得到的機(jī)械臂逆運(yùn)動(dòng)學(xué)模型A,很難泛化到機(jī)械臂B中。若在實(shí)際應(yīng)用中,將模型A求的逆解作為機(jī)械臂B的輸入控制其運(yùn)動(dòng),可能會(huì)帶來(lái)無(wú)法挽回的后果。對(duì)于強(qiáng)化學(xué)習(xí)方法主要存在兩個(gè)問(wèn)題,(1)該方法是基于對(duì)環(huán)境采樣的算法,機(jī)器人所處的環(huán)境復(fù)雜,采樣效率較低。(2)強(qiáng)化學(xué)習(xí)的采樣中伴隨著探索,在不確定性很強(qiáng)的環(huán)境空間中進(jìn)行探索,容易損壞機(jī)器人。特別是在航天領(lǐng)域,機(jī)器人成本很高,因此損壞機(jī)器人是無(wú)法接受的。所以對(duì)于人工智能方法,還需要后續(xù)科研工作者繼續(xù)努力研究。 目前機(jī)械臂正運(yùn)動(dòng)學(xué)建模及解算方法在理論方面非常成熟。在工程中對(duì)機(jī)械臂進(jìn)行正運(yùn)動(dòng)學(xué)建模時(shí),若輸入的機(jī)械臂結(jié)構(gòu)參數(shù)與工程模型的實(shí)際結(jié)構(gòu)參數(shù)之間的誤差小于系統(tǒng)要求的最大精度,則對(duì)于機(jī)械臂末端位姿的理論計(jì)算結(jié)果與工程測(cè)量結(jié)果間的誤差也可以滿足系統(tǒng)的精度。因此,提高機(jī)械臂正運(yùn)動(dòng)學(xué)計(jì)算精度的核心是尋找提高機(jī)械臂結(jié)構(gòu)參數(shù)的精密測(cè)量方法。 目前許多科研人員仍對(duì)機(jī)械臂逆運(yùn)動(dòng)學(xué)建模與解算進(jìn)行研究,他們?cè)诓煌潭壬隙既〉昧艘欢ǖ某晒?,為機(jī)械臂在航天及工業(yè)領(lǐng)域的應(yīng)用奠定了理論及實(shí)踐基礎(chǔ)。但求機(jī)械臂逆運(yùn)動(dòng)學(xué)解的工程意義在于為機(jī)械臂運(yùn)動(dòng)規(guī)劃提供輸入。因此尚有以下幾個(gè)方面的問(wèn)題值得關(guān)注。 4.2.1解析法的理論研究 建立一套新的滿足機(jī)械臂碰撞約束及角度范圍約束的運(yùn)動(dòng)學(xué)模型。用解析法求機(jī)械臂逆運(yùn)動(dòng)學(xué)解時(shí)只需要滿足位置及姿態(tài)約束,這兩個(gè)約束都是等式約束,因此解一個(gè)非線性方程組的根即可得到全部解。但機(jī)械臂的工作空間會(huì)給予它碰撞約束或角度范圍約束,這些約束是關(guān)于桿件位姿的不等式約束。因此在求逆解的過(guò)程中,解析法并未考慮與環(huán)境的碰撞約束或機(jī)械臂的關(guān)節(jié)角度約束。用該方法求得的逆運(yùn)動(dòng)學(xué)解中有一個(gè)或多個(gè)位姿可能與環(huán)境發(fā)生碰撞。對(duì)于該問(wèn)題,一般是在計(jì)算方程組的根后通過(guò)解不等式篩除不滿足約束的解,得到滿足各項(xiàng)約束的解,增加了求逆運(yùn)動(dòng)學(xué)解的計(jì)算時(shí)間。建立有關(guān)機(jī)械臂碰撞約束或角度約束的逆運(yùn)動(dòng)學(xué)模型,將上述模型添加至原來(lái)的數(shù)學(xué)模型中,得到滿足姿態(tài)約束的新模型。 4.2.2數(shù)值法的工程實(shí)踐研究 考慮復(fù)雜環(huán)境約束下的快速在線求逆解。在航天領(lǐng)域?qū)C(jī)械臂的應(yīng)用中,主要需要考慮在復(fù)雜環(huán)境的約束中求機(jī)械臂的逆運(yùn)動(dòng)學(xué)解。該約束主要考慮機(jī)械臂底座與目標(biāo)之間存在相對(duì)運(yùn)動(dòng)的情況,如空間站攜帶的機(jī)械臂抓捕與空間站存在相對(duì)運(yùn)動(dòng)的物體或行星車(chē)在星表對(duì)感興趣的地貌進(jìn)行在線探測(cè)。此時(shí)不但需要考慮機(jī)械臂的位置及姿態(tài)約束,避障約束,還需要考慮機(jī)械臂底座與探測(cè)目標(biāo)之間的速度約束或加速度約束[48]。因此任務(wù)空間約束常包括以下幾種,如路徑奇異點(diǎn)規(guī)避的約束,在未知環(huán)境中運(yùn)動(dòng)時(shí),機(jī)械臂運(yùn)動(dòng)路徑中避障的約束,以及時(shí)間、能量等性能最優(yōu)的約束。對(duì)于上述約束,將每一個(gè)約束都可表示為一個(gè)等式或不等式,對(duì)于非凸的約束方程,將其用連續(xù)多個(gè)凸函數(shù)進(jìn)行分段逼近[49-50]。如運(yùn)動(dòng)約束方程中,平動(dòng)是凸函數(shù),旋轉(zhuǎn)變換陣為非凸函數(shù),將旋轉(zhuǎn)變換陣用凸函數(shù)逼近,得到一系列凸的約束方程組。利用凸優(yōu)化[51]的方法求解該運(yùn)動(dòng)方程組,得到滿足約束的最優(yōu)路徑。 4.2.3機(jī)械臂逆運(yùn)動(dòng)學(xué)求解率的理論研究 任務(wù)空間[52]約束下的全局逆運(yùn)動(dòng)學(xué)求解率研究。任務(wù)空間約束是對(duì)機(jī)械臂末端位姿的約束,主要做用于機(jī)械臂抓取任務(wù)以及抓取后的行為。在任務(wù)空間約束下,機(jī)械臂求逆解失敗可能有兩種原因。其一是環(huán)境約束或運(yùn)動(dòng)學(xué)約束。如機(jī)械臂在抓取目標(biāo)時(shí)無(wú)法避免與目標(biāo)之外的環(huán)境碰撞,或在數(shù)值法求解的所有運(yùn)動(dòng)路徑中,被機(jī)械臂抓取物體都無(wú)法保證固定姿態(tài),從而導(dǎo)致任務(wù)失敗,這種情況也稱(chēng)為全局求解失敗。其二是初始種子設(shè)置不合理導(dǎo)致的求逆解失敗,也稱(chēng)作局部求解失敗。確定機(jī)械臂求解失敗的種類(lèi)具有十分重要的理論意義,許多科研人員都在研究能識(shí)別全局求解失敗的方法。雖然有人提出當(dāng)求解失敗時(shí),通過(guò)多試幾個(gè)不同的初始種子再觀測(cè)是否存在成功求解,但并無(wú)法證明測(cè)試的不同種子的數(shù)量與求解失敗種類(lèi)之間存在必然的聯(lián)系。該問(wèn)題的核心在于猜測(cè)非線性非凸系統(tǒng)優(yōu)化的初始鄰域方向。將非凸約束放寬至用凸函數(shù)逼近,并將非線性旋轉(zhuǎn)變換陣Q∈SO(3)的乘法運(yùn)算通過(guò)POE模型轉(zhuǎn)化為指數(shù)系統(tǒng)exp(·)∈SO(3)的線性相加,系統(tǒng)轉(zhuǎn)化為李代數(shù)中的線性系統(tǒng)。上述兩方面是求解該問(wèn)題的重點(diǎn)。 近年來(lái),隨著凸優(yōu)化算法成功應(yīng)用于機(jī)械臂逆運(yùn)動(dòng)學(xué)求解及運(yùn)動(dòng)路徑規(guī)劃。針對(duì)不同約束構(gòu)造不同的凸函數(shù),解決相應(yīng)的問(wèn)題已成為研究熱點(diǎn)。本文提到的解析法及數(shù)值法都可與凸優(yōu)化算法結(jié)合。對(duì)于解析法,先求解機(jī)械臂的逆運(yùn)動(dòng)學(xué),再將可行解作為凸優(yōu)化的終止條件對(duì)機(jī)械臂進(jìn)行路徑規(guī)劃,最后可得滿足約束條件的最優(yōu)路徑。對(duì)于數(shù)值解法,在4.2.2節(jié)與4.2.3節(jié)中已經(jīng)介紹了其與凸優(yōu)化結(jié)合可解決的各種問(wèn)題。利用上述思路,預(yù)期可以獲得更多科研成果。 機(jī)械臂運(yùn)動(dòng)學(xué)建模及求解在航天及工業(yè)領(lǐng)域都有廣泛的應(yīng)用。因解析法具有魯棒性更強(qiáng)的特點(diǎn),廣泛的應(yīng)用于機(jī)械臂基座不運(yùn)動(dòng)的工業(yè)任務(wù)或機(jī)械臂基座與目標(biāo)相對(duì)靜止的航天任務(wù)中。而對(duì)于機(jī)械臂基座與目標(biāo)有相對(duì)運(yùn)動(dòng)的空間站任務(wù)及深空探測(cè)任務(wù),因數(shù)值解法物易于實(shí)現(xiàn),且對(duì)于動(dòng)基座問(wèn)題具有更好的適應(yīng)性,受到研究人員的青睞。人工智能的方法也逐漸應(yīng)用于該領(lǐng)域,但在理論中還存在諸多問(wèn)題,并不足以在實(shí)際工程中應(yīng)用,需要科研人員們對(duì)該問(wèn)題進(jìn)一步研究。本文在總結(jié)當(dāng)前國(guó)內(nèi)外機(jī)械臂運(yùn)動(dòng)學(xué)建模與求解的基礎(chǔ)上,還指明了該領(lǐng)域還需要解決的科學(xué)問(wèn)題,為后續(xù)科研工作者提供了研究思路。3.3 數(shù)值法
3.4 人工智能方法
4 機(jī)械臂運(yùn)動(dòng)學(xué)中需解決的關(guān)鍵科學(xué)問(wèn)題
4.1 正運(yùn)動(dòng)學(xué)
4.2 逆運(yùn)動(dòng)學(xué)
5 結(jié) 論