国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于卷積神經(jīng)網(wǎng)絡(luò)的冗余機(jī)械臂運(yùn)動(dòng)學(xué)逆解求解

2022-03-03 05:55劉世平夏文杰馬梓焱黃元境張文奇
載人航天 2022年1期
關(guān)鍵詞:運(yùn)動(dòng)學(xué)卷積軌跡

劉世平, 夏文杰, 陳 萌, 馬梓焱, 黃元境, 張文奇

(1.上海市空間飛行器機(jī)構(gòu)重點(diǎn)實(shí)驗(yàn)室, 上海 201108; 2.華中科技大學(xué)機(jī)械科學(xué)與工程學(xué)院, 武漢 430074)

1 引言

對(duì)于自由度數(shù)目小于7 的非冗余機(jī)械臂,通過(guò)所期望的末端位置和姿態(tài)信息,可使用幾何解法對(duì)其運(yùn)動(dòng)學(xué)逆解進(jìn)行求解,得到機(jī)械臂的各個(gè)關(guān)節(jié)角度來(lái)控制機(jī)械臂的運(yùn)動(dòng)。 與非冗余機(jī)械臂相比,冗余機(jī)械臂具有許多優(yōu)良的性能,如增加機(jī)械臂靈活度、實(shí)現(xiàn)避障、具有良好的容錯(cuò)性等,但是其求解運(yùn)動(dòng)學(xué)逆解的過(guò)程更加復(fù)雜。

幾何解法和數(shù)值解法是目前主要的7 自由度機(jī)械臂運(yùn)動(dòng)學(xué)逆解的求解方法。 幾何解法具有求解速度快、求解精度高等優(yōu)點(diǎn),但是其通用性差,主要適用于符合Pieper 準(zhǔn)則的特殊構(gòu)型機(jī)械臂,通過(guò)給定臂形角,增加約束的方法進(jìn)行求解。目前傳統(tǒng)數(shù)值解法有加權(quán)最小范數(shù)法、廣義/狹義雅克比偽逆法、梯度投影法等,這些方法具有良好的通用性,但是計(jì)算量大、求解時(shí)間較長(zhǎng)、存在累積誤差,并且當(dāng)機(jī)械臂處于奇異位置時(shí),無(wú)法對(duì)其運(yùn)動(dòng)學(xué)逆解進(jìn)行求解。

為克服傳統(tǒng)方法的不足,智能算法在冗余機(jī)械臂運(yùn)動(dòng)學(xué)逆解求解問(wèn)題中得到應(yīng)用,這些算法主要采用遺傳算法、神經(jīng)網(wǎng)絡(luò)等。 Xia等通過(guò)雙神經(jīng)網(wǎng)絡(luò)完成了對(duì)冗余機(jī)械臂的控制;Toshani 等通過(guò)將神經(jīng)網(wǎng)絡(luò)與非線性二次規(guī)劃相結(jié)合進(jìn)行7 自由度機(jī)械臂逆解的求解;歐群文等首先通過(guò)遺傳算法獲得7 自由度冗余機(jī)械臂運(yùn)動(dòng)學(xué)逆解的樣本數(shù)據(jù),然后使用RBF(徑向基)神經(jīng)網(wǎng)絡(luò)對(duì)樣本進(jìn)行訓(xùn)練得到運(yùn)動(dòng)學(xué)逆解解法;Demby 等使用人工神經(jīng)網(wǎng)絡(luò)和自適應(yīng)神經(jīng)模糊推理系統(tǒng)對(duì)4、5、6 和7 自由度機(jī)械臂的運(yùn)動(dòng)學(xué)逆解進(jìn)行了求解。

卷積神經(jīng)網(wǎng)絡(luò) ( Convolutional Neural Networks, CNN)在獲取數(shù)據(jù)特征方面得到廣泛的應(yīng)用。 本文基于某型7 自由度機(jī)械臂的運(yùn)動(dòng)學(xué)模型,對(duì)LeNet 模型進(jìn)行改進(jìn),設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)對(duì)機(jī)械臂運(yùn)動(dòng)學(xué)逆解的問(wèn)題進(jìn)行求解。

2 卷積神經(jīng)網(wǎng)絡(luò)模型搭建

對(duì)該7 自由度機(jī)械臂構(gòu)型連桿坐標(biāo)系進(jìn)行建立,坐標(biāo)系如圖1 所示。 DH 參數(shù)表如表1 所示。

圖1 7 自由度機(jī)械臂DH 坐標(biāo)系Fig.1 DH coordinates frames of the 7-DOF manipulator

表1 7 自由度機(jī)械臂DH 參數(shù)Table 1 DH parameters of the 7-DOF manipulator

各關(guān)節(jié)角度與末端位姿的關(guān)系如式(1)、式(2)所示。

式中,θ為第關(guān)節(jié)角度, T(θ) 為第1關(guān)節(jié)到第關(guān)節(jié)之間的變換矩陣,=1,2,…,7。

機(jī)械臂的末端位姿矩陣是通過(guò)7 個(gè)關(guān)節(jié)角計(jì)算得出,具有對(duì)應(yīng)關(guān)系,因此可以對(duì)神經(jīng)網(wǎng)絡(luò)模型輸入末端位姿矩陣來(lái)計(jì)算機(jī)械臂相應(yīng)的關(guān)節(jié)角角度。 在本文建立的卷積神經(jīng)網(wǎng)絡(luò)模型中,輸入層為3× 4 的位姿矩陣,包括3× 3 的旋轉(zhuǎn)矩陣與1× 3 的平移矩陣;輸出層為7 個(gè)神經(jīng)元,代表機(jī)械臂各個(gè)關(guān)節(jié)角度。

2.1 卷積核

數(shù)據(jù)的特征可以通過(guò)卷積核進(jìn)行卷積操作獲得。 由于所給的輸入層是3×4 的矩陣,并且該矩陣以列向量作為特征,所以輸入層選用的卷積核大小為3× 1,通過(guò)卷積核可以組合列向量的值,如式(3)所示。

2.2 激活函數(shù)

激活函數(shù)可以讓線性輸入變?yōu)榉蔷€性輸出,通過(guò)不同的神經(jīng)元個(gè)數(shù)以及激活函數(shù)可以完成映射關(guān)系的實(shí)現(xiàn)。 目前激活函數(shù)有多種,常用的有函數(shù)、函數(shù)以及函數(shù)。 由于函數(shù)相對(duì)于其他2 種激活函數(shù)的計(jì)算復(fù)雜度低、收斂速度快,并且不容易出現(xiàn)梯度消失與梯度飽和等問(wèn)題,因此本模型選用的激活函數(shù)為函數(shù),如式(4)所示。

2.3 損失函數(shù)

在模型訓(xùn)練中,需要衡量模型所得到的預(yù)測(cè)值與真實(shí)值之間的誤差,在機(jī)器學(xué)習(xí)中,將衡量誤差大小的函數(shù)稱為損失函數(shù)。 通常損失函數(shù)的值是正的,其值越大表示得到的模型的訓(xùn)練誤差越大。 平方誤差函數(shù)與交叉熵?fù)p失函數(shù)是目前比較常用的損失函數(shù)。 交叉熵?fù)p失函數(shù)通過(guò)計(jì)算得到輸出層的每個(gè)神經(jīng)元預(yù)測(cè)值在0 到1 之間,因此一般用于分類問(wèn)題中。 平方誤差函數(shù)直接得到預(yù)測(cè)值與真實(shí)值的誤差,可以用于函數(shù)擬合,所以損失函數(shù)使用平方誤差函數(shù),見(jiàn)式(5)。

2.4 優(yōu)化算法

根據(jù)已經(jīng)給出的損失函數(shù),為了求得最小化損失函數(shù)的值,需要通過(guò)優(yōu)化算法有限次迭代神經(jīng)網(wǎng)絡(luò)模型參數(shù)來(lái)盡可能降低損失函數(shù)的值。 目前神經(jīng)網(wǎng)絡(luò)使用較多的優(yōu)化算法有SGD 算法、Adam 算法等。 SGD 算法雖然可以達(dá)到全局最優(yōu),但是該算法需要自己設(shè)定學(xué)習(xí)率,對(duì)學(xué)習(xí)率的設(shè)定很嚴(yán)格,并且容易在模型訓(xùn)練過(guò)程中停在鞍點(diǎn),而Adam 算法不用人為設(shè)定干預(yù)學(xué)習(xí)率且容易跳過(guò)鞍點(diǎn)。 該模型所選用的優(yōu)化算法為Adam算法。

2.5 卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)設(shè)計(jì)

卷積神經(jīng)網(wǎng)絡(luò)能夠保留數(shù)據(jù)輸入的形狀從而較好地得到數(shù)據(jù)的特征。 LeNet是一個(gè)具有5層網(wǎng)絡(luò)結(jié)構(gòu)的CNN 模型,含有2 個(gè)卷積層、3 個(gè)全連接層及2 個(gè)池化層。 2 個(gè)卷積層卷積核大小為5× 5,輸出通道數(shù)為6 和16,3 個(gè)全連接層的輸出個(gè)數(shù)為120,84 和10,最后一層的10 代表模型的輸出種類個(gè)數(shù),LeNet 已經(jīng)成功用于手寫數(shù)字的識(shí)別。

本文對(duì)LeNet 模型進(jìn)行改進(jìn)設(shè)計(jì),模型總共設(shè)計(jì)7 層,前3 層結(jié)構(gòu)為卷積層,后4 層的結(jié)構(gòu)為全連接層,由于每一層輸入的數(shù)據(jù)尺寸較小且卷積核較小,因此該模型不包含池化層,并且增大卷積層輸出通道數(shù)以增加訓(xùn)練的參數(shù),增強(qiáng)擬合能力。

模型的輸入層是3×4 的矩陣,輸入層的卷積核為3× 1,輸出通道數(shù)為64,對(duì)矩陣每一個(gè)列向量的特征進(jìn)行學(xué)習(xí),下一層的卷積核為1× 1,輸出通道數(shù)為64,第3 層卷積核為1× 4,輸出通道數(shù)為256,第3 層對(duì)前一層數(shù)據(jù)的所有特征進(jìn)行學(xué)習(xí)。 后4 層全連接的輸出個(gè)數(shù)分別為256、128、64 和7,最后一層輸出數(shù)7 表示7 自由度機(jī)械臂的各個(gè)關(guān)節(jié)角角度。

為防止模型對(duì)某些神經(jīng)元過(guò)度依賴,造成模型過(guò)擬合問(wèn)題,可以在不改變輸出期望值的情況下對(duì)模型使用丟棄法,隨機(jī)丟棄一些神經(jīng)元。 該模型在第3 層與第4 層使用了丟棄法,丟棄概率為0.1。

3 卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練

本文建立的卷積神經(jīng)網(wǎng)絡(luò)如圖2 所示,模型的輸入信息為7 自由度機(jī)械臂的位姿矩陣,輸出值為7 自由度機(jī)械臂各個(gè)關(guān)節(jié)角角度,訓(xùn)練集為10 000組數(shù)據(jù)。 該卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程如下:

圖2 卷積神經(jīng)網(wǎng)絡(luò)模型Fig.2 Convolutional neural networks model

1)參數(shù)初始化設(shè)置。 由于偏置對(duì)于神經(jīng)網(wǎng)絡(luò)中的梯度流動(dòng)并無(wú)影響,神經(jīng)網(wǎng)絡(luò)偏置初始化為0。 但是當(dāng)神經(jīng)網(wǎng)絡(luò)初始權(quán)重也置為0 時(shí),正向計(jì)算時(shí)所有狀態(tài)值與激活值的結(jié)果為0,同時(shí)反向計(jì)算時(shí)所有梯度為0,那么對(duì)于整個(gè)神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程而言,相當(dāng)于梯度消失了,不能進(jìn)行任何有效的訓(xùn)練。 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中是基于梯度下降進(jìn)的,因此參數(shù)的均值為0,輸出和輸入數(shù)據(jù)的方差一致訓(xùn)練效果更好,可以通過(guò)對(duì)初始參數(shù)進(jìn)行高斯分布或均值分布達(dá)到該目的。 He等考慮了激活函數(shù)對(duì)輸出數(shù)據(jù)分布的影響,其正態(tài)分布初始化以0 為中心,標(biāo)準(zhǔn)差為式(6)。

式中,_為權(quán)重張量中輸入單位的數(shù)量。

該模型選用的激活函數(shù)為函數(shù),因此神經(jīng)網(wǎng)絡(luò)初始權(quán)重初始化方法為He 等的方法。 為了得到較快的訓(xùn)練速度與較好的訓(xùn)練精度,模型的_設(shè)置為64,設(shè)置為160。

2)正向傳播與反向傳播。 數(shù)據(jù)沿著神經(jīng)網(wǎng)絡(luò)模型的結(jié)構(gòu)進(jìn)行正向傳播,依次計(jì)算并存儲(chǔ)模型的中間變量,通過(guò)正向傳播得到的輸出值與真實(shí)值的平方差計(jì)算得到單個(gè)樣本的損失函數(shù),為了防止過(guò)擬合,同時(shí)計(jì)算范數(shù)正則化對(duì)模型的權(quán)重參數(shù)進(jìn)行約束,得到總的損失函數(shù)為式(7)、式(8):

式中,為總的損失函數(shù),為單個(gè)樣本損失函數(shù),為對(duì)權(quán)重參數(shù)范數(shù)正則化的值,的取值影響約束程度,k為權(quán)重參數(shù)。

通過(guò)反向傳播,從輸出層到輸入層,依據(jù)鏈?zhǔn)椒▌t計(jì)算神經(jīng)網(wǎng)絡(luò)中參數(shù)的梯度,并對(duì)參數(shù)進(jìn)行更新,最終得到卷積神經(jīng)網(wǎng)絡(luò)的模型。

3)實(shí)驗(yàn)配置與訓(xùn)練結(jié)果。 本文使用的開發(fā)語(yǔ)言為python3.7,深度學(xué)習(xí)平臺(tái)為tensorflow2.0,GPU 為NVIDIA GeForceGTX 950M,CPU 為Intel Core i5-6300HQ。 通過(guò)為160 次的訓(xùn)練得到卷積神經(jīng)網(wǎng)絡(luò)的損失值如圖3 所示,在訓(xùn)練過(guò)程中最后損失值接近于0,訓(xùn)練能夠收斂,訓(xùn)練效果較好。

圖3 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中損失值Fig.3 Loss value in convolution neural networks training

4 實(shí)驗(yàn)驗(yàn)證

為驗(yàn)證所設(shè)計(jì)模型對(duì)7 自由度機(jī)械臂運(yùn)動(dòng)學(xué)逆解求解的準(zhǔn)確度與有效性,通過(guò)設(shè)計(jì)軌跡跟蹤實(shí)驗(yàn)進(jìn)行驗(yàn)證。 實(shí)驗(yàn)內(nèi)容為:通過(guò)給定期望軌跡,用卷積神經(jīng)網(wǎng)絡(luò)求出7 自由度機(jī)械臂的各關(guān)節(jié)角度值,用所求得的角度通過(guò)運(yùn)動(dòng)學(xué)正解得到機(jī)械臂末端的運(yùn)動(dòng)軌跡,最后得到與期望軌跡誤差值。所定義的機(jī)械臂的期望軌跡為式(9):

從軌跡中選取66 個(gè)點(diǎn)的位姿信息輸入卷積神經(jīng)網(wǎng)絡(luò)模型中求運(yùn)動(dòng)學(xué)逆解得到各個(gè)關(guān)節(jié)角度如圖4 所示,所計(jì)算的關(guān)節(jié)角范圍在機(jī)械臂的給定范圍內(nèi),并且計(jì)算得到的各關(guān)節(jié)角角度的曲線為光滑曲線,因此機(jī)械臂的運(yùn)動(dòng)為連續(xù)運(yùn)動(dòng)。

圖4 機(jī)械臂各關(guān)節(jié)角角度曲線Fig.4 Angle curve of each joint angle of manipulator

把機(jī)械臂關(guān)節(jié)角角度通過(guò)運(yùn)動(dòng)學(xué)正解得到末端軌跡圖,如圖5 所示,基于卷積神經(jīng)網(wǎng)絡(luò)所求得的軌跡與期望軌跡基本重合,因此使用該方法進(jìn)行機(jī)械臂運(yùn)動(dòng)學(xué)逆解求解得到的結(jié)果較好。

圖5 軌跡對(duì)比圖Fig.5 Comparison of the trajectories

同時(shí),根據(jù)機(jī)械臂運(yùn)動(dòng)學(xué)正解的結(jié)果獲得本模型求解過(guò)程中實(shí)際軌跡點(diǎn)與期望軌跡點(diǎn)各個(gè)方向的誤差值與總體誤差值,分別如圖6 與圖7 所示。 從圖6 中得出所求實(shí)際軌跡點(diǎn)與期望軌跡點(diǎn)在各個(gè)方向上的誤差在2.5 mm 以內(nèi),從圖7 中得出總的誤差在3 mm 以內(nèi),平均誤差為1.2 mm。模型求解的誤差在實(shí)際任務(wù)中能夠滿足所需的運(yùn)動(dòng)要求。 本方法求解的時(shí)間為12.96 ms,而使用該機(jī)械臂自帶的粒子群算法計(jì)算時(shí)間為428 ms,使用傳統(tǒng)的梯度投影法計(jì)算時(shí)間為637 ms,本方法在計(jì)算時(shí)間上得到了明顯提高。 通過(guò)對(duì)軌跡跟蹤實(shí)驗(yàn)的誤差分析表明所設(shè)計(jì)的模型能夠用來(lái)求解7 自由度機(jī)械臂運(yùn)動(dòng)學(xué)逆解,并且具有一定的求解精度與較短的求解時(shí)間,滿足所執(zhí)行實(shí)際任務(wù)的需求。

圖6 實(shí)際軌跡與期望軌跡各個(gè)方向誤差Fig.6 Error of the actual trajectory and expected trajectory in all directions

圖7 實(shí)際軌跡與期望軌跡總誤差Fig.7 Total error between actual trajectory and expected trajectory

5 結(jié)論

本文針對(duì)7 自由度冗余機(jī)械臂運(yùn)動(dòng)學(xué)逆解的求解問(wèn)題,設(shè)計(jì)了卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行求解,得到機(jī)械臂運(yùn)動(dòng)軌跡到各個(gè)關(guān)節(jié)角度之間的映射關(guān)系。 通過(guò)對(duì)LeNet 模型進(jìn)行改進(jìn),對(duì)卷積核、激活函數(shù)、損失函數(shù)、優(yōu)化算法、模型結(jié)構(gòu)與初始參數(shù)等進(jìn)行設(shè)計(jì)與選擇,建立了符合7 自由度機(jī)械臂運(yùn)動(dòng)學(xué)逆解求解問(wèn)題的卷積神經(jīng)網(wǎng)絡(luò)模型。 最后設(shè)計(jì)了軌跡跟蹤實(shí)驗(yàn)對(duì)所建立的卷積神經(jīng)網(wǎng)絡(luò)模型的有效性和求解精度進(jìn)行驗(yàn)證,結(jié)果表明使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)機(jī)械臂運(yùn)動(dòng)學(xué)逆解問(wèn)題求解方法有效。

猜你喜歡
運(yùn)動(dòng)學(xué)卷積軌跡
基于全卷積神經(jīng)網(wǎng)絡(luò)的豬背膘厚快速準(zhǔn)確測(cè)定
基于圖像處理與卷積神經(jīng)網(wǎng)絡(luò)的零件識(shí)別
基于MATLAB的工業(yè)機(jī)器人運(yùn)動(dòng)學(xué)分析與仿真
淺談求軌跡方程中的增解與漏解
無(wú)從知曉
基于深度卷積網(wǎng)絡(luò)與空洞卷積融合的人群計(jì)數(shù)
例析運(yùn)動(dòng)學(xué)中STS類信息題
卷積神經(jīng)網(wǎng)絡(luò)概述
捕捉物體運(yùn)動(dòng)軌跡
“必修1”專題復(fù)習(xí)與訓(xùn)練
新沂市| 扶风县| 阿合奇县| 靖安县| 桐乡市| 乡宁县| 银川市| 襄樊市| 平乡县| 福鼎市| 贵南县| 巴林左旗| 濮阳市| 阿勒泰市| 大城县| 兴化市| 福安市| 甘南县| 张家港市| 苍山县| 盈江县| 金沙县| 万宁市| 神农架林区| 韶关市| 河西区| 司法| 遂溪县| 阿鲁科尔沁旗| 禄劝| 双流县| 卢湾区| 甘孜县| 桐庐县| 璧山县| 秦安县| 都昌县| 泾源县| 乳源| 潮安县| 新民市|