基于模型相關(guān)強(qiáng)化學(xué)習(xí)的仿人機(jī)器人步態(tài)控制方法
【專利摘要】本發(fā)明公開了一種基于模型相關(guān)強(qiáng)化學(xué)習(xí)的仿人機(jī)器人步態(tài)控制方法,包括步驟:1)為仿人機(jī)器人行走前后穩(wěn)定控制任務(wù)定義強(qiáng)化學(xué)習(xí)框架;2)使用基于稀疏在線高斯過程的模型相關(guān)強(qiáng)化學(xué)習(xí)方法對仿人機(jī)器人進(jìn)行步態(tài)控制;3)使用PID控制器對強(qiáng)化學(xué)習(xí)仿人機(jī)器人控制器的動(dòng)作選擇方法進(jìn)行改進(jìn),改進(jìn)操作為使用PID控制器獲取強(qiáng)化學(xué)習(xí)控制器動(dòng)作選擇操作的尋優(yōu)初始點(diǎn)。本發(fā)明使用強(qiáng)化學(xué)習(xí)來對仿人機(jī)器人行走過程中的步態(tài)進(jìn)行控制,從而使仿人機(jī)器人的行走控制能通過與環(huán)境交互來進(jìn)行自主調(diào)節(jié),達(dá)到更好的控制效果,使仿人機(jī)器人在前后方向上保持穩(wěn)定。
【專利說明】
基于模型相關(guān)強(qiáng)化學(xué)習(xí)的仿人機(jī)器人步態(tài)控制方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及仿人機(jī)器人步行穩(wěn)定控制和強(qiáng)化學(xué)習(xí)領(lǐng)域,尤其是指一種基于模型相 關(guān)強(qiáng)化學(xué)習(xí)的仿人機(jī)器人步態(tài)控制方法。
【背景技術(shù)】
[0002] 在控制仿人機(jī)器人步行時(shí),我們通常使用正逆運(yùn)動(dòng)學(xué)等理論的出仿人機(jī)器人各關(guān) 節(jié)的靜態(tài)軌跡,然后使用這些軌跡控制仿人機(jī)器人進(jìn)行行走。只是這樣得出的機(jī)器人關(guān)節(jié) 軌跡只能用于理想平整地面上的行走,而無法在不平整的地面上行走,因?yàn)檫@些關(guān)節(jié)軌跡 在規(guī)劃時(shí)就假設(shè)了所處的環(huán)境是平整的地面,沒有其它因素的干擾,而在非平整地面腳底 與地面的接觸面與在平整地面上是不同的。因此,當(dāng)機(jī)器人在非平整的平面上行走時(shí)需要 加入在線反饋式平穩(wěn)控制器,對仿人機(jī)器人行走進(jìn)行在線調(diào)整。反饋式平穩(wěn)控制器即利用 傳感器等手段,收集當(dāng)前機(jī)器人的一些信息,來判斷當(dāng)前機(jī)器人是否穩(wěn)定,如果不穩(wěn)定,則 在線輸出對靜態(tài)步態(tài)的調(diào)整,讓機(jī)器人重新達(dá)到穩(wěn)定,使機(jī)器人能在非平整面上平穩(wěn)地行 走。
[0003] 目前為止,比較常用的控制器有PID控制器,PID控制器實(shí)現(xiàn)簡單,但其也有較大的 局限性。PID是一個(gè)線性的控制器,其要求環(huán)境為線性近似模型,但仿人機(jī)器人系統(tǒng)是一個(gè) 復(fù)雜的非線性模型,因此PID控制器并不能完美的符合系統(tǒng)的控制需求。
[0004] 為了能更好地對仿人機(jī)器人行走穩(wěn)定進(jìn)行控制,使用強(qiáng)化學(xué)習(xí)對仿人器人進(jìn)行控 制獲得了廣泛的關(guān)注,但將強(qiáng)化學(xué)習(xí)應(yīng)用于仿人機(jī)器人的行走穩(wěn)定控制也面臨著許多問 題,仿人機(jī)器人的狀態(tài)和控制動(dòng)作皆為連續(xù),空間過大,傳統(tǒng)的強(qiáng)化學(xué)習(xí)不方便應(yīng)用。仿人 機(jī)器人的實(shí)驗(yàn)成本過高,而強(qiáng)化學(xué)習(xí)需要進(jìn)行多次的學(xué)習(xí)訓(xùn)練才能達(dá)到較好的控制效果。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于模型相關(guān)強(qiáng)化學(xué)習(xí)的仿人 機(jī)器人步態(tài)控制方法,使用強(qiáng)化學(xué)習(xí)來對仿人機(jī)器人行走過程中的步態(tài)進(jìn)行控制,從而使 仿人機(jī)器人的行走控制能通過與環(huán)境交互來進(jìn)行自主調(diào)節(jié),達(dá)到更好的控制效果,使仿人 機(jī)器人在前后方向上保持穩(wěn)定。
[0006] 為實(shí)現(xiàn)上述目的,本發(fā)明所提供的技術(shù)方案為:基于模型相關(guān)強(qiáng)化學(xué)習(xí)的仿人機(jī) 器人步態(tài)控制方法,包括以下步驟:
[0007] 1)為仿人機(jī)器人行走前后穩(wěn)定控制任務(wù)定義強(qiáng)化學(xué)習(xí)框架;
[0008] 2)使用基于稀疏在線高斯過程的模型相關(guān)強(qiáng)化學(xué)習(xí)方法對仿人機(jī)器人進(jìn)行步態(tài) 控制;
[0009] 3)使用PID控制器對強(qiáng)化學(xué)習(xí)仿人機(jī)器人控制器的動(dòng)作選擇方法進(jìn)行改進(jìn),改進(jìn) 操作為使用PID控制器獲取強(qiáng)化學(xué)習(xí)控制器動(dòng)作選擇操作的尋優(yōu)初始點(diǎn)。
[0010] 在步驟1)中,所述的強(qiáng)化學(xué)習(xí)框架,包含以下要素定義:
[0011] 1.1)仿人機(jī)器人的狀態(tài)定義為:
[0012] s(t) = [k(t) ,qhi(t) ,qhr(t) ,θχζ(?), ω (t)]
[0013] t表示當(dāng)前的時(shí)刻,其中k(t)為指示支撐腳的情況,1代表支撐腳為左腳,0代表支 撐腳位雙腳,-1代表支撐腳為右腳;qhi(t),q hr(t)為t時(shí)刻左右髖關(guān)節(jié)俯仰舵機(jī)的角度;θχζ (t)為俯仰方向上的軀干傾斜角度,ω (t)為俯仰方向上的角速度;
[0014] 1.2)仿人機(jī)器人的動(dòng)作定義為:
[0015] a(t) = [ Δ q]
[0016] 其中,Aq是對支撐腳的髖關(guān)節(jié)俯仰舵機(jī)的離線步態(tài)軌跡的在線角度調(diào)整量;
[0017] 1.3)仿人機(jī)器人的立即回報(bào)值定義為:
[0020] ?(?)=-( | ω (t) |_| ω (t_l) | )
[0021] 其中,&1、&2為立即回報(bào)函數(shù)權(quán)值,ε為容許誤差。
[0022] 在步驟2)中,所述的基于稀疏在線高斯過程的模型相關(guān)強(qiáng)化學(xué)習(xí)方法,主要包含 以下幾個(gè)步驟:
[0023] 2.1)使用稀疏在線高斯過程構(gòu)建環(huán)境模型,該環(huán)境模型一共包含6個(gè)稀疏在線高 斯過程模型,以仿人機(jī)器人的狀態(tài)和動(dòng)作為輸入,以下一狀態(tài)和立即回報(bào)值的預(yù)測為輸出; [0024] 2.2)對Q值函數(shù)采用批更新的方法,只有當(dāng)新獲取的經(jīng)驗(yàn)數(shù)目達(dá)到200個(gè)時(shí),才對Q 值函數(shù)進(jìn)行更新;
[0025] 2.3)使用一個(gè)基于UCB的連續(xù)動(dòng)作選擇方法,使用稀疏在線高斯過程的方差輸出 和利用環(huán)境模型對仿人機(jī)器人后繼狀態(tài)和立即回報(bào)值的預(yù)測,構(gòu)建了一條基于UCB的動(dòng)作 評(píng)判函數(shù):
[0026] F(s,a) = max yUCB ( feature (,ν ,α )) + UCB 0'; ,,) a '
[0027] 其中:
[0028] UCB(fs,a) =y(fs,a)+KS(fs,a)
[0029] UCB(rs,a) =E(rs,a)+2〇(rs,a)
[0030] y(fs,a)是對該點(diǎn)的Q值的預(yù)測均值,S(fs,a)是對該點(diǎn)的Q值的預(yù)測方差,E(r s,a)是 立即回報(bào)值rs,a的預(yù)測均值, 〇(rs,a)是rs,a的預(yù)測方差;
[0031] 使用梯度下降法求解該函數(shù)來選擇動(dòng)作,并參考ε-greedy策略的思想,以ε的概率 隨機(jī)選取動(dòng)作。
[0032] 在步驟3)中,所述的使用PID控制器動(dòng)作選擇方法進(jìn)行改進(jìn)方法為:根據(jù)機(jī)器人的 狀態(tài),獲得同等條件下PID方法的控制動(dòng)作,將該動(dòng)作作為強(qiáng)化學(xué)習(xí)動(dòng)作選擇過程中所使用 的梯度下降方法的尋優(yōu)初始點(diǎn);
[0033] 改進(jìn)后,控制器具體步驟描述如下:
[0034] ①初始化強(qiáng)化學(xué)習(xí)控制器的模型和所要用到的參數(shù);
[0035] ②使用卡爾曼濾波等方法獲取當(dāng)前的仿人機(jī)器人狀態(tài);
[0036] ③根據(jù)當(dāng)前狀態(tài),獲取相對應(yīng)的PID控制器的輸出;
[0037] ④利用PID控制器的輸出,再根據(jù)當(dāng)前狀態(tài)和Q值函數(shù),使用梯度下降法求解出最 優(yōu)的控制動(dòng)作;
[0038] ⑤使用該控制動(dòng)作對仿人機(jī)器人的靜態(tài)行走軌跡進(jìn)行調(diào)整;
[0039] ⑥獲取仿人機(jī)器人新的狀態(tài)和立即回報(bào)值,從而得到新的訓(xùn)練經(jīng)驗(yàn),并用新的訓(xùn) 練經(jīng)驗(yàn)進(jìn)行環(huán)境模型的更新;
[0040] ⑦判斷新的訓(xùn)練經(jīng)驗(yàn)是否達(dá)到設(shè)定的數(shù)目,是則進(jìn)行Q值函數(shù)的更新,否則回到 ②;
[0041 ]所述值函數(shù)更新流程為:
[0042] ①使用模型產(chǎn)生一組虛擬的訓(xùn)練數(shù)據(jù);
[0043] ②使用該組訓(xùn)練數(shù)據(jù)更新按照稀疏在線高斯過程更新方法更新值函數(shù);
[0044]③判斷是否滿足迭代條件,滿足則停止,否則回到①。
[0045] 本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)與有益效果:
[0046] 本發(fā)明解決了傳統(tǒng)仿人機(jī)器人步態(tài)控制器過于簡單,沒有自主學(xué)習(xí)能力的問題, 通過使用強(qiáng)化學(xué)習(xí)來對仿人機(jī)器人行走過程中的步態(tài)進(jìn)行控制,從而使仿人機(jī)器人的行走 控制能通過與環(huán)境交互來進(jìn)行自主調(diào)節(jié),達(dá)到更好的控制效果,使仿人機(jī)器人在前后方向 上保持穩(wěn)定。為了能將強(qiáng)化學(xué)習(xí)用于仿人機(jī)器人行走前后穩(wěn)定控制的任務(wù),本發(fā)明分析仿 人機(jī)器人行走的特點(diǎn),為仿人機(jī)器人行走前后穩(wěn)定控制任務(wù)設(shè)計(jì)了合適的強(qiáng)化學(xué)習(xí)框架。 而為了解決傳統(tǒng)強(qiáng)化學(xué)習(xí)方法不方便用于連續(xù)空間的問題(仿人機(jī)器人狀態(tài)和動(dòng)作空間皆 為連續(xù))以及傳統(tǒng)Q強(qiáng)化學(xué)習(xí)的學(xué)習(xí)效率低下的問題,本發(fā)明使用的強(qiáng)化學(xué)習(xí)方法為一種基 于稀疏在線高斯過程的模型相關(guān)強(qiáng)化學(xué)習(xí)方法。該模型相關(guān)強(qiáng)化學(xué)習(xí)主要的特點(diǎn)是使用有 監(jiān)督學(xué)習(xí)中的稀疏在線高斯過程回歸方法對Dyna-Q強(qiáng)化學(xué)習(xí)中的Q值函數(shù)進(jìn)行擬合和對 Dyna-Q方法中的環(huán)境模型進(jìn)行建模,比起傳統(tǒng)的Dyna-Q強(qiáng)化學(xué)習(xí)方法需要人工對連續(xù)狀態(tài) 進(jìn)行合適劃分的處理,其能方便地應(yīng)對仿人機(jī)器人的狀態(tài)和動(dòng)作空間皆為連續(xù)的情況。且 為了提高該強(qiáng)化學(xué)習(xí)方法的收斂概率,使用批更新方法對Q值函數(shù)進(jìn)行更新,即每獲得200 個(gè)新訓(xùn)練經(jīng)驗(yàn)時(shí),才對Q值函數(shù)進(jìn)行更新。且本發(fā)明利用在線稀疏高斯過程能提供不確定描 述的特點(diǎn),使用一種改進(jìn)的UCB方法進(jìn)行動(dòng)作選擇,能指導(dǎo)仿人機(jī)器人控制器進(jìn)行更有效的 探索(即指示最有可能成為最優(yōu)的動(dòng)作),比起傳統(tǒng)的強(qiáng)化學(xué)習(xí),其有更高地學(xué)習(xí)效率。為了 解決仿人機(jī)器人狀態(tài)動(dòng)作空間過大,導(dǎo)致控制器收斂難的問題以及提高控制性能,本發(fā)明 首先通過PID控制器獲取一個(gè)有一定效用的控制輸出動(dòng)作,并將該動(dòng)作指定為強(qiáng)化學(xué)習(xí)中 動(dòng)作選擇操作的尋優(yōu)初始點(diǎn),從而使動(dòng)作選擇不需要盲目的便利整個(gè)動(dòng)作空間,而是在有 效動(dòng)作的附近進(jìn)行遍歷,從而提高這種強(qiáng)化學(xué)習(xí)控制器的學(xué)習(xí)效率和控制性能。
【附圖說明】
[0047]圖1為模型相關(guān)強(qiáng)化學(xué)習(xí)方法中值函數(shù)、環(huán)境模型以及實(shí)際經(jīng)驗(yàn)的關(guān)系圖。
[0048]圖2為基于稀疏高斯過程的環(huán)境模型的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0049]下面結(jié)合具體實(shí)施例對本發(fā)明作進(jìn)一步說明。
[0050]本實(shí)施例所述的基于模型相關(guān)強(qiáng)化學(xué)習(xí)的仿人機(jī)器人步態(tài)控制方法,包括以下步 驟:
[0051] 1)為仿人機(jī)器人行走前后穩(wěn)定控制任務(wù)定義強(qiáng)化學(xué)習(xí)框架;
[0052] 2)使用基于稀疏在線高斯過程的模型相關(guān)強(qiáng)化學(xué)習(xí)方法對仿人機(jī)器人進(jìn)行步態(tài) 控制;
[0053] 3)使用PID控制器對強(qiáng)化學(xué)習(xí)仿人機(jī)器人控制器的動(dòng)作選擇方法進(jìn)行改進(jìn),改進(jìn) 操作為使用PID控制器獲取強(qiáng)化學(xué)習(xí)控制器動(dòng)作選擇操作的尋優(yōu)初始點(diǎn)。
[0054]本發(fā)明將強(qiáng)化學(xué)習(xí)用于仿人機(jī)器人行走前后穩(wěn)定的控制,首先為該任務(wù)定義用于 強(qiáng)化學(xué)習(xí)的框架,即定義狀態(tài)、動(dòng)作以及立即回報(bào)值三個(gè)要素。仿人機(jī)器人行走前后穩(wěn)定控 制任務(wù)的強(qiáng)化學(xué)習(xí)框架定義如下:
[0055] 1)仿人機(jī)器人的t時(shí)刻狀態(tài)定義為:
[0056] s(t) = [k(t) ,qhi(t) ,qhr(t), θχζ(?), ω (t)]
[0057] t表示當(dāng)前的時(shí)刻,其中k(t)為指示支撐腳的情況,1代表支撐腳為左腳,0代表支 撐腳位雙腳,-1代表支撐腳為右腳;qhi(t),q hr(t)為t時(shí)刻左右髖關(guān)節(jié)俯仰舵機(jī)的角度;θχζ (t)為俯仰方向上的軀干傾斜角度,ω (t)為俯仰方向上的角速度。
[0058] 2)仿人機(jī)器人的動(dòng)作定義為:
[0059] a(t) = [ Δ q]
[0060] 其中,△ q是對支撐腳的髖關(guān)節(jié)俯仰舵機(jī)的離線步態(tài)軌跡的在線角度調(diào)整量。
[0061] 3)仿人機(jī)器人的立即回報(bào)值定義為:
[0064] ?(?)=-( | ω (t) |_| ω (t_l) | )
[0065] 其中,ai、a2為立即回報(bào)函數(shù)權(quán)值,ε為容許誤差。
[0066]定義好仿人強(qiáng)化學(xué)習(xí)框架后,就要使用具體的強(qiáng)化學(xué)習(xí)方法對其進(jìn)行控制,以下 將詳細(xì)介紹基于稀疏在線高斯過程模型相關(guān)強(qiáng)化學(xué)習(xí)方法,該方法主要包括環(huán)境模型,Q值 函數(shù),以及動(dòng)作選擇方法等部分,將一一介紹:
[0067] 1)總體架構(gòu):
[0068] 在強(qiáng)化學(xué)習(xí)方法中,每次Agent與環(huán)境進(jìn)行交互都會(huì)獲取一個(gè)四元組的經(jīng)驗(yàn)(SH, at-!,st,r),其中st-!代表t-Ι時(shí)刻狀態(tài),at-!代表動(dòng)作,st是s t-!執(zhí)行at-!后轉(zhuǎn)移的狀態(tài),r為立 即回報(bào)值,模型相關(guān)強(qiáng)化學(xué)習(xí)的值函數(shù)、環(huán)境模型以及實(shí)際經(jīng)驗(yàn)的關(guān)系結(jié)構(gòu)如圖1所示。
[0069] 從圖1可以看出,本發(fā)明使用環(huán)境模型進(jìn)行規(guī)劃的方法是使用環(huán)境模型產(chǎn)生虛擬 的四元組經(jīng)驗(yàn),然后將這些虛擬的經(jīng)驗(yàn)按照實(shí)際經(jīng)驗(yàn)的方式處理來進(jìn)行模型規(guī)劃。我們將 環(huán)境模型定義為M(s,a),其對于任何一對輸入(s,a),會(huì)返回對下一狀態(tài)s'和立即回報(bào)值r 的預(yù)測,則該方法的大致流程描述如下:
[0070] ①初始化Q函數(shù)和環(huán)境模型Μ
[0071]②根據(jù)當(dāng)前狀態(tài)s按照一定策略(如ε-greedy策略)選取動(dòng)作a,并執(zhí)行。
[0072]③觀察新的狀態(tài)和立即回報(bào)值r,獲取四元組經(jīng)驗(yàn),按照一定策略使用(1)式更新Q 值函數(shù),并更新模型Μ
[0073] Q(sk-i,ak-i) =r+ ymax{Q(sk,a)/aeA} (1)
[0074] ④利用新的環(huán)境模型產(chǎn)生指定k個(gè)虛擬經(jīng)驗(yàn),并按照一定策略進(jìn)行值函數(shù)更新 [0075]⑤判斷算法是否已結(jié)束,否則回到②。
[0076] 2)環(huán)境模型介紹:
[0077] 2.1)環(huán)境模型的結(jié)構(gòu)
[0078] 環(huán)境模型Μ是對于任意一個(gè)的狀態(tài)動(dòng)作對(s,a),都會(huì)返回其預(yù)測后繼狀態(tài)s',以 及預(yù)測立即回報(bào)值r的模型。因此模型Μ的輸出個(gè)數(shù)應(yīng)該是L+1個(gè),其中L是狀態(tài)s的維數(shù)。因 為S0GP的輸出只有一個(gè),我們使用S0GP來構(gòu)建這個(gè)模型時(shí)一共需要建立L+1個(gè)S0GP模型,即 M= {SGP!,. . . SGPl,SGPl+i}。這些S0GP模型都是以f eature(s,a)為輸入的。前L個(gè)S0GP模型分 別對Agent狀態(tài)的每一維進(jìn)行預(yù)測,第L+1個(gè)模型對環(huán)境立即回報(bào)值進(jìn)行預(yù)測。另外,前L個(gè) S0GP模型的輸出不是對該維的直接預(yù)測值的概率分布,而是該維的相對變化值的概率分 布,即對于某一(s,a),第i個(gè)模型的輸出均值為cU,則對(s,a)的后繼狀態(tài)s'的第i維的預(yù)測 均值為:
[0079] si,=Si+di (2)
[0080] 綜上所述,其環(huán)境模型的結(jié)構(gòu)如圖2所示。
[0081] 2.2)環(huán)境模型輸出預(yù)測
[0082]當(dāng)要對(s,a)進(jìn)行后繼狀態(tài)和立即回報(bào)值預(yù)測時(shí),將featUre(s,a)輸入到每一個(gè) S0GP模型,則可以得到預(yù)測狀態(tài)中每一個(gè)維數(shù)的相對變化值和立即回報(bào)值的預(yù)測概率分 布,即對一個(gè)(s,a),通過模型M,可以得到一組概率分布函數(shù){pKcU),. . .pL(dL),pL+1 (dL+1)},簡單假設(shè)狀態(tài)的每個(gè)維數(shù)以及立即回報(bào)值之間是相互獨(dú)立的,于是對于每個(gè)(s, a),其后繼預(yù)測狀態(tài)的概率分布函數(shù)為式(3),在進(jìn)行采樣操作時(shí)可以分別對每個(gè)維數(shù)進(jìn)行 獨(dú)立采樣。
[0083] p(s,)=pi(si,_si) X · · · XpL(s'L-SL) (3)
[0084] 在IDSBQ中,我們簡單的將每個(gè)維數(shù)的預(yù)測均值輸出拼接在一起,作為對(s,a)的 后繼狀態(tài)和立即回報(bào)值的預(yù)測輸出(s',r)。即對于一個(gè)(s,a),模型Μ有均值預(yù)測輸出D = (di,…,dL)和dL+i,貝有s ' = s+D,r = dL+i。
[0085] 2.3)環(huán)境模型的更新
[0086] 與值函數(shù)的更新方式不同,每獲得一個(gè)四元組經(jīng)驗(yàn),我們立即對環(huán)境模型更新。由于 環(huán)境模型Μ由L+1個(gè)S0GP模型組成,因此,每當(dāng)獲取到一個(gè)四元組經(jīng)驗(yàn)(n,s t,r)時(shí),我們將 其拆分成-組訓(xùn)練用的數(shù)據(jù)…(/-νι,νΜ>,(一 (VrW'氣 然后將每對數(shù)據(jù)用于對應(yīng)S0GP模型的更新,則環(huán)境模型更新過程描述如下:
[0087] ①與環(huán)境交互,獲取一個(gè)經(jīng)驗(yàn)(st-1,at-1,s t,r)
[0088] ②對該經(jīng)驗(yàn)進(jìn)行拆分,獲得一組訓(xùn)練數(shù)據(jù)如下:
[0089] {{j'eature{st_x,),sj -),...,{featureis^,αιΛ),sf -),{feature{st_x,r)}
[0090] ③將對應(yīng)的訓(xùn)練數(shù)據(jù)按照SOGP模型更新方式更新對應(yīng)的SOGP模型。
[0091] 3 )Q值函數(shù)介紹:
[0092] 除了使用稀疏在線高斯過程對環(huán)境模型建模,我們也使用其對Q值函數(shù)進(jìn)行擬合, 并使用批更新的方式對值函數(shù)進(jìn)行更新,詳細(xì)介紹如下:
[0093]本發(fā)明在對值函進(jìn)行更新時(shí),希望該更新能對值函數(shù)帶來重大的改變,因此使用 式(4)來描述某個(gè)經(jīng)驗(yàn)e = (s,a,s',r)的更新能對當(dāng)前值函數(shù)帶來的信息量1(e),
[0095]對于一組經(jīng)驗(yàn)U,我們定義其使用該組經(jīng)驗(yàn)更新使值函數(shù)增加的信息量I(U)為:該 組經(jīng)驗(yàn)的單個(gè)經(jīng)驗(yàn)更新所帶來的信息量之和,即:
[0097]于是每當(dāng)使用一組經(jīng)驗(yàn)U進(jìn)行更新時(shí),我們通過判斷其更新為值函數(shù)所帶來的信 息量是否大于指定閥值he作為迭代停止條件之一,另一迭代停止條件為迭代次數(shù)是否大于 最大迭代次數(shù)N max。綜上所述,每次進(jìn)行值函數(shù)更新時(shí),其操作流程如下:
[0098]①初始化迭代次數(shù)j = l
[00"]②根據(jù)模型隨機(jī)生成W個(gè)狀態(tài)的集合{si,· · ·,SW | Si e s(agent)},S(agent)為 Agent的合法狀態(tài)集合
[0100] ③根據(jù)狀態(tài)集合,隨機(jī)生成合法的動(dòng)作集合 Si的合法動(dòng)作集合,并將動(dòng)作和相應(yīng)的狀態(tài)合并成一個(gè)集合{(si,ai),. . .,(sw,aw)}
[0101] ④根據(jù)動(dòng)作狀態(tài)集合和環(huán)境模型M,生成一組經(jīng)驗(yàn){(81,&1,81', Γι),···,(Μ,&ν, s'w,n〇},將該組經(jīng)驗(yàn)添加到集合U(初始時(shí)可能包含實(shí)際經(jīng)驗(yàn))
[0102] ⑤根據(jù)式(5)求I(U),如果I(U)<he或j>Nmax,則迭代更新結(jié)束,否則根據(jù)式(6)、 (7)將U中的經(jīng)驗(yàn)轉(zhuǎn)換成一組機(jī)器學(xué)習(xí)的訓(xùn)練數(shù)據(jù),然后按照S0GP模型更新方法更新S0GP值 函數(shù)模型,清空集合U,j = j+1,返回②;
[0104] X = feature (st-i,at-1) (7)
[0105] 每次執(zhí)行動(dòng)作獲取實(shí)際經(jīng)驗(yàn),當(dāng)實(shí)際經(jīng)驗(yàn)達(dá)到一定數(shù)目時(shí),做上述值函數(shù)更新。
[0106] 4)動(dòng)作選擇方法介紹:
[0107] 本發(fā)明使用改進(jìn)的UCB方法進(jìn)行選擇,詳細(xì)介紹如下:
[0108] 本發(fā)明定義動(dòng)作評(píng)判函數(shù)如下:
[0110] 其中:
[0111] UCB(fs,a)=y(fs,a)+KS(f s,a) (9)
[0112] UCB(rs,a)=E(rs, a)+2〇(rs,a) (10)
[0113] y(fs,a)是對該點(diǎn)的Q值的預(yù)測均值,S(fs,a)是對該點(diǎn)的Q值的預(yù)測方差,E(r s,a)是 立即回報(bào)值rs,a的預(yù)測均值, 〇(rs,a)是rs,a的預(yù)測方差。
[0114] 本發(fā)明使用梯度下降法求解令(8)最大的動(dòng)作來進(jìn)行控制動(dòng)作的選擇。
[0115] 本發(fā)明使用髖關(guān)節(jié)上的陀螺儀ro控制器對強(qiáng)化學(xué)習(xí)控制器進(jìn)行改進(jìn),改進(jìn)方法為 獲取動(dòng)作選擇中的尋優(yōu)初始點(diǎn),以下將詳細(xì)介紹:
[0116] 本發(fā)明在選擇動(dòng)作的時(shí)候采用了梯度下降法的尋優(yōu)方法對式(8)尋優(yōu)來選擇動(dòng) 作,這種方法所需要的計(jì)算資源和時(shí)間都比較大,且其所花費(fèi)的時(shí)間和最優(yōu)化效果往往與 搜索初始點(diǎn)有較大的關(guān)系。因此我們使用具有良好的陀螺儀ro控制器,為梯度下降尋優(yōu)方 法提供一個(gè)較好的尋優(yōu)初始點(diǎn),來改善尋優(yōu)的結(jié)果和所需要的時(shí)間,每次選擇動(dòng)作時(shí),通過 仿人機(jī)器人狀態(tài) s中的角速度變量,我們就可以通過式(11)求得相同條件下陀螺儀控制器 的輸出U。
[0118]令梯度下降法中的搜索初始點(diǎn)a(0)=u,然后執(zhí)行梯度下降法求解(8)的最優(yōu)點(diǎn)即 可。
[0119]改進(jìn)的整個(gè)控制器的控制流程描述如下:
[0120] ①初始化強(qiáng)化學(xué)習(xí)控制器的模型和所要用到的參數(shù);
[0121] ②使用卡爾曼濾波等方法獲取當(dāng)前的仿人機(jī)器人狀態(tài);
[0122] ③根據(jù)當(dāng)前狀態(tài),獲取陀螺儀ro控制器的輸出(即式(11)的值);
[0123] ④將陀螺儀ro控制器的輸出作為尋優(yōu)初始點(diǎn),再根據(jù)當(dāng)前狀態(tài)和Q值函數(shù),使用梯 度下降法求解出令式(8)最大的控制動(dòng)作;
[0124] ⑤使用該控制動(dòng)作對仿人機(jī)器人的靜態(tài)行走軌跡進(jìn)行調(diào)整;
[0125] ⑥獲取仿人機(jī)器人新的狀態(tài)和立即回報(bào)值,從而得到新的訓(xùn)練經(jīng)驗(yàn),并用新的訓(xùn) 練經(jīng)驗(yàn)進(jìn)行環(huán)境模型的更新;
[0126] ⑦判斷新的訓(xùn)練經(jīng)驗(yàn)是否達(dá)到一定的數(shù)目,是則進(jìn)行Q值函數(shù)的更新,否則回到 ②。
[0127] 所述值函數(shù)更新流程為:
[0128] ①使用模型產(chǎn)生一組虛擬的訓(xùn)練數(shù)據(jù);
[0129] ②使用該組訓(xùn)練數(shù)據(jù)更新按照稀疏在線高斯過程更新方法更新值函數(shù);
[0130] ③判斷是否滿足迭代條件,滿足則停止,否則回到①。
[0131]以上所述實(shí)施例只為本發(fā)明之較佳實(shí)施例,并非以此限制本發(fā)明的實(shí)施范圍,故 凡依本發(fā)明之形狀、原理所作的變化,均應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 基于模型相關(guān)強(qiáng)化學(xué)習(xí)的仿人機(jī)器人步態(tài)控制方法,其特征在于,包括W下步驟: 1) 為仿人機(jī)器人行走前后穩(wěn)定控制任務(wù)定義強(qiáng)化學(xué)習(xí)框架; 2) 使用基于稀疏在線高斯過程的模型相關(guān)強(qiáng)化學(xué)習(xí)方法對仿人機(jī)器人進(jìn)行步態(tài)控制; 3) 使用PID控制器對強(qiáng)化學(xué)習(xí)仿人機(jī)器人控制器的動(dòng)作選擇方法進(jìn)行改進(jìn),改進(jìn)操作 為使用PID控制器獲取強(qiáng)化學(xué)習(xí)控制器動(dòng)作選擇操作的尋優(yōu)初始點(diǎn)。2. 根據(jù)權(quán)利要求1所述的基于模型相關(guān)強(qiáng)化學(xué)習(xí)的仿人機(jī)器人步態(tài)控制方法,其特征 在于,在步驟1)中,所述的強(qiáng)化學(xué)習(xí)框架,包含W下要素定義: 1.1) 仿人機(jī)器人的狀態(tài)定義為: s(t) = [k(t) ,qhi(t) ,qhr(t) ,θχζ(?), ω (t)] t表示當(dāng)前的時(shí)刻,其中k(t)為指示支撐腳的情況,1代表支撐腳為左腳,Ο代表支撐腳 位雙腳,-1代表支撐腳為右腳;qhi(t),qhr(t)為t時(shí)刻左右髓關(guān)節(jié)俯仰艙機(jī)的角度;9xz(t)為 俯仰方向上的軀干傾斜角度,ω (t)為俯仰方向上的角速度; 1.2) 仿人機(jī)器人的動(dòng)作定義為: a(t) = [ Δ q] 其中,A q是對支撐腳的髓關(guān)節(jié)俯仰艙機(jī)的離線步態(tài)軌跡的在線角度調(diào)整量; 1.3) 仿人機(jī)器人的立即回報(bào)值定義為:Γ2(?)=-( I ω (t) |-| ω (t-1) I ) 其中,ai、a勸立即回報(bào)函數(shù)權(quán)值,ε為容許誤差。3. 根據(jù)權(quán)利要求1所述的基于模型相關(guān)強(qiáng)化學(xué)習(xí)的仿人機(jī)器人步態(tài)控制方法,其特征 在于,在步驟2)中,所述的基于稀疏在線高斯過程的模型相關(guān)強(qiáng)化學(xué)習(xí)方法,主要包含W下 幾個(gè)步驟: 2.1) 使用稀疏在線高斯過程構(gòu)建環(huán)境模型,該環(huán)境模型一共包含6個(gè)稀疏在線高斯過 程模型,W仿人機(jī)器人的狀態(tài)和動(dòng)作為輸入,W下一狀態(tài)和立即回報(bào)值的預(yù)測為輸出; 2.2) 對Q值函數(shù)采用批更新的方法,只有當(dāng)新獲取的經(jīng)驗(yàn)數(shù)目達(dá)到200個(gè)時(shí),才對Q值函 數(shù)進(jìn)行更新; 2.3) 使用一個(gè)基于UCB的連續(xù)動(dòng)作選擇方法,使用稀疏在線高斯過程的方差輸出和利 用環(huán)境模型對仿人機(jī)器人后繼狀態(tài)和立即回報(bào)值的預(yù)測,構(gòu)建了一條基于UCB的動(dòng)作評(píng)判 函數(shù):其中: UCB(fs,a)=y(fs,a)+K5(fs,a) UCB(rs,a)=E(rs,a)巧 〇(rs,a) y(fs,a)是對該點(diǎn)的Q值的預(yù)測均值,S(fs,a)是對該點(diǎn)的Q值的預(yù)測方差,E(rs,a)是立即 回報(bào)值a的預(yù)測均值,〇(rs,a)是a的預(yù)測方差; 使用梯度下降法求解該函數(shù)來選擇動(dòng)作,并參考ε-greedy策略的思想,Κε的概率隨機(jī) 選取動(dòng)作。4.根據(jù)權(quán)利要求1所述的基于模型相關(guān)強(qiáng)化學(xué)習(xí)的仿人機(jī)器人步態(tài)控制方法,其特征 在于,在步驟3)中,所述的使用PID控制器動(dòng)作選擇方法進(jìn)行改進(jìn)方法為:根據(jù)機(jī)器人的狀 態(tài),獲得同等條件下PID方法的控制動(dòng)作,將該動(dòng)作作為強(qiáng)化學(xué)習(xí)動(dòng)作選擇過程中所使用的 梯度下降方法的尋優(yōu)初始點(diǎn); 改進(jìn)后,控制器具體步驟描述如下: ① 初始化強(qiáng)化學(xué)習(xí)控制器的模型和所要用到的參數(shù); ② 使用卡爾曼濾波等方法獲取當(dāng)前的仿人機(jī)器人狀態(tài); ③ 根據(jù)當(dāng)前狀態(tài),獲取相對應(yīng)的PID控制器的輸出; ④ 利用PID控制器的輸出,再根據(jù)當(dāng)前狀態(tài)和Q值函數(shù),使用梯度下降法求解出最優(yōu)的 控制動(dòng)作; ⑤ 使用該控制動(dòng)作對仿人機(jī)器人的靜態(tài)行走軌跡進(jìn)行調(diào)整; ⑥ 獲取仿人機(jī)器人新的狀態(tài)和立即回報(bào)值,從而得到新的訓(xùn)練經(jīng)驗(yàn),并用新的訓(xùn)練經(jīng) 驗(yàn)進(jìn)行環(huán)境模型的更新; ⑦ 判斷新的訓(xùn)練經(jīng)驗(yàn)是否達(dá)到設(shè)定的數(shù)目,是則進(jìn)行Q值函數(shù)的更新,否則回到②; 所述值函數(shù)更新流程為: ① 使用模型產(chǎn)生一組虛擬的訓(xùn)練數(shù)據(jù); ② 使用該組訓(xùn)練數(shù)據(jù)更新按照稀疏在線高斯過程更新方法更新值函數(shù); ③ 判斷是否滿足迭代條件,滿足則停止,否則回到①。
【文檔編號(hào)】G05D1/02GK106094813SQ201610363756
【公開日】2016年11月9日
【申請日】2016年5月26日
【發(fā)明人】畢盛, 陳奇石, 董敏, 閔華清
【申請人】華南理工大學(xué)