趙玉婷,韓寶玲,羅慶生
(1.北京理工大學 機械與車輛學院,北京 100081; 2.北京理工大學 機電學院,北京 100081)
雙足機器人具有和人類相似的形體結構,其雙足直立行走的運動方式在現(xiàn)實中具有廣泛的應用前景,其行走穩(wěn)定性控制問題一直是業(yè)界的研究重點。如何使雙足機器人適應各種地面,進行快速穩(wěn)定的行走是研究中的關鍵問題[1]。
目前,仿人機器人的步態(tài)規(guī)劃主要針對理想的平整地面環(huán)境,采用離線方式設計出滿足特定全局優(yōu)化要求的步態(tài)序列,然后根據規(guī)劃好的步態(tài)序列控制機器人行走。若是機器人行走過程中遇到凸起或凹陷的不平整地面,會使擺動腿末端提前或推遲觸地,使腿末端遭遇過大的地面沖擊力,導致機器人因姿態(tài)扭曲而摔倒。
近年來,國內外許多學者針對雙足機器人在非平整地面的行走穩(wěn)定性問題,國內外許多學者嘗試采用離線步態(tài)規(guī)劃與各種步態(tài)在線修正算法結合來實現(xiàn)針對實際行走環(huán)境的穩(wěn)定持續(xù)行走[2-5]。如文獻[2],利用傳統(tǒng)的倒立擺模型與零力矩點(Zero Moment Point, ZMP)得到規(guī)劃步態(tài)后實時收集仿人機器人關節(jié)上角度傳感器信息,根據這些信息解算得到調整身體姿態(tài)所需要的數據,把這些數據與預先規(guī)劃的步態(tài)數據作比較,所得誤差經過處理后送回控制系統(tǒng)進行在線步態(tài)調節(jié)控制。文獻[3]采用慣性測量單元(Inertial Measurement Unit, IMU)和力敏電阻(Force Sensing Resistor, FSR)等基本傳感器,通過對FSR數據進行處理得到歸一化零力矩點,用于站立、擺動等簡單運動的反饋控制,從IMU數據過濾得到軀干傾斜角數據,并用于在傾斜地面行走的控制。
上述采用傳感器反饋控制進行在線修正對算法的實時快速有效解算有較高要求,尤其在實際環(huán)境中由于復雜環(huán)境參數的影響,機器人實際控制效果不夠理想。而機器學習算法的出現(xiàn)和發(fā)展為克服雙足機器人復雜控制問題提供了新的方向,在機器人領域得到了越來越廣泛的應用。文獻[6-8]基于強化學習算法,將其運用在機器人運動控制方面,達到了很好的控制效果。例如文獻[6]和文獻[7],運用強化學習算法使移動機器人以高維視覺信息作為輸入數據來學習獲得諸如避開墻壁和沿著中心線移動的良好行為。文獻[8]采用深度強化學習方法,將機器人學習擴展到復雜的3D操作任務(如開門)。
本文將強化學習與神經網絡結合的Deep Q-Network(DQN)算法[9]應用于雙足機器人步態(tài)控制,以解決機器人在非平整地面行走時的穩(wěn)定性問題。該算法無需建立機器人復雜的動力學模型,結合強化學習和神經網絡的優(yōu)勢,以離線規(guī)劃的機器人行走步態(tài)為基礎,利用DQN算法對雙足機器人的步態(tài)進行調整。DQN算法以機器人機身在單腿站立相偏離規(guī)劃位置的距離為狀態(tài),機身位置的調整為行動,并利用機身姿態(tài)信息來構建獎勵函數,可有效改善機器人在非平整地面行走時的穩(wěn)定性。該方法既避免了傳統(tǒng)控制方法需要對機器人進行復雜的動力學建模,又能獲得較為良好的控制效果。
雙足機器人的步行模型可分為靜態(tài)步行模型和動態(tài)步行模型[10],本文研究仿人機器人在低速、準靜態(tài)情況下的步行穩(wěn)定性控制。首先建立雙足機器人的運動學模型,并將機器人的上半身視為一個質點,質量集中于機器人的質心位置O0。仿人機器人軀干及下肢共有6個自由度,分別是髖關節(jié)3個自由度,膝關節(jié)1個自由度,踝關節(jié)2個自由度。以仿人機器人的質心作為基礎坐標系,以右腿作為研究對象,建立相應的D-H(Denavit-Hartenberg)坐標系如圖1所示。其中OXYZ為世界坐標系,O0X0Y0Z0為機身坐標系,XRYRZR為右腿基礎坐標系,并依次建立各關節(jié)坐標系。其次,基于D-H坐標系建立機器人運動學模型,通過逆運動學求解,建立機器人足端軌跡與關節(jié)轉角的關系[11]。表1為機器人步行參數,利用復合擺線和三次多項式曲線分別對質心軌跡與足端軌跡進行規(guī)劃,從而得到離線步態(tài)序列[12]。
圖1 機器人D-H坐標系
參數值參數值步行周期T2s單腿支撐期Ts0.6s步長S030mm雙腿支撐期Tw0.4s步高H08mm
DQN算法是基于強化學習經典算法中Q-學習算法的改進,Q-學習算法是一種不依賴于模型的強化學習算法[13],該算法在迭代學習時采用“狀態(tài)-動作對”的獎勵和Q(S,A)作為估計函數,最優(yōu)策略為在狀態(tài)下選用使獎勵值最大的行為。算法基本形式為:
(1)
其中:Q(St,At)為Agent在狀態(tài)St采取動作At獲得的獎勵折扣和;α為學習率(或學習步長),反映誤差被學習的程度;γ是對未來獎勵的衰減值,表示未來的獎勵對現(xiàn)在的影響。通過貪心策略選擇動作,直到值函數收斂,得到最優(yōu)策略:
(2)
這樣即可為每一個狀態(tài)找到最好的動作,但是對于機器人控制問題,往往其狀態(tài)空間是高維的,如果逐一計算和存儲狀態(tài)-動作值,容易產生維度災難。為解決該問題,DQN算法用值函數近似的方法得到Q值[14],即:
Q(s,a)=f(s,a)
(3)
式(3)中的函數關系指的是通過神經網絡學習,得到Q值與狀態(tài)及動作之間函數映射關系。神經網絡采用兩個結構相同、參數不同的全連接神經網絡:“當前值”網絡和“目標值”網絡,訓練過程中對當前Q值與目標Q值分別更新,并以兩者差值的平方作為損失函數進行反向傳遞。算法流程如圖2所示。
圖2 DQN算法流程
對于高維狀態(tài)空間,DQN算法只把狀態(tài)S作為輸入,而輸出一個矩陣,[Q(s1,a1),Q(s2,a2),…,Q(sn,an)]這個矩陣是在當前狀態(tài)下所有可能采取的動作所對應的獎懲值,通過經驗學習,建立狀態(tài)S與該矩陣之間的映射關系,然后從中選擇最優(yōu)的動作,其實現(xiàn)過程如DQN算法偽代碼所示。
DQN算法。
輸入:環(huán)境E;動作空間A;起始狀態(tài)x0;狀態(tài)空間S;獎賞折扣γ;更新步長α。
過程:
1)
初始化回放存儲空間D并定義容量大小N;
2)
使用隨機權重θ初始化動作-價值函數Q;
3)
4)
循環(huán)(對每一個episode):
5)
初始化狀態(tài)序列s1={x1}φ1=φ(s1)
6)
循環(huán)(對episode中的每一步):
7)
選擇一個動作a:
8)
以概率ε選擇一個隨機動作at
9)
10)
在仿真器中執(zhí)行動作at并觀察獎勵rt和新狀態(tài)xt+1;
11)
令st+1=st,at,xt+1并進行預處理使φt+1=φ(st+1);
12)
在回放存儲空間D中保存經驗(φt,at,rt,φt+1);
13)
從D中隨機選取小批樣本(φj,aj,rj,φj+1);
14)
15)
對于θ使用損失函數(yi-Q(φj,aj;θ))2梯度下降更新;
16)
17)
判斷終止條件,結束循環(huán)
18)
判斷終止條件,結束循環(huán)
輸出:當前狀態(tài)下所有可能采取的動作所對應的Q值。
2.2.1 機器人狀態(tài)空間
選取機器人姿態(tài)信息中能夠直觀反映機器人是否穩(wěn)定的信息作為狀態(tài)S,也就是每一采樣時刻x-y平面繞機身坐標系Z0軸的角度θxy和x-z平面繞機身坐標系Y0軸的角度θxz。因此DQN算法的狀態(tài)空間S={θxy,θxz},狀態(tài)值st(st∈S)。
2.2.2 機器人動作空間
仿人機器人運動采用“一走一停”的策略,即在單相支撐時進行擺動腿的邁腿動作,在雙腿支撐相,進行質心調整,保證機器人的質心始終在穩(wěn)定支撐區(qū)內。離線步態(tài)適用于平地行走,機器人處于單腿支撐相時質心在地面上的投影位于支撐腳掌的中心,但在將該步態(tài)應用于復雜地形時,機器人質心位置會發(fā)生變化,為使機器人穩(wěn)定,需要對機身位置進行調整。因此,將動作離散為在前后、左右方向上質心的調整值,本文使用的仿人機器人平臺腳掌的大小為100 mm×60 mm,設定的步長s0為30 mm,將質心調整的距離設定為0 mm、5 mm、10 mm和15 mm四個值;質心調整方向分別為Z0軸方向和Y0軸方向,在每個軸向又分正、負兩個方向,即{±Z0,±Y0};因此在每一步動作調整的過程中動作值空間A的大小為4×4×4=64,步態(tài)的調整動作記為a(a∈A)。
2.2.3 獎懲機制
在對DQN算法的獎懲值函數進行設計時,以仿人機器人進行調整之后是否摔倒作為最終的評價。機器人摔倒得到的獎勵值為-10,穩(wěn)定行走未摔倒得到的獎勵值為50。
(4)
其中:規(guī)定當θxy≥60°或θxz≥60°時判定為機器人摔倒,其他情況均記為正獎勵。
2.2.4 步行控制器學習過程
以上對DQN算法的狀態(tài)值、動作值、獎懲值函數和網絡結構進行了設計。機器人每走一步都會對DQN算法中的網絡結構參數和機器人的質心坐標進行更新。結合對機器人的步態(tài)規(guī)劃和姿態(tài)傳感器的反饋信息,通過設計的DQN算法結構訓練分析,不斷與環(huán)境進行交互學習,得出質心調整和機器人姿態(tài)信息之間的關系。學習過程如圖3所示。
本文使用V-Rep作為仿真環(huán)境,使用雙足機器人Asti模型,在機器人的行進方向隨機分布了厚度為4 mm、大小為10 mm×10 mm的障礙物,模擬“非平整地面”,場景如圖4所示。以離線步態(tài)為基礎步態(tài),將其導入到V-Rep構建的機器人的“Path”內,通過vrep_ros_bridge構建ROS和V-Rep的聯(lián)合仿真,運行DQN運算節(jié)點;輸出相應的動作指令給控制器,對基礎步態(tài)進行實時的調整,機器人每摔倒一次或者機器人順利到達終點記為一個回合。
圖3 步行控制器學習過程
圖4 仿真環(huán)境
算法參數的調整對學習效果和效率起到重要的作用,其中學習率α(更新步長)體現(xiàn)值函數到達最優(yōu)值的速度快慢程度:學習速率太小,則會使效率過低,收斂過慢;如果學習速率太大,則會導致代價函數振蕩,錯過最優(yōu)值,無法收斂。經實驗,本文選擇學習率為0.001。
獎懲折扣因子γ取值在[0,1],學習效果不僅需要考慮當下的回報,還要考慮未來的回報,距離當前時間越近的獎勵,考慮的程度越高,經實驗,本文將折扣因子設置為0.9。
ε-貪心法以ε的概率隨機選擇一個動作,以1-ε的概率選擇當前最優(yōu)的動作。只需記錄每個動作的當前平均獎勵值與被選中的次數,便可以增量式更新。ε一般取值較小,本文取值為0.01。
如前文所述,記憶庫存儲歷史經驗,每次DQN更新的時候,可以隨機抽取歷史經驗進行學習。隨機抽樣的方法可以降低不同歷史經驗之間的相關性,以提高神經網絡的更新效率。根據經驗嘗試以及硬件要求,選取記憶庫參數如表2所示。
表2 DQN算法相關參數
為驗證本算法的有效性,針對行走中的典型情況,作了以下三種情況的仿真:1)機器人在平整地面行走,由于未遇到不平整地面障礙物,依靠離線規(guī)劃的步態(tài)行走;2)中途遇到不平整地面且不加DQN算法控制,障礙物厚度為3 mm;3)中途遇到不平整地面使用DQN算法控制,障礙物與2)中完全相同;記錄三種仿真情況下行走過程姿態(tài)角變化。
如圖5所示,A1~A4是未使用DQN算法時,機器人在不平整地面的行走情況。A1為機器人的初始狀態(tài);A2顯示在機器人未碰到障礙物時,能夠正常行走;A3~A4顯示機器人由于沒有進行質心位置的調整,發(fā)生摔倒。隨后,使用DQN算法進行姿態(tài)調整,對機器人進行了360個回合(機器人摔倒或順利到達終點記為一個回合)的訓練測試,最終訓練結果即B1~B4所示,B1為初始狀態(tài),機器人基本學會了質心調整和機器人姿態(tài)角度之間的關系,能穩(wěn)定行走到終點。
圖5 仿真結果關鍵幀對比
圖6和圖7分別為機器人行走過程中左右方向和前后方向的姿態(tài)角,兩圖中的(a)圖均為三種仿真情況的數據,(b)圖均為“平整地面”和“非平整地面使用強化學習算法”兩種情況的對比。
圖6 機器人左右姿態(tài)角數據曲線
從圖6和圖7可知,在平整地面上行走,機器人左右姿態(tài)角度α波動范圍在2°以內,前后姿態(tài)角度β波動范圍在0.5°以內;當行走過程遇到不平整地面,在未使用DQN算法進行姿態(tài)調整的情況下,左右姿態(tài)角發(fā)生90°左右的波動,前后姿態(tài)角發(fā)生10°~20°的變化,機器人發(fā)生摔倒;當經過DQN算法進行學習之后,機器人在遇到非平整地面后,雖然角度有所波動,但是波動范圍大部分在2°以內,極個別位置有3°左右的波動,該波動范圍與文獻[4]采用ZMP控制在不平整路面姿態(tài)角波動范圍2°以內相比,均在可接受范圍內,說明雙足機器人使用DQN算法能夠通過質心位置的調整實現(xiàn)在不平整路面上的穩(wěn)定行走。
圖7 機器人前后姿態(tài)角數據曲線
經過360回合將近10 000步的訓練后,得到DQN算法的損失函數和獎勵值函數的數據,圖8表示的是整個訓練過程中損失函數的變化,可以看出損失函數隨著訓練步數的增加逐漸減小,趨于穩(wěn)定。
圖8 誤差變化曲線
通過對以上仿真結果和實驗數據的分析可知,DQN算法的損失函數最終收斂,累積獎勵收斂于穩(wěn)定值,這說明基于DQN算法的步行控制器逐漸習得調整機器人質心的正確方式,從而使機器人在非平整地面保持穩(wěn)定行走。
本文針對雙足機器人在非平整地面行走時容易失去運動穩(wěn)定性的問題,提出了基于強化學習的雙足機器人步態(tài)控制新方法,主要包括兩部分:1)離線步態(tài)的生成;2)基于強化學習DQN算法的步態(tài)調整算法。在V-Rep環(huán)境下搭建了不平整地面仿真環(huán)境,仿真結果顯示機器人在遇到非平整地面后,經過算法調整后姿態(tài)角度波動范圍大部分在2°以內,極個別位置有3°左右的波動,表明機器人學會了步態(tài)自主調整,能夠保持行走穩(wěn)定性,由此證明了算法的有效性,與傳統(tǒng)控制方法相比,無需進行復雜的動力學建模過程,為解決雙足機器人在非平整地面行走的穩(wěn)定性問題提供了新的思路。