譚 爽,李麗宏*,崔國強(.太原理工大學(xué)信息工程學(xué)院,太原 03004;.山西萬立科技有限公司,太原 03003)
隨著我國經(jīng)濟的蓬勃發(fā)展,高層建筑不斷涌現(xiàn),玻璃以其良好的采光性、保溫性以及實用美觀等優(yōu)點被大量應(yīng)用于高層建筑的外墻壁。但是由于玻璃幕墻長期暴露在外面,容易蒙塵納垢,因此需要定期對其進行清洗以保證玻璃的光潔美觀?,F(xiàn)階段玻璃幕墻的清洗工作主要依靠人工搭乘吊籃或腰系繩索完成,這種傳統(tǒng)的清洗方法勞動強度大,成本高,同時也十分危險[1],因此玻璃幕墻清洗機器人應(yīng)運而生。利用清洗機器人代替人工進行高樓玻璃幕墻的清洗作業(yè)能夠有效降低高層建筑的清洗成本,改善工人的勞動環(huán)境,提高工作率,具有相當(dāng)?shù)纳鐣?、?jīng)濟意義和廣闊的應(yīng)用前景[2]。
清洗作業(yè)系統(tǒng)是清洗機器人準(zhǔn)確完成清洗作業(yè)的關(guān)鍵,本文設(shè)計的清洗作業(yè)系統(tǒng)是利用空間冗余機械臂完成清洗作業(yè)。機械臂末端位姿精度是反映清洗機器人性能的一個重要指標(biāo),也是確保機器人正常工作、實現(xiàn)高精度工作要求的保證[3]??v觀國內(nèi)外現(xiàn)有研究,清洗機器人的末端位姿的獲取方式主要依賴于傾角傳感器完成對各個關(guān)節(jié)旋轉(zhuǎn)角度的采集,實現(xiàn)對機器人運動末端的精確定位。受戶外環(huán)境的影響,安裝在機器人上的傾角傳感器在數(shù)據(jù)采集過程會受到很多隨機因素的干擾,導(dǎo)致測量結(jié)果不準(zhǔn)確,對實際工程中清洗機器人末端位姿動力學(xué)模型的精確完整構(gòu)建造成困難,嚴(yán)重影響了清洗機器人清洗作業(yè)的準(zhǔn)確完成,因此如何進行有效的信號處理是目前清洗機器人研究領(lǐng)域的難點問題。
當(dāng)前已有大量學(xué)者對提高傾角傳感器測量精度方面進行相關(guān)研究,例如:朱月青[4]等為消除溫度對傾角傳感器的影響,采用BP神經(jīng)網(wǎng)絡(luò)法對傾角傳感器的輸出電壓進行數(shù)據(jù)融合,將傳感器的測量精度提高到2%;邵曉敏[5]等通過對傾角傳感器輸入和輸出之間關(guān)系進行分析研究,采用最小二乘法對傳感器進行信號處理,將傾角傳感器輸出信號的相對誤差控制在1.7%以內(nèi);吳俊杰[6]等利用卡爾曼濾波法將傾角傳感器在測量過程中的干擾信號濾除,使傾角傳感器在10°~20°測量范圍內(nèi)將測量誤差控制在2.8%以內(nèi);張起朋[7]等根據(jù)傾角傳感器的測量原理,分別對傳感器測量角度在測量無誤差和誤差下的求解模型,建立含誤差項的求解模型,得到傾角傳感器角度測量的標(biāo)定算法,使傳感器的測量角度相對誤差控制在1.2%以內(nèi)。
雖然,上述研究均能提高傾角傳感器的測量精度,但在實際應(yīng)用中,傾角傳感器在進行信號處理時往往存在操作復(fù)雜、精度低、數(shù)據(jù)處理速度慢等不足,難以獲得很好的處理結(jié)果。因此,近年來,探索研究多種方法的相互結(jié)合實現(xiàn)優(yōu)勢互補成為學(xué)者們關(guān)注的熱點,并且成效顯著。基于此,本文提出一種簡單可行且精度較高的傳感器信號處理方法,利用Savitzky-Golay平滑濾波技術(shù)對傳感器輸出信號進行濾波預(yù)處理,再用處理后的傳感器信號建立神經(jīng)網(wǎng)絡(luò)模型。研究結(jié)果表明,該方法有效地減小了誤差干擾,使傳感器信號的測量精度提高到0.91%,為清洗機器人準(zhǔn)確完成清洗作業(yè)提供了技術(shù)借鑒。
圖1 清洗作業(yè)系統(tǒng)結(jié)構(gòu)圖
清洗機器人主要由攀爬移動控制系統(tǒng)和清洗作業(yè)系統(tǒng)兩部分組成,其中,攀爬移動控制系統(tǒng)主要通過四肢完成攀爬移動,清洗作業(yè)系統(tǒng)主要通過清洗臂完成清洗作業(yè)。
清洗作業(yè)系統(tǒng)的結(jié)構(gòu)主要包括大臂、小臂、底座和清洗裝置,其系統(tǒng)結(jié)構(gòu)圖如圖1所示。
清洗機器人清洗作業(yè)系統(tǒng)中的傾角傳感器如圖2 所示,其敏感元件為硅微敏感元件。傾角傳感器的內(nèi)部存在一個對加速度敏感的質(zhì)量塊,質(zhì)量塊通過懸臂簧片(具有彈性)固定在敏感器殼體上,且在質(zhì)量塊的上方和下方有一對電極板,兩個電極板分別與質(zhì)量塊形成1個相等的電容,當(dāng)傾角傳感器發(fā)生角度變化時,慣性力使質(zhì)量塊產(chǎn)生位移,使電極板與質(zhì)量塊之間的間距發(fā)生變化,從而引起電容量發(fā)生變化,根據(jù)電容量的變化值即可得到變化的角度值。
圖2 傾角傳感器
清洗機器人在清洗作業(yè)過程中,通過采集安裝在大臂、小臂上的傾角傳感器獲得清洗臂各個關(guān)節(jié)的旋轉(zhuǎn)角度,并在控制器中對采集到的傾角傳感器數(shù)據(jù)進行信號處理從而獲得清洗臂各個關(guān)節(jié)的角度,建立運動學(xué)方程實現(xiàn)對清洗臂末端的準(zhǔn)確定位。系統(tǒng)原理框圖如圖3所示。
圖3 系統(tǒng)原理框圖
在實際測量過程中,由于機器人操作環(huán)境為戶外,所以安裝在清洗臂上的傾角傳感器在數(shù)據(jù)采集過程會受到很多隨機因素的干擾,導(dǎo)致測量結(jié)果不準(zhǔn)確,此外,清洗作業(yè)系統(tǒng)在長時間工作后,由于受傳感器輸出信號的誤差累積量的影響,清洗臂末端的精度將會受到嚴(yán)重影響,導(dǎo)致清洗作業(yè)系統(tǒng)無法正常完成清洗作業(yè),因此本文通過Savitzky-Golay平滑濾波技術(shù)對傾角傳感器進行濾波預(yù)處理得到較準(zhǔn)確的傳感器輸出數(shù)字信號,并在此基礎(chǔ)上建立神經(jīng)網(wǎng)絡(luò)模型,提高傳感器的測量精度,從而提高清洗臂末端的精度,減少誤差,從而保證機器人清洗系統(tǒng)能夠準(zhǔn)確完成清洗作業(yè)。
Savitzky-Golay平滑濾波是由Savitzky A和Golay M提出的一種基于多項式的最小二乘法擬合濾波方法,是一種自適應(yīng)的迭代算法,這種方法不依賴于輸入數(shù)據(jù)的模型和先驗統(tǒng)計特征,而且運算量相對較小,能夠平滑噪聲數(shù)據(jù),消除噪聲干擾,適合在線進行[8]。Savitzky-Golay平滑濾波法是通過將待處理數(shù)據(jù)中某一連續(xù)的數(shù)據(jù)點選用相應(yīng)的擬合階次進行最小二乘法多項式擬合,進而將擬合得到的曲線在數(shù)據(jù)中心點處的取值作為濾波后的數(shù)據(jù)值,并依此對其他待處理數(shù)據(jù),重復(fù)此過程,從而達到對所有數(shù)據(jù)進行濾波的目的[9]。Savitzky-Golay平滑濾波法的具體濾波過程如下:
設(shè)x(n)中的一組數(shù)據(jù)為x(i),i=-M,…,0,…,M通過構(gòu)造一個p階多項式fi來擬合x(i),其中,
(1)
則其總的誤差平方和E為:
(2)
為使曲線的擬合度最高、擬合誤差最小,通過令E對各系數(shù)的導(dǎo)數(shù)為0,從而達到總的誤差平方和E最小[10],即:
因此可得:
(3)
即:
(4)
(5)
因此,通過確定M(需要擬合的單邊點數(shù))、p(多項式的階次),則可求出Fr和Sk+r,代入式(5)中即可求出系數(shù)a0,a1,…ap從而確定多項式fi,進而求出濾波后的數(shù)據(jù)值。
圖4 傾角傳感器濾波預(yù)處理后誤差對比圖
本文首先通過對傳感器采集到原始的數(shù)字量信號按照Savitzky-Golay平滑濾波法進行濾波預(yù)處理,在擬合單邊點數(shù)M=15、多項式階次P=3時處理結(jié)果的誤差曲線如圖4所示。由圖4可以看出,Savitzky-Golay平滑濾波法能有效的減少傳感器輸出誤差,提高測量精度,能夠為建立神經(jīng)網(wǎng)絡(luò)模型提供準(zhǔn)確的樣本數(shù)據(jù)。
BP神經(jīng)網(wǎng)絡(luò)是由Rumerlhart D E和McCelland J L及其研究小組于1986年提出來的,又稱多層前饋神經(jīng)網(wǎng)絡(luò),具有較強的泛化功能、良好的自我學(xué)習(xí)能力,它系統(tǒng)的解決了多層神經(jīng)元網(wǎng)絡(luò)中權(quán)值的變換問題,克服了簡單感知不能解決的異或問題[11]。
神經(jīng)網(wǎng)絡(luò)算法是一種信息正向傳播和誤差逆向傳播算法,主要由輸入層、中間隱含層和輸出層三部分組成[12],其結(jié)構(gòu)圖如圖5所示。訓(xùn)練樣本數(shù)據(jù)通過輸入層輸入神經(jīng)網(wǎng)絡(luò),通過中間隱含層神經(jīng)元的多次迭代計算,將運算結(jié)果傳遞到輸出層,之后在輸出層將運算結(jié)果與期望輸出值進行比較,若兩者之間的誤差滿足設(shè)定誤差精度,則結(jié)束訓(xùn)練,如果兩者之間的誤差超過設(shè)定的誤差精度,神經(jīng)元會按著減小目標(biāo)輸出與實際輸出誤差的方向,從輸出層出發(fā)經(jīng)由中間隱含層逐層逆向傳回至輸入層,并在這個過程中修改各層權(quán)值。隨著訓(xùn)練的不斷循環(huán)進行,使得網(wǎng)絡(luò)輸出值逐漸向期望輸出值逼近[13]。
圖5 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
3.2.1 神經(jīng)網(wǎng)絡(luò)模型參數(shù)設(shè)置
①訓(xùn)練函數(shù)
BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)主要有traingd(梯度下降法)、trainbfg(擬牛頓算法)、traincgb(Plwell-Beale共軛梯度法)和trainlm(Levenberg-Marquardt算法)等函數(shù),其中traingd函數(shù)收斂速度慢,對訓(xùn)練結(jié)果受學(xué)習(xí)步長影響大且陷于局部極小,適用于簡單網(wǎng)絡(luò);trainbfg函數(shù)具有單步計算量大和迭代次數(shù)少的特點,適用于小型網(wǎng)絡(luò);traincgb收斂速度快,適用于較大規(guī)模計算;trainlm函數(shù)收斂速度快且學(xué)習(xí)效率高,適用于中等網(wǎng)絡(luò)[14]。通過分析神經(jīng)網(wǎng)絡(luò)模型各個訓(xùn)練函數(shù)的優(yōu)缺點,本文選用具有學(xué)習(xí)速度較快、單次迭代降低誤差幅度大等特點的trainlm算法作為BP神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練函數(shù)。
②傳遞函數(shù)
傳遞函數(shù)是連接輸入層與隱含層和隱含層與輸出層之間的函數(shù),傳遞函數(shù)的不同直接影響著BP神經(jīng)網(wǎng)絡(luò)的映射能力。傳遞函數(shù)一般有閾值函數(shù)、線性函數(shù)、sigmoid函數(shù)3種函數(shù)形式,由于Sigmoid函數(shù)結(jié)構(gòu)簡單、非線性映射能力強等優(yōu)點以及輸出值的歸一化處理,本文輸入層與隱含層之間選取tansig正切sigmoid函數(shù)作為傳遞函數(shù),隱含層與輸出層之間選用purelin線性函數(shù)作為傳遞函數(shù),從而實現(xiàn)輸入和輸出間的非線性映射。
③訓(xùn)練參數(shù)設(shè)置
神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練參數(shù)設(shè)定如表1所示。
表1 神經(jīng)網(wǎng)絡(luò)參數(shù)表
3.2.2 神經(jīng)網(wǎng)絡(luò)模型的建立
為了提高訓(xùn)練樣本迭代運算的速率,提高神經(jīng)網(wǎng)絡(luò)模型的運算速度,需要將訓(xùn)練樣本數(shù)據(jù)進行歸一化處理,即:將輸入變量進行數(shù)據(jù)標(biāo)準(zhǔn)化,使輸入值落在[0~1]區(qū)間內(nèi),本文選取式(6)對輸入變量進行歸一化處理[15]:
(6)
式中:yi為歸一化處理后樣本值,xi為輸入樣本原始數(shù)據(jù),xmin為輸入原始樣本數(shù)據(jù)中的最小值,xmax為輸入原始樣本數(shù)據(jù)中的最大值。
由于傾角傳感器是硅微傳感器,其主要材料為薄硅片,利用半導(dǎo)體加工技術(shù)制作而成,當(dāng)傳感器所在環(huán)境溫度變化時,硅材料的彈性模量、拉伸強度、結(jié)構(gòu)熱應(yīng)力以及硅材料楊氏模量等物理特性受溫度影響較大[16],從而使硅微傳感器的諧振頻率、品質(zhì)因數(shù)等參數(shù)隨溫度的變化產(chǎn)生不同的變化,導(dǎo)致傾角傳感器產(chǎn)生測量誤差,影響傾角測量的準(zhǔn)確度。因此可知,傾角傳感器的輸出角度數(shù)據(jù)不僅與傳感器輸出的數(shù)字信號有關(guān),還與當(dāng)前的環(huán)境溫度有關(guān),因此本文選取傾角傳感器采集的數(shù)字信號、溫度作為模型的輸入?yún)?shù),傳感器測量角度值作為輸出,即2個輸入神經(jīng)元和1個輸出神經(jīng)元;本文采用節(jié)點漸增法來確定隱含層神經(jīng)元的數(shù)量,即:先用較少數(shù)目的隱含層神經(jīng)元的數(shù)量構(gòu)成神經(jīng)網(wǎng)絡(luò)訓(xùn)練,然后根據(jù)訓(xùn)練精度逐漸增加隱含層神經(jīng)元的個數(shù),直到達到設(shè)定的訓(xùn)練精度為止,經(jīng)過多次訓(xùn)練,當(dāng)隱含層神經(jīng)元的數(shù)量為11時,達到設(shè)定的訓(xùn)練精度。因此本文建立拓撲結(jié)構(gòu)為2∶11∶1的神經(jīng)網(wǎng)絡(luò)模型。
3.2.3 神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)
本文在MATLAB 7.0環(huán)境下建立如下式所示的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu):
net=newff(minmax(traininput),[11,1],{‘tansig’,‘purelin’},‘trainlm’)
(7)
式中:net為本文建立的BP神經(jīng)網(wǎng)絡(luò)模型;newff為在MATLAB7.0中生成的BP神經(jīng)網(wǎng)絡(luò)函數(shù);minmax()用以求解輸入樣本參數(shù)的最小值和最大值;[11,1]中“11”代表中間隱含層的神經(jīng)元個數(shù),“1”代表輸出層神經(jīng)元個數(shù);{‘tansig’,‘purelin’}分別表示輸入層到隱含層和隱含層到輸出層的傳遞函數(shù);‘trainlm’如前文所述表示神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)。
γ=purelin{iw2[tan sig(iw1M+b1)]+b2}
(8)
式中:γ是傳感器輸出的角度值;iw1、iw2分別是所建神經(jīng)網(wǎng)絡(luò)模型輸入層到隱含層的權(quán)值、隱含層到輸出層的權(quán)值;b1、b2分別是網(wǎng)絡(luò)模型輸入層到隱含層的閾值、隱含層到輸出層的閾值;式(8)中M=[μ,ω],μ表示經(jīng)過濾波處理后的數(shù)字信號,ω表示溫度。
將傾角傳感器固定在三軸精密轉(zhuǎn)臺(慣性器件標(biāo)定工具)上放入調(diào)溫箱中對傳感器進行數(shù)據(jù)采集,其中,轉(zhuǎn)臺產(chǎn)生的標(biāo)準(zhǔn)角度值作為度量傾角傳感器測量數(shù)據(jù)精度的真實值。通過數(shù)據(jù)采集得到包含溫度和傳感器輸出數(shù)字信號的150組數(shù)據(jù),然后將采集到的傳感器數(shù)字信號經(jīng)過Savitzky-Golay平滑濾波預(yù)處理得到濾波后的數(shù)字信號,再從150組包含溫度和濾波后傳感器數(shù)字信號的樣本數(shù)據(jù)中隨機選取120組數(shù)據(jù)建立神經(jīng)網(wǎng)絡(luò)模型,剩余30組樣本數(shù)據(jù)用來檢測所建模型的精度。建立的神經(jīng)網(wǎng)絡(luò)模型的誤差收斂曲線如圖6所示。
圖6 神經(jīng)網(wǎng)絡(luò)誤差收斂曲線
由圖6可以看出,當(dāng)訓(xùn)練步數(shù)為168步時,訓(xùn)練精度達到0.000 099 88,滿足訓(xùn)練目標(biāo)精度0.000 1的要求,收斂速度較快。
此外,本文還將30組檢驗樣本分別通過未加任何算法處理的傳感器采集的原始數(shù)據(jù)相對誤差、經(jīng)過Savitzky-Golay平滑濾波處理數(shù)據(jù)的相對誤差以及Savitzky-Golay和神經(jīng)網(wǎng)絡(luò)組合模型處理的相對誤差進行比較,誤差比較結(jié)果如表2所示。
表2 檢驗樣本數(shù)據(jù)誤差比較
注:相對誤差是指傳感器測量的角度值與轉(zhuǎn)臺產(chǎn)生的標(biāo)準(zhǔn)角度(即真實值)進行對比得到的相對誤差。
由表2可以看出,Savitzky-Golay和神經(jīng)網(wǎng)絡(luò)組合模型較未經(jīng)任何算法處理的傳感器測量的原始數(shù)據(jù)以及單一采用Savitzky-Golay平滑濾波技術(shù)處理的傳感器數(shù)據(jù)精度都高,由此可見將Savitzky-Golay平滑濾波技術(shù)和神經(jīng)網(wǎng)絡(luò)算法結(jié)合能夠有效地提高傳感器的測量精度,可為清洗機器人準(zhǔn)確完成清洗作業(yè)提供強有力的理論與技術(shù)支撐。
本文通過將Savitzky-Golay平滑濾波技術(shù)和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,建立以溫度、濾波后傳感器數(shù)據(jù)作為輸入變量的神經(jīng)網(wǎng)絡(luò)模型,將清洗機器人傾角傳感器輸出信號的測量誤差控制在0.91%以內(nèi),大幅度提升了傳感器輸出數(shù)據(jù)的測量精度,為清洗機器人準(zhǔn)確完成清洗作業(yè)提供了一種新思路。
另外,考慮到BP神經(jīng)網(wǎng)絡(luò)容易陷入過擬合的缺陷,應(yīng)在后續(xù)研究中加強對傾角傳感器輸出信號影響因子的機理分析,合理確定輸入因子,優(yōu)化神經(jīng)網(wǎng)絡(luò)的微觀模型結(jié)構(gòu)以進一步提高模型精度。