周榮亞,劉 剛
(1.陜西鐵路工程職業(yè)技術(shù)學(xué)院鐵道裝備制造學(xué)院,陜西 渭南 714000) (2.西安理工大學(xué)材料科學(xué)與工程學(xué)院,陜西 西安 710048)
隨著人工智能技術(shù)與計算機技術(shù)的發(fā)展,機器人技術(shù)成為眾多學(xué)者關(guān)注的研究熱點[1]。通過可靠的控制方法來準確確定末端執(zhí)行器的位置,對于完成危險和繁瑣工作的高性能機器人至關(guān)重要[2]。在以往的工業(yè)生產(chǎn)過程中,柔性關(guān)節(jié)機械手的控制率設(shè)計備受關(guān)注。
在機器人控制領(lǐng)域,如何控制末端執(zhí)行器的柔性關(guān)節(jié)操縱器仍是一個具有挑戰(zhàn)性的問題[3]。目前已經(jīng)研究出了一些技術(shù)方案,如反饋線性化[4]、奇異攝動法[5]、積分流形控制法[6]、無源方法[7]、比例微分(PD)控制法[8]和自適應(yīng)滑??刂萍夹g(shù)[9],可以在不考慮執(zhí)行器動力學(xué)特性的情況下實現(xiàn)對機械臂的控制。然而上述研究工作的主要局限在于這些方案均假定扭矩為剛性連桿的輸入[10],與實際情況不符。
為解決以往控制方法的缺陷,本文主要通過分析執(zhí)行器動力學(xué)、關(guān)節(jié)柔性等問題[11],解決用于柔性關(guān)節(jié)機械臂的精確軌跡跟蹤魯棒控制率設(shè)計問題。
滑??刂品ㄊ且环N強大的非線性控制方法,能夠較好地克服干擾與設(shè)備的不確定性[12]。機械臂的機械零件內(nèi)部過多的震動,會產(chǎn)生較大的磨損。而在電氣零件內(nèi)部,過多的震動可能會導(dǎo)致較高的熱損失[13]。這就需要通過不斷改變控制器的參數(shù)配置,將狀態(tài)變量保持在合理的范圍內(nèi)[14]。式(1)所示為機械臂系統(tǒng)的邏輯計算關(guān)系:
(1)
S=cTζ
(2)
式中:S為滑模控制響應(yīng);c為滑模控制設(shè)計參數(shù)矩陣[15]。
對方程(2)進行微分,可得:
(3)
(4)
本文設(shè)計的滑??刂品╗16]中,控制函數(shù)u是以下兩種類型控制器的組合:
u=ueq+udis
(5)
式中:ueq為在滑動階段控制系統(tǒng)狀態(tài)的等效控制器;udis為確保系統(tǒng)穩(wěn)定性的開關(guān)控制器。ueq可由等效控制算法解出:
ueq=(cTB)-1(cTAζ)
(6)
udis可由式(7)算出:
udis=-k1sign(S)-k2S
(7)
(8)
式中:k1,k2為設(shè)計參數(shù),k1>0,k2>0。
將式(7)與式(8)代入式(6)可得:
u=(-k1sign(S)-k2S-cTAζ)(cTB)-1
(9)
式(9)為在有限時間內(nèi),將系統(tǒng)的初始狀態(tài)驅(qū)動到平衡點所需的控制函數(shù)u。本文所提出的控制方法可以應(yīng)用于柔性關(guān)節(jié)機械臂,將式(2)~式(9)代入式(1)可得機械臂系統(tǒng)滑模控制響應(yīng)為:
(10)
式中:e為實際輸出與期望輸出之間的誤差;n為系統(tǒng)的相對度;t為時間變量。
對式(10)中的S求導(dǎo)數(shù),可得:
(11)
式中:W為動量矩陣;b為主動擾動參數(shù);d為被動擾動參數(shù);L為系統(tǒng)穩(wěn)定系數(shù)。
因此柔性關(guān)節(jié)的控制函數(shù)可由式(12)得出:
(12)
式(12)表明,系統(tǒng)的李雅普諾夫函數(shù)的導(dǎo)數(shù)是確定的,這意味系統(tǒng)均是漸近穩(wěn)定的??梢酝ㄟ^對方程進行拉普拉斯變換來計算系統(tǒng)誤差:
(13)
式中:E(s)為系統(tǒng)誤差;s為滑動變量;c為滑??刂圃O(shè)計參數(shù)。
分析式(13)可知,本文設(shè)計的算法通過控制輸入從而將穩(wěn)態(tài)誤差e(t)漸近地驅(qū)動到滑動表面s=0的狀態(tài)下,并保持在控制器的正增益范圍內(nèi)。
實際機械臂系統(tǒng)運行時,在式(12)與式(13)所示的機械臂控制率下,可能存在超調(diào)量過大、系統(tǒng)穩(wěn)定時間較長的問題。因此本文基于卷積神經(jīng)網(wǎng)絡(luò)對機械臂系統(tǒng)的圖像信息進行處理,以實現(xiàn)對控制率的優(yōu)化。
本文設(shè)計的姿勢估計網(wǎng)絡(luò)如圖1所示。輸入為352像素×352像素的3個彩色通道的圖像,輸出為8個44像素×44像素的聯(lián)合概率像。本次選取的特征提取方法為VGG19模型的較低層,并應(yīng)用兩個額外的卷積來為其實現(xiàn)微調(diào)過程。
特征提取首先需要對原始圖像進行預(yù)處理,該階段提供了8個目標結(jié)果圖的第一次估計。目標結(jié)果圖與原始特征圖串聯(lián),合并為第一個精選階段的輸入,優(yōu)化階段則被設(shè)計為遞歸模型。由于遞歸模型輸出還包含8個目標結(jié)果圖,因此可以再次將其與原始特征圖相連接,從而形成下一個精選階段或后續(xù)模型的輸入。
在最終的精選階段后,設(shè)計了一個聯(lián)合連接模型的遞歸模型。首先網(wǎng)絡(luò)執(zhí)行兩個初始卷積,生成的特征模板再次與主要特征圖串聯(lián),然后與并行網(wǎng)絡(luò)共享。并行網(wǎng)絡(luò)的每個線程僅負責(zé)機械臂單個關(guān)節(jié)的一個結(jié)果回歸,每個檢測線程的執(zhí)行末端將所有單個映射圖連接到8個概率映射圖的集合,最終輸出神經(jīng)網(wǎng)絡(luò)預(yù)測的位置信息。
(14)
式中:fn為損失函數(shù);u和v為圖中頂點;q為基本事件;p為預(yù)測事件。
網(wǎng)絡(luò)體系結(jié)構(gòu)包含3個可以從中提取損失的關(guān)鍵點,以進行培訓(xùn)所需的監(jiān)督。這種中間監(jiān)督有助于解決深度遞歸網(wǎng)絡(luò)中面臨的消失梯度問題,本文選擇具有加權(quán)學(xué)習(xí)率(R)的隨機梯度下降法。為保證網(wǎng)絡(luò)輸出的準確,創(chuàng)建了一個包含150 000個樣本的純合成數(shù)據(jù)集,并使用模擬的綠屏向模型中隨機添加背景。將開始學(xué)習(xí)率(Rt=0)設(shè)置為1×e-5,衰減因子d為0.1。在完成每個時間段t后,使用式(15)對學(xué)習(xí)率進行更新:
Rt+1=Rt-dRt
(15)
式中:Rt+1為(t+1)時刻的學(xué)習(xí)率。
本文設(shè)計的系統(tǒng)安裝在一臺GeForce 1080 TI上,以10個樣本的批次大小對模型進行約兩天的訓(xùn)練,總共進行150 000次迭代并產(chǎn)生了評估模型。
基于描述的仿真域,模型采用兩個精選階段(N=2)與一個聯(lián)合連接階段(M=1)時的性能最佳。因此,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)最終采用了上述參數(shù)。
為了優(yōu)化和實現(xiàn)神經(jīng)網(wǎng)絡(luò)的體系結(jié)構(gòu),采用Keras作為主要的前端框架。模型使用Python作為開發(fā)語言,軟件由3部分組成,分別為數(shù)據(jù)集訪問模塊、真值生成模塊和訓(xùn)練流程執(zhí)行模塊。
為了將網(wǎng)絡(luò)轉(zhuǎn)移到基于機器人操作系統(tǒng)(robot operating system,ROS)的通信架構(gòu)下,本文編寫了基于ROS的通信節(jié)點。鑒于Keras也可以在Python 2.7中使用,ROS節(jié)點的實現(xiàn)語言也選擇Python。本文選擇Tensorflow作為網(wǎng)絡(luò)的后端,未來也可以將Keras模型轉(zhuǎn)換為純Tensorflow模型。同時為了提升代碼效率,使用C++語言進行模塊開發(fā)。
機械臂系統(tǒng)的原始圖像需要經(jīng)過預(yù)處理才能夠用于網(wǎng)絡(luò),本文通過對原始圖像進行雙線性或3次上的非線性采樣,并使用非最大抑制對圖像進行濾波來完成圖像的預(yù)處理。濾波的具體做法如下:濾除每個上采樣圖內(nèi)高于定義閾值的所有概率峰值。由于當(dāng)前的神經(jīng)網(wǎng)絡(luò)僅用于估計一個機械臂系統(tǒng)的姿態(tài),因此只需要獲取概率取值最大的峰值,同時丟棄檢測到的其他概率峰值。
本文通過如圖2所示的實際系統(tǒng)對所設(shè)計滑模控制算法進行驗證。機械臂控制率執(zhí)行器是一個24 V 的直流齒輪電動機,通過脈沖寬度調(diào)制(PWM)信號進行驅(qū)動,根據(jù)PWM信號的變化對電動機電壓進行控制,使用H橋L298和MyRio-1900控制器對電壓進行放大,控制電動機產(chǎn)生模型所需轉(zhuǎn)速。機械臂驅(qū)動選擇直流減速電機,減速電機帶兩個正交編碼器和兩個旋轉(zhuǎn)編碼器,正交編碼器用來檢測電機和連桿的角位置,旋轉(zhuǎn)編碼器用來提供獨立位置測試點。兩種輸入對應(yīng)的仿真和實驗結(jié)果將在下面介紹和討論。
圖2 實驗實際系統(tǒng)
為了評估姿勢檢測網(wǎng)絡(luò)及其校準組件,需要在實時模擬環(huán)境中進行驗證。本文使用包含作動空間隨機姿勢的數(shù)據(jù)集,總共10 000個樣本對系統(tǒng)進行評估。
為了進行評估,使用三次插值對原始輸出概率圖進行上采樣。與標準雙線性方法相比,聯(lián)合預(yù)測精度提高了近50 %。本文選擇每個估計的關(guān)節(jié)位置與相應(yīng)的真實值之間的二維歐幾里得像素距離作為估計姿勢的度量,基于1 280像素×720像素輸入圖像的姿態(tài)估計實驗數(shù)值結(jié)果見表1。
表1 姿態(tài)估計實驗
由表可知,在所有樣本中,本文設(shè)計的神經(jīng)網(wǎng)絡(luò)均未檢測到任何假陽性,但發(fā)生了一些假陰性檢測。對于像素數(shù)量更多的關(guān)節(jié)圖像,檢測錯誤數(shù)量呈上升趨勢,這可以通過微調(diào)概率閾值來解決,以較低的概率進行聯(lián)合檢測。絕對像素誤差表示前3個關(guān)節(jié)的工作狀態(tài)以及一致的姿態(tài)檢測,本文所設(shè)計系統(tǒng)的平均和中值誤差為3~7個像素,標準偏差較低。關(guān)節(jié)4和關(guān)節(jié)5顯示出更高的誤差標準偏差和絕對值,這是因為與第1個關(guān)節(jié)相比,其運動覆蓋了更大的配置空間。表1中的一些誤差幅度較大,但考慮到輸入圖像的分辨率較高,所以也是在系統(tǒng)可以接受的范圍內(nèi)。
位姿評估實驗通過每幀測試圖像與原始圖像有效像素點的比較來估計樣本的相機姿態(tài),這樣每次校準最多可以有7個對應(yīng)關(guān)系。為了評估校準質(zhì)量,計算估計的相機姿態(tài)與地面真實情況之間的平移誤差(三維歐幾里得距離)與總和(滾動、俯仰和偏航)的絕對旋轉(zhuǎn)誤差,結(jié)果見表2。從表2可看出,最小值的誤差較低,這表明本文方法能夠精確地計算外部相機的姿勢。但相對較大的分布范圍,以及計算出的平移、旋轉(zhuǎn)誤差的絕對值偏大,說明本系統(tǒng)的可靠性欠佳。對于這些評估誤差,本文通過引入第2節(jié)所設(shè)計的滑??刂扑惴右韵?。
表2 校準誤差實驗
通過在MATLAB/Simulink和定制平臺中進行仿真獲得的結(jié)果,可以驗證所設(shè)計的控制器對柔性關(guān)節(jié)機械臂所需跟蹤性能的有效性。
實驗的期望軌跡是恒值函數(shù)。為防止系統(tǒng)運行偶發(fā)不穩(wěn)定現(xiàn)象,本文用滑模控制算法抑制在控制輸入中產(chǎn)生的顫動現(xiàn)象。本文設(shè)計的控制定律因為需要跟蹤系統(tǒng)狀態(tài),所以實際上會影響系統(tǒng)的機械和電氣部件。圖3給出了控制率跟蹤60°幅度的單位階躍函數(shù)的仿真結(jié)果,圖中所示的角位置大多數(shù)為撓性接頭的位置。從結(jié)果可以明顯看出,本文設(shè)計的控制率的瞬態(tài)響應(yīng)對于輸入的跟蹤響應(yīng)速率較高。
圖3 系統(tǒng)狀態(tài)跟蹤仿真結(jié)果
在仿真實驗的基礎(chǔ)上,進行步驟跟蹤實驗。圖4顯示了仿真中應(yīng)用于系統(tǒng)的控制輸入,其中A為實際控制輸入,B為本文控制方法輸入。結(jié)果清楚地表明,控制輸入不應(yīng)含有過大的高頻噪聲,否則可能會損壞電子設(shè)備。從分析結(jié)果可知,在輸入控制不含有高頻噪聲的情況下,柔性關(guān)節(jié)機械臂可以合理地跟蹤所需的軌跡。
圖4 系統(tǒng)控制輸入仿真結(jié)果
傳統(tǒng)柔性關(guān)節(jié)機械臂控制算法假定扭矩為剛性連桿的輸入,與實際情況不符。針對這一缺點,本文提出了一種結(jié)合卷積神經(jīng)算法和滑??刂品ǖ娜嵝詸C械臂控制方法。由于滑??刂品憫?yīng)速度快、魯棒性強,但抖振現(xiàn)象嚴重,因此本文使用卷積神經(jīng)算法對機械臂系統(tǒng)的圖像信息進行處理,以實現(xiàn)對控制率的自適應(yīng)性優(yōu)化,進而解決抖振問題。在實驗仿真與測試中,本文設(shè)計算法可精確控制機械臂的運動軌跡,同時具有一定的魯棒性,有效地消除了抖振現(xiàn)象,表明本算法有一定的工程潛力,可應(yīng)用至與柔性機器人控制相關(guān)的領(lǐng)域,如智能醫(yī)療器械、智慧工廠流水線等。