杜其通 劉朝雨 閔 劍 費(fèi)燕瓊
(上海交通大學(xué)機(jī)器人研究所 上海 200240)
工業(yè)機(jī)器人已經(jīng)成為現(xiàn)代人類社會(huì)不可或缺的自動(dòng)化工具,提高其控制精度一直是國(guó)內(nèi)外研究的熱點(diǎn)。傳統(tǒng)的PID控制已經(jīng)無(wú)法滿足實(shí)際工作的精度要求,基于模型的控制方法成為主流。基于模型的控制器需要以機(jī)器人動(dòng)力學(xué)參數(shù)作為先驗(yàn)值[1],但是機(jī)器人是一個(gè)多變量、強(qiáng)耦合的非線性系統(tǒng)[2],通過(guò)數(shù)學(xué)計(jì)算獲得動(dòng)力學(xué)模型很困難,一般采用實(shí)驗(yàn)辨識(shí)方法。
國(guó)內(nèi)外研究人員提出了很多機(jī)器人參數(shù)辨識(shí)方法。Gautier等人[3]提出了串聯(lián)機(jī)器人最小參數(shù)集的推導(dǎo)方法,能夠減小辨識(shí)的運(yùn)算量,提高算法的魯棒性。Calafiore 等人[4]采用遞推的最小二乘法進(jìn)行參數(shù)運(yùn)算,提高了算法效率。丁亞?wèn)|等人[5]提出了一種分布辨識(shí)方法,降低了辨識(shí)方程的復(fù)雜性。智能控制算法促進(jìn)了機(jī)器人動(dòng)力學(xué)參數(shù)辨識(shí)的發(fā)展,陳柏等人[1]采用人工蜂群算法,禹鑫燚等人[6]采用粒子群算法,謝宏[7]采用改進(jìn)的遺傳算法進(jìn)行辨識(shí),均取得了不錯(cuò)的辨識(shí)效果。
為了提高工業(yè)機(jī)器人的動(dòng)力學(xué)模型辨識(shí)精度,本文結(jié)合近年興起的機(jī)器學(xué)習(xí)、深度學(xué)習(xí)算法,提出了一種基于人工神經(jīng)網(wǎng)絡(luò)的動(dòng)力學(xué)模型辨識(shí)方法。使用線型整流單元(rectified linear unit, ReLU)函數(shù)作為神經(jīng)網(wǎng)絡(luò)的激活函數(shù),使用Dropout方法避免神經(jīng)網(wǎng)絡(luò)訓(xùn)練中容易產(chǎn)生的過(guò)擬合現(xiàn)象,采用有限項(xiàng)傅里葉多項(xiàng)式作為激勵(lì)軌跡。最后,為了驗(yàn)證本文提出的方法,將實(shí)驗(yàn)結(jié)果與傳統(tǒng)最小二乘法結(jié)果進(jìn)行了對(duì)比。
對(duì)于一個(gè)n關(guān)節(jié)的機(jī)器人系統(tǒng),傳統(tǒng)辨識(shí)方法將其動(dòng)力學(xué)模型表示為
(1)
利用人工神經(jīng)網(wǎng)絡(luò)對(duì)機(jī)器人動(dòng)力學(xué)參數(shù)進(jìn)行辨識(shí)時(shí),實(shí)際是將整個(gè)機(jī)器人系統(tǒng)看作一個(gè)如圖1所示的黑箱模型,輸入為機(jī)器人的關(guān)節(jié)角度、角速度和角加速度,輸出為各關(guān)節(jié)的力矩矢量。因?yàn)閯?dòng)力學(xué)參數(shù)辨識(shí)的目的主要是計(jì)算關(guān)節(jié)力矩,將計(jì)算的力矩用于機(jī)器人的模型控制系統(tǒng),很多時(shí)候?qū)τ趯?shí)際動(dòng)力學(xué)參數(shù)并不關(guān)心。
圖1 機(jī)器人系統(tǒng)黑箱模型
使用如圖2所示的全連接神經(jīng)網(wǎng)絡(luò)對(duì)n自由度機(jī)器人進(jìn)行辨識(shí)時(shí),需要將n個(gè)關(guān)節(jié)的角度、角速度和角加速度共計(jì)3n個(gè)參數(shù)作為輸入,n個(gè)關(guān)節(jié)力矩作為輸出。大多數(shù)串聯(lián)機(jī)器人模型并不復(fù)雜,因此只需要1~3個(gè)隱藏層。每個(gè)隱藏層的神經(jīng)元個(gè)數(shù)不宜過(guò)多,避免出現(xiàn)過(guò)擬合現(xiàn)象。
圖2 全連接神經(jīng)網(wǎng)絡(luò)
傳統(tǒng)的BP(back propagation)神經(jīng)網(wǎng)絡(luò)一般選用logistic sigmoid函數(shù)f(x)=(1+e-x)-1作為隱藏層神經(jīng)元的激活函數(shù),但是該函數(shù)的廣泛飽和性使得利用梯度下降算法對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化時(shí)容易出現(xiàn)梯度消失的情況。研究人員發(fā)現(xiàn)線性整流函數(shù)f(x)=max(0,x)有一定的生物學(xué)原理[8],將其作為激活函數(shù)的神經(jīng)網(wǎng)絡(luò)優(yōu)化收斂速度更快,單次迭代的運(yùn)算量更小[9]。神經(jīng)網(wǎng)絡(luò)的輸出單元選用線性單元。
設(shè)計(jì)人工神經(jīng)網(wǎng)絡(luò)時(shí),除了其結(jié)構(gòu)設(shè)計(jì),最重要的就是損失函數(shù)和優(yōu)化方法的選用。使用神經(jīng)網(wǎng)絡(luò)對(duì)機(jī)器人系統(tǒng)進(jìn)行辨識(shí)選用均方誤差(MSE)作為損失函數(shù)。
(2)
神經(jīng)網(wǎng)絡(luò)一般選用批量梯度下降進(jìn)行迭代求解,批量梯度下降與傳統(tǒng)的梯度下降不同的是前者每次計(jì)算梯度時(shí)只選用數(shù)據(jù)集中的一部分?jǐn)?shù)據(jù)(Batch)。批量梯度下降能夠大大減小迭代的運(yùn)算量,同時(shí)使迭代不容易陷入局部最優(yōu)點(diǎn)之中?,F(xiàn)代人工神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法一般選用批量梯度下降的變體,其區(qū)別在于計(jì)算下一次權(quán)重更新時(shí)考慮上一步的權(quán)重更新。Tieleman等人[10]提出了RMSProp優(yōu)化算法,已被證明是一種有效且實(shí)用的人工神經(jīng)網(wǎng)絡(luò)優(yōu)化算法。
權(quán)重W的更新方法如式(3)所示:
VW←βVW+(1-β)▽W(xué)
W←W-αVW
(3)
式中,W是神經(jīng)網(wǎng)絡(luò)的權(quán)值;β是RMSProp算法引入的超參數(shù),一般取0.9;▽W(xué)是W的梯度;α是學(xué)習(xí)率。
人工神經(jīng)網(wǎng)絡(luò)模型通常都很擅長(zhǎng)擬合訓(xùn)練數(shù)據(jù),但真正的難點(diǎn)在于泛化,而不是擬合。傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)一般采用L1或者L2正則化以防止過(guò)擬合,本文采用Dropout[11]模型來(lái)提高辨識(shí)模型的泛化能力。
使用人工神經(jīng)網(wǎng)絡(luò)對(duì)機(jī)器人系統(tǒng)進(jìn)行動(dòng)力學(xué)辨識(shí)時(shí),輸入軌跡需要具有足夠的代表性,盡可能多地包含機(jī)器人的特征信息。另外,還要考慮實(shí)際測(cè)量力矩的噪聲對(duì)模型辨識(shí)產(chǎn)生的影響。本文采用Swevers等人[12]提出的有限項(xiàng)傅里葉級(jí)數(shù)軌跡,如式(4)所示。這種方法將軌跡優(yōu)化轉(zhuǎn)化為對(duì)傅里葉系數(shù)的優(yōu)化(式(5)),同時(shí)需要考慮機(jī)器人對(duì)關(guān)節(jié)角、角速度和角加速度有限制(式(6))。傅里葉項(xiàng)數(shù)N取3~5,基頻ω避開(kāi)機(jī)器人的共振頻率。
(4)
(5)
(6)
式中,K是機(jī)器人的動(dòng)力學(xué)矩陣,通常由牛頓歐拉法遞推得到;cond(K)表示矩陣K的條件數(shù),σ0(K)表示矩陣K的最小奇異值,λ1和λ2分別表示其權(quán)值。
實(shí)際測(cè)量到的機(jī)械臂的數(shù)據(jù)可能會(huì)有較大的噪聲,影響辨識(shí)準(zhǔn)確度,在這種情況下需要先將數(shù)據(jù)進(jìn)行濾波處理,提高數(shù)據(jù)的平滑性。另外,實(shí)驗(yàn)發(fā)現(xiàn),機(jī)械臂關(guān)節(jié)運(yùn)動(dòng)換向時(shí)將會(huì)產(chǎn)生較大的誤差,剔除換向點(diǎn)附近的一些數(shù)據(jù)點(diǎn),可以有效提升辨識(shí)的準(zhǔn)確性,加快算法的收斂。因?yàn)檫\(yùn)動(dòng)數(shù)據(jù)與力矩的關(guān)系并不受時(shí)間順序影響,隨機(jī)打亂神經(jīng)網(wǎng)絡(luò)輸入的運(yùn)動(dòng)數(shù)據(jù),同時(shí)對(duì)應(yīng)打亂輸出的力矩信息,可以減小模型過(guò)擬合情況發(fā)生的可能性。
受機(jī)器人控制系統(tǒng)的影響及其傳感器的限制,測(cè)量得到的各軸運(yùn)動(dòng)參數(shù)值可能有較大的差異,將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化后再輸入神經(jīng)網(wǎng)絡(luò)可以更快地迭代收斂。
X←X-mean(X)
X←X/std (X)
(7)
式中,X是神經(jīng)網(wǎng)絡(luò)訓(xùn)練所用到的數(shù)據(jù),mean(X)為數(shù)據(jù)的均值,std(X)表示數(shù)據(jù)的標(biāo)準(zhǔn)差。
某公司生產(chǎn)的6自由度機(jī)械臂如圖3所示。使用深度學(xué)習(xí)框架Keras[13]建立本文第1節(jié)和第2節(jié)中介紹的人工神經(jīng)網(wǎng)絡(luò)模型,為了避免過(guò)擬合現(xiàn)象,添加Dropout正則化層。
在實(shí)際進(jìn)行神經(jīng)網(wǎng)絡(luò)辨識(shí)時(shí),理論上提供的訓(xùn)練數(shù)據(jù)越多,越能辨識(shí)到模型更多的特征,模型就會(huì)擁有更強(qiáng)的泛化能力。本文利用2.2節(jié)中提到的激勵(lì)軌跡的設(shè)計(jì)方法,盡可能多地收集機(jī)械臂的實(shí)際數(shù)據(jù),并將數(shù)據(jù)分為3部分,分別是訓(xùn)練集(70%)、驗(yàn)證集(15%)和測(cè)試集(15%)。訓(xùn)練過(guò)程中監(jiān)控?fù)p失函數(shù)的大小及訓(xùn)練精確度,如圖4和圖5所示??梢钥闯觯S著迭代的進(jìn)行,模型的損失函數(shù)逐漸下降接近于0,精確度逐漸達(dá)到最大值,在第100輪左右的時(shí)候達(dá)到收斂,精度不再變化。
圖3 6自由度機(jī)械臂
圖4 神經(jīng)網(wǎng)絡(luò)訓(xùn)練精度
圖5 神經(jīng)網(wǎng)絡(luò)訓(xùn)練損失
為了驗(yàn)證本文提出算法的準(zhǔn)確性,采用傳統(tǒng)的最小二乘法結(jié)合庫(kù)倫粘性摩擦模型,利用相同的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行辨識(shí),在相同的驗(yàn)證集上進(jìn)行驗(yàn)證。將2種算法得到的力矩曲線放在一起,結(jié)果如圖6所示。
圖6 各關(guān)節(jié)力矩計(jì)算結(jié)果
從圖6可以看出,2種算法對(duì)于實(shí)際力矩都有較好的跟隨效果。通過(guò)觀察局部放大圖發(fā)現(xiàn),本文提出的神經(jīng)網(wǎng)絡(luò)算法對(duì)于實(shí)際力矩的擬合程度更高,尤其是在峰值附近,對(duì)于實(shí)際力矩的跟隨效果更好,曲線更加平滑,更加適合控制器的設(shè)計(jì)。其中關(guān)節(jié)1的誤差曲線如圖7所示,可以看出,采用神經(jīng)網(wǎng)絡(luò)辨識(shí)算法所計(jì)算出來(lái)的力矩誤差比傳統(tǒng)算法更小,峰值誤差更小,曲線更加平滑。值得一提的是,曲線中有一些誤差跳變較大的點(diǎn),這些點(diǎn)主要是在機(jī)械臂關(guān)節(jié)速度為0的點(diǎn)附近,因計(jì)算相對(duì)誤差時(shí)分母較小,所得相對(duì)誤差結(jié)果較大,對(duì)于實(shí)際使用并沒(méi)有影響。
圖7 關(guān)節(jié)1力矩誤差曲線
如式(8)所示,動(dòng)力學(xué)辨識(shí)的匹配度δ可以用計(jì)算力矩τi與實(shí)驗(yàn)測(cè)量力矩τ進(jìn)行計(jì)算[14]。
(8)
2種方法的匹配度計(jì)算結(jié)果如表1所示。從表1可以看出,神經(jīng)網(wǎng)絡(luò)模型的匹配度相對(duì)于傳統(tǒng)的最小二乘模型能夠平均提升超過(guò)5%。
近年來(lái)各種優(yōu)化算法越來(lái)越多地應(yīng)用在機(jī)器人辨識(shí)領(lǐng)域,比如結(jié)合非線性摩擦模型的人工蜂群算法取得了較好的實(shí)驗(yàn)結(jié)果,平均精度可達(dá)89%[14]。本文提出的算法的平均精度為90.70%,略好于人工蜂群算法。
表1 各關(guān)節(jié)辨識(shí)匹配度
本文提出的辨識(shí)方法的精度相對(duì)于傳統(tǒng)最小二乘辨識(shí)法有一定的提升,有效減小了傳統(tǒng)辨識(shí)模型的出現(xiàn)的力矩波動(dòng)的情況,平滑性更好。頻繁波動(dòng)的力矩容易對(duì)控制器造成損傷,因此本文提出的方法更加適合于控制器的設(shè)計(jì)。在實(shí)際控制系統(tǒng)中將神經(jīng)網(wǎng)絡(luò)模型和傳統(tǒng)的最小二乘辨識(shí)模型結(jié)合使用能夠得到更好的效果。
機(jī)器人的摩擦力與多個(gè)外部因素相關(guān),針對(duì)摩擦力的建模及辨識(shí)一直是一大難題。近年來(lái)提出很多算法(如人工蜂群算法[14])的辨識(shí)精度比較依賴其摩擦力模型的選擇,不同工作環(huán)境的機(jī)器人的摩擦力模型不完全一致,選取不合適的模型可能對(duì)辨識(shí)精度有害甚至出現(xiàn)運(yùn)算不收斂的情況。本文提出的方法不需要對(duì)摩擦力進(jìn)行專門(mén)的建模,對(duì)于不同工作環(huán)境的機(jī)器人具有很強(qiáng)的適應(yīng)性和可移植性,并能保證較高的精度。因此,本文提出的方法相對(duì)于目前較新的辨識(shí)方法也有一定的優(yōu)勢(shì)。
本文針對(duì)傳統(tǒng)動(dòng)力學(xué)參數(shù)辨識(shí)算法精度不高的問(wèn)題,提出了基于人工神經(jīng)網(wǎng)絡(luò)的辨識(shí)方法,使用ReLU激活函數(shù),結(jié)合RMSProp算法和Dropout方法,算法泛化能力強(qiáng),迭代速度快。設(shè)計(jì)了實(shí)驗(yàn)與傳統(tǒng)最小二乘法進(jìn)行對(duì)比,結(jié)果表明,本文提出的方法能夠明顯提高力矩計(jì)算的平滑性,準(zhǔn)確性相對(duì)于傳統(tǒng)方法提高超過(guò)5%。本算法不需要對(duì)系統(tǒng)摩擦力進(jìn)行建模,具有較好的適應(yīng)性。