李鶴宇 林廷宇 曾 賁 施國強
1. 北京電子工程總體研究所,北京 100854; 2. 北京仿真中心,北京 100854
隨著航天事業(yè)的不斷發(fā)展,太空垃圾清理、航天器維修、裝備組裝成為研究熱點??臻g機械臂由于具有良好的適應(yīng)性和擴展性,能夠在復(fù)雜場景下,完成多種類型任務(wù),被廣泛應(yīng)用于航天領(lǐng)域。針對空間碎片對在軌航天器的安全造成威脅的問題,使用空間機械臂捕獲非滾轉(zhuǎn)的目標[1-2]。SpiderFab計劃采用7自由度的空間機械臂,通過人員遙控的方式實現(xiàn)全自主模式下的在軌制造與組裝[3]。RAMST計劃在地球軌道上,通過遙操作的方式實現(xiàn)模塊化天基望遠鏡的在軌裝配[4]。裝配于國際空間站的雙機械臂空間機器人系統(tǒng)Dextre、Robonaut2,利用雙臂的協(xié)同性,能夠執(zhí)行更加復(fù)雜的任務(wù)[5-6]。
為使得空間機械臂應(yīng)對復(fù)雜的任務(wù)需求,需要不斷優(yōu)化控制算法,提高系統(tǒng)的魯棒性與精確性。文獻[7]將末端執(zhí)行器與目標相對速度的絕對值作為目標函數(shù),使用最優(yōu)控制的方法解決空間機器人捕獲航天器的問題。文獻[8]提出一種凸規(guī)劃控制方法,用于控制空間機械臂捕獲翻滾航天器。文獻[9]建立碰撞避免模型,提出一種主動抑制干擾的控制算法,用于避免碰撞。文獻[10]提出一種基于運動學(xué)的自適應(yīng)控制方法,用于存在閉環(huán)約束和有效載荷慣性參數(shù)不確定的空間雙機械臂控制問題。文獻[11]使用絕對節(jié)點坐標法描述柔性體,建立末端帶集中質(zhì)量的雙連桿柔性機械臂的動力學(xué)模型,采用PD控制策略實現(xiàn)了機械臂的運動跟蹤控制。文獻[12]運用非慣性系下的拉格朗日分析力學(xué)建立空間機械臂系統(tǒng)動力學(xué)方程,針對空間機械臂載體自由繞飛空間目標的情形,設(shè)計抓取目標的尋的制導(dǎo)控制規(guī)律。
隨著計算能力的發(fā)展和數(shù)據(jù)資源的增加,用于決策問題的深度強化學(xué)習(xí)成為研究熱點,出現(xiàn)DQN (Deep Q-network)[13]、DDPG (Deep Deterministic Policy Gradient)[14]、TRPO (Trust Region Policy Optimization)[15]、A3C (Asynchronous Advantage Actor-Critic)[16]、DPPO (Distributed Proximal Policy Optimization)[17-18]等算法。將深度強化學(xué)習(xí)應(yīng)用于控制領(lǐng)域,產(chǎn)生了良好的效果。文獻[19]對DDPG算法進行修改,并結(jié)合人工演示,使用深度強化學(xué)習(xí)控制機械臂完成插銷入洞的任務(wù)。文獻[20]在仿真環(huán)境中對TRPO算法進行訓(xùn)練,并將神經(jīng)網(wǎng)絡(luò)遷移至ANYmal機器人,實現(xiàn)四足控制。文獻[21]不依賴于先驗知識對PPO算法進行訓(xùn)練,并將訓(xùn)練結(jié)果遷移至多指靈巧手機器人,實現(xiàn)翻轉(zhuǎn)立方體。文獻[22]使用Q-learning的方法訓(xùn)練最大熵策略,并應(yīng)用于實際機器人的操縱,實現(xiàn)較高的樣本效率。
本文在虛擬環(huán)境中對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,實現(xiàn)使用深度強化學(xué)習(xí)的方法控制空間機械臂,移動其抓手至物體下方特定位置。構(gòu)建虛擬環(huán)境,包括5軸空間機械臂和目標物體,作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練環(huán)境,為算法提供數(shù)據(jù)支撐。設(shè)置狀態(tài)變量表示當(dāng)前環(huán)境信息,作為深度強化學(xué)習(xí)算法的輸入,深度強化學(xué)習(xí)根據(jù)狀態(tài)變量計算輸出值,設(shè)置獎勵函數(shù)對輸出值進行評價,并由評價結(jié)果對神經(jīng)網(wǎng)絡(luò)的參數(shù)進行修改,實現(xiàn)學(xué)習(xí)過程。
在policy gradient算法中,神經(jīng)網(wǎng)絡(luò)的參數(shù)為θ,對應(yīng)的策略為π,在一個完整的決策過程中,共包含T個步驟,神經(jīng)網(wǎng)絡(luò)不斷與環(huán)境交互,形成序列τ:
τ={s1,a1,s2,a2,…,sT,aT}
(1)
式中:st∈Rn(t=1,2,…,T)為當(dāng)前環(huán)境的狀態(tài)向量,at∈Rm(t=1,2,…,T)為針對si神經(jīng)網(wǎng)絡(luò)的動作輸出向量。由于神經(jīng)網(wǎng)絡(luò)在相同狀態(tài)下可能得到不同的輸出,因此序列τ發(fā)生的概率為:
(2)
式中:p(s1)為當(dāng)前環(huán)境的初始狀態(tài)為s1的概率,pθ(at|st)為環(huán)境狀態(tài)為st、神經(jīng)網(wǎng)絡(luò)參數(shù)為θ時,輸出為at的概率,p(st+1|st,at)的狀態(tài)為st時,通過動作輸出at得到新的環(huán)境狀態(tài)為st+1的概率。
在策略為π時,神經(jīng)網(wǎng)絡(luò)能獲得的期望獎勵值為:
(3)
式中:pθ(τ)為神經(jīng)網(wǎng)絡(luò)參數(shù)為θ時,τ的概率分布,R(τ)為序列τ對應(yīng)的獎勵值。獎勵對應(yīng)的梯度為:
(4)
(5)
式中:θ′為收集數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)的參數(shù),E(st,at)~πθ表示神經(jīng)網(wǎng)絡(luò)參數(shù)為θ時,由(st,at)計算得到的期望值,Aθ(st,at)為優(yōu)勢函數(shù)。如果θ′神經(jīng)網(wǎng)絡(luò)和θ神經(jīng)網(wǎng)絡(luò)在相同狀態(tài)下得到的輸出概率分布相差較大,則需要大量的采樣才能保證算法的有效性,因此在目標函數(shù)中加入θ′神經(jīng)網(wǎng)絡(luò)和θ神經(jīng)網(wǎng)絡(luò)的KL散度,最終的目標函數(shù)為:
(6)
式中:β為KL散度的系數(shù),DKL(θ,θ′)為參數(shù)為θ和θ′神經(jīng)網(wǎng)絡(luò)輸出概率分布的差異。
本文致力于使用PPO算法對空間機械臂進行控制,完成將空間機械臂抓手移動至物體下方的目的。系統(tǒng)包括PPO算法和訓(xùn)練環(huán)境2部分,訓(xùn)練環(huán)境由空間機械臂和目標物體組成。設(shè)置合理的狀態(tài)變量和獎勵函數(shù)用于PPO算法和訓(xùn)練環(huán)境的交互,PPO算法根據(jù)模型的狀態(tài)變量做出控制決策,獎勵函數(shù)對控制決策進行評價,如果是好的控制決策,則通過調(diào)整神經(jīng)網(wǎng)絡(luò)的參數(shù)增加決策出現(xiàn)的概率,反之則通過調(diào)整參數(shù)降低決策出現(xiàn)的概率,系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
訓(xùn)練環(huán)境包括空間機械臂和目標物體2部分,物體位于空間機械臂正前方,空間機械臂包含5個關(guān)節(jié),每個關(guān)節(jié)能夠在[0°,360°)的范圍內(nèi)自由旋轉(zhuǎn),相鄰關(guān)節(jié)間的連桿長度固定,通過控制關(guān)節(jié)的旋轉(zhuǎn),可以在有限范圍內(nèi)移動空間機械臂末端插盤式抓手至任意位置。
使用Unity設(shè)置空間機械臂每個連桿的長度、關(guān)節(jié)的旋轉(zhuǎn)角度、底座的坐標、物體的中心坐標和尺寸,完成訓(xùn)練環(huán)境的構(gòu)建。物體放置于固定的位置,空間機械臂每次初始化時每個關(guān)節(jié)保持固定的角度,界面如圖2所示。在PPO算法的獎勵函數(shù)中考慮碰撞事件,因此在Unity中使用盒子碰撞器實現(xiàn)碰撞檢測功能,將盒子碰撞器加入到空間機械臂模型的各個部分監(jiān)控碰撞事件,當(dāng)發(fā)生碰撞時,碰撞器發(fā)出碰撞捕獲信號和碰撞位置信息。
圖2 仿真環(huán)境界面
使用PPO控制空間機械臂進行運動,將抓手移動至物體下方,需要設(shè)置合理的狀態(tài)變量和獎勵函數(shù),其中狀態(tài)變量用于表示當(dāng)前環(huán)境的信息,神經(jīng)網(wǎng)絡(luò)據(jù)此對空間機械臂進行控制,輸出5個軸的轉(zhuǎn)動角度,獎勵函數(shù)對神經(jīng)網(wǎng)絡(luò)的控制決策進行評價,從而調(diào)整神經(jīng)網(wǎng)絡(luò)的參數(shù),完成學(xué)習(xí)過程。
(7)
代表環(huán)境信息的狀態(tài)變量共79維:
(8)
式中:jn為世界坐標系中原點指向空間機械臂關(guān)節(jié)中心的向量,ttarget為世界坐標系中原點指向目標物體中心坐標的向量,f為世界坐標系中原點指向機械臂基座中心的向量,tm為世界坐標系中原點指向物體下方選定點的向量,hm為世界坐標系中原點指向抓手上方選定點的向量,dcol為碰撞發(fā)生情況。
獎勵函數(shù)分為2個階段。第1個階段引導(dǎo)空間機械臂抓手移動至物體下方特定位置:
(9)
(10)
第2階段引導(dǎo)抓手從物體正下方向上移動至特定位置:
(11)
(12)
(13)
為驗證本文算法的效果,從算法收斂時間、訓(xùn)練周期獎勵值,以及神經(jīng)網(wǎng)絡(luò)參數(shù)收斂后機械臂抓手與物體下表面距離等方面進行對比。
對不同控制方法的收斂時間進行統(tǒng)計。傳統(tǒng)控制方法需要根據(jù)特定任務(wù)進行調(diào)試,調(diào)試時間84.0h。訓(xùn)練所使用的計算機處理器為Intel(R) Core(TM) i5-9300H,顯卡為NVIDIA GeForce GTX 1650,基于DDPG算法實現(xiàn)的機械臂控制算法的學(xué)習(xí)過程需要33.2h[23],本文所使用的基于PPO算法的學(xué)習(xí)過程需要26.1h。相比于經(jīng)典的控制算法,本文算法的學(xué)習(xí)過程能夠節(jié)約68.9%的時間,相比基于DDPG的控制算法,本文算法的學(xué)習(xí)過程能夠節(jié)約21.4%的時間。
其次,統(tǒng)計訓(xùn)練過程中每個周期得到的獎勵值,如圖3所示,橫軸表示一次訓(xùn)練中的周期數(shù),縱軸表示每個周期獲得的獎勵值。獎勵值小說明該周期做出錯誤的控制決策,獎勵值大說明該周期做出正確的控制決策。
圖3 三種系統(tǒng)突然加負載時的動態(tài)響應(yīng)
由于PPO算法采用離線訓(xùn)練的方式,因此能夠有效縮短數(shù)據(jù)積累階段,在訓(xùn)練開始后,快速進入學(xué)習(xí)階段。從圖中可以看出,隨著訓(xùn)練的進行,單個周期獲得的獎勵值逐漸增加,說明神經(jīng)網(wǎng)絡(luò)通過與環(huán)境的交互,利用獎勵值正確地修改自身參數(shù),逐漸做出正確的控制決策,最終獎勵值趨于穩(wěn)定,說明此時神經(jīng)網(wǎng)絡(luò)的參數(shù)收斂,達到穩(wěn)定的控制效果。在訓(xùn)練過程中獎勵值會出現(xiàn)波動,這主要是由于PPO算法在接收狀態(tài)變量后,根據(jù)不同動作的概率得到輸出,因此存在較小的概率輸出錯誤的動作,即出現(xiàn)獎勵值的波動。由于PPO通過神經(jīng)網(wǎng)絡(luò)生成一個關(guān)于不同控制決策的概率,因此在一個周期內(nèi),不一定會選擇最優(yōu)決策,因此曲線不是平滑的,會出現(xiàn)獎勵值階躍式變化的情況。
最后對比在訓(xùn)練完成后,即神經(jīng)網(wǎng)絡(luò)參數(shù)穩(wěn)定時,基于DDPG的控制算法和本文算法的控制穩(wěn)定性。統(tǒng)計30個控制指令中機械臂抓手與物體下方特定位置的相對距離,如圖4所示,其中虛線代表基于DDPG的控制算法,實線代表本文算法,實線波動范圍更小,說明訓(xùn)練完成后,本文算法能夠達到更穩(wěn)定的控制效果,因為對獎勵函數(shù)的細化,有效抑制了控制中的抖動現(xiàn)象。
圖4 機械臂抓手與物體下方特定位置的相對位置
提出一種基于深度強化學(xué)習(xí)的機械臂控制算法。首先為深度強化學(xué)習(xí)搭建訓(xùn)練環(huán)境,包括機械臂和目標物體2部分,其次構(gòu)建PPO算法,并設(shè)置合理的狀態(tài)變量和獎勵函數(shù),用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。通過驗證,本文算法能夠在較短時間內(nèi)收斂,提高效率,并且具有穩(wěn)定的控制效果,能夠有效抑制抖動現(xiàn)象。