范軍紅,朱云飛*,王文彪,鮑官軍,姜利祥
(1. 可靠性與環(huán)境工程技術(shù)重點(diǎn)實(shí)驗(yàn)室; 2. 北京衛(wèi)星環(huán)境工程研究所:北京 100094;3. 浙江工業(yè)大學(xué) 機(jī)械工程學(xué)院,杭州 310014)
柔性連續(xù)體機(jī)器人手臂的研究近年來取得重大進(jìn)展,研究人員根據(jù)不同的應(yīng)用場(chǎng)景提出許多柔性連續(xù)體的原型,展示了其對(duì)多場(chǎng)景復(fù)雜環(huán)境的適應(yīng)性。在航天領(lǐng)域,柔性連續(xù)臂在空間目標(biāo)柔性捕獲、航天器故障檢測(cè)、輔助空間實(shí)驗(yàn)、行星地形探測(cè)等場(chǎng)景具有潛在應(yīng)用價(jià)值。柔性連續(xù)臂可使用不同的驅(qū)動(dòng)技術(shù)實(shí)現(xiàn),如肌腱/纜繩、流體(氣動(dòng)或液壓)肌肉驅(qū)動(dòng)器、形狀記憶合金以及介電彈性體驅(qū)動(dòng)。通常情況下,柔性連續(xù)臂由3 個(gè)并列分布的驅(qū)動(dòng)器構(gòu)成,這是一個(gè)能夠到達(dá)臂展范圍內(nèi)任意位置的最少驅(qū)動(dòng)器數(shù)量配置。然而,由于缺乏運(yùn)動(dòng)學(xué)解耦和數(shù)值穩(wěn)定的動(dòng)態(tài)模型研究,柔性連續(xù)臂的建模特別是動(dòng)態(tài)建模研究一直相對(duì)滯后。
剛性機(jī)械臂是高自由度的串行鋼桿結(jié)構(gòu),假定鋼桿不發(fā)生變形時(shí),可以采用牛頓-歐拉遞歸法等高效算法進(jìn)行明確的數(shù)學(xué)建模。而柔性連續(xù)臂模仿柔性無脊椎動(dòng)物結(jié)構(gòu),在操作過程中會(huì)發(fā)生很大的變形,使得其數(shù)學(xué)建模極為復(fù)雜。柔性連續(xù)臂的運(yùn)動(dòng)方程大多依賴基于能量的模型來推導(dǎo),針對(duì)柔性連續(xù)臂建模的一種常見思路是將柔性連續(xù)臂看作由多個(gè)虛擬離散小段剛體串聯(lián)組成,然而這種思路由于自由度太多,在正、逆運(yùn)動(dòng)學(xué)求解中會(huì)遇到困難。為解決自由度太多的問題,可以使用形狀函數(shù)(shape function)來描述柔性臂運(yùn)動(dòng)過程中的變形,這種方法被稱為參數(shù)表示法。這些位移場(chǎng)通常表述為空間曲線或關(guān)節(jié)空間變量的多元多項(xiàng)式形式,構(gòu)成可變形運(yùn)動(dòng)學(xué)模態(tài)方法的基礎(chǔ)。
為了簡(jiǎn)化操作過程中的位置和姿態(tài)變化,研究人員提出了使用模態(tài)方法建立連續(xù)體機(jī)器人的運(yùn)動(dòng)學(xué)模型。早期研究者主要使用模態(tài)振型函數(shù)(mode shape function, MSF)來建立運(yùn)動(dòng)學(xué)模型。這種方法雖然簡(jiǎn)化了可變參數(shù)的數(shù)量,但通常需要組合多個(gè)形狀函數(shù)來描述整個(gè)任務(wù)空間的參數(shù)變化,并且僅適用于變形較小的情況,局限性明顯。2006 年Jones 和Walker 提出的曲線參數(shù)(curve parametric,CP)運(yùn)動(dòng)學(xué)模型是多截面柔性連續(xù)臂的高級(jí)運(yùn)動(dòng)學(xué)模型,并通過迭代方法產(chǎn)生準(zhǔn)確的正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué)模型。該模型可以模擬任何柔性連續(xù)臂的彎曲運(yùn)動(dòng),能緊湊表示實(shí)際關(guān)節(jié)空間變量(即驅(qū)動(dòng)器長(zhǎng)度)中的平滑彎曲,因此可以快速得到結(jié)果,并給出更好的物理解釋。該模型有很多優(yōu)勢(shì),啟發(fā)了許多其他類似的運(yùn)動(dòng)學(xué)模型,并為柔性連續(xù)臂的相關(guān)研究提供了分析基礎(chǔ),但也存在一些缺陷——由于數(shù)值奇異性,它不能模擬連續(xù)體截面的直臂姿態(tài)(即當(dāng)各驅(qū)動(dòng)器長(zhǎng)度相等時(shí),完全地伸長(zhǎng)或收縮運(yùn)動(dòng))?;贑P 模型,研究者解決了其奇異性問題,擴(kuò)大了CP 模型的應(yīng)用范圍,并對(duì)其逆運(yùn)動(dòng)學(xué)的數(shù)值解法進(jìn)行了研究,但是其運(yùn)動(dòng)學(xué)模型求解存在不易收斂、耗時(shí)較長(zhǎng)的問題。
考慮到上述模型及其求解中存在的局限性,本文提出采用神經(jīng)網(wǎng)絡(luò)對(duì)柔性連續(xù)臂運(yùn)動(dòng)學(xué)進(jìn)行建模的方法,試圖利用CP 和模態(tài)方法建立正運(yùn)動(dòng)學(xué)模型,產(chǎn)生關(guān)節(jié)空間向量到目標(biāo)姿態(tài)映射的海量數(shù)據(jù)集DataSet,并利用此數(shù)據(jù)集建立基于前饋神經(jīng)網(wǎng)絡(luò)的正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué)模型,以期解決奇異性以及逆運(yùn)動(dòng)學(xué)求解不穩(wěn)定問題,并顯著縮短逆運(yùn)動(dòng)學(xué)求解的時(shí)間,為之后采用強(qiáng)化學(xué)習(xí)方法學(xué)習(xí)控制策略建立基礎(chǔ)模型。
本文作者所屬團(tuán)隊(duì)研發(fā)的柔性連續(xù)臂如圖1 所示,采用分節(jié)設(shè)計(jì),初步設(shè)計(jì)為3 節(jié),每節(jié)由多根氣動(dòng)肌腱并聯(lián)組成,采用自研的加壓伸長(zhǎng)型氣動(dòng)肌腱作為驅(qū)動(dòng)器,可實(shí)現(xiàn)每節(jié)獨(dú)立地彎曲和伸長(zhǎng)。
圖1 柔性連續(xù)臂實(shí)拍圖Fig. 1 The flexible continuum arm
加壓伸長(zhǎng)型氣動(dòng)肌腱由內(nèi)部硅膠管和外部限制其徑向變形的波紋管構(gòu)成。波紋管的伸長(zhǎng)量來源于其軸向?qū)盈B的波紋結(jié)構(gòu),此結(jié)構(gòu)使得氣動(dòng)肌肉的伸長(zhǎng)量與纖維編織角度無關(guān),突破了現(xiàn)有傳統(tǒng)雙螺旋編織網(wǎng)氣動(dòng)肌肉、囊顆粒型氣動(dòng)肌肉的設(shè)計(jì)局限。
在高壓氣體作用下,該氣動(dòng)肌腱最大能產(chǎn)生300%的軸向變形,氣壓降為所處環(huán)境大氣壓時(shí)可恢復(fù)為原來的形狀。這在每個(gè)驅(qū)動(dòng)器能夠伸長(zhǎng)和收縮的功能基礎(chǔ)上,極大提高了柔性連續(xù)臂的彎曲致動(dòng)性能和運(yùn)動(dòng)抓取的靈活性。
為對(duì)柔性連續(xù)臂進(jìn)行建模,需要抽象出其系統(tǒng)模型。因此,基于Godage 等2015 年建立的運(yùn)動(dòng)學(xué)模型給出該柔性連續(xù)臂第小段的幾何模型,如圖2 所示。
圖2 柔性連續(xù)臂任意第i 小段的幾何模型Fig. 2 Geometrical model of an optional part of the flexible continuum arm
為不失通用性,本文采用3 個(gè)可變長(zhǎng)度驅(qū)動(dòng)器的配置,將驅(qū)動(dòng)器固定在一個(gè)半徑為r的圓形剛構(gòu)上,并按照2π/3 的弧度間隔分布,平行于一條假想的穿過截面中心點(diǎn)的線。驅(qū)動(dòng)器的初始長(zhǎng)度為L,伸長(zhǎng)量為l,且l≤l()≤l,其中表示第小段,表示此小段的第個(gè)驅(qū)動(dòng)器。因此,一個(gè)驅(qū)動(dòng)器在任何時(shí)刻的長(zhǎng)度為L()=L+ l()。為方便后文的描述,將第小段的伸長(zhǎng)量組成關(guān)節(jié)向量q=[l()l()l()]。
本章對(duì)CP 模型進(jìn)行推導(dǎo),并總結(jié)分析采用模態(tài)方法建立的運(yùn)動(dòng)學(xué)模型,提出一種有效收斂的逆運(yùn)動(dòng)學(xué)求解方法。
基于可變長(zhǎng)度驅(qū)動(dòng)器的特點(diǎn),柔性連續(xù)臂每一小段都能完成伸長(zhǎng)、收縮和彎曲運(yùn)動(dòng)。因此,在忽略負(fù)載的情況下,連續(xù)體每一小段的空間姿態(tài)完全可以用一個(gè)變曲率半徑和變長(zhǎng)度的圓弧來表示。這個(gè)圓弧可由3 個(gè)空間參數(shù)定義——關(guān)于瞬時(shí)中心的曲率半徑λ∈(0, ∞)、彎曲弧度φ∈[0, 2π)以及彎曲平面相對(duì)于+X的角度θ∈[-π, π]。關(guān)節(jié)空間變量中的3 個(gè)曲線參數(shù)的求解公式為
為了完成運(yùn)動(dòng)學(xué)建模,必須正確計(jì)算柔性連續(xù)臂的位置和姿態(tài)。由于連續(xù)體截面的固有力學(xué)變形較大,沿長(zhǎng)度方向有變化,必須用齊次變換矩陣(HTM)來表示。在圖2 中,定義了一個(gè)移動(dòng)坐標(biāo)系{′},并且引入一個(gè)標(biāo)量參數(shù)ξ∈[0, 1]來描述移動(dòng)坐標(biāo)系{′}沿柔性臂中心軸線從起點(diǎn)(ξ=0)至末端點(diǎn)(ξ=1)的移動(dòng)。最終,基于曲線參數(shù)模型的柔性連續(xù)臂第小段的 HTM 表達(dá)式為
正如式(1)所述,當(dāng)3 個(gè)可變長(zhǎng)度驅(qū)動(dòng)器的伸長(zhǎng)量相同(即柔性臂直線伸縮運(yùn)動(dòng))時(shí),第小段的曲率半徑無窮大,曲線參數(shù)的HTM 描述失去意義。
將該基于模態(tài)方法的運(yùn)動(dòng)學(xué)模型與自研的柔性連續(xù)臂實(shí)測(cè)數(shù)據(jù)進(jìn)行對(duì)比,以證明該模型的有效性。圖3 為1 根關(guān)節(jié)伸長(zhǎng)48%、另外2 根關(guān)節(jié)不伸長(zhǎng)的情況下,運(yùn)動(dòng)學(xué)模型(采用13 階泰勒展開)與實(shí)測(cè)數(shù)據(jù)的對(duì)比,可以看到兩者的偏差在5%以內(nèi)。
圖3 模型數(shù)據(jù)與實(shí)測(cè)數(shù)據(jù)對(duì)比Fig. 3 Comparison between model data and measured values
對(duì)于逆運(yùn)動(dòng)學(xué)問題,適用于剛性機(jī)械臂的雅可比矩陣求逆方法失效,故考慮數(shù)值迭代的方法。逆運(yùn)動(dòng)學(xué)的目標(biāo)是以任務(wù)空間的位姿信息作為約束條件,求解出關(guān)節(jié)空間的伸長(zhǎng)量。關(guān)節(jié)空間到任務(wù)空間的映射為非線性關(guān)系,因此可將逆運(yùn)動(dòng)學(xué)視作一個(gè)約束條件下的非線性優(yōu)化問題。本文嘗試使用MATLAB 中的非線性約束問題求解函數(shù),將目標(biāo)姿態(tài)看作約束條件,求解出滿足約束條件的關(guān)節(jié)向量值(即可變長(zhǎng)度驅(qū)動(dòng)器的伸長(zhǎng)量)。
在求解過程中發(fā)現(xiàn),只有目標(biāo)姿態(tài)矩陣與初始姿態(tài)矩陣的歐氏距離極小時(shí),此求解過程才能收斂。顯然,這是不具有實(shí)用價(jià)值的。為此,本文提出建立一個(gè)從初始姿態(tài)矩陣到目標(biāo)姿態(tài)矩陣轉(zhuǎn)換的連續(xù)函數(shù),并將連續(xù)函數(shù)產(chǎn)生的中間目標(biāo)姿態(tài)作為求解過程中的臨時(shí)姿態(tài)矩陣。圖4 展示了沿著直線軌跡逼近目標(biāo)姿態(tài)的逆運(yùn)動(dòng)學(xué)求解過程,其中虛線表示臨時(shí)姿態(tài)矩陣形成的逼近軌跡,可以看出其完全按照直線軌跡逼近目標(biāo)點(diǎn)。
圖4 沿著直線軌跡的逆運(yùn)動(dòng)學(xué)求解示例Fig. 4 Example of inverse kinematics solution along a straight trajectory
圖5 展示了沿著圓弧軌跡逼近目標(biāo)姿態(tài)的逆運(yùn)動(dòng)學(xué)求解過程,雖然沒有完全按照?qǐng)A弧軌跡進(jìn)行逼近,但是最終還是收斂到了目標(biāo)點(diǎn)。沒有完全按照?qǐng)A弧軌跡逼近的主要原因是圓弧軌跡的前半段不在工作空間范圍內(nèi),不可達(dá)。
圖5 沿著圓弧軌跡的逆運(yùn)動(dòng)學(xué)求解示例Fig. 5 Example of inverse kinematics solution along an arc trajectory
多次實(shí)驗(yàn)發(fā)現(xiàn),添加臨時(shí)姿態(tài)矩陣的方法成功解決了目標(biāo)點(diǎn)與初始點(diǎn)相差較遠(yuǎn)導(dǎo)致不收斂的問題,但是,由于添加了很多的中間臨時(shí)姿態(tài)矩陣,計(jì)算量和求解時(shí)間顯著增加。
上述運(yùn)動(dòng)學(xué)研究所用的臨時(shí)姿態(tài)矩陣方法求解過程耗時(shí)較長(zhǎng),在逆運(yùn)動(dòng)學(xué)求解中尤為明顯;而基于模型的強(qiáng)化學(xué)習(xí)方法來得到柔性臂的控制策略則要求求解時(shí)間盡量短。故此,本文提出使用前饋神經(jīng)網(wǎng)絡(luò)來擬合正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué)模型,以在保證精度的情況下縮短求解時(shí)間。
前饋神經(jīng)網(wǎng)絡(luò)是一種典型的深度學(xué)習(xí)網(wǎng)絡(luò)。萬能近似定理表明,如果一個(gè)前饋神經(jīng)網(wǎng)絡(luò)具有線性輸出層和至少一層包含非線性激活函數(shù)的隱藏層結(jié)構(gòu),那么只要給予網(wǎng)絡(luò)足夠數(shù)量的隱藏單元,它就可以任意精度來近似從任何一個(gè)有限維空間到另一個(gè)有限維空間的Boral 可測(cè)函數(shù)。因此,前饋神經(jīng)網(wǎng)絡(luò)很適合用來擬合柔性連續(xù)臂的運(yùn)動(dòng)學(xué)模型(非線性函數(shù))。
此外,神經(jīng)網(wǎng)絡(luò)可以靈活更改輸入和輸出神經(jīng)元的數(shù)量,對(duì)應(yīng)于柔性連續(xù)臂而言,意味著可以靈活更改關(guān)節(jié)空間變量和任務(wù)空間變量的數(shù)量,即能較容易地將1 節(jié)的模型遷移到3 節(jié)的模型中,并可以將任意點(diǎn)的位置和姿態(tài)視作任務(wù)空間變量來進(jìn)行建模,從而顯著提高模型的靈活性和普適性。
利用前面建立的正運(yùn)動(dòng)學(xué)模型,產(chǎn)生關(guān)節(jié)向量到末端姿態(tài)映射的100 000 個(gè)數(shù)據(jù),作為訓(xùn)練數(shù)據(jù)集,其中關(guān)節(jié)向量在0~80%的伸長(zhǎng)率區(qū)間里按照均勻分布產(chǎn)生;使用相同的方法產(chǎn)生10 000 個(gè)數(shù)據(jù),作為測(cè)試集。然后將關(guān)節(jié)向量作為輸入量,末端姿態(tài)作為輸出量,訓(xùn)練一個(gè)前饋神經(jīng)網(wǎng)絡(luò)來擬合這個(gè)映射,從而求解出一個(gè)端到端的運(yùn)動(dòng)學(xué)模型,并在測(cè)試集上測(cè)試該模型的準(zhǔn)確性。
本文設(shè)計(jì)了一個(gè)8層的神經(jīng)網(wǎng)絡(luò),其輸入輸出層均包含3 個(gè)神經(jīng)元,隱藏層的結(jié)構(gòu)如圖6 所示。在數(shù)據(jù)集預(yù)處理過程中,將其歸一化為均值為0、方差為1 的正態(tài)分布數(shù)據(jù)集,故相應(yīng)的激活函數(shù)采用雙曲正切激活函數(shù)tanh。此模型本質(zhì)上是一個(gè)回歸模型,回歸模型一般采用均方誤差(MSE)作為損失函數(shù)。關(guān)于優(yōu)化函數(shù),采用目前最主流的Adam 函數(shù),并取得了很好的效果。
圖6 前饋神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意Fig. 6 Schematic diagram of feedforward network structure
訓(xùn)練過程中的超參數(shù)選擇如表1 所示,其中學(xué)習(xí)率(learning_rate)為0.0001,這是在比較了學(xué)習(xí)率為0.001、0.005、0.0001 的效果之后擇優(yōu)選擇的。批尺寸(bactch_size)和單次優(yōu)化數(shù)據(jù)量(epoch)的改變對(duì)訓(xùn)練結(jié)果影響不明顯。由于本文的訓(xùn)練集樣本數(shù)量足夠大,幾乎涵蓋了所有可能的輸入情況,所以不考慮過擬合問題(有關(guān)參數(shù)weight_decay 的值很?。?。
表1 正運(yùn)動(dòng)學(xué)模型擬合中的超參數(shù)選擇Table 1 Selection of hyperparameters for forward kinematics model fitting
損失值(loss value)的優(yōu)化曲線如圖7 所示,可以看出,損失值在經(jīng)過250 個(gè)epoch 時(shí)間優(yōu)化之后較好地收斂到一個(gè)接近于0 的值,說明此模型在訓(xùn)練集上表現(xiàn)優(yōu)異,有效學(xué)習(xí)到了關(guān)節(jié)向量到末端姿態(tài)的映射關(guān)系。
圖7 正運(yùn)動(dòng)學(xué)擬合中損失值優(yōu)化曲線Fig. 7 Optimization curve of loss value in forward kinematics fitting
之后,在測(cè)試集上測(cè)試模型的效果,并采用相對(duì)誤差的平均值來評(píng)估模型的效果。的計(jì)算式為
式中:表示測(cè)試集上第個(gè)樣本的真實(shí)輸出結(jié)果;表示第個(gè)樣本的模型預(yù)測(cè)結(jié)果,并采用L2范數(shù)衡量輸出向量的大小。
圖8 展示了模型在測(cè)試集上的最終效果,可以看出,相對(duì)誤差的平均值在0.055 左右,轉(zhuǎn)換為絕對(duì)誤差后穩(wěn)定在5 mm 左右,符合柔性連續(xù)臂的控制精度要求。此誤差來源主要是因?yàn)閾p失值的優(yōu)化函數(shù)是隨機(jī)梯度下降法,其最優(yōu)值是一個(gè)相對(duì)效果很好的局部最優(yōu)值,并不是絕對(duì)全局最優(yōu)值。
圖8 正運(yùn)動(dòng)學(xué)相對(duì)誤差平均值曲線Fig. 8 Mean value curve of forward kinematics relative error
利用3.2 節(jié)生成的訓(xùn)練數(shù)據(jù)集,將末端姿態(tài)作為輸入量,關(guān)節(jié)向量作為輸出量,訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)來擬合這個(gè)映射,從而完成逆運(yùn)動(dòng)學(xué)的求解過程。逆運(yùn)動(dòng)學(xué)與正運(yùn)動(dòng)學(xué)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)完全相同(參見圖6),不再贅述;部分超參數(shù)選擇存在變化(參見表2),主要是對(duì)學(xué)習(xí)率進(jìn)行了微調(diào)。
表2 逆運(yùn)動(dòng)學(xué)模型擬合中的超參數(shù)選擇Table 2 Selection of hyperparameters for inverse kinematics model fitting
圖9 展示了損失值的變化過程,從圖中可以看出損失值在經(jīng)過250 個(gè)epoch 時(shí)間優(yōu)化之后接近完美地收斂于0,說明此模型在訓(xùn)練集上表現(xiàn)很好,學(xué)習(xí)到了末端姿態(tài)到關(guān)節(jié)向量的映射關(guān)系。
圖9 逆運(yùn)動(dòng)學(xué)擬合中損失值優(yōu)化曲線Fig. 9 Optimization curve of loss value in inverse kinematics fitting
圖10 展示了逆運(yùn)動(dòng)學(xué)相對(duì)誤差平均值,可以看出,其相對(duì)誤差平均值為0.038 左右,轉(zhuǎn)換為絕對(duì)誤差約為4 mm,滿足大部分柔性連續(xù)臂的控制精度要求,其誤差來源已在正運(yùn)動(dòng)學(xué)部分予以解釋。
圖10 逆運(yùn)動(dòng)學(xué)相對(duì)誤差平均值曲線Fig. 10 Mean value curve of inverse kinematics relative error
此外,此逆運(yùn)動(dòng)學(xué)模型顯著提高了求解效率。第2 章提到,利用臨時(shí)姿態(tài)矩陣求解逆運(yùn)動(dòng)學(xué)的方法完成1 次逆運(yùn)動(dòng)學(xué)求解需要進(jìn)行很多次約束條件下的非線性函數(shù)求解,而每次非線性函數(shù)求解需要進(jìn)行很多步數(shù)的迭代,多次實(shí)驗(yàn)后得到其1 次逆運(yùn)動(dòng)學(xué)求解平均耗時(shí)14.4 s。而基于前饋神經(jīng)網(wǎng)絡(luò)的模型是一個(gè)端到端的數(shù)據(jù)驅(qū)動(dòng)的模型,只關(guān)注輸入/輸出量,忽視過程量,且模型結(jié)構(gòu)較小,因此能夠很快給出結(jié)果,對(duì)數(shù)量為10 000 的測(cè)試集完成1 次測(cè)試所需的時(shí)間僅為1.5 s。
本文針對(duì)柔性連續(xù)臂逆運(yùn)動(dòng)學(xué)求解過程中不易收斂的問題,提出使用臨時(shí)姿態(tài)矩陣進(jìn)行逆運(yùn)動(dòng)學(xué)求解的方法。但是,這種方法存在求解時(shí)間過長(zhǎng),不適用于控制策略的學(xué)習(xí)等要求快速求解的過程。為此,又提出使用前饋神經(jīng)網(wǎng)絡(luò)對(duì)柔性連續(xù)臂進(jìn)行正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué)端到端建模的方法,該方法的應(yīng)用在保證模型精度的基礎(chǔ)上,顯著提高了逆運(yùn)動(dòng)學(xué)求解的效率,為后續(xù)柔性連續(xù)臂的智能控制策略研究奠定了基礎(chǔ)。
(編輯:張艷艷)