李 雪1, 楊大勇1, 劉家毅, 張 揚
(1.南昌大學 信息工程學院,江西 南昌 330031; 2.江西理工大學 能源與機械工程學院,江西 南昌 330013)
水下管道運輸是人類從海底獲取寶貴資源的重要手段,然而由于水下環(huán)境的復雜多變,石油氣管道易損壞漏油進而污染環(huán)境,甚至發(fā)生爆炸等嚴重威脅人類生命安全的事故,為了保護人們的生命財產安全及環(huán)境,有必要定期對水下輸油管道進行質量檢測[1-2]。水下輸油管道一般是采用無縫鋼管焊接和使用法蘭等連接裝置連接成長距離管道,并使用閥門進行開閉控制和流量調節(jié)。與檢測陸地上石油氣管道不同,工作人員無法長期待在水下,甚至無法抵達復雜的深水區(qū)域完成水下石油氣管道的質量檢測。因此,利用水下機器人對石油管道進行巡查和檢測是目前最為安全高效的方式。智能水下機器人技術是水下自主航行器研究的熱點領域,設計水下巡查油管機器人的運動控制系統(tǒng),是實現水下自主航行器在惡劣且復雜多變的環(huán)境中進行水下管道檢測作業(yè)的關鍵技術之一[3-5]。
水下機器人種類繁多,據AUVAC(Autonomous Underwater Vehicles Application Center)不完全統(tǒng)計,全世界目前大約有128種不同種類的自主水下機器人平臺。在這些不同種類的自主水下機器人平臺中,由于自主水下機器人的使用任務和工作環(huán)境,以及研發(fā)團隊的設計風格和技術積累等多方面的不同因素,自主水下機器人外形有多種不同形式,大致可以分為回轉體形、立扁形、扁平形和多體形等,其中以魚雷型自主水下機器人的數目居多[6]。
考慮到水下環(huán)境復雜,水下機器人的形體應結構應具有一定的針對性,保證其在水下作業(yè)更加便利。水下機器人形體結構設計過程中,需要考慮以下幾點問題:
① 在形態(tài)結構設計過程中,為了使水下機器人能夠較好地航行作業(yè),應保證水下機器人下水時具有較強的阻力;
② 水下機器人在工作過程中會承受水下壓強,這就需要保證水下機器人具有較高的強度,避免形體或是內部結構遭到壓強破壞;
③ 考慮到機器人的內部結構,保證形體設計能夠為內部空間設計創(chuàng)造有利條件,保證質量分布更加合理,使機器人在水下具有較好的平衡性;
④ 在進行工藝選擇上,要保證硬件設計具有較好的性能,提升水下機器人的靈活度,減少水的阻力,使其能夠更好地在水下執(zhí)行任務[7]。
綜上所述,魚雷型水下機器人的設計能夠更好地滿足水下機器人的實際需要,并且能夠減輕水下機器人對水環(huán)境生物的干擾,減少水壓阻力[8]。在整體設計上,機器人整體尺寸設為:295 mm×85 mm×95 mm。尺寸設計完成后,要對機器人的防水性能進行設計,可采取“整體封閉,局部開放”的設計思路,保證特定位置具有較好的開放性,能夠在執(zhí)行任務過程中,發(fā)揮較好的效果。在設計過程中,像是電路板、攝像頭等處于封閉狀態(tài),模塊的位置,處于開放狀態(tài),保證在對設備進行維修的過程中,更加方便[9]。
設計流程在進行設計過程中,需要對外形進行圖紙設計。對此,可以利用計算機繪圖軟件,對形體設計進行編輯處理,保證相關曲線率滿足流線型設計要求。一般來說,可以通過計算機軟件,對其三維實體造型進行確定。
圖1為水下巡查機器人的本體結構三維設計圖,是用UG軟件設計的;圖2是其爆炸圖;圖3是用KEYSHOT軟件處理后的渲染爆炸圖。
圖3 水下機器魚渲染圖及爆炸圖
水下石油管道巡查機器人主要通過檢測管道表面是否有油泡來判斷其表面是否漏油,從功能劃分的角度看,其控制系統(tǒng)設計任務主要有3個部分:移動控制、人機交互系統(tǒng)、環(huán)境感知。
對機器人的移動控制應該首先確定它的驅動模式,根據機器人的動力來源可以分成兩大類:主動式和被動式。主動式機器人就是具有自主移動能力的機器人,而被動式的機器人不具備自主移動的能力,它通常依靠液體或風的流動力進行移動,無論是主動式還是移動式,都具有各自的優(yōu)缺點,本系統(tǒng)所研究的水下巡查機器人是在水下管道的外面作業(yè),從動力來源判斷應采用主動式機器人[10]。
為了讓人類知道機器人的工作動態(tài),并向機器人下達最新的指令,機器人在水下作業(yè)必須時刻保持與人類的交流,防止意外情況的發(fā)生。由此,研究人機交互系統(tǒng)是具有重要意義的。人機交互系統(tǒng)中最簡單的組成是上位機程序、核心控制器和傳感器,即核心控制器將傳感器獲得的外界信息傳送給上位機程序,上位機程序將該信息重新編碼使之成為人類能直接感受到的信息,如圖片、聲音等,反之,人類可將自己的任務通過上位機程序傳達于核心控制器,核心控制器再將其轉化為驅動相關硬件的數字信號,從而協(xié)助機器人完成任務。在整個過程中,人類與機器人始終保持聯系[11]。
機器人的環(huán)境感知能力就是信息的獲取能力,機器人是通過各類傳感器來獲取外界信息的,如攝像頭就可以獲取圖片信息,壓力傳感器可以獲取外界的壓力信息。機器人具體選用什么傳感器要根據機器人執(zhí)行的任務來決定,水下油管道巡查機器人是要獲取水下油管道附近的水泡,則只需要攝像頭即可。
綜上所述,水下巡查機器人就是將傳感器采集到的信息交給控制器處理,然后生成驅動執(zhí)行機構工作的控制信號,并同時將該信息傳送給水面上的上位機程序,以便工作人員查看。
針對水下機器人的巡檢任務,水下機器人在巡管道航行時可以按照要求調整姿態(tài),以有利于攝像頭拍攝到較為準確的位置圖片。水下機器人運動控制系統(tǒng)是運用適當的控制算法,通過一定方式來實現水下機器人的方向控制,使其穩(wěn)定在與管道距離范圍內的某位置,完成作業(yè)任務。所以選擇合適的控制系統(tǒng),從而使水下機器人巡檢管道并拍攝泄漏圖片具有重要的意義。
基于μC/OS-Ⅲ的水下石油管道巡查機器人控制系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)兩大部分組成,系統(tǒng)總體結構框圖如圖4所示。在硬件系統(tǒng)與軟件系統(tǒng)都安裝與調試穩(wěn)定之后,通過上位機的控制,讓裝備有水下視覺成像系統(tǒng)的巡查機器人對水下管道進行巡檢。
圖4 水下石油管道巡查機器人控制系統(tǒng)總體結構框圖
水下巡查機器人就是將攝像頭采集到的信息交給控制器處理,控制器周期性地讀取攝像頭模塊中的信息,并通過WiFi模塊將信息傳輸給遠程控制端的上位機程序,上位機再生成驅動執(zhí)行機構工作的控制信號,工作人員可以實時看到水下情況,根據水下實際情況,水面上的工作人員也可以通過上位機程序發(fā)布最新命令來控制機器人下一步的行動,該命令也是通過WiFi模塊傳送給主控芯片,主控芯片生成相應的控制信號來驅動舵機進行左右轉向控制。
水下石油管道巡查機器人主要通過檢測管道表面是否有油泡來判斷其表面是否漏油,因此將系統(tǒng)分為運動控制系統(tǒng)、圖像采集系統(tǒng)、人機交互系統(tǒng)3部分,3個系統(tǒng)之間互相連接,共同控制水下機器人整體的運行。
水下石油管道巡查機器人的運動控制系統(tǒng)采用STM32單片機與舵機結合模式,圖像采集處理系統(tǒng)采用STM32單片機與攝像頭結合方式,而人機交互系統(tǒng)則采用STM32單片機、WiFi模塊與上位機程序共同協(xié)作的模式。控制系統(tǒng)硬件邏輯結構圖如圖5所示。
圖5 控制系統(tǒng)硬件邏輯結構圖
主控芯片采用STM32F103ZET6,其內核為ARM公司設計的基于ARMv7架構的32位Cortex-M3微控制器內核,具有的定時器足以產生驅動舵機的PWM信號[12]。
攝像頭作為圖像采集模塊,在此任務中主要是拍攝焊接處的油泡,攝像頭的性能直接決定了任務的成功與否。實驗中,綜合攝像頭的性價比和成像效果后,采用了OV7725攝像頭模塊。
通信模塊是機器人本體與上位機程序進行信息交流的媒介,選用通信模塊的主要依據就是通信快、距離遠、信息傳遞準確。目前比較流行的通信方式有WiFi、藍牙、無線網、ZigBee和NFC等,它們都有各自的優(yōu)缺點??紤]到水下機器人傳輸距離遠,數據傳輸速度快的要求,可以選擇WiFi方式。ESP8266模塊體積小,便于安裝,能嵌入到大多數的產品中去,支持AP、STA、AP+STA三種模式,也支持AT指令,有利于編程,因此,采用此模塊。
仿生魚式的機械結構,其尾舵是執(zhí)行機構,舵機的轉矩通過傳動機構傳達至尾舵,尾舵劃水為整個裝置提供動力和轉向功能。采用單舵機能準確控制轉角,它的轉速是隨著PWM信號占空比的改變而改變(角度與脈沖比的關系如圖6所示),且STM32控制器自帶生成PWM信號的定時器,所以舵機能準確完成任務,且驅動程序簡單。
圖6 角度與脈沖比的關系圖
按照與硬件設計的相關程度,軟件系統(tǒng)可分為3個層次:運用層、系統(tǒng)層和硬件驅動層。運用層是3個層次中最高的一層,它與底層硬件關聯性最小,開發(fā)運用軟件幾乎是無法關注到硬件的狀態(tài),也不需要知道底層狀態(tài)。相反,硬件驅動就是時時刻刻與底層硬件打交道,底層程序就是為運用層層序提供函數接口的。系統(tǒng)軟件是介于運用軟件與底層軟件之間的,它的作用是管理計算機或單片機資源,是底層程序與運用層程序通信的橋梁。按照這3個層次,水下機器人軟件總體結構框圖如圖7所示。
圖7 控制系統(tǒng)軟件總體結構框圖
該控制系統(tǒng)主要是完成底層驅動程序的設計,包括:攝像頭驅動、舵機驅動和WiFi模塊的驅動,以及運用層軟件的編寫。系統(tǒng)軟件采用現成的實時操作系統(tǒng)μC/OS-Ⅲ[13-14]。
首先初始化系統(tǒng),包括系統(tǒng)時鐘、串口初始化、定時器中斷初始化。然后配置各個模塊,開啟串口攝像頭周期性的拍照,通過WiFi模塊將照片上傳至上位機程序,上位機程序處理圖像后,判斷出是否有油泡產生,若有則表明此處油管道漏油,并且通過這些圖片要判斷出機器人是否將沿著油管道直行,若不是直行,則上位機程序要發(fā)送最新指令改變舵機的擺動方向及速度,以此來控制機器人沿著油管道前進。圖8為水下油管道巡查機器人控制系統(tǒng)軟件流程圖。
圖8 控制系統(tǒng)的軟件流程圖
水下機器人控制算法采用數字PID控制器。數字PID 控制器具有結構簡單、參數整定方便、能滿足大多數控制性能要求等優(yōu)點。水下機器人控制的核心是動力和轉向功能控制,因此,控制效果直接決定了機器人能否準確拍照。另外水下機器人需要對上位機控制指令作出響應[15]。
水下機器人采用KEIL5軟件對STM32控制器進行編程,通過串口將程序下載到控制器。Keil μVision5由美國Keil SoftWare公司推出,支持Cotex-M內核集成開發(fā),它提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個強大的仿真功能在內的全套開發(fā)方案。
驅動各個模塊后,接下來就是讓它們協(xié)調工作,完成最后的任務,因此在μC/OS-Ⅲ系統(tǒng)上分配多個任務和對應的優(yōu)先級,使其有條理地工作。在本項目中有3個模塊,分別是:串口攝像頭、ESP8266通信模塊和舵機,所以分配了3個相互對應的任務:AppTaskCamera、AppTaskWifi、AppTaskSteer。然后使用μC/OS-Ⅲ系統(tǒng)的信號量機制實現這些任務之間的通信。本項目需要創(chuàng)建4個信號量:“SemOfCamera”、“SemOfWifi”、“SemOfKey1”和“SemOfKey2”,其中“SemOfCamera”用來標志串口相機采集數據完成,而當AppTaskWifi任務收到該信號量后才會向上位機發(fā)送圖像數據,待上位機處理完該圖像后,上位機發(fā)送相應的控制指令,這里“SemOfKey1”和“SemOfKey2”分別模擬了兩種不同的指令:左轉和右轉,同時AppTaskSteer(舵機任務)中分別等待“SemOfKey1”和“SemOfKey2”,當收到“SemOfKey1”時,讓舵機在左半區(qū)域來回擺動模擬右轉,當收到“SemOfKey2”時,讓舵機在右半區(qū)域來回擺動模擬左轉。具體的控制流程如圖9所示。
圖9 控制系統(tǒng)總體的軟件流程圖
通過產生準確的PWM(脈沖調制)信號可以精準地控制舵機的轉角,所以舵機的調試本質上是調試PWM信號。
串口攝像頭所獲取到圖片是十六進制數,圖片的格式為0XFF0XD8+圖片+0XFF0XD9,所以調試串口相機主要看程序能否得到完整的圖片信息。計算機識別圖片從本質上說就是識別圖片的二進制代碼,剛好直接將這些數據傳輸至上位機。
ESP8266模塊作為系統(tǒng)的通信模塊,由于該模塊流程比較多,所以采用KEIL5軟件自帶的調試的功能,單步調試。先是創(chuàng)建熱點,設置該熱點的IP地址;然后開啟服務器模式,設置端口為8080,并通過“Printf()”將調試信息打印出來。通過調試信息可知,該ESP8266模塊是作為AP,并且設置了熱點的用戶名為:“Robot_thirdd”,登錄密碼為:66666liu,成功連接該熱點。上位機便可以和該模塊通信。
上面分別對串口相機、舵機、ESP8266模塊進行了調試,在這些模塊正常工作的情況下,還應該再進行系統(tǒng)的整體調試,讓這些模塊協(xié)調工作以完成本項目的原始目標。最終,系統(tǒng)設計的水下石油管道巡查機器人實現了通過上位機控制舵機。上位機顯示原圖和處理后的圖片,并且下發(fā)控制指令,以調節(jié)舵機的轉動方向。上位機界面如圖10所示。
圖10 上位機界面顯示圖
本文設計了一種基于μC/OS-Ⅲ的水下石油管道巡查機器人運動控制系統(tǒng),采用STM32作為圖片信息的處理中心并控制水下機器人的運動達到拍攝水下石油管道泄漏點圖片的目的。水下機器人內置的ESP8266可以將水下機器人拍攝的圖片反饋給上位機進行顯示并進一步處理,同時上位機可以發(fā)送指令改變舵機的參數以此來控制機器人沿著管道前進。
由于場地的限制,本系統(tǒng)采用在淺層水域進行模擬的方法進行測試。采用直徑為35 mm、長度為40 cm的PVC水管模擬石油管道。在PVC管道上面鉆出一個直徑為3 mm的空洞,模擬石油管道漏油孔。圖像識別測試時,將水下管道巡查機器人檢測試驗時采集到的視頻取幀,如圖11和圖12所示,分別顯示了石油泄露之前處理前后的圖像。
圖11 泄露之前原圖像
圖12 泄露之前處理圖像
由于沒有石油的泄露,在石油泄露初期處理后的圖像沒有看到油泡的輪廓。如圖13、圖14所示,顯示了石油剛開始泄露的圖像。圖13中,有兩顆油泡位于泄露孔上方,而在處理過的圖像中,正確顯示了兩顆球狀的氣泡輪廓。
圖13 泄露初期原圖像
圖14 泄露初期處理圖像
為了驗證非球狀的氣泡輪廓是否能夠檢測出來,再次模擬了石油在水中的其他形狀。圖15顯示了石油大量泄露時的情形,圖16表明準確檢測出的大概輪廓。綜上所述,該系統(tǒng)的圖像預處理效果良好。
圖15 大量泄露原圖像
圖16 大量泄露處理圖像
綜上所述,該系統(tǒng)可以達到良好的運動性能,滿足水下拍照、圖像回傳的要求,可以實現無線控制,能從水下圖像中獲取有效的圖像,分析圖像可以得到水下的泄露信息。系統(tǒng)運行可靠、通信穩(wěn)定、性價比高。調試結果表明,該系統(tǒng)控制性能良好,安全可靠,能夠滿足水下機器人的基本航行功能,為水下石油管道的巡查提供了一種有效的辦法。