陳雙,李龍,羅海南
(蕪湖哈特機器人產業技術研究院有限公司,蕪湖241000)
隨著科技的進步和人們對生活水平的追求,服務機器人[1-2]作為機器人家庭中的新生一員應運而生,在醫療救助、家庭服務、娛樂項目等領域中發揮著重要作用。而自主導航[3]是服務機器人最基本、最重要的能力,也是其他應用的基礎;但由于服務機器人應用環境的非結構化和復雜多樣化,給其導航能力提出了更高的要求。近年來,隨著智能科學的興起和發展,如何在服務機器人與環境的交互中通過自主學習提高自身的智能水平,使其更好的適應復雜環境己經成為機器人學中研究的熱點問題。而強化學習[4-5]無需數學模型和先驗知識,只需通過與環境的交互試錯便能夠得到相應優化控制策略,因此可應用在服務機器人的導航控制中。
強化學習[6-8]的思想來源于動物的學習理論,主要解決的問題是:一個能夠感知環境的智能體(Agent),如何通過學習選擇能力執行能夠完成設定目標的最優動作。該算法把學習看做是一個試探的過程,把外界環境狀態映射成相應的動作,Agent 通過不斷與外界環境交互試錯后獲得相應的獎懲,在不斷學習的過程中,逐步逼近能夠獲得最大獎賞值的動作策略。在強化學習中,由環境產生的獎賞信號(獎勵或懲罰)是對Agent當前動作的評價,它無需告訴Agent 如何產生最優的動作,只需Agent 不斷的改變從狀態空間到動作空間的映射策略使自身獲取正的獎賞值最大即可完成目標任務。圖1 為強化學習的原理示意圖,Agent 根據當前環境的狀態執行一個動作后,外界環境發生改變的同時給予該動作相應的獎賞信號并傳遞給Agent 本身,然后不斷修正動作策略使Agent 得到的獎賞信號最大,從而進行下一步的動作,如此循環,直到Agent 該環境下一直執行最好的動作為止。

圖1 強化學習的原理示意圖
強化學習包含很多種算法,例如蒙特卡羅算法、動態規劃算法、瞬時差分算法、R 算法和Q 學習等,其中,Q 學習是一種與環境模型無關的強化學習算法,因其不需要建立精確的數學模型而被廣泛的應用在機器人控制系統中。
Q 學習[9]提供智能系統在馬爾科夫環境下利用經歷的動作序列選擇最優動作的一種學習能力。在Q 學習中,Q(s,a)是狀態動作對的值函數,通過不斷循環減小相鄰狀態間Q 估計值的差異來達到一定的收斂條件,即:

其中,(st,st+1)∈S,S 為狀態集;(at,at+1)∈A,A 為動作集;R(st,at)表示在狀態st下執行動作at得到的獎賞值;γ為折扣因子;T(st,at,st+1)表示從狀態st通過執行動作at后轉到狀態st+1的概率。通過輸出的Q 值得到給定狀態所對應的可能動作,從而Agent 選擇并執行最大Q值所對應的動作。選擇的策略為:

通過式(3)完成Q 值的更新,直至收斂:

式中α為學習率。
Q 函數的實現方法[10]主要有兩種:一種是采用神經網絡的方法,另一種是采用lookup 表格方法,即通過lookup 查表法描述離散空間中狀態動作對的值函數,表的大小等于S(狀態集合)×A(動作集合)的笛卡爾乘積中元素的個數。但當外界狀態集合S 或Agent 的動作集合A 較大時,lookup 表將占用較大的內存空間,從而造成Q 學習的收斂速度過慢甚至產生“維數爆炸”等問題;若Agent 規劃的是非離散場景的路徑時,采用查表法存儲Q 值的方法也不具有泛化能力,因此本文將采用神經網絡來實現Q 學習算法。
神經網絡具有較強的泛化能力,能夠逼近任意非線性函數,因此神經網絡可以解決Q 學習中大規模的狀態空間到動作空間之間的映射關系問題,圖2 顯示了BP 網絡擬合Q 學習算法的結構圖。
圖2 中可以看出,網絡的輸入是傳感器所檢測的當前環境信息量化后的結果st={s1,s2,…,sn},假設服務機器人具有m 個可能的動作ak(k=1,2,…,m),網絡的輸出是設定動作對應的Q 值(Q(st,ak)),即:


圖2 BP網絡擬合Q學習算法的結構圖
采用較常用的ε-Greedy 探索策略來解決探索與利用之間的平衡關系,即服務機器人以ε的概率隨機選擇某一動作,以1-ε的概率按式(2)選擇最大Q 值對應的動作。當機器人執行完該動作后,將當前的狀態st+1輸入到網絡中,得到下一動作對應的Q 值(Q(st+1,at+1)),同時網絡給予該動作相應的獎賞值r(st,at),此時得到輸出誤差e 為:

在得到網絡的輸出誤差后,利用式(5)修正調整BP 網絡的各個權值大小,當誤差滿足設定的條件后機器人進行下一步動作,重復上述步驟直至學習結束,即服務機器人已到達目標點完成導航任務。該算法的流程圖如圖3 所示。

圖3 BP網絡擬合Q學習算法的導航流程圖
在MATLAB 環境下模擬仿真較為常見的兩輪差動式服務機器人,通過控制其質心處的轉角使車體完成前行、左轉及右轉的動作,服務機器人感知系統的模型結構如圖4 所示。首先,車體的右方、前方和左方均安裝了三個超聲波傳感器,從而能夠檢測車身右方30°、前方30°及左方30°的環境信息。為了確保機器人在完成導航任務時自身的安全性,取sright、sfront和sleft分別表示機器人與車體右方、前方及左方障礙物之間的最短距離,即 sright=min(l1,l2,l3)、sfront=min(l4,l5,l6)、sleft=min(l7,l8,l9),同時需要測量機器人與目標點間的距離(sgoal)以及當前車身方向與目標點之間的夾角(sangle),計算公式如下:



圖4 機器人感知系統模型
在MATLAB 中建立了100×100 單位距離的仿真界面,假設每個超聲波傳感器的檢測范圍為0~5 個單位,當機器人周圍無障礙物或機器人與障礙物之間的距離大于5 個單位時,傳感器的示數顯示為5。在MATLAB 圖形用戶界面中仿真模擬外界環境,圖5(a)中顯示了所建的GUI 仿真界面,將外界環境信息存儲在mat 文件中,通過導入障礙物按鈕完成對設定外界環境的加載;在設置起點按鈕和終點按鈕中,可使用鼠標點擊確認的方式獲得起點及終點的位置;清除路線按鈕的作用是清除機器人的路徑軌跡;保存仿真圖形菜單可實現對仿真結果的存儲。
在路橋工程施工過程中,水泥結構設計對混凝土強度要求比較低,一般情況下使用低強度的混凝土,此外還應結合環境因素對混凝土結構實施全面的設計,能夠有效避免對外部產生影響,而且在較大程度上可提升混凝土設計質量。在對混凝土結構進行設計的過程中,最為重要的是避免裂縫的產生,這就需要施工企業在施工過程中不斷創新和優化施工工藝,在最大程度上保證乃至提高工程質量。

圖5 仿真環境
在馬爾科夫環境下,Q 學習的輸入和輸出均是離散的變量,因此需要對從外界系統中獲取的輸入輸出數據進行量化處理。本文采用了由Michie 提出的BOX 算法,其基本思想是將輸入狀態空間劃分為確定數量的非重疊區域,不同的輸入狀態激活不同的區域。本文在綜合考慮傳感器所測距離的范圍后,將網絡的輸入量劃分為9 個區域,不同的區域代表機器人面臨不同的環境信息。量化后的結果為:

為了使服務機器人運行的路徑較平滑,把服務機器人的執行動作分為左轉30°、左轉15°、直行、右轉30°、右轉15°這5 個動作,網絡的輸出變量即為該5 個動作對應的Q 值。
獎賞信號是Q 學習的主要元素之一,合理的設定獎賞信號有利于提高網絡的收斂速度。服務機器人導航的主要目的是使車體完成接近目標和遠離障礙物兩種行為:機器人接近目標應給予獎勵,即正獎賞值,遠離目標應受到懲罰,即負獎賞值;同樣,機器人越接近障礙物,受到的懲罰就越大,越遠離障礙物,獲取的獎勵就越多。本文將獎賞信號分為三部分:第一部分為障距獎賞值Rod,即根據服務機器人相對于障礙物的距離設置的獎賞值;第二部分為方向獎賞值Rdo,即根據服務機器人車體方向相對于目標點的夾角(簡稱,目標方向夾角)設置的獎賞值,第三部分為目距獎賞值Rgd,即根據服務機器人相對目標點的距離設置的獎賞值;三部分獎賞值的取值分別為:

當服務機器人與障礙物之間的距離不同時,機器人需要考慮選擇執行兩種行為(逼近目標與躲避障礙物)的優先權。在未檢測到障礙物時,即sright=sfront=sleft=5,應優先逼近目標點,此時車體每步改變5°從而逐漸減小目標方向夾角并接近目標。當檢測到障礙物時,本文根據經驗知識,以安全距離為分界點,引入障距動態權值以及目距動態權值,兩個權值取值的大小決定了執行逼近目標和躲避障礙物兩個行為的優先權,按如下規則設置動態獎賞值:
(1)當服務機器人與障礙物之間的距離小于設定的安全距離時,應給予機器人一定的懲罰(Rpu),設置Rpu=-5;同時,在該狀態下,機器人主要以躲避障礙物為主,因此,設置障距動態權值Wod=0.9、目距動態權值Wgd=0.1。
(2)當服務機器人與障礙物之間的距離大于等于所設的安全距離時,機器人主要以接近目標點為主,在該狀態下,主要考慮機器人與目標點之間的距離及目標方向夾角,因此,設置Wod=0.1、Wgd=0.9。

式中,Wdo為目標方向動態權值,其值Wdo=1-[Wod]。
在仿真實驗中,假定最初服務機器人的車體前進方向朝向目標點,設定網絡的最大學習次數為2000次,機器人每完成一個動作后便調整一次網絡的權值,當機器人的學習次數超過最大學習次數或碰到障礙物時,則返回至最初設定的起點位置開始新一輪的訓練。服務機器人行駛的速度取決于車體與周圍障礙物之間的距離,當周圍無障礙物時,機器人具有最大的行駛速度;當檢測到障礙物時,機器人會降低行駛速度。機器人行駛速度v 的計算公式為:

式中,smin=min(sright,sfront,sleft);ζ 為速度比例系數。
在學習的初始階段,Q 值是隨機設定的,為了探索到所有的動作,采用ε-Greedy 探索策略選取動作,以1-ε的概率選擇最大Q 值對應的動作,以ε的概率隨機選擇任一動作,隨著學習的不斷進行,逐漸降低ε的大小。網絡中各個參數的設定值如表1 所示。

表1 網絡參數的設定值
服務機器人采用BP 網絡擬合Q 學習的算法應用于靜態環境下的導航系統中,仿真的結果如圖6 所示。
在仿真實驗中,當周圍無障礙物時,機器人以最大的速度行駛并靠近目標點,當遇到障礙物時,將采取避障措施。從圖6(a)可以看出,在學習的初始階段,服務機器人主要以探索環境為主,此時選擇隨機動作的概率較大,因此機器人無法正確的選擇并執行最佳的動作,導致行駛的路線比較亂,而且出現了與障礙物相撞的現象。從圖6(b)可以看出,在訓練中期,隨著與環境交互的不斷進行,服務機器人隨機選取動作的概率在逐漸減小,并慢慢學會了如何避開障礙物并趨向目標點,但是,機器人在此時并沒有完全熟悉環境,因此規劃的路徑并不是最優路徑。從圖6(c)中可以看出,在訓練的后期,機器人經過了大量的實驗與學習,對環境完全掌握的情況下,走出了一條相對較優的路線,并順利到達目標點。最后,服務機器人利用所提的算法在上述環境下完成100 次的導航路徑,輸出每次行使路徑所耗時間及步數,設定當機器人與障礙物相撞時,機器人的輸出步數為0,結果如圖7 和圖8 所示。
從圖7、圖8 可以看出,由于BP 網絡的初始權值是隨機設定的,在訓練初始階段,網絡極易陷入極小值問題,致使機器人消耗較長時間到達目標點,甚至出現碰撞障礙物次數較多的現象,隨著學習的進行,逐漸適應所在的環境,最后花費了較少的時間走出相對較優的路線。
服務機器人在家庭服務、醫療服務、娛樂項目等方面發揮著重要的地位和作用,在服務機器人發展的同時,對其智能化程度的要求也越來越高,因此通過自主學習來提高智能水平是未來服務機器人走進千家萬戶必須深入研究的問題。學習是智能產生的基本條件,基于強化學習的導航方法將會在機器人系統的設計中發揮重要的作用,本文提出了基于神經網絡的強化學習算法,并應用在機器人的導航控制中,該算法充分考慮機器人所需完成的避障和趨向目標的任務,在MATLAB 仿真環境下驗證了該算法的可行性。

圖8 時間