范 振,陳乃建,董春超,張來偉,包佳偉,李亞輝,李映君
(濟南大學 機械工程學院,山東 濟南 250022)
隨著機械自動化技術的發展,機械臂在搬運、裝配等工作場景中的應用逐漸增多。為了提高自動化生產的效率,改善產品質量,對機器人控制技術提出了更高的要求。在提出或改進一種控制算法時,需要對該算法進行測試,驗證算法是否滿足要求。倒立擺系統是理想的測試平臺,與現實中多種系統相似,例如高樓的風振效應、雙足機器人等[1-2]。倒立擺系統是一種非線性欠驅動系統,結構簡單,但是為了保證擺桿的平衡,需要復雜的控制算法與策略,常用于測試線性、非線性控制理論,可以驗證新提出的控制技術能否解決較強的非線性、不穩定問題。
目前常用的倒立擺系統為直線倒立擺與旋轉倒立擺。由于直線倒立擺所需空間大,并且具有行程限制,相較而言,旋轉倒立擺結構簡單,具有不穩定性顯著、非線性以及耦合性強等特點,因此在非線性控制理教學與研究中應用廣泛[3-5]。目前常用的工業機器人與旋轉倒立擺運動方式及結構相似,可以衡量設計、改進的控制算法的優劣性及其應用于工業機器人控制的可行性,因此旋轉倒立擺是較理想的研究平臺。馬永凌[6]利用拉格朗日方程對倒立擺在不穩定平衡點上建立數學模型,并成功通過顯示模型預測控制(EMPC)實現控制擺桿穩定豎直向上。Agarana等[7]利用拉格朗日變換法建立倒立擺模型,利用拉普拉斯變換法求解模型,合成的代數方程比原動力學系統的二階微分方程模型更簡單,更容易求解,但是采用拉格朗日方程的方法建立數學模型,不僅方法復雜且精度略低。為了使旋轉臂的偏差最小化,Dwivedi等[8]提出基于分數階演算的雙閉環分數階控制器的控制方法,并采用基于頻率響應的圖形調整方法調節控制器參數。由于擾動會影響非驅動關節,對控制系統進行干擾力補償更復雜,因此Bonifacio等[9]研究三連桿倒立擺的欠驅動系統的穩定性,建立機器人耦合機電系統的數學模型,基于吸引橢球體方法設計了機電系統魯棒鎮定控制器,但是該方法較復雜,計算量大。
目前大部分研究方法以監督與非監督學習的被動學習方式為主,隨著學者們對深度強化學習研究的深入,深度強化學習在控制領域也有了一定的應用[10-12]。深度強化學習并不依靠研究人員的經驗,而是通過自身不斷主動地試錯并根據反饋逐漸習得準確、高效完成目標任務的能力。王建平等[13]將深度強化學習算法用于二連桿避障實驗,結果表明,該算法可以控制機械臂避開障礙物,驗證了二維平面內深度強化學習可以有效控制機器臂,但該研究未考慮機械臂的速度、角速度以及臂與臂之間的摩擦等因素,在實際應用中易出現實際結果與預期不符,并且控制參數易陷入局部最優解。由于在連續空間中易出現對策略更新產生負面影響的價值過估計現象,因此康朝海等[14]提出根據Critic網絡的Loss函數值與指數加權移動平均值的動態差異,確定雙延遲深度確定性策略梯度(twin delayed deep deterministic policy gradient,TD3)算法中延遲更新Actor網絡的頻率,但是基于延遲更新方法的TD3算法采用均勻采樣,未考慮經驗值的優劣。
為了研究簡單、高效的控制算法,本文中建立單臂機器人倒立擺仿真模型,采用實際測得的運動參數對所建立的仿真模型進行約束,以保證在實際應用中最大程度地還原實驗結果,并采用TD3算法與深度確定性策略梯度(deep deterministic policy gradient,DDPG)算法進行訓練比較,使機械臂可以在最短時間內將末端擺桿立起,并以最小的控制力使擺桿保持該姿態。
單臂機器人倒立擺系統如圖1所示。為了簡化計算過程并且保證仿真結果與實際應用結果相近,在建模過程中對各關節進行角度變換并代入摩擦力。

(a)實物(b)仿真模型圖1 單臂機器人倒立擺系統
根據單臂機器人的實際尺寸、質量等參數建立SolidWorks模型,將導出的SolidWorks模型文件與模型參數文件添加至Simulink環境,并為單臂機器人倒立擺仿真模型添加速度約束和加速度約束。圖2所示為單臂機器人倒立擺系統簡化模型,其中α為機械臂旋轉的角度,β為擺桿相對于機械臂旋轉的角度。

oxy—基坐標系;ox1y1—機械臂旋轉坐標系;o1x2y2—機械臂末端坐標系;o1x3y3—擺桿旋轉坐標系;α—機械臂旋轉的角度,-π≤α≤π;β—擺桿相對于機械臂旋轉的角度,-π≤β≤π;ox′y′—擺桿旋轉點的基坐標系;θ—擺桿與豎直方向的夾角,-π≤θ≤π。圖2 單臂機器人倒立擺系統簡化模型
單臂機器人倒立擺目的是使用最小的控制力在最短時間內將擺桿保持豎直向上,因此需要確定擺桿與豎直方向的夾角。所建立單臂機器人倒立擺系統簡化模型中的夾角β為擺桿相對于機械臂旋轉的角度,因此需要對β進行計算,轉換為擺桿與豎直方向的夾角θ。
由于擺桿相對于機械臂旋轉,機械臂基于底座轉動,因此可以根據方程(1)計算θ,其中-π≤α,β,θ≤π。與進行坐標轉換的方法相比,只對單臂機器人倒立擺仿真模型進行角度轉換的方法不僅使單臂機器人倒立擺系統簡化模型更簡潔,而且減少了計算量,從而加快計算速度。

(1)
機械臂的運動是由伺服電機通過減速器帶動的,而減速器存在多種摩擦,會對機械臂的運動產生一定的影響,因此為了提高單臂機器人倒立擺仿真模型精度,在單臂機器人倒立擺系統簡化模型中加入機器人的摩擦模型。常用的摩擦模型主要有庫倫摩擦模型、庫倫與黏滯摩擦模型(見圖3)、靜摩擦-庫倫摩擦-黏滯摩擦模型以及Stribeck摩擦模型。
基于黏液的特性,黏滯摩擦力的大小與速度有關,方向與運動方向相反。黏性摩擦模型一般與庫倫摩擦模型搭配使用,可以更好地擬合實驗數據。庫倫與黏滯摩擦模型的表達式為

圖3 庫倫與黏滯摩擦模型
f=fCsignv+fvv,
(2)
式中:f為摩擦力;fC為庫倫摩擦力;v為速度;fv為黏滯摩擦系數。
由于單臂機器人機械臂進行俯仰運動,機械臂的質心位置隨運動而變化[15],因此為了探討機械臂實際摩擦情況,對機器臂進行摩擦力參數辨識,機械臂的摩擦辨識數據散點圖如圖4所示。從圖中可以看出,機械臂的摩擦辨識數據散點圖與庫倫與黏滯摩擦模型相似,因此選用庫倫與黏滯摩擦模型作為本研究的摩擦模型。

圖4 機械臂的摩擦辨識數據散點圖
深度學習(deep learning,DL)通過建立神經網絡對數據進行處理與分析,目前在圖像處理、語音識別等領域廣泛應用。強化學習(reinforcement learning,RL)是與環境相互作用的智能體,可以通過試驗中的錯誤進行訓練學習,從而制定出最優策略,已廣泛應用于自然科學、社會科學等領域。深度強化學習(deep reinforcement learning,DRL)將深度學習與強化學習相結合,既有深度學習的感知能力,又有強化學習的決策能力,而且具有較強的非線性處理能力,可在未知的環境中處理決策問題[16]。
目前,強化學習已有多種算法,例如DDPG算法、深度Q學習(又稱深度Q網絡,deep Q-network,DQN)、無監督強化和輔助學習、路徑一致性學習(path consistency learning,PCL)等[17-20]。其中,TD3、DDPG算法均為無模型并且可在線也可離線的強化學習方法,同時觀察空間可以是連續的,也可以是離散的。DQN算法行動空間是離散的,只能輸入離散數據,但是將空間劃分過多,難以收斂;DDPG算法的行動空間是連續的,可以對輸出數據進行細微調整,相較于多數算法,DDPG算法較簡單、高效。TD3算法是以DDPG算法為基礎進行改進的,解決了DDPG算法的過估計問題,并且也是針對連續行為的策略學習方法。由于本文中單臂機器人倒立擺仿真模型簡單,觀察信息與行動信息較簡單,因此使用TD3、DDPG算法進行訓練對比。
DDPG算法基于策略梯度(policy gradient,PG)算法與確定性行為策略算法發展而來,主要針對的是連續行為。通過反復迭代進行學習,每次迭代需要根據神經網絡近似值函數更新策略。DDPG算法采用的網絡為Actor-Critic網絡,其中Actor網絡是近似策略函數的神經網絡,分為Actor當前策略網絡和Actor目標策略網絡;Critic網絡是近似值函數的神經網絡,分為Critic當前網絡、Critic目標網絡。DDPG算法原理如下:設計獎勵函數,智能體給單臂機器人倒立擺仿真模型控制力使其擺動,并基于該控制力產生的倒立擺模環境狀態數據與獎勵值對網絡參數與策略進行優化,由智能體再次輸出控制力。DDPG算法流程如圖5所示。
首先根據Actor網絡當前策略網絡給單臂機器人發送在t時刻智能體選擇并執行的行為at,
at=μ(st|θμ)+Nt,
(3)
式中:st為在t時刻執行行為at前智能體觀察到的環境狀態數據;θμ為Actor當前策略網絡參數;概率分布函數μ(st|θμ)為t時刻的策略;Nt為t時刻的噪聲。
單臂機器人倒立擺仿真模型在執行后輸出新的獎勵值與環境狀態,將環境狀態存儲并隨機采樣n個數據作為訓練數據,然后結合訓練數據與Actor目標策略網絡、Critic目標網絡,計算Critic目標網絡的估計動作值Q,并根據均方差損失函數更新Critic當前網絡的參數,再計算Actor當前策略網絡的策略梯度,并更新Actor當前策略網絡參數。最后對Actor目標策略網絡和Critic目標網絡進行軟更新,

at—在t時刻智能體選擇并執行的行為;st—在t時刻執行行為at前智能體觀察到的環境狀態數據;st+1—在t時刻執行行為at后智能體觀察到的環境狀態數據;rt—在t時刻環境狀態為st時執行行為at后返回的獎勵值;1,2,…,9—執行順序。圖5 深度確定性策略梯度算法流程
(4)
式中:θμ′為目標策略網絡參數;θQ′為目標網絡參數;θQ為當前網絡參數;τ為更新系數,取值較小,本文中取值為0.001。
由于DDPG算法通過估計動作值Q尋找最優策略;但是噪聲等因素會引入誤差,導致Q值比真實值更大,從而導致算法不收斂或者效果較差,因此Fujimoto等[21]對DDPG算法進行改進,提出TD3算法。TD3算法以DDPG算法為基礎,但是相比于DDPG算法,TD3算法采用雙Critic網絡,根據貝爾曼方程計算2個Q值,并選取其中較小的Q值作為本次更新的目標,以避免Q值被過估計。TD3算法流程如圖6所示。為了減小誤差,TD3算法采用延遲Actor網絡更新的方法。本文中Critic網絡每更新2次,Actor網絡更新1次,在減小累計誤差的同時進一步確定Q值。最后為了減小誤差并改善Critic網絡估值的準確性與魯棒性,采用目標策略平滑,即在計算Critic目標網絡時,對Actor網絡給出的at值加入隨機的噪聲,使at具有一定的隨機性,從而減小誤差,改善算法穩定性。

at—在t時刻智能體選擇并執行的行為;st—在t時刻執行行為at前智能體觀察到的環境狀態數據;st+1—在t時刻執行行為at后智能體觀察到的環境狀態數據;rt—在t時刻環境狀態為st時執行行為at后返回的獎勵值;Nt—t時刻的噪聲;網絡的Q函數;Q1—Critic 1網絡的Q函數;γ為折扣因子,趨近于1但小于1,本文中取值為0.99。圖6 雙延遲深度確定性策略梯度算法流程
獎勵是指智能體給環境發送動作后,環境給智能體的反饋;獎勵函數是包含當前時刻的狀態、動作和下個時刻狀態的標量函數。強化學習訓練過程中智能體在本組訓練中通過獎勵函數獲得回報即獎勵值,并且智能體的目的是使獲取的獎勵值最大化。
圖7所示為獎勵函數簡單模型。環境初始狀態為A1,通過強化學習方法進行訓練的目的是通過智能體使環境狀態變為A4,如果沒有給智能體設置獎勵函數,即每一步沒有獎勵值或懲罰值,則智能體對下一步方向的選擇并沒有明確的依據;如果只設置獎勵值而不設置懲罰值,智能體對下一步的方向選擇有了依據,就可據此使環境狀態達到A4,但是同時沒有懲罰值可能會使智能體投機取巧,通過在A1、A2、A3之間循環就可以一直獲取高回報值;如果基于使能設計獎勵[22],即當智能體給出正確的動作則給予獎勵,給出錯誤的動作則給予懲罰,這樣就保證了策略的一致性。由此可知,需要設計優秀的獎勵函數引導智能體實現目標。

A1、A2、A3、A4—仿真環境的4種狀態;+1、+10、-10—改變狀態所得分數。圖7 獎勵函數簡單模型
基于擺桿與豎直方向的角度θ、機械臂與豎直方向的角度α以及上一步回報值設計獎勵函數,不僅引導智能體輸出的控制力更好地控制機械臂調整擺桿位置,而且加強了一個周期內每一步與上一步之間的聯系,即

(5)
其中
(6)
(7)
(8)

在強化學習中使用神經網絡可以提高訓練的數據量,并且神經網絡通過梯度下降使真實值與預測值之間的差距最小,可以對任意函數進行逼近。
單臂機器人倒立擺仿真模型輸出的環境狀態為機械臂旋轉角度的正弦值與余弦值、機械臂旋轉角速度、擺桿旋轉角度的正弦值與余弦值以及擺桿的旋轉角速度。
卷積神經網絡常用于機器視覺領域,但是對于簡單的時序卷積神經網絡也有較好的處理效果。本文中Critic網絡共采用15層網絡,包括2層輸入層、2層卷積神經網絡層、5層全連接層、1層連接層以及5層修正線性單元(rectified linear unit,ReLU)激活層;ReLU函數具有稀疏性,當輸入值滿足條件時才會激活對應神經元節點,而且收斂快,計算簡單,可以緩解梯度消失現象。由于本文中數據較簡單,因此非常適用ReLU函數。Actor網絡共采用12層網絡,包括1層輸入層、2層卷積神經網絡層、3層全連接層、4層ReLU函數激活層、1層雙曲正切函數Tanh激活層以及1層縮放層;縮放層之前的激活函數使用Tanh函數,縮放層可以對Tanh激活層的非線性輸出進行線性縮放和偏置。深度確定性策略梯度算法神經網絡結構如圖8所示,其中僅完整顯示了輸入層與第1層卷積層之間的神經元對應,對其他層之間的對應關系進行了省略。

(a)Critic網絡

(b)Actor網絡ReLU—修正線性單元;i×j×k—所在層的數據形狀,表示共i組數據,i組數據中每組數據中有j組數據,這j組數據中每組又有k個數據,i、j、k為正整數。圖8 深度確定性策略梯度算法神經網絡結構
在MATLAB 2020a軟件中使用Simulink環境進行單臂機器人倒立擺仿真模型實驗。單臂機器人倒立擺初始狀態為機械臂豎直向下,擺桿在重力作用下懸掛于機械臂末端,智能體Actor網絡與Critic網絡的學習率均為0.001,每周期最多可訓練1 250次,每次輸出的控制力范圍為[-10, 10],當回報值大于250 000且后10個周期內最大回報值與最小回報值之差小于1 362,即最大回報值周期與最小回報值周期完全相差1次訓練時,認為訓練結束。
為了改善訓練模型的魯棒性,在訓練過程中對擺桿隨機施加干擾力,并且在每個周期的訓練過程中,機械臂角速度或加速度達到閾值即結束該周期的訓練。
圖9所示為利用TD3、DDPG算法時智能體每個周期獲得的回報值。從圖中可以看出,在本實驗中理論周期最大回報值為460 808.85,但是干擾力等因素的存在使得在本次訓練中利用TD3算法時最大回報值為286 051.20,在后10個周期中,最大回報值為283 153.20,最小回報值為282 034.40,平均回報值為282 619.80;在利用DDPG算法時,最大回報值為294 850.80,在后10個周期中,最大回報值為284 917.20,最小回報值為284 032,平均回報值為284 405.20。

DDPG—深度確定性策略梯度;TD3—雙延遲深度確定性策略梯度。圖9 利用TD3、DDPG算法時智能體每個周期獲得的回報值
從圖9中可以看出,相較于DDPG算法,TD3算法在500個周期左右開始收斂,但是直到1 800個周期左右回報值才有較大起伏,之后對策略才有較大的優化,以獲得較大回報值。TD3算法比DDPG算法多1 217個訓練周期,并且此次訓練DDPG算法訓練1 660個周期,共迭代1 510 687次,所用時間約為16.92 h;而TD3算法訓練2 877個周期,共迭代3 377 971次,耗時約為49.17 h;由此可知,TD3算法訓練總迭代次數約為DDPG算法總迭代次數的2.24倍,但是訓練時間約為DDPG算法訓練時間的2.91倍。TD3算法是通過優化DDPG算法而得到的,但是DDPG算法使用4個網絡,TD3算法使用6個網絡,因此在本文中單臂機器人倒立擺仿真模型較簡單的情況下,每次迭代TD3算法訓練所用時間比DDPG算法所用時間更長。
從圖9中還可以看出,DDPG算法在前200個周期中獲取的回報值較穩定,原因是智能體輸出的控制力較大,導致機械臂角速度或加速度過大,超過閾值而停止訓練;在400~760個周期時,回報值上下震動并不穩定,原因是智能體雖然逐漸加強對輸出控制力大小的控制,以避免加速度與速度超過閾值,但是在400~760個周期內單臂機器人倒立擺的運動仍然有隨意性;直到800個周期左右開始收斂,在1 600個周期左右波動較小,趨于穩定。相對于DDPG算法,TD3算法在前200個周期內回報值較小,原因是前200個周期內DDPG算法輸出控制力數值基本為+10或-10,而TD3算法輸出控制力為±10的數值較小,因此在前200個周期內,TD3算法每周期迭代次數更多,導致回報值較小;并且DDPG算法在第453個周期才逐漸保證輸出的控制力可迭代完整周期,即迭代1 250次,而TD3算法只使用196個周期,表明本次實驗中在前期TD3算法比DDPG算法有更強的學習能力和更好的約束適應性。
圖10所示為無干擾力時擺桿與機械臂擺動角度。從圖中可以看出,在無干擾力的情況下,TD3算法的擺桿平衡較快,在1 s左右趨于平衡,同時智能體輸出控制力開始減小,平衡后控制力有小范圍波動,從而保持擺桿平衡。DDPG算法在1.3 s左右趨于平衡,但是此時智能體輸出控制力的變化頻率較快,平衡后擺桿和機械臂的角度變化均較小,趨于穩定。為了保持擺桿平衡,智能體輸出的控制力在小數值范圍內波動,但是相較于TD3算法波動程度較大。
從圖10中還可以看出,與TD3算法相比,DDPG算法在前期智能體輸出的控制力變化較頻繁且幅度較大,使用DDPG算法在平衡后擺桿的旋轉角度有輕微波動,而使用TD3算法在平衡后擺桿的旋轉角度有略微變化,因此擺桿的角度并非定值。為了比較TD3、DDPG算法智能體輸出的總控制力,計算TD3、DDPG算法10 s內每0.02 s輸出的總控制力絕對值,其中TD3算法共輸出控制力360.83 N·m,DDPG算法共輸出控制力458.77 N·m,而在實際應用中,電機輸出扭矩與電流成正比,因此電流輸出越小,輸出扭矩越小,即相較于DDPG算法,TD3算法對單臂機器人倒立擺系統輸入的控制力最小且擺桿平衡最快。

(a)TD3算法

(b)DDPG算法DDPG算法—深度確定性策略梯度算法;TD3算法—雙延遲深度確定性策略梯度算法。圖10 無干擾力時擺桿與機械臂擺動角度
圖11所示為有干擾力時TD3、DDPG算法的擺桿旋轉角度、機械臂旋轉角度、角速度與智能體輸出控制力。從圖11(a)、(b)中可以看出,即使在有干擾力的情況下,擺桿平衡速度與無干擾力時平衡速度相差無幾,在平衡后施加干擾力會打破擺桿的穩定狀態,單臂機器人倒立擺系統可以迅速作出反應,對機械臂進行調整從而使擺桿繼續保持平衡,并且整個過程中基于DDPG、TD3算法的機械臂的角度變化相似,但是在DDPG、TD3算法控制下,擺桿因干擾力而使擺動角度較小;從放大圖10(a)中5~6 s時間段內機械臂旋轉角度曲線可以發現,機械臂的旋轉角度一直為0.015 7~0.031 4 rad(即旋轉角度為0.9°~1.8°,電機的步距角為0.9°)之間變換。結合圖11(a)中利用TD3算法時擺桿相對穩定可以發現,即使存在干擾力,相較于DDPG算法,TD3算法的控制精度有一定提高,表明使用TD3算法時系統魯棒性更好,可適應多種環境,并且從圖11(c)、(d)中可以看出,相較于單次施加較大干擾力,在短時間內多次施加干擾力對系統的穩定性影響較大。從圖11(c)、(d)中還可以看出,由于施加干擾力破壞了擺桿的平衡,因此智能體通過調整輸出控制力控制機械臂,從而保持擺桿平衡。相對于DDPG算法,使用TD3算法時的輸出控制力更小,TD3算法輸出的總控制力絕對值為1 816.42 N·m,DDPG算法輸出的總控制力絕對值為2 238.04 N·m,是TD3算法的1.23倍。
基于TD3、DDPG算法,在有、無干擾力時擺桿旋轉角度、機械臂旋轉角度、機械臂角速度與智能體輸出控制力的分析表明,TD3算法可以在短時間內以最小控制力調整姿態,使擺桿保持平衡,并且即使施加一定的干擾力,仍然可以迅速調整姿態,使擺桿保持平衡,具有較好的魯棒性。

(a)擺桿旋轉角度

(b)機械臂旋轉角度

(c)TD3算法的機械臂角速度與智能體輸出控制力

(d)DDPG算法的機械臂角速度與智能體輸出控制力>DDPG算法—深度確定性策略梯度算法;TD3算法—雙延遲深度確定性策略梯度算法。圖11 有干擾力時TD3、DDPG算法的擺桿旋轉角度、機械臂旋轉角度、角速度與智能體輸出控制力
針對深度強化學習在機器人應用中的可行性以及提高控制的精準性問題,本文中采用以自主學習與交互學習為主的深度強化學習算法,設計了單臂機器人倒立擺仿真模型,并根據單臂機器人的實際運動參數設計了網絡結構以及符合實際的多約束獎勵函數,通過TD3、DDPG算法進行訓練比較。實驗結果表明,根據實際情況設計合理的獎勵函數可以提高算法的收斂速度,并且訓練完成的模型可以在1.3 s內完成姿態調整任務,并在受干擾時可以調整運動參數,從而持續保持末端姿態,減小輸出控制力,同時提高對機械臂的控制精度,并保持末端姿態不變,在實際應用中可以減少能量的消耗,并提升運行效率與運行過程中的穩定性,因此重新設計的神經網絡與獎勵函數以及加入干擾力對控制系統的精準性與魯棒性具有一定的提升,對多軸機器人的末端控制具有一定的借鑒意義。本文中僅以單臂機器人和TD3算法為研究對象,對于信賴域策略優化等算法與在多軸機器人上的應用以及驗證對機械臂的控制效果將是下一步的研究重點。