付國萍,田小壯,劉家辛,王偉光,王正武,李 松,高小偉,王 祝
(1.國網(wǎng)新疆電力有限公司 超高壓分公司,烏魯木齊 830001;2.北京御航智能科技有限公司,北京 100193;3.華北電力大學(xué) 自動化系,河北 保定 071003)
電力系統(tǒng)的穩(wěn)定與國民經(jīng)濟(jì)的正常運(yùn)作密切相關(guān),運(yùn)維工作對保證電力系統(tǒng)穩(wěn)定具有重要意義。隨著無人機(jī)及傳感技術(shù)的發(fā)展,無人機(jī)巡檢開始被應(yīng)用于變電站、輸配電線路等實際環(huán)境中[1]。其中,如何實現(xiàn)安全、自主、快速的巡檢,是變電站巡檢無人機(jī)研究的核心問題。文獻(xiàn)[2]分析了當(dāng)前變電站巡檢存在的問題,對變電站無人機(jī)巡檢模式進(jìn)行了探討;文獻(xiàn)[3]開展了變電站三維重建技術(shù)研究,為變電站運(yùn)維提供了三維可視化支撐;文獻(xiàn)[4]提出了一種基于編碼標(biāo)志的自主定位方法,實現(xiàn)了厘米級定位,為巡檢無人機(jī)自主避障提供了支撐;文獻(xiàn)[5]開展了邊緣計算框架設(shè)計和資源調(diào)度方法研究,可以在計算資源約束下快速發(fā)現(xiàn)設(shè)備缺陷。
變電站無人機(jī)巡檢技術(shù)當(dāng)前主要集中在對應(yīng)用方案的探討以及定位導(dǎo)航、任務(wù)調(diào)度等算法的研究上,由于試驗條件的限制,相關(guān)技術(shù)研究難以開展實際測試。為了便于對變電站無人機(jī)巡檢系統(tǒng)相關(guān)功能、模式、算法進(jìn)行驗證,本文基于ROS(Robot Operating System)、PX4 和Gazebo 平臺搭建變電站無人機(jī)自主巡檢仿真系統(tǒng),實現(xiàn)對無人機(jī)建圖定位、路徑規(guī)劃、飛行控制等功能的仿真測試,以降低無人機(jī)巡檢系統(tǒng)用于實際任務(wù)時的風(fēng)險。
變電站無人機(jī)自主巡檢仿真系統(tǒng)的系統(tǒng)架構(gòu)如圖1 所示,其主要由ROS 導(dǎo)航仿真模塊、PX4 無人機(jī)控制軟件的在環(huán)仿真(Software in the Loop,SITL)模塊、Gazebo 三維物理仿真模塊三個部分組成。其中,ROS仿真模塊主要包括狀態(tài)估計節(jié)點(diǎn)以及路徑規(guī)劃節(jié)點(diǎn);Gazebo 仿真模塊主要包括變電站三維環(huán)境模型、無人機(jī)運(yùn)動仿真模型和傳感器仿真模型;PX4_SITL 模塊主要包括無人機(jī)的姿態(tài)控制器、位置控制器和路徑導(dǎo)航控制器。
圖1 變電站無人機(jī)自主巡檢仿真系統(tǒng)架構(gòu)Fig.1 Simulation system structure of autonomous quadrotor inspection for substations
仿真系統(tǒng)中不同模塊間的信息交互關(guān)系如圖2 所示。其中,ROS 模塊和PX4_SITL 模塊之間利用mavlink 和mavros 實現(xiàn)數(shù)據(jù)交互;PX4_SITL 模塊和Gazebo 模塊之間利用simulator_mavlink 和mavlink_API 實現(xiàn)數(shù)據(jù)交互;ROS 模塊和Gazebo 模塊之間通過Gazebo_ROS_API 實現(xiàn)數(shù)據(jù)交互。
圖2 仿真系統(tǒng)各模塊間的信息交互關(guān)系Fig.2 Communications among different modules of the simulation system
變電站無人機(jī)自主巡檢仿真系統(tǒng)運(yùn)行時,各模塊間的數(shù)據(jù)交互情況如下。Gazebo 中的無人機(jī)運(yùn)動仿真模型和傳感器仿真模型提供無人機(jī)位姿和激光雷達(dá)等傳感器數(shù)據(jù)。其中,位姿估計值通過mavlink_API 發(fā)送給PX4_SITL,位姿真實值和雷達(dá)數(shù)據(jù)通過Gazebo_ROS_API 發(fā)送給ROS。ROS 中的狀態(tài)估計節(jié)點(diǎn)訂閱“/gazebo”節(jié)點(diǎn)發(fā)布的無人機(jī)位置與“/mavros”節(jié)點(diǎn)發(fā)布的無人機(jī)IMU(Inertial Measurement Unit)數(shù)據(jù)進(jìn)行狀態(tài)估計;路徑規(guī)劃節(jié)點(diǎn)訂閱“/gazebo”節(jié)點(diǎn)發(fā)布的傳感器數(shù)據(jù),構(gòu)建環(huán)境柵格地圖;同時,訂閱狀態(tài)估計節(jié)點(diǎn)發(fā)布的無人機(jī)姿態(tài)規(guī)劃出無人機(jī)的巡檢路徑。PX4_SITL 模塊通過mavlink 接收ROS 發(fā)送的路徑規(guī)劃結(jié)果和Gazebo 發(fā)送的無人機(jī)位姿,解算電機(jī)轉(zhuǎn)速形成控制指令,并將此指令通過simulator_mavlink 發(fā)送至Gazebo 的無人機(jī)運(yùn)動仿真模型,改變無人機(jī)電機(jī)轉(zhuǎn)速,進(jìn)而實現(xiàn)無人機(jī)在Gazebo 中自主巡檢飛行。
本節(jié)對變電站無人機(jī)巡檢仿真系統(tǒng)的主要組成模塊進(jìn)行闡述,包括各模塊的功能、內(nèi)部組成、接口關(guān)系和實現(xiàn)方案等。
為了實現(xiàn)導(dǎo)航仿真模塊的快速搭建、提高該模塊的兼容性,采用ROS 提供的導(dǎo)航工具包,實現(xiàn)無人機(jī)變電站巡檢過程的自主導(dǎo)航。ROS 是一個適用于機(jī)器人開發(fā)的開源元操作系統(tǒng),在無人機(jī)、無人車、機(jī)械臂等機(jī)器人領(lǐng)域得到了廣泛應(yīng)用[6]。ROS 采用分布式的設(shè)計架構(gòu),將機(jī)器人的功能模塊封裝成節(jié)點(diǎn)(Node),不同節(jié)點(diǎn)之間通過消息(Topic)、服務(wù)(Service)、動作(Action)實現(xiàn)信息交互。在變電站無人機(jī)自主巡檢仿真系統(tǒng)中,設(shè)計的無人機(jī)導(dǎo)航仿真模塊主要包括狀態(tài)估計節(jié)點(diǎn)和路徑規(guī)劃節(jié)點(diǎn)。
(1)狀態(tài)估計節(jié)點(diǎn)。
狀態(tài)估計節(jié)點(diǎn)根據(jù)獲取的傳感器數(shù)據(jù),估計出無人機(jī)在環(huán)境中的位置和姿態(tài)信息。例如,可利用GPS(Global Positioning System,GPS)估計無人機(jī)的絕對位置,也可以根據(jù)相機(jī)、激光雷達(dá)等傳感器數(shù)據(jù)估計無人機(jī)在環(huán)境中的相對位置;無人機(jī)的姿態(tài)信息可通過慣性傳感器測量得到,也可根據(jù)相機(jī)或雷達(dá)數(shù)據(jù)通過狀態(tài)估計獲得。在構(gòu)建的巡檢仿真系統(tǒng)中,基于Gazebo 平臺提供的真實數(shù)據(jù)和無人機(jī)IMU 的數(shù)據(jù),通過濾波融合估計出無人機(jī)的位置和姿態(tài)。狀態(tài)估計節(jié)點(diǎn)為了獲得無人機(jī)狀態(tài)融合的輸入數(shù)據(jù),可利用Gazebo 的Truth 插件獲得無人機(jī)在Gazebo 世界中的真實位置,同時訂閱mavros 節(jié)點(diǎn)所發(fā)布的“/mavros/imu/data”話題獲得無人機(jī)的姿態(tài)四元數(shù)數(shù)據(jù),最后將狀態(tài)估計節(jié)點(diǎn)對位置與姿態(tài)數(shù)據(jù)進(jìn)行濾波融合,并將結(jié)果發(fā)布至mavros 節(jié)點(diǎn)的“/mavros/vision_pose/pose”話題。
(2)路徑規(guī)劃節(jié)點(diǎn)。
路徑規(guī)劃節(jié)點(diǎn)的功能主要包括地圖構(gòu)建和路徑搜索。環(huán)境地圖是無人機(jī)進(jìn)行自主導(dǎo)航的基礎(chǔ),目前常見的地圖類型有點(diǎn)云地圖、柵格地圖和拓?fù)涞貓D等。在構(gòu)建的巡檢仿真系統(tǒng)中,通過構(gòu)建柵格地圖對環(huán)境進(jìn)行描述。仿真系統(tǒng)中構(gòu)建柵格地圖的步驟如下。
第一步:初始化柵格空間。根據(jù)變電站的尺寸和實際任務(wù)要求,設(shè)定合適的分辨率R,構(gòu)建均勻分割的三維柵格空間,并將各個柵格對應(yīng)的占據(jù)狀態(tài)初始化為0。
第二步:構(gòu)建柵格地圖。根據(jù)激光雷達(dá)獲取的變電站點(diǎn)云信息,為柵格空間的各個單元進(jìn)行賦值,完成占據(jù)柵格地圖的構(gòu)建。即根據(jù)點(diǎn)云在柵格地圖的投影,將有點(diǎn)云投影存在的柵格占據(jù)狀態(tài)更新為1,表示此單元被障礙物所占據(jù)。
第三步:變電站設(shè)備所占空間膨脹??紤]到無人機(jī)與變電站設(shè)備間的安全距離要求,為了保證無人機(jī)的飛行安全,在前述柵格地圖結(jié)果上,對設(shè)備所占據(jù)空間進(jìn)行膨脹處理,即將設(shè)備周圍的柵格占據(jù)狀態(tài)也賦值為1,使得無人機(jī)的飛行路徑與設(shè)備實際占據(jù)空間保留一定的安全距離。
在完成地圖構(gòu)建的基礎(chǔ)上,為了避免無人機(jī)在巡檢過程中與設(shè)備相撞,且盡可能使得巡檢路徑最短,需要利用路徑搜索算法規(guī)劃從起點(diǎn)到目標(biāo)點(diǎn)的可行路徑。本文中基于A*算法實現(xiàn)路徑規(guī)劃,A*算法是一種啟發(fā)式搜索算法,它通過啟發(fā)式函數(shù)來引導(dǎo)搜索方向,使得擴(kuò)展節(jié)點(diǎn)規(guī)模下降,同時找到全局最優(yōu)路徑。A*算法的代價函數(shù)f(n)由g(n)和h(n)兩部分組成,g(n)表示起始節(jié)點(diǎn)到節(jié)點(diǎn)n的真實代價,h(n)表示節(jié)點(diǎn)n到目標(biāo)節(jié)點(diǎn)的估計代價。在仿真系統(tǒng)中,g(n)和h(n)分別使用歐式距離公式和對角距離公式計算得到。規(guī)劃起點(diǎn)即無人機(jī)當(dāng)前位置通過訂閱狀態(tài)估計節(jié)點(diǎn)得到,路徑規(guī)劃結(jié)果則通過向“mavros/setpoint_position/local”話題發(fā)布期望位置信息傳遞給mavros 節(jié)點(diǎn)。
無人機(jī)控制器仿真基于PX4_SITL 實現(xiàn),PX4_SITL 內(nèi)部使用PX4 作為無人機(jī)的控制軟件。PX4 是一款開源的專業(yè)級飛控軟件,其結(jié)構(gòu)主要包括兩層:(1)用于狀態(tài)估計和控制的飛行控制棧;(2)處理輸入/輸出通信和硬件集成的中間件[7]。PX4 采用響應(yīng)式設(shè)計,不同功能被分割成可替換、可復(fù)用的部件,系統(tǒng)異步并行運(yùn)行,能夠適應(yīng)不同的負(fù)載情況。由于PX4_SITL 采用PX4 作為控制內(nèi)核,而PX4 可以直接應(yīng)用于實際的無人機(jī)飛行控制,因此基于PX4_SITL 搭建控制仿真模塊,能夠很好地模擬實際無人機(jī)飛行時的控制性能[8]。
無人機(jī)控制仿真主要利用了PX4_SITL 的姿態(tài)控制、位置控制和路徑控制功能。路徑控制器根據(jù)A*路徑規(guī)劃得到的路徑和無人機(jī)實時位置,生成無人機(jī)當(dāng)前的期望位置指令。位置控制器根據(jù)期望位置指令以及實時位置與速度等狀態(tài),生成期望姿態(tài)指令。姿態(tài)控制器根據(jù)期望姿態(tài)指令和實時姿態(tài),生成期望電機(jī)轉(zhuǎn)速指令,從而控制槳葉旋轉(zhuǎn),達(dá)到無人機(jī)按期望路徑巡檢的目的。在數(shù)據(jù)交互方面,PX4_SITL 通過mavlink 接收ROS 發(fā)送的無人機(jī)路徑規(guī)劃結(jié)果;通過simulator_mavlink 接收無人機(jī)Gazebo 發(fā)送的位置、速度、加速度、姿態(tài)等狀態(tài)信息;同時PX4_SITL 通過simulator_mavlink 將生成的電機(jī)指令發(fā)送至Gazebo 中的無人機(jī)運(yùn)動仿真模型。
Gazebo 是一款廣泛應(yīng)用的三維動態(tài)仿真器,其提供了高逼真度的物理模擬引擎,集成了多種不同的機(jī)器人仿真模型和典型的傳感器仿真模型[9]。同時,Gazebo 也是開源仿真平臺,開發(fā)人員可以根據(jù)仿真需求構(gòu)建自己的機(jī)器人動力學(xué)、傳感器等模型,因此利用Gazebo 能夠方便快速地完成無人機(jī)仿真系統(tǒng)的定制搭建[10]。
在構(gòu)建的仿真系統(tǒng)中,基于Gazebo 的物理仿真模塊主要包括無人機(jī)飛行場景即變電站的三維模型和無人機(jī)以及其傳感器的仿真模型。其中,變電站模型為靜態(tài)模型,主要用于巡檢環(huán)境顯示、無人機(jī)碰撞檢測、傳感器測量對象;無人機(jī)及其傳感器模型均為動態(tài)模型,通過底層的數(shù)學(xué)模型驅(qū)動實現(xiàn)對真實無人機(jī)運(yùn)動和傳感器測量的模擬。圖3(a)為變電站三維模型示例,該變電站模型包含變壓器、導(dǎo)線、絕緣子、互感器和避雷針等典型設(shè)備。三維變電站模型可以利用SoildWorks 軟件繪制而成,然后導(dǎo)出對Gazebo 支持的URDF 模型文件,從而可實現(xiàn)模型在Gazebo 中的打開和操作。圖3(b)為選用的是3DR-IRIS 無人機(jī)模型,其尺寸為0.47 m×0.47 m×0.11 m。在無人機(jī)模型集成的IMU、GPS 傳感器基礎(chǔ)上,為其配置16 線激光雷達(dá)以實現(xiàn)環(huán)境地圖構(gòu)建。
圖3 Gazebo 中變電站和無人機(jī)模型Fig.3 Subsation model and UAV model in Gazebo
在巡檢仿真系統(tǒng)中,無人機(jī)的PID 控制器參數(shù)設(shè)置如表1 所示。
表1 無人機(jī)PID 控制器參數(shù)設(shè)定值Tab.1 Parameter settings of UAV PID controllers
Gazebo 仿真模塊通過模型插件的方式實現(xiàn)仿真數(shù)據(jù)的發(fā)送。在無人機(jī)模型文件中定義對應(yīng)參數(shù)的插件后,可以通過Gazebo_ROS_API 將無人機(jī)的位置和激光雷達(dá)數(shù)據(jù)發(fā)送給ROS 模塊的“/gazebo”節(jié)點(diǎn),可以通過mavlink_API 插件將IMU、加速度計等傳感器數(shù)據(jù)發(fā)送給PX4_SITL 模塊。
本節(jié)基于已構(gòu)建的變電站無人機(jī)自主巡檢仿真系統(tǒng),開展自主巡檢飛行仿真試驗,以驗證仿真系統(tǒng)的有效性,仿真試驗在Ubuntu 18.04 系統(tǒng)下進(jìn)行。
基于圖3 所示的變電站三維模型和無人機(jī)模型實例,通過激光雷達(dá)掃描獲得點(diǎn)云數(shù)據(jù),并構(gòu)建變電站的三維柵格地圖,結(jié)果如圖4 所示。由圖4 可知,無人機(jī)及傳感器仿真模型能夠通過激光雷達(dá)測量完成對三維變電站模型的有效掃描,通過對比柵格地圖和三維虛擬模型可知,構(gòu)建的柵格地圖能夠反映變電站的設(shè)備位置,進(jìn)而可以為無人機(jī)導(dǎo)航提供準(zhǔn)確的環(huán)境信息。
圖4 無人機(jī)導(dǎo)航的變電站柵格地圖Fig.4 Grid map of substation for UAV navigation
在完成環(huán)境柵格地圖構(gòu)建的基礎(chǔ)上,設(shè)置待檢測點(diǎn)的位置,然后由路徑規(guī)劃節(jié)點(diǎn)生成檢測點(diǎn)間的飛行路徑,將路徑發(fā)送給無人機(jī)控制模塊進(jìn)行路徑跟蹤飛行仿真。無人機(jī)巡檢飛行路徑的俯視圖如圖5 所示,圖中圓點(diǎn)為設(shè)定的檢測點(diǎn),實線為無人機(jī)的實際飛行路徑。無人機(jī)從位置點(diǎn)a起飛,依次經(jīng)過檢測點(diǎn)1 至點(diǎn)13,最后回到檢測點(diǎn)1。由圖5 可知,仿真系統(tǒng)能夠為無人機(jī)規(guī)劃生成滿足任務(wù)需要的巡檢路徑,且因?qū)υO(shè)備占據(jù)空間進(jìn)行了膨脹處理,所以規(guī)劃出的路徑能夠遠(yuǎn)離變電站設(shè)備,保障巡檢安全。
圖5 無人機(jī)巡檢路徑俯視圖Fig.5 Top view of UAV inspection path
圖6 為Gazebo 環(huán)境下的無人機(jī)巡檢仿真效果圖,利用Gazebo 仿真引擎可以直觀地觀測無人機(jī)的運(yùn)動過程是否滿足約束條件,也可以檢測無人機(jī)的巡檢飛行過程是否滿足任務(wù)需求。構(gòu)建的變電站無人機(jī)自主巡檢仿真系統(tǒng),可以集成自研的無人機(jī)建圖導(dǎo)航、路徑規(guī)劃、視覺識別、故障檢測等功能模塊,通過開展完整的無人機(jī)巡檢仿真飛行對各個模塊功能進(jìn)行仿真測試,能夠為變電站無人機(jī)自主巡檢相關(guān)技術(shù)的驗證提供一種直觀的仿真驗證手段。
圖6 基于Gazebo 的巡檢無人機(jī)飛行仿真Fig.6 Flight simulation of inspection UAV based on Gazebo
本文設(shè)計和搭建了一套基于ROS、PX4 和Gazebo 的變電站無人機(jī)自主巡檢仿真系統(tǒng)。其中,ROS 主要實現(xiàn)環(huán)境建圖、無人機(jī)狀態(tài)估計和路徑規(guī)劃等功能,為無人機(jī)自主導(dǎo)航提供支撐;PX4 用于模擬真實無人機(jī)的飛行控制模塊;Gazebo 用于對無人機(jī)運(yùn)動模型的仿真和整個場景的可視化仿真。在完成仿真系統(tǒng)搭建的基礎(chǔ)上,開展了變電站無人機(jī)自主巡檢仿真試驗。試驗結(jié)果表明,搭建的仿真系統(tǒng)能夠模擬無人機(jī)對變電站的巡檢過程,可以用作無人機(jī)巡檢任務(wù)制定、路徑規(guī)劃、自主導(dǎo)航等技術(shù)研究的仿真測試平臺,能夠為變電站環(huán)境下實現(xiàn)無人機(jī)自主巡檢提供技術(shù)支持。