張浩昱,熊 凱,2
隨著機(jī)器人的應(yīng)用越來越廣泛,對機(jī)器人智能程度的要求也逐漸提高.傳統(tǒng)的機(jī)器人控制方法在復(fù)雜的動態(tài)未知環(huán)境中的應(yīng)用存在很大的局限性,深度強(qiáng)化學(xué)習(xí)方法結(jié)合了強(qiáng)化學(xué)習(xí)的決策能力和深度學(xué)習(xí)的感知能力,智能體可以像人類一樣通過環(huán)境交互進(jìn)行自主學(xué)習(xí),為實(shí)現(xiàn)機(jī)器人的智能控制提供了全新的研究思路[1].
強(qiáng)化學(xué)習(xí)在實(shí)際應(yīng)用過程中往往會遇到參數(shù)更新步長難以選擇的問題,步長選擇過小會導(dǎo)致訓(xùn)練速度過慢;步長選擇較大容易引起震蕩,甚至導(dǎo)致算法不收斂,訓(xùn)練結(jié)果越來越差,因此有必要通過研究尋找一個合適的步長.針對這一問題,Schulman等提出了置信區(qū)域策略優(yōu)化(TRPO)方法[2],避免出現(xiàn)使參數(shù)改變很大的步長,并且使得獲得的回報單調(diào)不減,即策略總是向更好的方向更新.在此基礎(chǔ)上,Schulman又提出了形式更加簡潔、訓(xùn)練效果更好的近端策略優(yōu)化(PPO)算法[3],在實(shí)際應(yīng)用中展現(xiàn)出更好的魯棒性.
本論文基于ROS機(jī)器人操作平臺搭建了四足機(jī)器人仿真模型,對其步態(tài)控制進(jìn)行任務(wù)建模,并設(shè)計(jì)了近端策略優(yōu)化算法在四足機(jī)器人步態(tài)控制中的應(yīng)用方法,并與深度確定性策略梯度算法進(jìn)行了對比分析.
強(qiáng)化學(xué)習(xí)是借鑒了智能體與環(huán)境不斷交互,不斷獲得經(jīng)驗(yàn)知識,總結(jié)出更優(yōu)化的策略的過程[4],從本質(zhì)上來說是一種試錯學(xué)習(xí)的方式(trial-and-error),這種學(xué)習(xí)方式不需要外界的監(jiān)督,依靠智能體不斷嘗試,最終達(dá)到優(yōu)化自身行為的目的(見圖1).
圖1 強(qiáng)化學(xué)習(xí)過程Fig.1 Reinforcement learning process
對強(qiáng)化學(xué)習(xí)的描述通常是基于馬爾科夫決策過程(Markov Decision Process,MDP)[5],其任務(wù)對應(yīng)了一個四元數(shù)組E=,其中,S為狀態(tài)集,A為動作集,P為狀態(tài)轉(zhuǎn)移概率,R為回報函數(shù),通常使用累積折扣回報來定義在t時刻的狀態(tài)回報,即
其中γ為折扣因子,表明越遠(yuǎn)處的回報對當(dāng)前狀態(tài)的評估影響越小,r(si,ai)表示在狀態(tài)si選擇動作ai所獲得的回報值.設(shè)初始狀態(tài)為s1,在某一策略π下,狀態(tài)分布服從ρπ,則強(qiáng)化學(xué)習(xí)的任務(wù)為學(xué)習(xí)到一個策略π,使得期望的初始狀態(tài)回報達(dá)到最大.定義強(qiáng)化學(xué)習(xí)目標(biāo)如下:
J=Es~ρ,a~π[R1](2)
狀態(tài)值函數(shù)Vπ(s)表示從狀態(tài)s出發(fā),執(zhí)行策略π所帶來的累積回報:
Vπ(st)=Es~ρ,a~π[Rt|st](3)
狀態(tài)動作值函數(shù)Qπ(s,a)表示從狀態(tài)s出發(fā),執(zhí)行了動作a后,再執(zhí)行策略π所帶來的累積回報:
Qπ(st,at)=Es~ρ,a~π[Rt|st,at](4)
時序誤差方法[6]應(yīng)用了動態(tài)規(guī)劃的思想,用下一時刻的狀態(tài)動作值函數(shù)來估計(jì)當(dāng)前的狀態(tài)動作值函數(shù):
Qπ(st,at)=
Er,st+1~E[r(st,at)+γEat+1~π[Qπ(st+1,at+1)]]
(5)
其中r,st+1的分布服從于環(huán)境E,at+1的分布服從于策略π.
定義時序誤差為
δt=rt+γQπ(st+1,at+1)-Qπ(st,at)(6)
在不需要指明特定的策略的情況下,Qπ往往可以直接使用Q來代替.
使用神經(jīng)網(wǎng)絡(luò)去逼近狀態(tài)動作值函數(shù),設(shè)網(wǎng)絡(luò)的參數(shù)為θQ,可以定義網(wǎng)絡(luò)的損失函數(shù)為
L(θQ)=Es~ρ,a~π[(yt-Q(st,at|θQ))2](7)
其中
yt=rt+γQ(st+1,at+1|θQ)
強(qiáng)化學(xué)習(xí)的優(yōu)化目標(biāo)是使得回報最大,在策略梯度算法中[7],網(wǎng)絡(luò)參數(shù)θ更新的目標(biāo)函數(shù)為:
L(θ)=E[logπ(at|st;θ)At(st,at)](8)
其中At(st,at)為優(yōu)勢函數(shù),該函數(shù)定義為:
At(st,at)=Qt(st,at)-Vt(st)(9)
網(wǎng)絡(luò)參數(shù)更新方式可表示為:
可以證明當(dāng)新舊策略滿足一定的約束時,可以使得策略是單調(diào)不減的,修改目標(biāo)函數(shù)為:
新舊策略的KL散度滿足約束:
E[KL[πθold(at|st),πθ(at|st)]]≤δ(12)
其中δ是一個常數(shù),KL散度用于衡量兩個分布的差異程度,其值越大說明兩個分布差異越大.
PPO中將約束項(xiàng)作為懲罰項(xiàng)引入目標(biāo)函數(shù),即修改目標(biāo)函數(shù)為:
在實(shí)際應(yīng)用中,研究人員發(fā)現(xiàn)使用截斷項(xiàng)代替KL散度具有更好的效果.將新舊策略的比值記為:
目標(biāo)函數(shù)設(shè)計(jì)為:
L(θ)=
E[min(rt(θ)At,clip(rt(θ),1-ε,1+ε)At)]
(15)
其中ε為截斷常數(shù),其取值為一個經(jīng)驗(yàn)值;clip函數(shù)為截斷函數(shù),將rt(θ)的值限定在1-ε和1+ε之間.PPO算法在進(jìn)行參數(shù)更新的過程中,通過截斷或限制KL散度的方式,避免策略出現(xiàn)突變的情況,增強(qiáng)了訓(xùn)練的效果.
本論文基于ROS機(jī)器人操作系統(tǒng),在Gazebo物理仿真環(huán)境中搭建了四足機(jī)器人仿真環(huán)境,如圖2所示.
圖2 四足機(jī)器人仿真環(huán)境Fig.2 Quadruped robot simulation environment
四足機(jī)器人結(jié)構(gòu)如圖3所示.四足機(jī)器人的每條腿上有三個關(guān)節(jié),分別為髖關(guān)節(jié)的偏航關(guān)節(jié)qy和俯仰關(guān)節(jié)qp,以及膝關(guān)節(jié)qk,每個關(guān)節(jié)都可以通過電機(jī)輸出力矩實(shí)現(xiàn)位置控制.深度強(qiáng)化學(xué)習(xí)可以實(shí)現(xiàn)端到端的控制方式,即實(shí)現(xiàn)直接從狀態(tài)輸入到底層的力矩輸出,這種方式雖然簡單,但是該算法在復(fù)雜的任務(wù)中很難學(xué)到有效的策略,因此本文在實(shí)際應(yīng)用中,先由深度強(qiáng)化學(xué)習(xí)算法輸出期望的關(guān)節(jié)位置,再由ROS中的電機(jī)驅(qū)動模塊輸出力矩,實(shí)現(xiàn)底層的位置控制.
圖3 四足機(jī)器人Fig.3 Quadruped robot
四足機(jī)器人步態(tài)控制要求機(jī)器人在沒有先驗(yàn)知識的情況下學(xué)會行走,在單位時間內(nèi)的位移盡可能大.在步態(tài)控制任務(wù)中需要實(shí)時控制機(jī)器人四條腿上每個關(guān)節(jié)的力矩輸出,因此動作空間可設(shè)計(jì)為所有關(guān)節(jié)的期望位置,即
A=qT=[qyqpqk]T
=[qy1qy2qy3qy4qp1qp2qp3qp4qk1qk2qk3qk4]T(16)
動作空間的維度為12,即|A|=12.
對于狀態(tài)空間的選擇,本論文簡單考慮機(jī)器人當(dāng)下的決策僅僅和當(dāng)前各個關(guān)節(jié)的狀態(tài)有關(guān),因此設(shè)計(jì)狀態(tài)空間為
且|S|=24.
在此基礎(chǔ)上根據(jù)任務(wù)需求設(shè)計(jì)機(jī)器人與環(huán)境交互過程中的回報函數(shù).在四足機(jī)器人步態(tài)控制中,我們希望四足機(jī)器人能學(xué)會自主行走,實(shí)現(xiàn)在單位時間內(nèi)位移最大,因此設(shè)計(jì)回報函數(shù)為
其中Δx表示沿x軸的位移,Δy表示沿y軸的位移,這兩項(xiàng)表示希望機(jī)器人的位移盡可能大,第三項(xiàng)表示我們不希望機(jī)器人的關(guān)節(jié)位置有太大的變化,k1,k2,k3為權(quán)重系數(shù),用于調(diào)整各項(xiàng)在總回報中重要程度,通過調(diào)整k1,k2的值可以設(shè)置機(jī)器人的前進(jìn)方向,實(shí)現(xiàn)機(jī)器人在期望的方向上獲得最大的位移.
本論文不使用直接從狀態(tài)輸入到力矩輸出的端到端的控制方式,而是將整個任務(wù)分為決策和控制兩個部分,由深度強(qiáng)化學(xué)習(xí)算法輸出各個關(guān)節(jié)期望的角度,并由底層的PID控制器實(shí)現(xiàn)位置控制,提升訓(xùn)練效果.四足機(jī)器人步態(tài)控制框圖如圖4.
如圖所示,整個系統(tǒng)被分為被控對象、狀態(tài)樣本池、決策網(wǎng)絡(luò)以及底層控制四個部分.被控對象即為四足機(jī)器人仿真模型.狀態(tài)樣本池用于存儲機(jī)器人的歷史狀態(tài),決策模塊通過樣本池中的數(shù)據(jù)進(jìn)行學(xué)習(xí).決策模塊由策略網(wǎng)絡(luò)和評價網(wǎng)絡(luò)組成,策略網(wǎng)絡(luò)根據(jù)當(dāng)前的機(jī)器人狀態(tài)進(jìn)行決策,給出下一時刻機(jī)器人期望的關(guān)節(jié)位置;評價網(wǎng)絡(luò)根據(jù)歷史數(shù)據(jù)評價策略網(wǎng)絡(luò)的性能,并指導(dǎo)策略網(wǎng)絡(luò)進(jìn)行參數(shù)更新,其更新方式可以使用不同的強(qiáng)化學(xué)習(xí)方法.底層控制模塊是一個PID控制器,根據(jù)機(jī)器人當(dāng)前的關(guān)節(jié)角度和期望的關(guān)節(jié)角度的誤差及其變化率輸出每個關(guān)節(jié)對應(yīng)的力矩.
將近端策略優(yōu)化(PPO)算法和深度確定性策略梯度(DDPG)算法[8]用于四足機(jī)器人步態(tài)控制實(shí)驗(yàn),其中DDPG分為兩種,一種是使用了優(yōu)先級經(jīng)驗(yàn)回放的改進(jìn)DDPG算法[9],一種是使用隨機(jī)采樣方法的傳統(tǒng)DDPG算法, 并對實(shí)驗(yàn)結(jié)果進(jìn)行了對比分析.
圖4 四足機(jī)器人步態(tài)控制框圖Fig.4 Quadruped robot gait control block diagram
圖5 PPO策略網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 PPO actor network structure
圖6 PPO評價網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 PPO critic network structure
圖5和圖6分別展示了PPO網(wǎng)絡(luò)的策略網(wǎng)絡(luò)和評價網(wǎng)絡(luò)結(jié)構(gòu).策略網(wǎng)絡(luò)設(shè)計(jì)了三個隱層,每個隱層的節(jié)點(diǎn)數(shù)為256,狀態(tài)S輸入到網(wǎng)絡(luò)中,通過不同的激活函數(shù)最終分為均值和方差兩部分,確定一個正態(tài)分布,通過采樣得到動作a的值;評價網(wǎng)絡(luò)設(shè)計(jì)了三個隱層,每個隱層有256個節(jié)點(diǎn),狀態(tài)S輸入到網(wǎng)絡(luò)中后輸出狀態(tài)值函數(shù)V.其中狀態(tài)值函數(shù)V是狀態(tài)S的函數(shù),表示在當(dāng)前狀態(tài)下,執(zhí)行當(dāng)前的策略所獲得的累積折扣回報.
近端策略優(yōu)化(PPO)算法參數(shù)設(shè)置如表1所示.
深度確定性策略梯度算法及改進(jìn)深度確定性策略梯度算法的策略網(wǎng)絡(luò)和評價網(wǎng)絡(luò)如圖7和圖8所示.策略網(wǎng)絡(luò)設(shè)計(jì)了三個隱層,每個隱層的節(jié)點(diǎn)數(shù)為256,狀態(tài)S輸入到網(wǎng)絡(luò)中,最終輸出時會增加一個正態(tài)分布的噪聲得到動作a的值,增強(qiáng)對環(huán)境的探索能力;評價網(wǎng)絡(luò)設(shè)計(jì)了三個隱層,每個隱層有256個節(jié)點(diǎn),狀態(tài)S和動作a同時輸入到網(wǎng)絡(luò)中后輸出狀態(tài)動作值函數(shù)Q.狀態(tài)動作值函數(shù)Q是狀態(tài)S和動作a的函數(shù),表示在當(dāng)前狀態(tài)下,執(zhí)行當(dāng)前的動作a后再執(zhí)行當(dāng)前的策略所獲得的累積折扣回報.
表1 PPO算法參數(shù)Tab.1 PPO algorithm parameters
圖7 DDPG策略網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 DDPG actor network structure
圖8 DDPG評價網(wǎng)絡(luò)結(jié)構(gòu)Fig.8 DDPG critic network structure
深度確定性策略梯度(DDPG)算法網(wǎng)絡(luò)參數(shù)設(shè)置如表2所示,其中標(biāo)有*號的為使用改進(jìn)DDPG算法所增加的參數(shù)取值.
本論文使用了以上三種算法對四足機(jī)器人進(jìn)行訓(xùn)練,每回合平均回報曲線如圖9所示.
從實(shí)驗(yàn)結(jié)果可以看出,原始的DDPG算法在復(fù)雜的任務(wù)中很難應(yīng)用,在訓(xùn)練過程中一直處于不穩(wěn)定的狀態(tài);改進(jìn)的DDPG算法雖然使用優(yōu)先級經(jīng)驗(yàn)回放提高了樣本利用率,但是由于不限制參數(shù)更新步長,在初始時刻更新很快,但是隨著訓(xùn)練的進(jìn)行,易于陷入局部最優(yōu),導(dǎo)致學(xué)不到更優(yōu)的策略;PPO算法限制了策略的更新幅度,策略的更新幅度更加合理,因此獲得了更好的訓(xùn)練效果,在實(shí)驗(yàn)中得到的回報穩(wěn)定上升.
圖3~9為三種算法的狀態(tài)動作值函數(shù)的對比曲線.
表2 DDPG算法參數(shù)Tab.2 DDPG algorithm parameters
圖9 四足機(jī)器人步態(tài)控制回報對比曲線Fig.9 Quadruped robot gait control return comparison curve
圖10 四足機(jī)器人步態(tài)控制Q值對比曲線Fig.10 Quadruped robot gait control Q valuecomparison curve
通過對比可以看出,不使用優(yōu)先級經(jīng)驗(yàn)回放傳統(tǒng)DDPG算法在訓(xùn)練過程中得不到很好的策略,在實(shí)際的動作選擇中表現(xiàn)出很強(qiáng)的隨機(jī)性;改進(jìn)DDPG算法的值函數(shù)雖然有一定的提升,但是很快會收斂到局部極值;PPO算法的參數(shù)更新有策略單調(diào)不減的理論支撐,PPO算法在訓(xùn)練過程中表現(xiàn)較好,其值函數(shù)不斷提高.
本文以四足機(jī)器人為研究對象,基于仿真環(huán)境研究近端策略優(yōu)化算法在機(jī)器人控制中的應(yīng)用.基于仿真平臺搭建了四足機(jī)器人模型,并對機(jī)器人步態(tài)控制進(jìn)行建模,將近端策略優(yōu)化算法用于四足機(jī)器人步態(tài)控制中,并將實(shí)驗(yàn)結(jié)果與深度確定性策略梯度算法進(jìn)行對比分析.實(shí)驗(yàn)結(jié)果表明近端策略優(yōu)化算法在實(shí)際的應(yīng)用中具有更好的訓(xùn)練效果,后續(xù)可以結(jié)合模仿學(xué)習(xí)對算法性能進(jìn)一步改進(jìn).