劉志立,宋昌林,李軍民,劉 濤
(西華大學機械工程學院,成都 610039)
機械臂的控制一直是智能機器人控制中的重要問題和熱點問題。目前對于機械臂的控制理論和方法已有較為深入的研究[1-2],但是這些方法依賴于環境的先驗知識與機械臂的數學模型。早期的基于視覺的機器人是將圖像進行圖像處理后,從圖像中得到機器人或者目標的位置,以此來達到智能控制和閉環控制的效果[3-6]。例如Kragic D等使用基于單目和雙目視覺開發的閉環視覺算法實現了從目標識別到位姿估計的步驟是完全自動的[5]。然而這些算法大多針對特定的任務,需要環境的先驗知識和機械臂的數學模型,由此開發的控制器無法做到自主地從圖像中學習到有效的知識來優化控制效果。
強化學習可以實現學習復雜的機器人動作的方法,只需要對機器人的動作進行獎勵或者懲罰[7-9],這樣就讓智能體重要信息時選擇能夠獲得最大獎勵的策略。而采集智能體與其環境交互的圖像,這圖像中具有豐富的信息,基于這個思想文獻[10]開發了基于DQN算法的游戲智能控制器進行游戲運動控制。DQN使用了深度卷積神經網絡(CNN)來逼近q值函數,它將原始像素即時信息直接映射到動作,不需要預先的圖像處理提取特征信息。唯一的一件事就是讓算法通過一遍又一遍地玩游戲來改善策略。實驗結果表明智能控制器學會了玩49款不同的雅達利2600游戲并達到了人類玩家的控制水平[11-12]。
基于DQN算法在雅達利2600游戲上取得的成功,文獻[13-14]使用DQN算法和深度卷積神經網絡開發了一個三軸機械臂的智能控制器。將關節角度和攝像機圖像直接映射到關節力矩,是機器人的配置唯一必要的先驗知識。實驗結果表明智能控制器確實是通過學習完成了機械臂的控制,不過由于DQN算法輸出值是離散值這一局限性,智能控制器控制機械臂到達目標的成功率只有51%左右。
文獻[15]基于雙旋轉關節機械臂的行為數據結合強化學習算法開發了機械臂的控制器,但存在數據點位有限和需要為機械臂模型配置大量先驗知識的缺陷,無法一個控制器訓練后控制不同結構的機械臂。而視覺傳感器采集到的圖像中豐富的信息在與強化學習算法相結合,讓智能控制器自主的從圖像中學習信息,通過獎勵和懲罰來優化控制策略,這就可以在不配置任何機械臂結構模型先驗知識的情況下,用智能控制器分別進行不同結構機械臂訓練后進行機械臂的控制。
本文采用深度確定性策略梯度算法(DDPG)[16]結合卷積神經網絡設計了算法中的演員-評論家網絡,智能控制器在分別對不同結構的機械臂進行訓練之后,雖然還是同樣的演員-評論家網絡,但是由于網絡參數已經不同,因此能夠控制不同結構的機械臂。最后再結合力矩電機特性[17]和機械臂的物理特性設計了一個2D模擬器進行仿真實驗,在進行仿真實驗結果的數據來分析此智能控制器的實際控制效果。
對于兩自由度機械臂模型可具體分為三種兩自由度械臂模型如圖1所示,由于兩自由度機械臂通常由旋轉副或者滑動副構成,由此兩自由度機械臂模型共有三種,一種是兩個旋轉副構成,如圖1左所示,由兩個旋轉關節控制機械臂運動,將這種機械臂模型記做rr類機械臂。第二種則是一個旋轉副和一個滑動副構成,如圖1中所示,由一個滑塊和一個旋轉關節控制機械臂運動,將這種機械臂模型記做xr類機械臂。第三種是由兩個滑動副構成,如圖1右所示,由兩個滑塊控制機械臂運動,將這種機械臂模型記做xy類機械臂。

圖1 三種兩自由度機械臂模型及目標
智能控制器得到機械臂與所處的環境交互的圖像,運算后,向機械臂輸出對應旋轉關節或者滑塊進給的力矩。
為了實現機械臂的自主控制,設計了一種基于視覺控制的智能控制器。智能控制器通過一步一步地學習,最終學會控制機械臂運動致使機械臂末端從初始位置控制到目標位置。在其中的每一步中,智能控制器通過視覺傳感器采集環境的圖像并在線學習得到下一步的控制量。
如圖2所示,該智能控制器包括視覺傳感器,圖像特征處理器,控制執行器,學習運算器。

圖2 智能控制器結構
視覺傳感器將當前環境實際信息以彩色圖像的方式采集起來,圖像矩陣I為RGB模式的圖像三維矩陣。圖像矩陣包含有機械臂的當前狀態與目標狀態還有環境信息。
圖像特征處理器將接收到的圖像矩陣I進行灰度化與閾值化處理后,再進行調整尺寸與變形后便向強化學習算法核心輸出狀態矩陣st。圖3分別詳細描述了rr類機械臂,xr類機械臂和xy類機械臂由視覺傳感器采集圖像矩陣I輸入到圖像特征處理器處理成狀態矩陣st的過程。

圖3 狀態矩陣
圖4分別詳細描述了rr類機械臂,xr類機械臂和xy類機械臂由視覺傳感器采集圖像輸入到圖像特征處理器處理得到獎勵值rt的過程,圖像特征處理器將接收到的圖像矩陣I進行顏色濾波函數留下機械臂末端的綠圓與目標藍圓,再通過HoughCircles函數,得到綠圓中心坐標x1,y1,藍圓中心坐標x2,y2。

圖4 獎勵值計算的前處理
獎勵值rt的表達式為:
(1)
從式(1)可以很明顯的知道,機械臂末端位置與目標位置間的距離反應了獎勵值的大小。
強化學習算法運算器根據圖像特征處理器產生的狀態矩陣st和獎勵值rt產生控制量at(a1,a2)。控制執行器通過控制量at來計算控制機械臂旋轉關節或滑塊需要的進給增量,再將旋轉角度增量直接映射到關節力矩Mt(m1,m2)。
學習運算器將當前的圖像特征傳感器傳過來的狀態矩陣和獎勵值進行運算后,生成控制量,經過控制執行器輸入到機械臂中致使環境發生變化。
根據式(1)可知,在學習中的原則是如果學習過程惡化,則機械臂末端位置于目標位置間距離增大,通過減小獎勵值,進行懲罰。如果學習過程改善,則機械臂末端位置與目標位置間距離減小,通過增大獎勵值,進行獎勵。
強化學習模型是學習運算器的核心算法模型,該模型由卷積神經網絡和深度確定性策略梯度算法設計而成。深度確定性梯度算法(Deep Deterministic Policy Gradient)是基于演員-評論家結構(Actor-Critic)。其中演員(Actor)是一個相對獨立的神經網絡模型,任務就是學動作。評論家(Critic)也是一個獨立的神經網絡模型,演員(Actor)和評論家(Critic)的網絡結構則是需要設計成能夠處理圖像矩陣的卷積神經網絡。評論家(Critic)它負責評估演員(Actor)的表現,并指導演員(Actor)下一階段的動作。
深度確定性梯度算法[16]是一種使用Actor-Critic結構,它包括更新策略參數的演員網絡和評價演員表現的評論家網絡函數。DDPG結合了之前獲得成功的DQN結構, 提高了Actor-Critic結構的穩定性和收斂性。深度確定性策略梯度算法的確定性策略梯度更新公式如下:
(2)
深度確定性梯度算法結構中有一個數據庫用于學習之前的經歷,算法采用離線學習法, 它不僅能學習當前經歷著的, 還能學習過去經歷過的, 甚至是學習別人的經歷。所以每次算法更新的時候, 我們都從數據庫中隨機批量抽樣N個經歷進行學習。隨機抽取這種做法打亂了經歷之間的相關性, 也使得神經網絡更新更有效率。
深度確定性梯度算法結構(圖5)中演員(Actor)和評論家(Critic)分別有兩個結構相同但參數不同的神經網絡,分別是evalNN和targetNN。其中evalNN的神經網絡具備最新的參數, 而targetNN的神經網絡的參數則是在一定的訓練次數之后再由evalNN的神經網絡參數軟更新而來。演員(Actor)的神經網絡為:A-evalNN和A-targetNN。評論家(Critic)的神經網絡為:C-evalNN和C-targetNN。

圖5 深度確定性策略梯度算法結構圖
如圖5所示,深度確定性策略梯度算法結構得到狀態矩陣st,這個狀態矩陣st輸入A-evalNN網絡后輸出是控制量at,經過控制執行器后導致環境變化,經過視覺傳感器和圖像特征處理器后得到狀態矩陣st+1和獎勵值rt,再將(st,at,rt,st+1)作為一組數據存入數據庫中,然后將狀態矩陣st+1輸入到A-evalNN網絡,A-evalNN網絡輸出是控制量at,...,如此循環往復將一組組數據填入數據庫。
當記憶庫的數據到達一定的數量時,則隨機批量抽取數據庫中的數據進行學習更新evalNN神經網絡,而targetNN的神經網絡的參數則是在一定的訓練次數之后再由evalNN的神經網絡參數軟更新而來。
如圖6演員(Actor)神經網絡設計:輸入狀態矩陣st經過卷積、激活函數和池化以后,再將三維矩陣變形成二維矩陣,再經過隱藏層和激活函數后,輸出控制量at。如圖6所示,經過actor網絡運算后能得到一個2×1的值,而這就對應于機械臂的控制量at。

圖6 Actor網絡結構
如圖7評論家(Critic)神經網絡設計:輸入狀態矩陣st經過卷積、激活函數和池化以后,將三維矩陣變形成二維矩陣,再經過全連接層和激活函數后,輸出一個300×1的矩陣,輸入控制量at經過全連接層和激活函數后,輸出一個300×1的矩陣,將兩個矩陣做加法運算后經過激活函數后,再經過一個全連接層和激活函數輸出1×1的值。

圖7 Critic網絡結構
根據圖2結構圖進行搭建的三種兩自由度機械臂智能控制器,實驗中機械臂運動規則如下:
一步:將機械臂得到一次控制執行器的關節力矩發生動作記作一步。
一回合:如果機械臂末端在200步內到達目標位置,則將這個過程記作一回合。如果機械臂末端在200步內沒有到達目標位置,則將這200步記作一回合。
在實驗當中,圖像特征處理器將接收到的圖像矩陣I進行顏色濾波函數留下機械臂末端的綠圓與目標藍圓,再通過HoughCircles函數,得到綠圓圓心x1,y1,藍圓圓心x2,y2。
其中,機械臂末端與目標位置距離值D的表達式為:
(3)
當D< 20(像素)時,則判定機械臂末端到達目標位置。
每一回合開始,目標隨機出現在機械臂工作范圍內任一位置,機械臂如果能在一回合內機械臂末端能夠到達目標位置則記作回合成功。反之,則記作回合失敗。
將該智能控制器分別就三種兩自由度機械臂模型進行訓練,根據訓練途中產生的獎勵值、機械臂末端與目標位置的距離值和測試中平均每回合的結束步數、每百回合成功率數據來判斷該智能控制器對于三種兩自由度機械臂的控制效果。值得注意的是,該智能控制器的設計之初的所有配置與神經網絡未訓練前的參數值都是相同的,將三個具有相同配置和參數值得智能控制器分別進行三種兩自由度機械臂模型的訓練,其中將rr機械臂模型對應的智能控制器稱為rr智能控制器,其中將xr機械臂模型對應的智能控制器稱為xr智能控制器,其中將xy機械臂模型對應的智能控制器稱為xy智能控制器。
三種兩自由度機械臂模型訓練實驗中獎勵值與回合變化如圖8所示,根據獎勵值式(1)和訓練過程中獎勵值在訓練中隨著回合數的增多而增高,這表明rr、xr、xy智能控制器在進行有效的學習后,學習到機械臂的控制策略致使獎勵值提高,而獎勵值最終的趨勢是在0上下小幅波動,這表明控制器學習到近乎飽和。

圖8 訓練過程中-獎勵值與回合數
圖9顯示了機械臂末端與目標位置距離值(式3)在訓練過程中隨著訓練的回合數越多,距離值越小,這表明三個智能控制器學習到了如何在一回合內接近目標。在訓練14 000回合后三個智能控制器控制的機械臂末端與目標位置的每百回合距離值基本在D<20(像素)的位置,這說明智能控制器在訓練14 000回合后達到了對機械臂的有效控制。而這其中xy智能控制器表現最為優秀,在訓練14 000回合后的所有回合都是控制機械臂末端到達目標位置20個像素范圍內。

圖9 訓練過程中-距離值與回合數
將三個智能控制器訓練了20 000個回合后,再分別將三個智能控制器在同一環境下進行測試10 000回合(測試與訓練規則相同,但是不更新網絡參數進行學習)。
表1是在三個智能控制器測試10 000個回合過程中的平均步數,由前面所述,一回合中的最大步數是200步。由此可得,完成一個回合的運動步數越少,表明控制器的控制性能越好,由此可見,智能控制器對xy型機械臂控制性能最好。

表1 測試平均步數
圖10顯示了三個智能控制器測試過程中,在10 000個回合內每百回合成功率與回合數的關系,其中xy智能控制器控制成功率是完全的100%,rr智能控制器的成功率則是97%以上,xr智能控制器的成功率在94%以上。

圖10 測試過程中-每百回合成功率
本文在分析了計算機視覺技術與強化學習技術對控制技術的影響的基礎上,設計了基于機器視覺的兩自由度機械臂智能控制器。該智能控制器的仿真結果表明,在對不同結構的兩自由度機械臂控制上具有通用性強、控制效果好的優勢。尤其在對雙滑動關節結構的兩自由度的機械臂控制上取得了100%控制成功率,具有很高的理論價值和工程實踐意義。