楊志鵬 李 波 甘志剛 梁詩陽
1.西北工業(yè)大學(xué)電子信息學(xué)院 陜西 西安 710072 2.湖北航天技術(shù)研究院總體設(shè)計所 湖北 武漢 430040 3.中國電子科技集團公司數(shù)據(jù)鏈技術(shù)重點實驗室 陜西 西安 710077 4.中航工業(yè)洛陽電光設(shè)備研究所 河南 洛陽 471000
無人機在軍事預(yù)警、工業(yè)巡檢、搶險救災(zāi)、生活輔助等諸多領(lǐng)域所扮演的角色愈演愈烈, 人們對其智能化要求也越來越高[1-3]. 由于諸多原因, 無人機自主決策與控制在智能控制領(lǐng)域仍然面臨巨大的挑戰(zhàn)[4].一方面, 無人機空氣動力學(xué)建模十分困難;另一方面,受諸多因素影響, 無人機在高空飛行時, 無法對外部或內(nèi)部不確定因素的改變作出合理反應(yīng), 這大大提高了旋翼無人機在軍事應(yīng)用領(lǐng)域的難度[5]. 因此, 為了使旋翼無人機的行為適應(yīng)未知的條件, 為無人機培養(yǎng)學(xué)習(xí)能力是至關(guān)重要的[6].學(xué)習(xí)和適應(yīng)行為的最常見框架之一就是強化學(xué)習(xí)(reinforcement learning)——在與環(huán)境交互的過程中, 智能體利用自身行為的經(jīng)驗, 和對行為獎懲的反饋, 通過不斷嘗試, 從錯誤中學(xué)習(xí), 最后找到規(guī)律, 作出合理的行為[7]. 因此, 強化學(xué)習(xí)方法已成為改善無人機自主行為的一種很有前途的工具[8].
為了使無人機能夠?qū)崿F(xiàn)完全自主的飛行并作出智能決策以完成任務(wù), 有必要構(gòu)建一個合理有效的無人機控制模型[9]. 強化學(xué)習(xí)可以有效地應(yīng)用于高層決策系統(tǒng), 從而使無人機提前掌握航線跟隨的本領(lǐng),防止人為操縱使其受不可控因素影響. 本文的主要目的是, 將神經(jīng)網(wǎng)絡(luò)(neural networks, NNs)與強化學(xué)習(xí)算法結(jié)合所形成的深度強化學(xué)習(xí)算法, 作為無人機在不確定環(huán)境下的高層控制[10], 使無人機學(xué)習(xí)自主決策, 完成航線跟隨任務(wù)[11].
本文所進行的無人機航線跟隨實驗代表了四旋翼無人機在軍事領(lǐng)域中的潛在應(yīng)用之一[12]. 通過提出一種基于深度強化學(xué)習(xí)的新方法, 采用離線學(xué)習(xí)對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練, 將訓(xùn)練時產(chǎn)生的經(jīng)驗存儲于經(jīng)驗池中,為神經(jīng)網(wǎng)絡(luò)的優(yōu)化提供訓(xùn)練樣本[13]. 并結(jié)合四旋翼無人機飛行特性和姿態(tài)控制要求, 設(shè)計環(huán)境空間、狀態(tài)空間、動作空間和獎懲機制, 以提高深度強化學(xué)習(xí)模型的泛化能力[14]. 最后, 結(jié)合仿真結(jié)果, 驗證了該方法對四旋翼無人機航線跟隨的有效控制.
本文重點關(guān)注四旋翼無人機動力學(xué)模型本身的系統(tǒng)性和規(guī)范性, 而不考慮風(fēng)向、風(fēng)速、電機損耗等外界或不可控因素的影響. 針對四旋翼無人機工作原理及其動力學(xué)模型構(gòu)建過程, 作出詳細的解釋.
四旋翼無人機通過調(diào)節(jié)4 個電機轉(zhuǎn)速來改變旋翼轉(zhuǎn)速, 從而改變無人機所受升力大小, 實現(xiàn)對無人機的運動控制和姿態(tài)控制, 進而, 旋翼旋轉(zhuǎn)得越快,升力就越大, 反之亦然. 當4 個旋翼轉(zhuǎn)動所提供的升力之和等于無人機自身重力時, 無人機就會保持懸停狀態(tài). 在懸停狀態(tài)下, 4 個電機轉(zhuǎn)速同時增大或減小, 無人機垂直上升或下降. 保持M1和M3電機轉(zhuǎn)速不變, 當增加(減小)M2轉(zhuǎn)速或減?。ㄔ黾樱㎝4轉(zhuǎn)速時,無人機滾動運動(側(cè)向運動). 保持M2和M4電機轉(zhuǎn)速不變, 當增加(減小)M1轉(zhuǎn)速或減?。ㄔ黾樱㎝3轉(zhuǎn)速,無人機俯仰(前后運動). 當M1、M3電機轉(zhuǎn)速同時增加(減?。┗騇2、M4的電機轉(zhuǎn)速同時減小(增加),無人機會旋轉(zhuǎn), 實現(xiàn)偏航[15].
通過組合以上的基本運動, 可以實現(xiàn)小型四旋翼無人機的各種復(fù)雜運動. 四旋翼飛行器的結(jié)構(gòu)俯視圖如圖1 所示.
圖1 四旋翼無人機俯視圖Fig.1 The vertical view of quadrotor UAV
四旋翼無人機的坐標(x, y, z)是由其質(zhì)心相對于慣性坐標系的位置決定的, 其姿態(tài)由歐拉角(滾動角, 俯仰角θ 和偏航角)來描述. 因此, 可以使用上述歐拉角來定義從機體坐標系Cb到慣性坐標系Ci的轉(zhuǎn)換矩陣R:
其中, s*表示角的正弦值, c*表示角的余弦值. 通過在機體坐標系和慣性坐標系之間使用這種轉(zhuǎn)換, 可以從其他的力中分離出重力, 在慣性坐標系Ci中的轉(zhuǎn)換動力學(xué)模型如下:
結(jié)合旋轉(zhuǎn)矩陣R, 可得出:
在慣性坐標系Ci中,令r=[x,y,z]T,其中,x、y、z分別表示四旋翼無人機在慣性坐標系中的位置. 令轉(zhuǎn)動慣量矩陣J=diag(Jxx, Jyy, Jzz),對于本文所選用的“+”型結(jié)構(gòu)的四旋翼無人機來說, 高度通道的受力為:
結(jié)合模型, 可以用3 個扭矩和總推力來描述四旋翼無人機的飛行輸入μ:
圖2 四旋翼無人機模型與坐標系Fig.2 Model and coordinate system of quadrotor UAV
其中, d 表示每個電機到無人機中心的距離;cT表示推力系數(shù);cM表示力矩系數(shù). 在虛擬環(huán)境中, 四旋翼無人機的狀態(tài)輸入包括無人機的位置量、歐拉角、線速度和角速度, 其狀態(tài)輸入可表示為:
本文訓(xùn)練所設(shè)定的四旋翼飛機質(zhì)量m=0.65 kg,力臂長度d=0.23 m, 推力系數(shù)cT=0.000 03, 力矩系數(shù)cM=0.000 9, 每個電機提供最大推力為3.19 N, 參數(shù)[Jxx, Jyy, Jzz]=[0.007 5, 0.007 5, 0.013].
本文所建立的四旋翼無人機航線跟隨模型, 采用的是基于深度強化學(xué)習(xí)的(deep deterministic policy gradient, DDPG)算法, 包括強化學(xué)習(xí)理論和基于神經(jīng)網(wǎng)絡(luò)運用的深度強化學(xué)習(xí)算法. 對于DDPG 算法而言,如何導(dǎo)入四旋翼無人機運動學(xué)、動力學(xué)模型和如何優(yōu)化算法使之更易收斂是本文要解決的兩個重要問題.
強化學(xué)習(xí)是一種機器學(xué)習(xí)方法. 當環(huán)境中的智能體需要完成某種決策或任務(wù)時, 首要的步驟是采取相應(yīng)的動作(action)與環(huán)境進行交互溝通, 在該動作變量的作用下, 智能體會產(chǎn)生新的狀態(tài)量(state),并在環(huán)境的反饋下, 得到一個相應(yīng)的回報值(reward).隨著智能體不斷試錯, 強化學(xué)習(xí)算法利用產(chǎn)生的數(shù)據(jù)來完善并更新自身的策略. 通過不斷地與環(huán)境交互, 智能體會逐漸學(xué)習(xí)到能夠獲取高額回報的動作值, 并不斷改善自身的行為以適應(yīng)不斷變化的環(huán)境,最終學(xué)習(xí)到完成相應(yīng)任務(wù)的最優(yōu)策略.
圖3 展示了強化學(xué)習(xí)實現(xiàn)的基本過程, 該過程可以用馬爾可夫決策過程表示. 馬爾科夫決策過程由元組表示, 其中,為智能體的狀態(tài)量集合;為智能體的動作量集合;表示智能體在狀態(tài)量為s, 且采取動作量為a 的條件下, 能夠到達狀態(tài)量s'的概率;R 為設(shè)定的獎勵函數(shù), 是智能體學(xué)習(xí)的“動力”和“方向”;γ 為折扣系數(shù), 用于計算整個過程中的回報累計值. 折扣系數(shù)越大, 表示越注重長期收益. 根據(jù)已知量, 可推導(dǎo)出智能體的累計回報值為:
圖3 強化學(xué)習(xí)理論基本框架Fig.3 Basic framework of reinforcement learning theory
強化學(xué)習(xí)的目的是學(xué)習(xí)到完成任務(wù)的最佳策略,使得累計回報最高, 即:
累計回報在狀態(tài)s 處的期望值定義為狀態(tài)-值函數(shù):
與之對應(yīng)的, 狀態(tài)-行為值函數(shù)為:
從強化學(xué)習(xí)的基本原理可以得出, 強化學(xué)習(xí)的學(xué)習(xí)行為是一個不斷交互、不斷變化的過程. 其中采取的動作、得到的獎懲和收集到的數(shù)據(jù), 也是隨著與環(huán)境不斷交互得到的, 因此, 整個學(xué)習(xí)過程較其他機器學(xué)習(xí)算法更為智能化. 由于傳統(tǒng)的強化學(xué)習(xí)算法如Q-learning 算法、Sarsa 算法等只能用于解決簡單的離散化動作的環(huán)境, 無法解決四旋翼無人機飛行產(chǎn)生的連續(xù)性動作改變. 故本文選取的算法為基于深度強化學(xué)習(xí)的DDPG 算法.
圖4 為基于深度強化學(xué)習(xí)DDPG 算法的四旋翼無人機航線跟隨策略學(xué)習(xí)過程示意圖. 該算法通過actor 動作網(wǎng)絡(luò)產(chǎn)生飛行策略, 并加入隨機探索因子保證無人機有一定幾率學(xué)習(xí)到未知動作, 通過無人機模型對數(shù)據(jù)處理, 得到無人機的狀態(tài)信息, 并通過設(shè)計好的獎勵函數(shù), 得到無人機從狀態(tài)st作出動作a到達下一狀態(tài)st+1所獲得的獎勵值rt, 并將“狀態(tài), 動作, 獎勵, 下一狀態(tài)”存入經(jīng)驗池, 每過一段回合隨機從經(jīng)驗池中抽取一定數(shù)目的數(shù)據(jù), 采用梯度下降的方法對動作網(wǎng)絡(luò)和評估網(wǎng)絡(luò)進行訓(xùn)練, 并用主網(wǎng)絡(luò)參數(shù)替代目標網(wǎng)絡(luò)參數(shù). DDPG 算法的核心是深度Q網(wǎng)絡(luò)(deep Q network, DQN)算法和演員評論家(actor critic, AC)算法.
圖4 基于DDPG 算法的策略學(xué)習(xí)過程示意圖Fig.4 Diagram of strategy learning process based on DDPG
DQN 算法是在傳統(tǒng)Q-learning 算法的基礎(chǔ)加入神經(jīng)網(wǎng)絡(luò), 有效避免了Q 表格存儲爆炸的問題. 再通過添加target 目標網(wǎng)絡(luò), 并定期將主網(wǎng)絡(luò)的參數(shù)更新至目標網(wǎng)絡(luò)中, 有效打亂了數(shù)據(jù)的相關(guān)性.
AC 算法是基于策略的算法, 通過建立動作網(wǎng)絡(luò)(action, A)和評估網(wǎng)絡(luò)(critic, C), 其中, A 網(wǎng)絡(luò)負責(zé)識別智能體與環(huán)境交互的信息并產(chǎn)生的策略動作a,C 網(wǎng)絡(luò)通過學(xué)習(xí)環(huán)境和獲得獎懲之間的關(guān)系, 以評判A 網(wǎng)絡(luò)產(chǎn)生的動作a 好壞. 較傳統(tǒng)Policy Gradient算法, 該算法能夠?qū)崿F(xiàn)單步更新, 使訓(xùn)練更為高效.
本實驗中,設(shè)定神經(jīng)網(wǎng)絡(luò)的輸入s 為無人機各項狀態(tài)量ζ,神經(jīng)網(wǎng)絡(luò)的輸出a 為無人機4 個電機轉(zhuǎn)速量.為方便神經(jīng)網(wǎng)絡(luò)的計算,對神經(jīng)網(wǎng)絡(luò)輸入的狀態(tài)空間O 和神經(jīng)網(wǎng)絡(luò)輸出的動作空間M 作歸一化處理,即:
其中, ωmax表示無人機電機最大轉(zhuǎn)速. 歸一化處理后的狀態(tài)空間內(nèi)和動作空間內(nèi)各變量滿足sn∈[1, -1]、an∈[0, 1]. 再綜合考慮無人機飛行距離、飛行姿態(tài)、飛行線速度、飛行角速度等因素權(quán)重, 對無人機智能體進行相應(yīng)的獎懲. 本實驗中, 設(shè)定獎勵函數(shù)為:
其中, d1表示無人機到航線終點的距離, d2表示無人機到航線的偏差距離, V、分別表示無人機飛行的合線速度值、合角速度值, t 為實驗中無人機智能體保持安全飛行的時間. 在經(jīng)驗池收集滿后, 每次抽取一定量的數(shù)據(jù), 對神經(jīng)網(wǎng)絡(luò)參數(shù)進行更新. 再將學(xué)習(xí)效率進行周期性指數(shù)衰減, 使學(xué)習(xí)更易收斂.
為了驗證DDPG 算法對四旋翼無人機航線跟隨策略學(xué)習(xí)的真實、有效性, 本次實驗在GPU 服務(wù)器、Tensorflow 1.8.0、OpenAIGym、Python3.6 的環(huán)境(如圖5 所示)對四旋翼無人機進行訓(xùn)練. 通過將四旋翼無人機動力學(xué)模型整合到建立的gym-aero 環(huán)境中,再導(dǎo)入DDPG 算法對無人機進行訓(xùn)練.
圖5 基于gym-aero 的四旋翼無人機飛行仿真環(huán)境Fig.5 Simulation environment of quadrotor UAV based on gym-aero
本實驗構(gòu)建的A 網(wǎng)絡(luò)、C 網(wǎng)絡(luò)及其目標網(wǎng)絡(luò)為BP 神經(jīng)網(wǎng)絡(luò), 其中, 輸入層一層、隱藏層一層、輸出層一層, 設(shè)定隱藏層中神經(jīng)元個數(shù)為150. 實驗中, 設(shè)定無人機每個電機的最大轉(zhuǎn)速為319.15 rad/s, 無人機懸停轉(zhuǎn)速為225.67 rad/s. 在DDPG 算法的應(yīng)用中,設(shè)立var 表示探索變量. 當每次和環(huán)境交互時, A 網(wǎng)絡(luò)會生成動作值a, 系統(tǒng)再從以a 為均值、var 為方差的正態(tài)分布中隨機取出新的值, 有利于無人機學(xué)習(xí)未知動作. 設(shè)定探索變量初始值為3, 隨著四旋翼無人機不斷地訓(xùn)練學(xué)習(xí), var 值進行指數(shù)衰減. 設(shè)定A 網(wǎng)絡(luò)和C 網(wǎng)絡(luò)學(xué)習(xí)速率分別為0.001 和0.002, 獎勵折扣系數(shù)為0.97. 當設(shè)定的經(jīng)驗池存滿數(shù)據(jù)后,神經(jīng)網(wǎng)絡(luò)中采用自適應(yīng)矩估計(adaptive moment estimation, Adam)的梯度下降優(yōu)化方法更新參數(shù), 每次從經(jīng)驗池抽取的經(jīng)驗數(shù)量為32.
為實現(xiàn)安全的自主飛行, 四旋翼無人機應(yīng)該時刻監(jiān)視當前的時間狀態(tài), 以保證在有限資源、有限時間內(nèi), 完成相應(yīng)的航線跟隨任務(wù). 因此, 在仿真環(huán)境中, 將時間狀態(tài)t 加入到無人機的狀態(tài)輸入量ζ 之中.設(shè)定T=15 s 為虛擬環(huán)境中無人機滿電量時的飛行續(xù)航時間, 當無人機在設(shè)定時間T 內(nèi)未完成飛行任務(wù)時, 無人機能源耗盡, 航線跟隨任務(wù)失敗.
所有的實驗中, 設(shè)立固定的四軸飛行器的初始位置和隨機的目標航線. 在仿真實驗中, 四旋翼無人機需要連續(xù)飛行到4 個連續(xù)的航路點, 且每個航路點從一個球體的體積均勻采樣. 實驗中, 用綠線表示飛行時無人機需要跟隨的航線, 用紅線表示四軸無人機的真實航跡.
按照上述環(huán)境和參數(shù)值, 根據(jù)2.2 節(jié)給出的基于深度強化學(xué)習(xí)的DDPG 算法步驟從初始狀態(tài)開始運行, 當完成航線跟隨任務(wù)或飛行續(xù)航時間內(nèi)未完成航線跟隨任務(wù)時, 回合終止, 進入下一回合學(xué)習(xí). 在訓(xùn)練前期, 環(huán)境中的智能體進行地圖探索, 并學(xué)習(xí)策略以使獲得的獎勵達到更大. 圖6 為四旋翼無人機訓(xùn)練4 000 回合后的航線跟隨任務(wù)展示. 在時間T4000=8.55 s 時, 無人機成功完成航線跟隨任務(wù). 可以看到, 在第2 段路徑中, 無人機飛行軌跡與預(yù)設(shè)航線有較大的偏差, 這表明本文算法對無人機的訓(xùn)練是有效的, 但還無法保證無人機的持續(xù)穩(wěn)定飛行.
圖6 訓(xùn)練4 000 回合后的航線跟隨任務(wù)展示圖Fig.6 Exploded view of track following mission after 4 000 rounds of training
隨著神經(jīng)網(wǎng)絡(luò)的訓(xùn)練進行, 算法的收斂程度不斷提高. 如圖7 所示, 當訓(xùn)練7 000 回合后, 四旋翼無人機已基本能夠按照任務(wù)航線完成飛行. 此時T7000=11.65 s>T4000, 表示無人機在訓(xùn)練過程中提升了精度但降低了飛行效率, 未達到理想效果.
圖7 訓(xùn)練7 000 回合后的航線跟隨任務(wù)展示圖Fig.7 Exploded view of track following mission after 7 000 rounds of training
此外, 由于任務(wù)中航路的不斷變化, 四旋翼無人機對不同的環(huán)境作出反應(yīng)需要一定的時間, 所以需要對無人機進行持續(xù)訓(xùn)練. 在算法中, 設(shè)定A 網(wǎng)絡(luò)和C 網(wǎng)絡(luò)學(xué)習(xí)速率每千回合衰減一半, 防止由于學(xué)習(xí)速率持續(xù)過大造成神經(jīng)網(wǎng)絡(luò)過擬合而產(chǎn)生低效學(xué)習(xí)、無效學(xué)習(xí)等問題.
經(jīng)過足夠的訓(xùn)練后, 無人機能夠跟隨任意隨機航線進行飛行, 這表明訓(xùn)練出的神經(jīng)網(wǎng)絡(luò)能夠?qū)﹄S機航線作出應(yīng)對, 泛化能力較強. 圖8 為四旋翼無人機訓(xùn)練10 000 回合后的航線跟隨任務(wù)展示圖. 可以清楚地看到, 在時間T10000=6.70 s 時, 無人機已經(jīng)能夠高精度完成任務(wù)航線的跟隨, 此時訓(xùn)練效果較為理想.
圖8 訓(xùn)練10 000 回合后的航線跟隨任務(wù)展示圖Fig.8 Exploded view of track following mission after 10 000 rounds of training
隨著訓(xùn)練回合的遞增, 無人機受到的平均獎勵逐漸遞增, 最終趨于穩(wěn)定. 圖9 為四旋翼無人機的訓(xùn)練效果圖, 其中, 橫坐標表示訓(xùn)練回合數(shù), 縱坐標表示每回合內(nèi)無人機得到的平均獎勵. 該訓(xùn)練效果圖清晰展示了基于深度強化學(xué)習(xí)的DDPG 算法對四旋翼無人機航線跟隨任務(wù)學(xué)習(xí)的促進作用.
圖9 四旋翼無人機訓(xùn)練效果圖Fig.9 The training renderings of quadrotor UAV
本文基于深度強化學(xué)習(xí)算法, 導(dǎo)入四旋翼飛行器非線性飛行運動學(xué)和動力學(xué)模型, 并建立了無人機航線跟隨決策規(guī)則的產(chǎn)生方法, 避免了在不確定性環(huán)境中人為操作無人機飛行的繁瑣性和粗疏性,使得無人機完成航線跟隨任務(wù)更為有效. 動態(tài)學(xué)習(xí)的過程和訓(xùn)練方法使無人機智能決策和控制更為高效和精準, 從而能夠使四旋翼無人機在接近真實的環(huán)境中學(xué)習(xí)到航線跟隨等相關(guān)任務(wù), 有利于實現(xiàn)無人機自主飛行與決策.