霍雨佳, 李一平, 封錫盛
(1.中國(guó)科學(xué)院 沈陽(yáng)自動(dòng)化研究所機(jī)器人學(xué)國(guó)家重點(diǎn)實(shí)驗(yàn)室, 沈陽(yáng) 110016;2.中國(guó)科學(xué)院 機(jī)器人與智能制造創(chuàng)新研究院, 沈陽(yáng) 110169;3.遼寧省水下機(jī)器人重點(diǎn)實(shí)驗(yàn)室, 沈陽(yáng) 110169;4.中國(guó)科學(xué)院大學(xué),北京 100049)
近年來(lái),隨著無(wú)人機(jī)和水下機(jī)器人技術(shù)的迅速發(fā)展,水空跨域機(jī)器人因其兼具了水下航行的高隱蔽性和空中飛行的高機(jī)動(dòng)性,逐漸成為新的研究熱點(diǎn)[1]。
水空跨域海洋機(jī)器人,也稱水空兩棲跨介質(zhì)機(jī)器人,一般指可在空氣中和水下(或水面)均具備作業(yè)能力的機(jī)器人;本文中特指具備在水空兩棲作業(yè)能力和在水空間反復(fù)、多次跨域能力的機(jī)器人。根據(jù)跨域機(jī)器人的跨域方式不同,通??煞譃橹苯涌缬蚴胶头植娇缬蚴絒2]。直接跨域方式指機(jī)器人以俯沖或滑行方式在水面降落入水,以通過(guò)氣體或液體噴射獲取初始動(dòng)能方式脫離水面[3]。這種方式多由固定翼構(gòu)型機(jī)器人采用,對(duì)機(jī)器人的結(jié)構(gòu)設(shè)計(jì)和運(yùn)動(dòng)控制提出了較大的挑戰(zhàn),同時(shí)噴射氣體出水方式限制了機(jī)器人多次跨域作業(yè)的能力。分步跨域式指機(jī)器人以旋翼構(gòu)型機(jī)器人方式實(shí)現(xiàn)在水面進(jìn)行起飛和降落,以通過(guò)浮力調(diào)節(jié)等方式在水面實(shí)現(xiàn)水空間的跨域作業(yè),并利用旋翼提供升力。這種方式可由固定翼構(gòu)型機(jī)器人[4-6]和旋翼構(gòu)型機(jī)器人[2,7-10]采用,相較于旋翼構(gòu)型,固定翼構(gòu)型因具備更優(yōu)的空中飛行效率和飛行速度等優(yōu)勢(shì)而多被采用。
水空跨域機(jī)器人需要在多種環(huán)境下進(jìn)行作業(yè),其不規(guī)則外形在不同介質(zhì)下的受力具有高度的復(fù)雜性,特別是機(jī)器人在跨域過(guò)程中,水空分界面受到外界環(huán)境下風(fēng)、波浪和機(jī)器人螺旋槳推進(jìn)器吹出的氣、水干擾,使得機(jī)器人在當(dāng)前環(huán)境下的動(dòng)力學(xué)特性具有極大的不確定性,難以使用傳統(tǒng)的方法對(duì)機(jī)器人在空氣和水中的動(dòng)力學(xué)模型進(jìn)行精確構(gòu)建?,F(xiàn)階段,世界范圍內(nèi)對(duì)跨域機(jī)器人的研究尚處于初始探索階段,跨域機(jī)器人多采用與旋翼無(wú)人機(jī)相似的PD/PID控制器實(shí)現(xiàn)機(jī)器人的自主跨域過(guò)程,且均部署于小型機(jī)器人,不適用于大型跨域機(jī)器人。
近年來(lái),人工智能技術(shù)的發(fā)展,為機(jī)器人提供了新的選擇方案。強(qiáng)化學(xué)習(xí)作為一種無(wú)模型方法,無(wú)需對(duì)機(jī)器人控制系統(tǒng)建立模型,而是通過(guò)機(jī)器人與環(huán)境的交互,可以在動(dòng)態(tài)環(huán)境中逐步習(xí)得有效的控制策略,并不斷對(duì)現(xiàn)有控制策略進(jìn)行優(yōu)化。這種方法為水空跨域機(jī)器人的運(yùn)動(dòng)控制,特別是跨域過(guò)程的運(yùn)動(dòng)控制提供新的思路。目前,強(qiáng)化學(xué)習(xí)方法在空中和水下機(jī)器人的運(yùn)動(dòng)控制均有著不同程度的應(yīng)用[11],Hwangbo等[12]利用確定性策略搜索方法實(shí)現(xiàn)了四旋翼無(wú)人機(jī)空中三維位置的跟蹤。Koch[13]利用ROS和Gazebo仿真軟件,分別運(yùn)用DDPG、TRPO和PPO三種深度強(qiáng)化學(xué)習(xí)算法實(shí)現(xiàn)對(duì)Iris四旋翼機(jī)器人的姿態(tài)控制,并與充分調(diào)參的PID控制器進(jìn)行對(duì)比,獲得了更好的控制效果。Song等[14]利用PPO算法實(shí)現(xiàn)了四旋翼無(wú)人機(jī)的競(jìng)速任務(wù)。
然而,一般的旋翼機(jī)器人的強(qiáng)化學(xué)習(xí)運(yùn)動(dòng)控制方法,未考慮大型跨域機(jī)器人在近水面的螺旋槳高轉(zhuǎn)速下的推力損失等問(wèn)題,很難直接應(yīng)用于大型跨域機(jī)器人的跨域過(guò)程。
本文提出一種基于強(qiáng)化學(xué)習(xí)的跨域機(jī)器人出水過(guò)程的控制策略方法。為了準(zhǔn)確描述跨域機(jī)器人跨域過(guò)程中的動(dòng)力學(xué)特性,通過(guò)實(shí)驗(yàn)和計(jì)算獲得螺旋槳推進(jìn)器近水面的動(dòng)力學(xué)特性和機(jī)器人跨域過(guò)程中的浮力變化。最后,對(duì)機(jī)器人的跨域出水過(guò)程進(jìn)行仿真和試驗(yàn),驗(yàn)證基于強(qiáng)化學(xué)習(xí)的跨域機(jī)器人水面起飛控制的有效性。
本文采用水空跨域海洋機(jī)器人主體部分為魚(yú)雷型回轉(zhuǎn)體,搭配四臺(tái)可傾轉(zhuǎn)180°的水空兩用螺旋槳推進(jìn)器和兩具可折疊機(jī)翼,如圖1所示。
圖1 水空跨域機(jī)器人結(jié)構(gòu)示意圖Fig.1 Aquatic-aerial trans-domain robot
該機(jī)器人布局借鑒自傾轉(zhuǎn)四旋翼機(jī)器人,由文獻(xiàn)[15]可知,定義載體坐標(biāo)系原點(diǎn)與機(jī)器人重心G重合,令Ω={p,q,r}T表示載體坐標(biāo)系下機(jī)器人在橫滾、俯仰和偏航方向角速度;Φ={φ,θ,ψ}T表示機(jī)器人姿態(tài)角;U={u,v,w}T為載體坐標(biāo)下機(jī)器人各方向線速度;PW={x,y,z}T為世界坐標(biāo)系下機(jī)器人位置。則跨域機(jī)器人的動(dòng)力學(xué)模型可描述為:
(1)
其中:FB={Fx,Fy,Fz}T表示載體坐標(biāo)系下機(jī)器人各方向分力;MB={Mx,My,Mz}T為載體坐標(biāo)系下機(jī)器人繞各軸力矩;RB→W為載體系到世界坐標(biāo)系的旋轉(zhuǎn)矩陣;JB→W為載體角速度到姿態(tài)角速率間的旋轉(zhuǎn)矩陣;機(jī)器人的質(zhì)量m和轉(zhuǎn)動(dòng)慣量矩陣I可由測(cè)量可得。
機(jī)器人在近水面的受力主要來(lái)自于傾轉(zhuǎn)推進(jìn)器的推力FT、重力G、機(jī)器人在水面以下部分受到的浮力B以及流體力FD。則世界坐標(biāo)系下,機(jī)器人的受力可描述為:
(2)
其中:FT,i、MT,i、FD,i、MD,i(i=x,y,z)分別表示螺旋槳推進(jìn)器產(chǎn)生的力和力矩、機(jī)器人在介質(zhì)中運(yùn)動(dòng)產(chǎn)生的流體力和力矩在世界坐標(biāo)系下的各軸分量;MB,i(i=x,y,z)分別表示機(jī)器人在近水面運(yùn)動(dòng)時(shí)浮力產(chǎn)生力矩在各軸的分量。
理論上,當(dāng)流速度較小時(shí),單個(gè)螺旋槳推進(jìn)器的推力、轉(zhuǎn)矩與轉(zhuǎn)速相關(guān),可描述為:
T=kTω2;
(3)
τ=kτω2。
(4)
其中:kT為螺旋槳拉力系數(shù);kτ為螺旋槳力矩系數(shù)。
水空跨域海洋機(jī)器人采用水空兩用槳提供動(dòng)力,螺旋槳在水中與空中采用兩套電動(dòng)機(jī)在不同轉(zhuǎn)速下工作。機(jī)器人水面起飛采用空中電機(jī)帶動(dòng)螺旋槳工作,由于空氣中螺旋槳高轉(zhuǎn)速使水面產(chǎn)生較大擾動(dòng)和較大水汽,此時(shí)螺旋槳近水面模型與空氣中模型不同,如圖2所示。
圖2 螺旋槳近水面工作示意圖Fig.2 Propeller water-surface operation
由實(shí)驗(yàn)可知,螺旋槳在近水面的推力相較于空氣中有著不同程度的減弱,這種推力減弱同螺旋槳槳葉距水面距離hs相關(guān),如圖 3所示。
圖3 螺旋槳在近水面和空氣中推力對(duì)比Fig.3 Propeller force in condition of air-water surface and air
假設(shè)螺旋槳在近水面的推力模型依舊滿足式(3),可得螺旋槳模型更改為
T=kv(h)kTω2。
(5)
其中:kv(h)描述了不同離水面距離h情況下,螺旋槳的衰減系數(shù),表示了離水面距離h時(shí),當(dāng)前螺旋槳力T(ω,h)模型和空氣中螺旋槳力Tair(ω)的比值,表示為
(6)
對(duì)于不同離水面距離h情況下,螺旋槳的衰減系數(shù)kv(h)的模型由節(jié)2.1進(jìn)行模型回歸。
同時(shí),機(jī)器人單個(gè)傾轉(zhuǎn)推進(jìn)器的力和力矩可描述為:
(7)
Mr,j=FT,j×Lj。
(8)
其中,j=1,2,3,4,分別表示4臺(tái)傾轉(zhuǎn)推進(jìn)器。δj表示第j個(gè)推進(jìn)器的傾轉(zhuǎn)角度。Lj表示第j個(gè)推旋翼進(jìn)器中心距離重心G的距離,則Lj為
(9)
其中:dx,i為第i個(gè)傾轉(zhuǎn)旋翼推進(jìn)器軸中心到機(jī)體坐標(biāo)系下xGz平面的距離;dy,i為傾轉(zhuǎn)旋翼推進(jìn)器軸中心到機(jī)體坐標(biāo)系yGz平面的距離;hT為推進(jìn)器旋翼中心到傾轉(zhuǎn)軸的距離。
由于深度和姿態(tài)變化,機(jī)器人在水面受到浮力大小與作用位置也因此發(fā)生改變,如圖4所示。其中:G為機(jī)器人所受到的重力;B為機(jī)器人所受到的浮力,這部分浮力由機(jī)器人位于水面下的部分排開(kāi)水所產(chǎn)生并作用于當(dāng)前的浮心。假設(shè)機(jī)器人當(dāng)前的浮心載體坐標(biāo)系下坐標(biāo)為{xb,yb,zb},則浮力產(chǎn)生的力矩為
MB,x=Bcosθ(zBsinφ-yBcosφ),
MB,y=B(xBcosφcosθ+zBsinθ),
MB,z=B(xBsinφcosθ+yBsinθ)。
圖4 跨域機(jī)器人浮力示意圖Fig.4 Buoyant schematic of trans-domain robot
為獲得仿真所需的機(jī)器人近水面的動(dòng)力學(xué)模型,需要分別獲取近水面環(huán)境下螺旋槳的推力模型和機(jī)器人不同深度、姿態(tài)情況下的動(dòng)力學(xué)模型。
由1.1可知,螺旋槳在近水面環(huán)境下工作時(shí),其推力受到不同程度的影響,這種影響主要由螺旋槳槳葉與水面的距離決定。
由于難以對(duì)kv(hs)進(jìn)行參數(shù)化建模,考慮采用非參數(shù)化建模方法,即高斯過(guò)程回歸方法,實(shí)現(xiàn)對(duì)kv(hs)進(jìn)行建模[16-17]。
kv(hs,i)=f(hs,i)+εi,i=1,2,…,n。
(10)
kv~N(μ,Kn)。
(11)
此時(shí),該模型的聯(lián)合高斯分布函數(shù)可描述為
p(kv|hs)=
(12)
則f(hs*)的條件分布服從新的分布:
(13)
此時(shí),后驗(yàn)均值和方差可描述為:
μ*=μ(hs*)=
(14)
Σ.*=Σ(hs*)=K(hs*,hs)-
(15)
采用Matern核函數(shù)作為協(xié)方差矩陣,并對(duì)kv(hs)進(jìn)行模型回歸。
圖5中描述了螺旋槳?jiǎng)恿λp系數(shù)對(duì)不同的葉片距水距離關(guān)系的高斯過(guò)程回歸。點(diǎn)狀為實(shí)際測(cè)量的kv值,灰色區(qū)域?yàn)槟P皖A(yù)測(cè)值的95%置信區(qū)間,擬合曲線為基于高斯過(guò)程回歸獲得的螺旋槳衰減系數(shù)模型的預(yù)測(cè)值。
圖5 螺旋槳?jiǎng)恿λp系數(shù)和其高斯過(guò)程回歸Fig.5 Propeller power attenuation kv(h) and GP regression
基于上述模型,可以獲得不同葉片離水面高度的kv系數(shù),相應(yīng)地獲得了螺旋槳在近水面不同高度下的力和轉(zhuǎn)速模型。
由于機(jī)器人的排水體積主要由其AUV形主體提供,為方便計(jì)算機(jī)器人不同深度、姿態(tài)下的排水體積和浮心位置,將機(jī)器人主體假定為圓柱。根據(jù)機(jī)器人的深度和姿態(tài)(俯仰角θ),其排水狀態(tài)可分為4種,如圖6所示。點(diǎn)A和B為載體坐標(biāo)系下本體的端點(diǎn),EF和CD為本體在載體坐標(biāo)系下平面O-XZ的上下端線。
圖6 機(jī)器人與水面相交情況示意Fig.6 Schematic of water surface and robot
由此,通過(guò)獲取機(jī)器人排水體積和浮心位置可由上述情況中的入水深度和姿態(tài),即各點(diǎn)坐標(biāo)計(jì)算得到。通常的,機(jī)器人的入水深度由深度傳感器獲取,其在機(jī)器人本體下后部平面CDEF上,載體坐標(biāo)系下PD(xD,0,zD),而在簡(jiǎn)化模型中,機(jī)器人的橫滾角φ只影響深度傳感器的數(shù)據(jù),不影響機(jī)器人的排水體積。故定義水面坐標(biāo)系O-XGYGZG,原點(diǎn)O為AB與水面交點(diǎn),XG為OX與水面交線,ZG過(guò)點(diǎn)O與水邊垂直。當(dāng)深度傳感器測(cè)量值為d,姿態(tài)角Φ={φ,θ,ψ}T時(shí),則水面坐標(biāo)系和載體坐標(biāo)系之間關(guān)系為
(16)
其中:
TB→S=
為不失一般性,考慮情況2,計(jì)算NMDF的體積和形心,如圖7,其體積可分割為NMN′和NN′DF,NMN′可由下式對(duì)弓形GPG′的面積進(jìn)行積分[18]
(17)
其形心為:
(18)
其中,S0(z)和S1(z)表示弧GPG′為劣弧和優(yōu)弧,即z<0和z≥0時(shí)的截面積。當(dāng)前弓形截面積S(z)可描述如下:
(19)
(20)
(21)
圖7 排水體積計(jì)算示意圖Fig.7 Schematic of displacement volume computing
其中:R為機(jī)器人本體半徑;Z=zM=-zN=Rtanθ。則NMN′的體積和形心為:
(22)
(23)
相應(yīng)地,根據(jù)式(22)和式(23)計(jì)算不同情況下機(jī)器人的排水體積和浮心。如圖6中,對(duì)于情況1:z0=zN,z1=zA,而圓柱體FNN′D的體積VFNN′D=πR2(zN-zB),則總的排水體積V=VNMN′+VFNN'D,浮心為
(24)
同理,對(duì)于情況2:z0=zN,z1=zM,排水體積V=VNMN′+VFNN′D;情況3:z0=zB,z1=zA;情況4:z0=zB,z1=zM。
為驗(yàn)證排水體積估算的有效性,對(duì)比不同深度和姿態(tài)下的排水體積和浮心的實(shí)際值和估算值,如表1所示。考慮到機(jī)器人在起飛過(guò)程中,具有較小的橫滾角,故僅考慮深度和俯仰的影響,并分別對(duì)跨域機(jī)器人采用SolidWorks軟件測(cè)量(不包含推進(jìn)器體積)和上述排水體積估算方法(不包含推進(jìn)器體積)進(jìn)行測(cè)量。
表1 排水體積估算對(duì)比
由表1可知,兩種方法所得到的排水體積差值小于0.000 5 m3,滿足對(duì)機(jī)器人本體排水體積的估算要求。
考慮到水空跨域機(jī)器人在近水面起飛過(guò)程中,水流等造成其水動(dòng)力環(huán)境具有極高的不確定性,難以使用傳統(tǒng)的水動(dòng)力分析對(duì)其建立精確的環(huán)境模型。強(qiáng)化學(xué)習(xí)方法無(wú)需對(duì)環(huán)境建立精確模型,可在無(wú)先驗(yàn)知識(shí)情況下和復(fù)雜未知環(huán)境中具備較強(qiáng)的適應(yīng)性。強(qiáng)化學(xué)習(xí)為機(jī)器人的水面起飛任務(wù)提供可行的控制方法。
為保證機(jī)器人在脫離水面過(guò)程中具備足夠的動(dòng)力,采用分階段起飛控制方法,如圖8所示。階段①:機(jī)器人浮于水面上;階段②:提高前槳(槳1、槳2)轉(zhuǎn)速,使機(jī)器人具備一定的正仰角,減小螺旋槳距離水面過(guò)近造成的動(dòng)力衰減,同時(shí)推進(jìn)器發(fā)生傾轉(zhuǎn),保證動(dòng)力豎直向下,避免機(jī)器人在此過(guò)程中產(chǎn)生較大的水平方向位移;階段③:前槳距離水面大于500 mm,前槳獲得足夠動(dòng)力,將機(jī)器人持續(xù)拉離水面,進(jìn)而帶動(dòng)后槳脫離水面并具備無(wú)衰減動(dòng)力。此時(shí),機(jī)器人完全脫離水面,其4臺(tái)螺旋槳均具備無(wú)衰減動(dòng)力,跨域機(jī)器人轉(zhuǎn)為空氣中的傾轉(zhuǎn)四旋翼機(jī)器人工作模式。
圖8 跨域機(jī)器人分階段水面起飛示意圖Fig.8 Schematic of taking-off in stages
目前,跨域機(jī)器人的水面起飛控制方法采用手動(dòng)遙控控制,實(shí)驗(yàn)人員通過(guò)遙控器下達(dá)機(jī)器人x、y、z方向的線速度和r方向的航向角速度指令。強(qiáng)化學(xué)習(xí)方法實(shí)現(xiàn)對(duì)機(jī)器人收到的速度指令控制,同時(shí)依據(jù)需要,控制機(jī)器人達(dá)到一定俯仰角θ,并實(shí)現(xiàn)機(jī)器人橫滾角不易過(guò)大(-15°≤φ≤15°)。
結(jié)合跨域機(jī)器人水面起飛的操作方法和3.1節(jié)所述的跨域機(jī)器人分階段起飛方案,設(shè)計(jì)基于此任務(wù)的強(qiáng)化學(xué)習(xí)方法。
深度強(qiáng)化學(xué)習(xí)的目的是通過(guò)優(yōu)化神經(jīng)網(wǎng)絡(luò)策略πθ的參數(shù)θ,使累計(jì)回報(bào)的最大化,則最優(yōu)策略為
(25)
其中γ∈[0,1)為折扣因子。
為將跨域機(jī)器人的水面起飛任務(wù)同強(qiáng)化學(xué)習(xí)方法結(jié)合,實(shí)現(xiàn)機(jī)器人水面起飛控制,需要結(jié)合任務(wù)的實(shí)際需求,對(duì)狀態(tài)s、動(dòng)作a、獎(jiǎng)勵(lì)函數(shù)r和強(qiáng)化學(xué)習(xí)訓(xùn)練的初始和終止?fàn)顟B(tài)進(jìn)行適當(dāng)選取,這些變量的合適選取和設(shè)計(jì),可改善強(qiáng)化學(xué)習(xí)的訓(xùn)練效果和機(jī)器人的控制性能。
1)狀態(tài)s的選取。
對(duì)于跨域機(jī)器人的水面起飛控制,定義觀測(cè)狀態(tài)st=[Ut,Φt,Ωt,d]。此刻,姿態(tài)角信息Φt=[φt,θt],只考慮機(jī)器人的橫滾角和俯仰角,不考慮機(jī)器人的航向角。
2)動(dòng)作a的選取。
一般情況下,當(dāng)機(jī)器人進(jìn)行螺旋槳無(wú)動(dòng)力衰減情況下水面起飛,選取機(jī)器人的4臺(tái)螺旋槳轉(zhuǎn)速[ω1,ω2,ω3,ω4]和4部推進(jìn)器的傾轉(zhuǎn)舵機(jī)的傾轉(zhuǎn)角度[δ1,δ2,δ3,δ4]。由于機(jī)器人的螺旋槳轉(zhuǎn)速和傾轉(zhuǎn)舵機(jī)的角度難以實(shí)施短時(shí)間內(nèi)較大的動(dòng)作量變化,定義動(dòng)作變化量閾值Δωth和Δδth,則下一時(shí)刻動(dòng)作應(yīng)有ωt+1∈[ω-Δωth,ω+Δωth]和δt+1∈[δ-Δδth,δ+Δδth]。
3)獎(jiǎng)勵(lì)函數(shù)r的構(gòu)造。
對(duì)于跨域機(jī)器人水面起飛任務(wù),目標(biāo)指令由遙控器得到[utarget,vtarget,wtarget,rtarget]。通常地,在水面起飛過(guò)程中,取[Utarget,rtarget]=[0,0,wtarget,0]。
當(dāng)機(jī)器人未完全脫離水面,需保證機(jī)器人具備一定的正仰角θ。同時(shí),不考慮航向角ψ,只考慮機(jī)器人具備接近于0的航向角速度r。即目標(biāo)姿態(tài)角Φtarget=[φtarget,θtarget]=[0,θtarget],和目標(biāo)角速度Φtarget=[ptarget,qtarget,rtarget]=[0,0,0]。
則即時(shí)獎(jiǎng)勵(lì)函數(shù)為
(26)
其中,前三項(xiàng)分別描述機(jī)器人在線速度、姿態(tài)角、角速度與目標(biāo)值的差值,最后一項(xiàng)描述了機(jī)器人是否在水中,如果機(jī)器人處于空氣中,深度d<0,則最后一項(xiàng)不產(chǎn)生懲罰值。
4)初始、終止的選取。
強(qiáng)化學(xué)習(xí)通過(guò)反復(fù)地與環(huán)境進(jìn)行交互,以獲取最優(yōu)的控制策略,其初始狀態(tài)為機(jī)器人處于水面某點(diǎn),并處于平衡狀態(tài)s0=[0,0,0,0,0,0,0,0,d0],d0為機(jī)器人漂浮于水面深度傳感器測(cè)量值。
機(jī)器人在強(qiáng)化學(xué)習(xí)算法中,其每回合試驗(yàn)都應(yīng)到達(dá)一終止?fàn)顟B(tài),當(dāng)?shù)竭_(dá)該狀態(tài)后,本回合試驗(yàn)結(jié)束。因此為節(jié)約訓(xùn)練成本,有必要設(shè)置終止條件,當(dāng)機(jī)器人完全離開(kāi)水面并維持超過(guò)5 s,則認(rèn)為本次試驗(yàn)成功,回合結(jié)束。同時(shí),為防止機(jī)器人過(guò)長(zhǎng)時(shí)間到達(dá)不了終止?fàn)顟B(tài),設(shè)置最大試驗(yàn)時(shí)間,t≤Tth。
5)強(qiáng)化學(xué)習(xí)方法的運(yùn)用。
本文采用近似策略優(yōu)化(proximal policy optimization, PPO)[19]算法對(duì)機(jī)器人的水面起飛控制進(jìn)行訓(xùn)練,如圖9所示。
圖9 機(jī)器人強(qiáng)化學(xué)習(xí)控制框圖Fig.9 Reinforcement learning control block diagram of the robot
由圖9可見(jiàn),深度強(qiáng)化學(xué)習(xí)控制器獲取目標(biāo)狀態(tài)starget和當(dāng)前機(jī)器人狀態(tài)sk(或初始狀態(tài)s0),由此計(jì)算出相應(yīng)的機(jī)器人動(dòng)作ak,并發(fā)布到機(jī)器人的執(zhí)行機(jī)構(gòu)作出相應(yīng)的動(dòng)作,通過(guò)傳感器獲得機(jī)器人下一時(shí)刻的狀態(tài)sk+1,并判斷是否達(dá)到終止?fàn)顟B(tài),若沒(méi)有,則將狀態(tài)sk+1傳遞至強(qiáng)化學(xué)習(xí)控制器,進(jìn)行下一時(shí)刻的動(dòng)作量ak+1計(jì)算,否則,結(jié)束當(dāng)前訓(xùn)練。同時(shí),通過(guò)對(duì)每一時(shí)刻機(jī)器人狀態(tài)、動(dòng)作和獎(jiǎng)勵(lì)構(gòu)成的元組〈sk,ak,sk+1,rk〉的存儲(chǔ),并采用PPO算法實(shí)現(xiàn)對(duì)深度強(qiáng)化學(xué)習(xí)控制器的更新,實(shí)現(xiàn)對(duì)機(jī)器人控制器的訓(xùn)練。
對(duì)于跨域機(jī)器人的水面起飛任務(wù),這種高維狀態(tài)和動(dòng)作空間的過(guò)驅(qū)動(dòng)控制問(wèn)題,依舊為PPO算法提出了挑戰(zhàn)。為簡(jiǎn)化PPO算法尋優(yōu)的復(fù)雜度,采用將起飛任務(wù)分解訓(xùn)練的方法。
對(duì)于機(jī)器人的訓(xùn)練來(lái)說(shuō),最初的訓(xùn)練不能順利地完成整個(gè)水面起飛任務(wù)流程,這往往導(dǎo)致機(jī)器人反復(fù)訓(xùn)練最初的幾個(gè)動(dòng)作,而忽略了后面的動(dòng)作。通過(guò)將水面起飛動(dòng)作進(jìn)行分解,則得到3組需要訓(xùn)練的動(dòng)作流程,其將3.1節(jié)所述的3步起飛流程對(duì)應(yīng)3組訓(xùn)練:動(dòng)作①:控制槳1、2的轉(zhuǎn)速,使機(jī)器人從水平初始狀態(tài)到具備一定正仰角,此時(shí)槳3、4處于低速狀態(tài),4臺(tái)傾轉(zhuǎn)舵機(jī)隨機(jī)器人轉(zhuǎn)動(dòng),保證推力豎直向下;動(dòng)作②:機(jī)器人部分浸沒(méi)于水中,控制槳1、2的轉(zhuǎn)速,使機(jī)器人以固定的仰角實(shí)現(xiàn)將機(jī)器人逐漸拉離水面,此時(shí)槳3、4處于低速狀態(tài),4臺(tái)傾轉(zhuǎn)舵機(jī)隨機(jī)器人轉(zhuǎn)動(dòng),保證推力豎直向下;動(dòng)作③:機(jī)器人完全脫離水面,控制4具螺旋槳的轉(zhuǎn)速和4臺(tái)傾轉(zhuǎn)舵機(jī)的角度,使機(jī)器人4臺(tái)螺旋槳均脫離近水面狀態(tài)。
為驗(yàn)證跨域機(jī)器人水面起飛方案和強(qiáng)化學(xué)習(xí)控制算法的有效性,基于ROS和Gazebo仿真軟件,搭建跨域機(jī)器人的仿真平臺(tái)。并在此基礎(chǔ)上強(qiáng)化學(xué)習(xí)算法通過(guò)ROS與Gazebo進(jìn)行動(dòng)作命令的發(fā)布和狀態(tài)信息的訂閱。
由圖10所示,深度強(qiáng)化學(xué)習(xí)采用包含2個(gè)全連接隱含層的網(wǎng)絡(luò)結(jié)構(gòu),每層128節(jié)點(diǎn),激活函數(shù)采用tanh。學(xué)習(xí)率l=10-4,折扣因子γ=0.99,GAE參數(shù)λ=0.95,截?cái)鄥?shù)ε=0.2,采樣頻率20 Hz。
圖10 深度強(qiáng)化學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)Fig.10 Network architecture of DRL
采用3.1和3.2節(jié)所述方法,對(duì)機(jī)器人在近水面環(huán)境下進(jìn)行仿真。仿真中,機(jī)器人初始位置位于水面某處,通過(guò)遙控器給定目標(biāo)值[u=0,v=0,w=1.5 m/s,r=0],機(jī)器人t=0 s時(shí)開(kāi)始動(dòng)作。
機(jī)器人在t=0 s到t=3.6 s,處于階段①,機(jī)器人槳1、2開(kāi)始動(dòng)作(圖12),此時(shí)機(jī)器人獲得抬艏力矩,使機(jī)器人獲得30°的正仰角。
圖11 螺旋槳?jiǎng)恿λp情況下機(jī)器人水面分階段 起飛仿真Fig.11 Simulation robot water-surface taking-off in stages with propeller power attenuation
圖12 機(jī)器人水面起飛螺旋槳轉(zhuǎn)速Fig.12 Propeller rotation action of water-surface taking-off simulation
機(jī)器人在t=3.6 s到t=5.7 s,處于階段②,槳3、4脫離水面并開(kāi)始動(dòng)作。機(jī)器人逐漸獲得最大65°的仰角。在此過(guò)程中,由于槳3、4開(kāi)始提供升力,槳1、2的所需的轉(zhuǎn)速開(kāi)始減小。
圖14 機(jī)器人水面起飛線速度Fig.14 Linear velocities of water-surface taking-off simulation
機(jī)器人在t=5.7 s到t=6 s,處于階段③,機(jī)器人到達(dá)距水面高度2 m位置,完全脫離近水面狀態(tài),4臺(tái)傾轉(zhuǎn)舵機(jī)逐漸恢復(fù)90°。在此過(guò)程中,機(jī)器人逐漸由大仰角狀態(tài)恢復(fù)到水平狀態(tài),槳1、2適當(dāng)減小轉(zhuǎn)速,槳3、4增大轉(zhuǎn)速,為機(jī)器人提供俯仰力矩,保證機(jī)器人逐漸恢復(fù)水平。
圖15 機(jī)器人水面起飛姿態(tài)角Fig.15 Attitude of water-surface taking-off simulation
由仿真可知,基于強(qiáng)化學(xué)習(xí)的機(jī)器人達(dá)到目標(biāo)速度w=1.5 m/s,水平線速度小于0.5 m/s,同時(shí),機(jī)器人以60°的仰角實(shí)現(xiàn)由水到空氣的水面起飛。仿真證明了螺旋槳?jiǎng)恿λp情況下,基于深度強(qiáng)化學(xué)習(xí)的機(jī)器人水面分階段起飛的有效性和可行性。為下一步實(shí)際機(jī)器人的實(shí)驗(yàn)驗(yàn)證提供保證。
圖16 機(jī)器人水面起飛深度(高度)Fig.16 Depth(height) of water-surface taking-off simulation
為縮短機(jī)器人運(yùn)動(dòng)控制的強(qiáng)化學(xué)習(xí)訓(xùn)練時(shí)間,節(jié)約機(jī)器人的訓(xùn)練成本,通常機(jī)器人應(yīng)提前在虛擬環(huán)境中進(jìn)行仿真訓(xùn)練,得到較好的訓(xùn)練效果后,將訓(xùn)練所得的網(wǎng)絡(luò)部署于實(shí)體機(jī)器人中,并將該網(wǎng)絡(luò)作為實(shí)體機(jī)器人運(yùn)動(dòng)控制的初始化網(wǎng)絡(luò)。
機(jī)器人控制模塊主要由PX4控制板和Jetson TX-2深度學(xué)習(xí)計(jì)算模組構(gòu)成,如圖17所示,PX4主要承擔(dān)通訊和數(shù)據(jù)記錄功能,并與無(wú)線遙控器實(shí)現(xiàn)通訊并下發(fā)指令;前述仿真訓(xùn)練所得網(wǎng)絡(luò)部署于TX-2中,通過(guò)向PX4獲取當(dāng)前機(jī)器人的運(yùn)動(dòng)狀態(tài)和遙控發(fā)出的控制指令,計(jì)算下一步機(jī)器人的控制策略;機(jī)器人通過(guò)外接的60V直流電源通電。
圖17 實(shí)驗(yàn)平臺(tái)構(gòu)成Fig.17 Elements of experimental test
實(shí)驗(yàn)驗(yàn)證包括2組飛行實(shí)驗(yàn),第1組為無(wú)螺旋槳衰減情況下的水面起飛實(shí)驗(yàn),第2組為螺旋槳?jiǎng)恿λp情況下的水面起飛實(shí)驗(yàn)。
4.2.1 無(wú)螺旋槳衰減情況下水面起飛
為驗(yàn)證機(jī)器人在無(wú)螺旋槳衰減情況下的水面起飛控制效果,考慮在機(jī)器人水面起飛環(huán)境中剔除螺旋槳近水面動(dòng)力衰減的因素。該組實(shí)驗(yàn)中,制作一組鋁合金框架,4臺(tái)傾轉(zhuǎn)推進(jìn)器沿機(jī)體坐標(biāo)系-Gz軸方向平移500 mm,由2.1節(jié)可知,此時(shí)螺旋槳的動(dòng)力特性等同于空氣中螺旋槳,此時(shí)4臺(tái)推進(jìn)器豎直向上,呈固定的90°布置,如圖18所示。
圖18 螺旋槳無(wú)動(dòng)力衰減情況下機(jī)器人水面起飛實(shí)驗(yàn)Fig.18 Robot water-surface taking-off without propeller power attenuation
機(jī)器人初始位置位于水面某處,通過(guò)遙控器給定目標(biāo)值[u=0,v=0,w=2m/s,r=0],機(jī)器人t=0 s時(shí)開(kāi)始動(dòng)作。
由于當(dāng)前情況下,螺旋槳?jiǎng)恿](méi)有衰減效果,其4臺(tái)螺旋槳提供的合力足夠保證機(jī)器人以水平方式直接起飛。
由圖19可知,四臺(tái)螺旋槳轉(zhuǎn)速控制在10 000到15 000 r/min,由此產(chǎn)生160 N的合升力。
圖19 螺旋槳無(wú)動(dòng)力衰減情況下機(jī)器人水面起飛 螺旋槳轉(zhuǎn)速Fig.19 Propeller rotation action of water-surface taking-off without propeller power attenuation
機(jī)器人在t=0 s到t=5 s保持上升狀態(tài),由圖20可知,機(jī)器人在水面起飛過(guò)程中,維持水平線速度小于0.3 m/s,機(jī)器人獲得的速度w較目標(biāo)速度wtarget=2 m/s存在約1 m/s的差距,機(jī)器人垂向速度w在1 m/s到2 m/s之間振蕩。這種垂直速度方向的振蕩主要來(lái)自于機(jī)器人的外接電源線的拉扯,當(dāng)機(jī)器人不斷升高時(shí),其也帶動(dòng)更多的電源線脫離地面,同時(shí),地面上的電源線也在機(jī)器人的拉扯過(guò)程中同地面發(fā)生摩擦。電源線的重量和摩擦給機(jī)器人帶來(lái)額外的向下的力,這種反復(fù)的拉扯一定程度上造成了機(jī)器人垂直方向速度w的振蕩。
圖20 螺旋槳無(wú)動(dòng)力衰減情況下機(jī)器人水面起飛線速度Fig.20 Linear velocities of water-surface taking-off without propeller power attenuation
由圖21可知,機(jī)器人在當(dāng)前實(shí)驗(yàn)中,存在不超過(guò)5°的俯仰角和橫滾角。但橫滾角φ存在小幅振蕩,尤其是起飛初始階段,在t=0 s到t=2 s之間。這種現(xiàn)象主要來(lái)自于兩種因素:一是此次實(shí)驗(yàn)中,將4臺(tái)螺旋槳通過(guò)鋁合金塑材架高了500 mm,這種結(jié)構(gòu)使螺旋槳與搭載傳感器的機(jī)器人本體之間僅靠鋁合金框架連接,這種連接方式造成了機(jī)器人的振動(dòng);二是螺旋槳經(jīng)過(guò)架高后,改變了機(jī)器人的重心,這種情況下的重心位于浮心之上,增大了機(jī)器人在水面的橫滾。
圖21 螺旋槳無(wú)動(dòng)力衰減情況下機(jī)器人水面起飛姿態(tài)角Fig.21 Attitude of water-surface taking-off without propeller power attenuation
圖22 螺旋槳無(wú)動(dòng)力衰減情況下機(jī)器人水面起飛 深度(高度)Fig.22 Depth(height) of water-surface taking-off without propeller power attenuation
由此實(shí)驗(yàn)可知,基于深度強(qiáng)化學(xué)習(xí)的機(jī)器人水面起飛方法,在當(dāng)前機(jī)器人的布局下,可以滿足跨域機(jī)器人以水平方式進(jìn)行起飛。這種機(jī)器人的布局方式雖然僅是用于實(shí)驗(yàn)驗(yàn)證,不是跨域機(jī)器人的常規(guī)布局結(jié)構(gòu),但該實(shí)驗(yàn)通過(guò)排除了螺旋槳近水面動(dòng)力衰減的影響,驗(yàn)證了深度強(qiáng)化學(xué)習(xí)方法在實(shí)際機(jī)器人中的有效性,為下一步實(shí)驗(yàn)提供了保證。
4.2.2 螺旋槳衰減情況下水面起飛
該組實(shí)驗(yàn)中,目的是實(shí)現(xiàn)機(jī)器人控制4臺(tái)螺旋槳轉(zhuǎn)速和4部推進(jìn)器的傾轉(zhuǎn)舵機(jī)的傾轉(zhuǎn)角度,使機(jī)器人以傾轉(zhuǎn)旋翼工作狀態(tài)實(shí)現(xiàn)水面的分階段起飛,如圖23所示。
圖23 螺旋槳?jiǎng)恿λp情況下機(jī)器人水面分階段起飛實(shí)驗(yàn)Fig.23 Robot water-surface taking-off in stages with propeller power attenuation
機(jī)器人初始位置位于水面某處,通過(guò)遙控器給定目標(biāo)值[u=0,v=0,w=1 m/s,r=0],機(jī)器人t=0 s時(shí)開(kāi)始動(dòng)作。
機(jī)器人在t=0 s到t=4.2 s,處于階段①,機(jī)器人槳1、2開(kāi)始動(dòng)作如圖24,此時(shí)機(jī)器人獲得抬艏力矩,使機(jī)器人獲得30°的正仰角。
圖24 水面分階段起飛螺旋槳轉(zhuǎn)速Fig.24 Propeller rotation action of water-surface taking-off in stages
機(jī)器人在t=3.6s到t=6s,處于階段②,槳3、4脫離水面并開(kāi)始動(dòng)作。機(jī)器人逐漸獲得最大70°的仰角。在此過(guò)程中,由于槳3、4開(kāi)始提供升力,槳1、2的所需的轉(zhuǎn)速開(kāi)始減小。
機(jī)器人在t=6 s到t=7 s,處于階段③,機(jī)器人到達(dá)距水面高度2 m位置,完全脫離近水面狀態(tài),4臺(tái)傾轉(zhuǎn)舵機(jī)逐漸恢復(fù)90°。在此過(guò)程中,機(jī)器人逐漸由大仰角狀態(tài)恢復(fù)到水平狀態(tài),槳1、2適當(dāng)減小轉(zhuǎn)速,槳3、4增大轉(zhuǎn)速,為機(jī)器人提供俯仰力矩,保證機(jī)器人逐漸恢復(fù)水平。
圖25 水面分階段起飛推進(jìn)器傾轉(zhuǎn)角度Fig.25 Thrust tilt-angle of water-surface taking-off in stages
圖26 分階段水面起飛機(jī)器人線速度Fig.26 Linear velocities of water-surface taking-off in stages
圖27 分階段水面起飛機(jī)器人姿態(tài)角Fig.27 Attitude of water-surface taking-off in stages
由實(shí)驗(yàn)可知,基于強(qiáng)化學(xué)習(xí)的機(jī)器人達(dá)到目標(biāo)速度w=1 m/s,水平線速度小于0.5 m/s,同時(shí),機(jī)器人以65°的仰角實(shí)現(xiàn)由水到空氣的水面起飛。在實(shí)驗(yàn)中證明了螺旋槳?jiǎng)恿λp情況下,基于深度強(qiáng)化學(xué)習(xí)的機(jī)器人水面分階段起飛的有效性和可行性。
圖28 分階段水面起飛機(jī)器人深度(高度)Fig.28 Depth(height) of water-surface taking-off in stages
本文研究了強(qiáng)化學(xué)習(xí)方法在水空跨域機(jī)器人上的應(yīng)用,解決了機(jī)器人在水面起飛時(shí),近水面環(huán)境導(dǎo)致推進(jìn)器動(dòng)力衰減和浮力變化所帶來(lái)的起飛過(guò)程中的不確定性問(wèn)題。進(jìn)一步,通過(guò)設(shè)計(jì)基于強(qiáng)化學(xué)習(xí)的分階段水面起飛方法,實(shí)現(xiàn)水空跨域機(jī)器人在水面螺旋槳?jiǎng)恿λp造成升力不足情況下的分階段起飛。
未來(lái)機(jī)器人應(yīng)安裝更多的傳感器,通過(guò)機(jī)器人狀態(tài)的精確觀測(cè),實(shí)現(xiàn)控制精度更高、可控狀態(tài)更豐富的跨域機(jī)器人水面起飛任務(wù)。