杜德嵩, 宋以拓, 劉延芳, 王 旭, 齊乃明
哈爾濱工業(yè)大學(xué), 哈爾濱 150001
隨著機(jī)器學(xué)習(xí)的快速發(fā)展,以強(qiáng)化學(xué)習(xí)、模仿學(xué)習(xí)、遷移學(xué)習(xí)為主的機(jī)器學(xué)習(xí)算法在機(jī)器人規(guī)劃與控制領(lǐng)域產(chǎn)生積極的影響,并取得了傳統(tǒng)算法難以實現(xiàn)的效果,例如:四足機(jī)器人野外行走[1]、靈巧手玩魔方[2]、機(jī)械臂輔助穿衣服[3-4]等應(yīng)用,如圖1所示.這些算法被統(tǒng)稱為“機(jī)器人學(xué)習(xí)方法”.
圖1 機(jī)器人學(xué)習(xí)方法Fig.1 Robot learning algorithms
由于機(jī)器人學(xué)習(xí)算法需要大量數(shù)據(jù)進(jìn)行訓(xùn)練,在真實環(huán)境中訓(xùn)練存在硬件損耗大、數(shù)據(jù)采集效率低等問題,導(dǎo)致訓(xùn)練成本高昂.因此,機(jī)器人學(xué)習(xí)算法通常采用在虛擬仿真環(huán)境中獲取數(shù)據(jù)進(jìn)行訓(xùn)練.雖然在虛擬仿真環(huán)境中進(jìn)行訓(xùn)練是一個高效、安全、低成本的訓(xùn)練方式,但由于虛擬仿真環(huán)境與真實環(huán)境之間存在差異,控制器從虛擬仿真環(huán)境遷移到真實環(huán)境時,性能效果會大幅下降,這是目前限制機(jī)器人學(xué)習(xí)算法發(fā)展的主要問題之一,被稱為“Sim2Real”問題[5].
目前,解決“Sim2Real”問題的方法可歸納為兩類:一類是增加機(jī)器人學(xué)習(xí)算法策略的魯棒性,包括域隨機(jī)化方法(domain randomization)[6]、維度自適應(yīng)方法(domain adaption)[7]和逆動力學(xué)模型方法[8]等;另一類是構(gòu)建更逼真的虛擬仿真平臺,增強(qiáng)仿真環(huán)境與真實環(huán)境的一致性[9],該類方法具有更強(qiáng)的普遍性,有助于機(jī)器人學(xué)習(xí)算法的發(fā)展.MeepMind公司構(gòu)建了MuJoCo物理引擎[10],可為定制化的機(jī)器人構(gòu)建精確的虛擬仿真平臺,用于機(jī)器人學(xué)習(xí)算法的訓(xùn)練和測試.OpenAI公司面向安全機(jī)器人學(xué)習(xí)任務(wù),構(gòu)建了可用于評價算法違背安全約束情況的Safety Gym仿真平臺[11].英偉達(dá)(NVIDIA)公司構(gòu)建了Isaac Gym仿真平臺[12],提供了GPU加速的方式,大幅縮短機(jī)器人學(xué)習(xí)算法的訓(xùn)練時間.此外,針對具體的研究問題,各研究機(jī)構(gòu)開展定制化仿真平臺的研制.斯坦福大學(xué)李飛飛團(tuán)隊[13]針對機(jī)器人與環(huán)境交互任務(wù),構(gòu)建了包含108個房間,15個機(jī)器人工作場景的iGibson1.0仿真平臺.多倫多大學(xué)SCHOELLIG團(tuán)隊[14]基于PyBullet物理引擎,構(gòu)建了面向多無人機(jī)系統(tǒng)協(xié)同控制與任務(wù)規(guī)劃的仿真平臺.MARCHESINI等[15]針對無人艇導(dǎo)航任務(wù),設(shè)計了安全強(qiáng)化學(xué)習(xí)算法的基準(zhǔn)環(huán)境.然而,上述仿真平臺主要面向更為普遍的地面機(jī)器人場景,目前還沒有面向空間航天器的標(biāo)準(zhǔn)化、高保真的仿真平臺.
由于航天器服役環(huán)境的特殊性和任務(wù)的重要性,動力學(xué)仿真軟件模擬無法保證所模擬的航天器運動效果與航天器在軌狀態(tài)的一致性.因此,為了驗證航天器算法的有效性,微低重力模擬系統(tǒng)被廣泛用于航天器空間動力學(xué)環(huán)境的地面模擬.目前,微低重力模擬方法按照模擬原理的不同可以分為拋物飛行法、水浮法[16]、氣浮法[17-18]、懸吊法[19-20]等,綜合考慮經(jīng)濟(jì)成本和模擬精度等因素,氣浮法是目前航天科研機(jī)構(gòu)和高校最廣泛采用的模擬手段.然而,針對空間航天器任務(wù),直接在微低重力模擬系統(tǒng)中進(jìn)行機(jī)器人學(xué)習(xí)算法訓(xùn)練仍然存在高昂的成本代價[21].因此,本文提出了一種可基于微低重力模擬系統(tǒng)中航天器模擬器的實驗數(shù)據(jù)來建立/修正航天器動力學(xué)模型的方法,并構(gòu)建與真實航天器動力學(xué)環(huán)境具有高保真性的仿真平臺,以進(jìn)行機(jī)器人學(xué)習(xí)算法的訓(xùn)練和各類航天器控制方法的性能驗證.
面向空間航天器的機(jī)器人學(xué)習(xí)算法研究的高保真仿真平臺,主要的難點問題如下:
1)如何保證仿真平臺與航天器真實空間環(huán)境的一致性;
2)如何擴(kuò)展不同的航天器任務(wù)場景,例如:空間交會對接任務(wù)、軌跡跟蹤任務(wù)等;
3)如何快速部署不同類型的算法,用于算法間性能比較.
針對上述問題,分別開展面向空間航天器的仿真平臺架構(gòu)設(shè)計和航天器動力學(xué)精確建模相關(guān)的研究,本文的創(chuàng)新點如下:
1)構(gòu)建了面向空間航天器學(xué)習(xí)算法研究的仿真平臺體系框架,支持各類機(jī)器人學(xué)習(xí)算法和不同空間航天器任務(wù)場景;
2)基于微重力模擬系統(tǒng)的實驗數(shù)據(jù),建立數(shù)據(jù)驅(qū)動的空間航天器動力學(xué)模型,用于仿真平臺的狀態(tài)信息更新;
3)以航天器位置姿態(tài)穩(wěn)定為例,采用強(qiáng)化學(xué)習(xí)方法在所構(gòu)建的仿真平臺中完成訓(xùn)練和測試,驗證所提出架構(gòu)的可行性.
本文構(gòu)建的面向空間航天器機(jī)器人學(xué)習(xí)算法研究的高保真仿真平臺,其系統(tǒng)架構(gòu)包含虛擬仿真環(huán)境、控制/學(xué)習(xí)算法和微重力模擬系統(tǒng)3部分,各部分之間關(guān)系如圖2所示.在無法獲取空間航天器運動數(shù)據(jù)的情況下,本文采用微重力模擬系統(tǒng)中航天器模擬器充當(dāng)空間航天器,通過采集航天器模擬器運動數(shù)據(jù)來修正/建立航天器的動力學(xué)模型,用于仿真平臺狀態(tài)信息更新,從而保證仿真平臺動力學(xué)環(huán)境與真實環(huán)境的一致性.
圖2 高保真仿真平臺系統(tǒng)架構(gòu)Fig.2 The high-fidelity simulation system architecture
本文所構(gòu)建的虛擬仿真平臺依照OpenAI開發(fā)的Gym環(huán)境的數(shù)據(jù)交互模式[22],該模式規(guī)范了以Python為編程語言的任務(wù)仿真環(huán)境和機(jī)器人學(xué)習(xí)算法之間的數(shù)據(jù)交互形式,已成為目前機(jī)器人學(xué)習(xí)算法研究的標(biāo)準(zhǔn)[11-15].因此,本文所構(gòu)建的虛擬仿真平臺支持各類主流的機(jī)器人學(xué)習(xí)算法庫,例如:OpenAI Baselines[23]、加州伯克利大學(xué)RLlib[24]、清華大學(xué)天授[25]等,以及各種按照Gym交互模式開發(fā)的機(jī)器人學(xué)習(xí)算法.此外,傳統(tǒng)的控制方法,例如PID控制、滑模控制、自適應(yīng)控制等,仍可按照Gym交互模式在虛擬仿真平臺中對性能進(jìn)行測試驗證.
在Gym交互模式中,仿真平臺作為一個通用的環(huán)境類,包含以下核心函數(shù):(1)init函數(shù):用于定義環(huán)境系統(tǒng)初始參數(shù),例如航天器質(zhì)量m、轉(zhuǎn)動慣量J、仿真步長ΔT等參數(shù);(2)reset函數(shù):用于在每輪回合初始化系統(tǒng)狀態(tài)量,并返回相應(yīng)的觀測量、獎勵值、終止信息及其他系統(tǒng)信息;(3)step函數(shù):當(dāng)收到一個控制量時,依據(jù)系統(tǒng)動力學(xué)模型和仿真步長ΔT更新系統(tǒng)的狀態(tài)量,并根據(jù)具體的任務(wù)設(shè)置,反饋相應(yīng)的觀測量、獎勵值、終止信息及其他系統(tǒng)信息.由此可見,Gym交互模式僅規(guī)定了仿真環(huán)境類中各函數(shù)的數(shù)據(jù)接口,具體的函數(shù)需要根據(jù)任務(wù)對象和需求進(jìn)行設(shè)置.
本文所構(gòu)建的仿真平臺以空間航天器為研究對象,重點在如何保證仿真平臺狀態(tài)更新與航天器動力學(xué)一致性,具體設(shè)置方法將在2.3小節(jié)進(jìn)行詳細(xì)介紹.
本文提出了一種基于微重力模擬系統(tǒng)中航天器模擬器測量數(shù)據(jù),將其應(yīng)用于構(gòu)建或修正航天器動力學(xué)模型的方法.所采用的微重力模擬系統(tǒng)包括航天器模擬器、氣浮平臺、運動捕獲系統(tǒng)和綜合信息處理平臺等單元,如圖3所示.
(1)航天器模擬器:依靠模擬器底部的氣浮軸承,實現(xiàn)模擬器與氣浮平臺間的微摩擦運動,用于在水平面內(nèi)一定程度上模擬航天器的失重環(huán)境,模擬器詳細(xì)結(jié)構(gòu)與組成如圖4所示.模擬器內(nèi)部搭載了一套處理單元,用于根據(jù)收到的控制指令對底層執(zhí)行器進(jìn)行控制.為確保模擬器的長時間運行,本文采用螺旋槳代替噴氣執(zhí)行器為模擬器提供推力,以節(jié)省氣源消耗.螺旋槳的布局可根據(jù)航天器噴氣執(zhí)行器的布局進(jìn)行設(shè)置,本文模擬器采用4個執(zhí)行器,并按照“×”式構(gòu)型布置.
(2)氣浮平臺:用于與模擬器底端的氣浮軸承配合,實現(xiàn)模擬器支撐作用和模擬器平面移動的潤滑作用.依據(jù)氣浮軸承的使用要求,需對氣浮平臺的平面度和水平度提出較高要求.
(3)運動捕獲系統(tǒng):用于實時測量模擬器的位姿信息,并將信息傳輸給綜合信息處理平臺.
(4)綜合信息處理平臺:主要用于采集模擬器運動信息,根據(jù)控制器或?qū)W習(xí)策略向模擬器發(fā)布具體的控制指令,并記錄、處理和分析訓(xùn)練和測試數(shù)據(jù),用于驗證控制/學(xué)習(xí)算法性能.
(1)執(zhí)行器動力學(xué)
模擬器采用螺旋槳提供推力,推力fi與螺旋槳轉(zhuǎn)速ωi關(guān)系[26]如下:
(1)
本文分別采用線性回歸(linear regression, LR)、支持向量機(jī)(support vector machines, SVM)和高斯過程(Gaussian process regression, GP)等算法對數(shù)據(jù)集D進(jìn)行擬合,并構(gòu)建螺旋槳推力和占空比之間的模型,實驗數(shù)據(jù)及各自擬合效果如圖5所示.通過計算不同算法的預(yù)測結(jié)果與真實數(shù)據(jù)間均方根誤差(root mean square error, RMSE)可知,高斯過程擬合效果最好(RMSE僅有1.898 mN),線性回歸和支持向量機(jī)的擬合效果接近(RMSE分別為2.753 mN和2.729 mN).因此,仿真平臺采用高斯過程對螺旋槳占空比與推力間的動力學(xué)關(guān)系進(jìn)行建模.此外,針對不同類型的執(zhí)行器,仍可采用數(shù)據(jù)驅(qū)動的方式直接建立控制指令與執(zhí)行器推力間映射關(guān)系.
圖5 螺旋漿推力模型擬合結(jié)果Fig.5 The result of propeller thrust model
(2)航天器本體動力學(xué)
根據(jù)航天器中執(zhí)行器的安裝構(gòu)型,構(gòu)建相應(yīng)的安裝矩陣,從而完成對航天器系統(tǒng)的動力學(xué)建模.本文以圖4所示微重力模擬系統(tǒng)中的航天器模擬器為例,4個執(zhí)行器采用“×”式構(gòu)型布置,臂長為l,相應(yīng)的安裝矩陣M如下:
由此,可得到航天器系統(tǒng)的動力學(xué)模型:
(2)
其中,s=[xyθ]T代表航天器位置和姿態(tài),m和J分別為航天器模擬器的質(zhì)量和轉(zhuǎn)動慣量,f=[f1f2f3f4]T=[F1(d1)F2(d2)F3(d3)F4(d4)]T代表各螺旋槳的推力,根據(jù)所構(gòu)建的執(zhí)行器動力學(xué)模型計算得出.
在不同控制模式下,通過比較航天器模擬器的實驗數(shù)據(jù)和系統(tǒng)動力學(xué)模型的加速度計算結(jié)果,驗證所構(gòu)建的航天器系統(tǒng)動力學(xué)模型的保真性.在微低重力模擬系統(tǒng)中,航天器模擬器質(zhì)量為m=22.42 kg,轉(zhuǎn)動慣量為J=0.267 3 kg·m2,并按照表1中給定的模式分別設(shè)置各螺旋槳的占空比指令di,以測試指定方向的線加速度或角加速度,其中,“A”代表di=72.3%,而“B”代表di=94.7%.實驗數(shù)據(jù)通過運動捕獲系統(tǒng)采集的時序位置和姿態(tài)信息,并采用時間差分的方式計算得到.表1展示了實驗數(shù)據(jù)和模型數(shù)據(jù),結(jié)果顯示所構(gòu)建的動力學(xué)模型與實驗數(shù)據(jù)在線加速度和角加速度方面最大偏差分別為0.001 m/s2和0.021 4 rad/s2,具備較高的一致性.
表1 加速度信息對照Tab.1 Acceleration information comparison
本文以航天器位置姿態(tài)穩(wěn)定任務(wù)為例,對虛擬仿真平臺中參數(shù)設(shè)置和狀態(tài)更新的方法進(jìn)行介紹:
(1)觀測空間:指在給定任務(wù)環(huán)境中,所有可能出現(xiàn)的觀測量的集合,稱為觀測空間X.其中,觀測量是系統(tǒng)狀態(tài)的部分描述.以航天器位姿穩(wěn)定任務(wù)為例,在t時刻,航天器的觀測量設(shè)為xt=[xyθvxvxωθ]T∈X?R6,包含航天器的位置、角度、線速度和角速度信息.
(3)
其中,u(t)=[ux(t)uy(t)uθ(t)]T為各方向期望加速度,[exeyeθ]T=[vxd-vxvyd-vyωθd-ωθ]T為航天器各方向期望速度和實際速度偏差,Kpj,Kdj為PD控制器的系數(shù),其中j=x,y,θ和Δh為控制周期.
根據(jù)速度模式的PD控制器,可解算出4個螺旋槳的推力指令fd=[f1df2df3df4d]T:
(4)
(3)獎勵函數(shù):在強(qiáng)化學(xué)習(xí)算法中,獎勵值被用來評價系統(tǒng)的狀態(tài),并且通過最大化每回合累加的獎勵值作為優(yōu)化目標(biāo)去更新控制器/學(xué)習(xí)策略的參數(shù).因此,獎勵函數(shù)r(xt,at)需要根據(jù)具體的任務(wù)進(jìn)行設(shè)置.以航天器軌跡跟蹤任務(wù)為例,期望跟蹤軌跡為xd(t)=[xd(t)yd(t)θd(t)vxd(t)vyd(t)ωθd(t)]T,獎勵值函數(shù)可以設(shè)計為
r(xt,at)=k1[x(t)-xd(t)]2+k1[y(t)-yd(t)]2+
k2[θ(t)-θd(t)]2+k3[vx(t)-vxd(t)]2+
k3[vy(t)-vyd(t)]2+k4[ωθ(t)-ωθd(t)]2
(5)
其中,k1、k2、k3和k4是超參數(shù).同樣地,在航天器位姿穩(wěn)定任務(wù)中,獎勵值函數(shù)可以設(shè)計為
(6)
其中,期望狀態(tài)為xd=[xdydθd0 0 0]T.此外,相比于自適應(yīng)動態(tài)規(guī)劃、模型預(yù)測控制等方法,強(qiáng)化學(xué)習(xí)對獎勵值函數(shù)的設(shè)置形式?jīng)]有限制.
(4)狀態(tài)更新:在機(jī)器人學(xué)習(xí)算法中,任務(wù)環(huán)境通常被視為一個離散系統(tǒng),在給定回合步長ΔT的情況下,仿真平臺根據(jù)控制器/學(xué)習(xí)策略的控制量對系統(tǒng)狀態(tài)進(jìn)行更新.根據(jù)系統(tǒng)的動力學(xué)方程式(2),給定動力學(xué)更新步長Δt,狀態(tài)更新可采用歐拉積分的方法.
(7)
為了提高仿真平臺狀態(tài)更新的精度,仿真回合的步長設(shè)為ΔT=n×Δt,即仿真回合包含n次動力學(xué)狀態(tài)更新,t+Δt,t+2Δt,…,t+(n-1)Δt,t+ΔT,這樣有助于提高系統(tǒng)狀態(tài)更新的精度.
根據(jù)更新的系統(tǒng)狀態(tài)信息,仿真平臺為機(jī)器人學(xué)習(xí)算法提供必要的訓(xùn)練數(shù)據(jù),其中包含觀測量、獎勵值、終止信息和其他信息等.其中,終止信息是指當(dāng)前狀態(tài)是否滿足回合終止條件.以航天器位置姿態(tài)穩(wěn)定任務(wù)為例,回合終止條件可設(shè)置為xt?X或t≥tmax,其中,tmax為每輪回合的最大步數(shù).當(dāng)系統(tǒng)狀態(tài)滿足終止條件時,終止信息設(shè)為“True”,本輪回合訓(xùn)練終止.其他狀態(tài)下,終止信息設(shè)為“False”,本輪回合訓(xùn)練繼續(xù).
本節(jié)以航天器位姿穩(wěn)定任務(wù)為例,通過虛擬仿真平臺完成了強(qiáng)化學(xué)習(xí)算法(soft actor-critic[27],SAC)的訓(xùn)練過程,并對訓(xùn)練得到的控制器進(jìn)行了性能驗證.
在虛擬仿真環(huán)境中,設(shè)置航天器質(zhì)量為m=10 kg,轉(zhuǎn)動慣量為J=0.1 kg·m2,螺旋槳最大推力為fmax=1 N.觀測空間和動作空間分別設(shè)置為X={xt:-xb≤xt≤xb}和A={at:0≤at≤ab},其中,xb=[2 m 2 m π rad 1 m/s 1 m/s 0.5 πrad/s]T和ab=[1N 1N 1N 1N]T.在位置姿態(tài)穩(wěn)定任務(wù)中,期望狀態(tài)xd=[0 m 0 m 0 rad 0 m/s 0 m/s 0 rad/s]T.
在強(qiáng)化學(xué)習(xí)算法中,相同任務(wù)獎勵函數(shù)具有多種可行的設(shè)置形式.針對航天器位姿穩(wěn)定任務(wù),考慮訓(xùn)練效率、控制器精度等因素,獎勵值函數(shù)采用對數(shù)的形式,并設(shè)置為
r(xt,at)=-10log2(5(x+3vx)2+1)-
10log2(5(y+3vy)2+1)-5log2(5(θ+ωθ)2+1)
(8)
所采用的SAC算法[27]共包含兩個神經(jīng)網(wǎng)絡(luò),分別稱為Critic網(wǎng)絡(luò)和Actor網(wǎng)絡(luò),具體的神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置如表2所示.在訓(xùn)練過程中,強(qiáng)化學(xué)習(xí)的各參數(shù)和超參數(shù)設(shè)置如表3所示.本文采用5個隨機(jī)種子進(jìn)行獨立訓(xùn)練,訓(xùn)練過程中回合累計獎勵值與訓(xùn)練回合數(shù)(策略更新次數(shù))變化曲線如圖6所示,其中,陰影部分表示5個隨機(jī)種子訓(xùn)練曲線的1倍標(biāo)準(zhǔn)差的置信區(qū)間.在120回合左右累計獎勵值收斂至-5 000左右,并逐漸收斂穩(wěn)定.
圖6 訓(xùn)練過程回合獎勵值曲線Fig.6 Total reward during training process
表2 神經(jīng)網(wǎng)絡(luò)超參數(shù)Tab.2 Hyperparameters of networks
表3 訓(xùn)練過程的超參數(shù)Tab.3 Hyperparameters during training process
為了驗證算法的有效性,設(shè)置系統(tǒng)的初始狀態(tài)為xinit=[-1 m -1 m -πrad 0 m/s 0 m/s 0 rad/s]T,在仿真平臺中,航天器在SAC算法訓(xùn)練得到的控制器下受控運動,相應(yīng)的航天器運動曲線和控制量曲線分別如圖7和8所示.
圖7 狀態(tài)量變化曲線Fig.7 Variation of the state
圖8 控制量變化曲線Fig.8 Variation of the action
SAC算法訓(xùn)練的控制器有效地將航天器穩(wěn)定至期望狀態(tài)xd,在回合終止T=10 s時,位置和姿態(tài)偏差分別為0.023 1 m和0.310 7 rad.
針對航天器服役環(huán)境的特殊性,本文依照機(jī)器人學(xué)習(xí)領(lǐng)域標(biāo)準(zhǔn)的數(shù)據(jù)交互模式,構(gòu)建了一個面向空間航天器的機(jī)器人學(xué)習(xí)算法研究的高保真仿真平臺.利用微重力模擬系統(tǒng)的實驗數(shù)據(jù),采用數(shù)據(jù)驅(qū)動構(gòu)建了高保真的航天器動力學(xué)模型,用于仿真平臺狀態(tài)更新;在基于所構(gòu)建航天器動力學(xué)模型的虛擬仿真平臺上,采用主流的強(qiáng)化學(xué)習(xí)算法SAC完成了航天器位置姿態(tài)穩(wěn)定任務(wù)的訓(xùn)練和測試,證明了所構(gòu)建的仿真平臺在面向空間航天器機(jī)器人學(xué)習(xí)算法研究中的可行性和有效性.