999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

欠自由度假肢對(duì)目標(biāo)定位的實(shí)現(xiàn)

2018-10-09 02:51:24呂學(xué)義
機(jī)電工程技術(shù) 2018年9期

呂學(xué)義,高 波

(山東科技大學(xué),山東青島 266590)

1 欠自由度假肢的定位方法

1.1 定位方法簡(jiǎn)介

要想讓假肢抓取到目標(biāo),必須要先得到目標(biāo)物體的位姿矩陣。本文作者提出的定位方法通過(guò)兩個(gè)姿態(tài)傳感器和一個(gè)激光測(cè)距儀獲取到了目標(biāo)的位姿矩陣。其中,姿態(tài)傳感器用于檢測(cè)者頭部的姿態(tài),激光測(cè)距儀用于確認(rèn)目標(biāo)。

1.2 硬件的安裝位置

兩個(gè)姿態(tài)傳感器分別安裝在假肢和使用者的頭部上;激光測(cè)距儀安置在左耳處。

圖1 傳感器安裝示意圖

1.3 定位方法的原理

如圖2所示,S坐標(biāo)系是基礎(chǔ)坐標(biāo)系;N坐標(biāo)系是頸部中心坐標(biāo)系;H坐標(biāo)系是頭部中心坐標(biāo)系;E坐標(biāo)系是測(cè)距坐標(biāo)系;記某坐標(biāo)系i繞其x軸轉(zhuǎn)動(dòng)的角度為αi,繞其y軸轉(zhuǎn)動(dòng)的角度記為 βi,繞其z軸轉(zhuǎn)動(dòng)的角度記為γi;記H坐標(biāo)系相對(duì)于N坐標(biāo)系的描述為。

圖2 目標(biāo)物體位姿矩陣獲取示意圖

N坐標(biāo)的原點(diǎn)在S坐標(biāo)系中的描述是(xs,ys,zs)。使用者頭部上下轉(zhuǎn)動(dòng)等價(jià)于N坐標(biāo)系繞S坐標(biāo)系的y軸轉(zhuǎn)動(dòng)βs角度。因此,為:

H坐標(biāo)系的原點(diǎn)在N坐標(biāo)系中的描述是(0,0,zn),各軸的方位與N坐標(biāo)系的各軸的方位一致。使用者頭部左右轉(zhuǎn)動(dòng)相當(dāng)于H坐標(biāo)系繞N坐標(biāo)系的Z軸旋轉(zhuǎn)γn。因此,為:

E坐標(biāo)系的坐標(biāo)原點(diǎn)在H坐標(biāo)系里的描述是(0,yn,0),其x軸的方向與激光束的方位重合,其y軸的方向與H坐標(biāo)的y軸方向重合,其z軸的方位與H坐標(biāo)系的z軸有個(gè)固定的角度βh。因此,為:

激光測(cè)距儀測(cè)得的距離用d表示,記:M=[d,0,0,1]。

通過(guò)下式即可得到目標(biāo)的位置P:

2 定位方法的誤差校正

前文所述定位方法的精度受以下兩個(gè)方面的因素影響。首先,定位系統(tǒng)采用的姿態(tài)傳感器有漂移累計(jì)誤差。另外,地磁場(chǎng)是弱磁場(chǎng),測(cè)量過(guò)程中很容易被傳感器周圍的環(huán)境所干擾[1],使得姿態(tài)傳感器測(cè)量的姿態(tài)不準(zhǔn)確;其次,一些坐標(biāo)變換的參數(shù)都人工測(cè)量得到的,必然地存在誤差。為了降低定位方法的誤差,本文作者提出基于BP神經(jīng)網(wǎng)絡(luò)的誤差校正。

2.1 BP神經(jīng)網(wǎng)絡(luò)的原理

BP神經(jīng)網(wǎng)絡(luò)是一種利用誤差反向傳播算法的前饋型網(wǎng)絡(luò),是迄今為止應(yīng)用最為廣泛的神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)目前廣泛用于函數(shù)逼近、模式識(shí)別、數(shù)據(jù)挖掘、系統(tǒng)辨識(shí)與自動(dòng)控制等領(lǐng)域[2]。

圖3所示的3層網(wǎng)絡(luò)為例,具體說(shuō)明BP網(wǎng)絡(luò)學(xué)習(xí)算法[3]:

圖3 三層BP神經(jīng)網(wǎng)絡(luò)

設(shè)訓(xùn)練樣本的輸入集合為P={P1,P2,P3,…,Pn},輸出集合為T={T1,T2,T3,…,Ty}。其中任意一個(gè)訓(xùn)練樣本 的 輸 入 為Pm={Pm,1,Pm,2,Pm,3,…,Pm,r} ,輸 出 為tm={tm,1,tm,2,tm,3,…,tm,S2}, 對(duì) 應(yīng) 的 網(wǎng) 絡(luò) 輸 出 為;輸入層共有r個(gè)神經(jīng)元,隱含層共有S1個(gè)神經(jīng)元,輸出層共有S2個(gè)神經(jīng)元;隱含層第i個(gè)神經(jīng)元對(duì)應(yīng)的激活函數(shù)為,輸出層第k個(gè)神經(jīng)元對(duì)應(yīng)的激活函數(shù)為。

當(dāng)網(wǎng)絡(luò)進(jìn)行第t次訓(xùn)練,輸入為第m個(gè)樣本時(shí):

(1)各層的輸出

①隱含層第i個(gè)神經(jīng)元的輸出為:

②輸出層第k個(gè)神經(jīng)元的輸出為:

(2)定義誤差函數(shù)為

(3)利用梯度下降法求各層權(quán)值的變化

①輸出層第k個(gè)神經(jīng)元和隱含層第i個(gè)神經(jīng)元之間權(quán)值的變化量:

同理,輸出層第k個(gè)神經(jīng)元和隱含層第i個(gè)神經(jīng)元之間閥值的變化量為:

②隱含層權(quán)值變化

隱含層第j個(gè)神經(jīng)元與輸入層第i個(gè)神經(jīng)元之間權(quán)值的變化量為:

同理,隱含層第i個(gè)神經(jīng)元和輸入層第j個(gè)神經(jīng)元之間閥值的變化量為:

因此,隱含層、輸出層的權(quán)值和閥值的修正公式如下:

2.2 BP神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)

在進(jìn)行BP網(wǎng)絡(luò)設(shè)計(jì)時(shí),一般應(yīng)從網(wǎng)絡(luò)的層數(shù)、每層中的神經(jīng)元個(gè)數(shù)、初始值以及學(xué)習(xí)方法等方面來(lái)進(jìn)行考慮[4]。

(1)網(wǎng)絡(luò)的層數(shù)

理論上早已證明:具有偏差和至少一個(gè)S型隱含層加上一個(gè)線性輸出層的網(wǎng)絡(luò),能夠逼近任何有理函數(shù)[4]。所以,據(jù)此確定網(wǎng)絡(luò)的層數(shù)為3層,僅有一個(gè)隱含層。

表1 S1=2,3,4,5,6,7,…,30時(shí)的網(wǎng)絡(luò)訓(xùn)練結(jié)果

(2)每層的神經(jīng)元數(shù)

由于輸入、輸出樣本為點(diǎn)的三維坐標(biāo),因此輸入層和輸出層的神經(jīng)元數(shù)均為3個(gè)。接下來(lái)選取多少個(gè)隱層節(jié)點(diǎn)才能滿足系統(tǒng)精度的要求?這在理論上并沒(méi)有一個(gè)明確的規(guī)定[5]。在具體操作時(shí),通常的做法是對(duì)不同神經(jīng)元數(shù)進(jìn)行訓(xùn)練對(duì)比,確定一個(gè)最佳的節(jié)點(diǎn)數(shù),然后加上一點(diǎn)余量即可。

采用traingd訓(xùn)練函數(shù)和learngd學(xué)習(xí)函數(shù)。為了節(jié)省訓(xùn)練時(shí)間,選擇誤差目標(biāo)為net.trainParam.goal=0.14。通過(guò)改變網(wǎng)絡(luò)隱含層的節(jié)點(diǎn)數(shù),對(duì)比不同節(jié)點(diǎn)數(shù)下網(wǎng)絡(luò)訓(xùn)練所需的循環(huán)次數(shù)和訓(xùn)練時(shí)間來(lái)確定一個(gè)合適的隱層節(jié)點(diǎn)數(shù)。各節(jié)點(diǎn)數(shù)的訓(xùn)練結(jié)果如表1所示。 可以看出:當(dāng)S1=11時(shí)較為合適,再加上2個(gè)神經(jīng)元。所以,S1=13。

(3)初始權(quán)值的選取

初始權(quán)值的選取要合適。威得羅等[6]提出了一種選定初始權(quán)值的策略:選擇權(quán)值的量級(jí)為 S1。對(duì)應(yīng)地,在MATLAB工具箱中,可采用函數(shù)nwtan來(lái)初始化隱含層權(quán)值。但此策略只能用于第一隱含層,除此之外的隱含層的初始值在(-1,1)之間取隨機(jī)數(shù)。

(4)學(xué)習(xí)速率的選取

學(xué)習(xí)速率決定每一次循環(huán)訓(xùn)練中所產(chǎn)生的權(quán)值變化量。與初始權(quán)值的確定過(guò)程一樣,在確定一個(gè)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速率中,要對(duì)比幾個(gè)不同的學(xué)習(xí)速率下,網(wǎng)絡(luò)訓(xùn)練過(guò)程中誤差平方和∑e2的變化情況。據(jù)此,通過(guò)對(duì)比,將學(xué)習(xí)速率確定為0.035。但是通常情況下,采取自適應(yīng)學(xué)習(xí)速率這種方法來(lái)確定學(xué)習(xí)速率。

(5)期望誤差的選取

在設(shè)計(jì)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中,期望誤差也應(yīng)當(dāng)通過(guò)對(duì)比訓(xùn)練后確定一個(gè)合適的值[7];

期望誤差的選取與隱含層的節(jié)點(diǎn)數(shù)有關(guān)。前文將隱含層的節(jié)點(diǎn)數(shù)定為13,在MATLAB中,網(wǎng)絡(luò)誤差下降到0.001 73時(shí),過(guò)好幾分鐘網(wǎng)絡(luò)誤差才會(huì)繼續(xù)下降。因此,將期望誤差選取為0.001 8,但是只針對(duì)traingd訓(xùn)練函數(shù)和learngd學(xué)習(xí)函數(shù)。

(6)BP算法的改進(jìn)方法

能加快訓(xùn)練速度,避免陷入局部極小值的常用方法有:附加動(dòng)量法、自適應(yīng)學(xué)習(xí)速率法、誤差函數(shù)改進(jìn)法等。在此,采用附加動(dòng)量和自適應(yīng)學(xué)習(xí)速率這兩種方法。

3 BP神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)

在MATLAB中對(duì)所設(shè)計(jì)的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)驗(yàn)證,需要用到神經(jīng)網(wǎng)絡(luò)工具箱,該工具箱是在MATLAB環(huán)境下開發(fā)出來(lái)的[8]。

3.1 所設(shè)計(jì)的BP神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)

clear all;

clc;

Fop=fopen(′P.txt′,′rb′);

[P,countp]=fscanf(Fop,′%f′,[3 inf]);Fot=fopen(′T.txt′,′rb′);

[T,countt]=fscanf(Fot,′%f′,[3 inf]);Fotc=fopen(′C.txt′,′rb′);[C,counttc]=fscanf(Fotc,′%f′,[3,inf]);

fclose(′all′);

P=P*1000;

T=T*1000;

C=C*1000;

[P,psp]=mapminmax(P);

[T,pst]=mapminmax(T);

C=mapminmax(′apply′,C,psp);

net=newff([-1 1;-1 1;-1 1;],[13,3],{′tansig′,′pure?lin′},′traingd′,′learngd′,′mse′);

net.layers{1}.initFcn=′initnw′;

net.inputWeights{1,1}.initFcn= ′nwtan′;

net.biases{1,1}.initFcn= ′nwtan′;

net.layers{2}.initFcn=′initwb′;

net.inputWeights{2,1}.initFcn= ′rands′;

net.biases{2,1}.initFcn= ′rands′;

net=init(net);

net.trainParam.goal=0.000150;

net.trainParam.epochs=200000;

net.trainParam.show=25;

net.trainParam.showWindow=1;

net.trainParam.lr=0.035;

net.trainParam.mc=0.95;

Cyz=sim(net,C);

Cyz=mapminmax(′reverse′,Cyz,pst);

Cyz=Cyz/1000;

Fotc1=fopen(′C1.txt′, ′rb′); [C1, countt2] =fs?canf(Fotc1,′%f′,[3,inf]);

C1=C1*1000;

x=0;y=0;z=0;

for i=1:19

x=x+(Cyz(1,i)-C1(1,i))^2;

y=y+(Cyz(2,i)-C1(2,i))^2;

z=z+(Cyz(3,i)-C1(3,i))^2;

end

plot(wc);

圖4 校正前定位系統(tǒng)的誤差

圖5 校正后定位系統(tǒng)的誤差

3.2 實(shí)驗(yàn)結(jié)果

待網(wǎng)絡(luò)訓(xùn)練完成后,將19個(gè)驗(yàn)證點(diǎn)的坐標(biāo)值輸入訓(xùn)練后的網(wǎng)絡(luò),得到網(wǎng)絡(luò)的輸出值。然后,將輸出值與實(shí)際值進(jìn)行對(duì)比,得到誤差。由圖4、圖5可以看出:基于19個(gè)驗(yàn)證點(diǎn)時(shí),校正前系統(tǒng)的最小誤差為304.810 7 mm,最大誤差為422.320 6 mm;校正后系統(tǒng)的最小誤差為0.531 7 mm,最大誤差為2.2147 mm;因此所設(shè)計(jì)的BP神經(jīng)網(wǎng)絡(luò)能有效地降低所設(shè)計(jì)的定位系統(tǒng)的誤差。

4 小結(jié)

設(shè)計(jì)的BP神經(jīng)網(wǎng)絡(luò),在MATLAB里驗(yàn)證,驗(yàn)證結(jié)果表明所設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)能極大地提高定位方法的精度。

主站蜘蛛池模板: 精品99在线观看| 91系列在线观看| 久久中文电影| 999精品在线视频| 午夜国产小视频| 亚洲国产日韩一区| 亚洲欧美日本国产综合在线| 老司国产精品视频| 亚洲av无码牛牛影视在线二区| 在线免费观看a视频| 激情视频综合网| 中文字幕在线不卡视频| 国产成人高清亚洲一区久久| 成人午夜网址| 婷婷成人综合| 色偷偷av男人的天堂不卡| 国产精品不卡永久免费| 精品三级网站| 在线高清亚洲精品二区| 亚洲欧美另类中文字幕| 激情無極限的亚洲一区免费| 伊人久久大线影院首页| 亚洲全网成人资源在线观看| 97国产成人无码精品久久久| 久久夜色精品| 久久窝窝国产精品午夜看片| 久久黄色视频影| 色欲国产一区二区日韩欧美| 国产AV毛片| 国产精品尤物铁牛tv| 国产爽歪歪免费视频在线观看 | 国产玖玖视频| 色婷婷在线播放| 国产成人综合亚洲欧洲色就色| 免费毛片全部不收费的| 欧美日韩福利| 一区二区无码在线视频| 五月婷婷伊人网| 欧美区在线播放| 一区二区三区国产精品视频| 中美日韩在线网免费毛片视频| 欧美午夜在线视频| 欧洲av毛片| 亚洲永久精品ww47国产| 欧美区国产区| 伊人色在线视频| 伊人久久青草青青综合| 亚洲啪啪网| 国产综合另类小说色区色噜噜 | 亚洲午夜福利在线| 五月激情综合网| 毛片大全免费观看| 欧美一级片在线| 午夜高清国产拍精品| 玩两个丰满老熟女久久网| 日韩专区第一页| 狠狠色婷婷丁香综合久久韩国 | 国产免费高清无需播放器| 亚洲日本中文字幕乱码中文| 日韩一级二级三级| 97青青青国产在线播放| 台湾AV国片精品女同性| 欧美国产视频| 一本无码在线观看| 老司机精品久久| 在线免费观看AV| 亚洲男女在线| 四虎永久在线视频| 亚洲人成人伊人成综合网无码| 国产91精品调教在线播放| 国产靠逼视频| 亚洲天堂网在线观看视频| 欧美成人手机在线观看网址| 国产一二三区在线| 97视频精品全国免费观看| 青青草原国产av福利网站| 99热最新网址| 久久久久久尹人网香蕉| 日韩精品亚洲一区中文字幕| 在线无码私拍| 国模在线视频一区二区三区| 亚洲另类色|