孫亞萍,俞凱中,馬寶麗
(杭州師范大學(xué)錢江學(xué)院,浙江 杭州 310036)
水下管道在長時間的使用中容易受到外力、環(huán)境等因素的影響,在某些位置,管道表面可能會產(chǎn)生粘附物,從而造成管道損傷甚至管道泄漏等情況,因此需要維修人員定期對管道表面進(jìn)行檢查、清理甚至是水下維修[1]。近年來,水下機(jī)器人在海底勘探、水下搜救以及水面應(yīng)急處理等方面發(fā)揮著越來越重要的作用,尤其是在水下管道檢測方面,可以幫助人類完成一系列復(fù)雜的工作,提高工作效率,解決安全問題。
本文設(shè)計了一款基于STM32 單片機(jī)和K210 機(jī)器視覺的水下管道智能巡檢機(jī)器人。該系統(tǒng)具有水下自主運(yùn)動、準(zhǔn)確循跡、吸附物識別檢測以及燈光播報等功能,具有良好的工作效率和廣闊的產(chǎn)業(yè)發(fā)展前景。
水下管道智能巡檢機(jī)器人可以在水下運(yùn)行并且沿著管道智能巡檢,主要由機(jī)械潛水器和控制檢測電路兩部分組成。其整體結(jié)構(gòu)如圖1 所示。
圖1 水下機(jī)器人實(shí)物圖
對于水下管道智能巡檢機(jī)器人,首先需要考慮的是防水能力。本系統(tǒng)采用密封艙形式的機(jī)器人形狀,將系統(tǒng)硬件全部放在密封艙里,而電機(jī)和電調(diào)做好防水工作后連接在密封艙外。
系統(tǒng)控制電路主要包括單片機(jī)核心控制模塊、水下管道識別模塊、管道吸附物識別播報模塊以及無刷電機(jī)驅(qū)動模塊四大部分。
本系統(tǒng)采用Openmv 機(jī)器視覺識別水下管道位置,采用STM32F407 單片機(jī)作為核心控制器,控制、處理機(jī)器人的水下運(yùn)動、視覺識別,采用K210 機(jī)器視覺識別管道吸附物形狀信息,并通過LED 燈光閃爍播報出來[2]。系統(tǒng)整體結(jié)構(gòu)如圖2 所示。
圖2 控制檢測電路結(jié)構(gòu)框圖
由于紅外傳感器在水下復(fù)雜環(huán)境中的識別準(zhǔn)確率低,本文選擇用Openmv 攝像頭對水下管道進(jìn)行識別。Openmv 視覺傳感器是低功耗的Python 可編程機(jī)器視覺硬件,以STM32F427CPU 為核心,集成了OV7725 攝像頭等芯片,內(nèi)置的庫函數(shù)引用可以支持一系列廣泛的圖像處理功能和神經(jīng)網(wǎng)絡(luò)算法。STM32 單片機(jī)對Openmv 內(nèi)置攝像頭拍攝到的水下管道圖像進(jìn)行算法處理后,控制機(jī)器人沿著水下管道前進(jìn)。
若采用一個Openmv 攝像頭同時完成水下管道識別和管道吸附物形狀識別兩個任務(wù),將導(dǎo)致單片機(jī)CPU 和內(nèi)存資源占用過大,從而降低識別速度和識別效率。為了確保機(jī)器人水下管道循跡工作的正常運(yùn)行,本文采用K210 視覺傳感器完成管道吸附物形狀的識別工作,并控制RGB 三色LED 燈作為指示。
考慮到電機(jī)的防水性能,本系統(tǒng)采用三相無刷電機(jī)及其配套的40A 無刷馬達(dá)電子調(diào)速器[3]。其中,三相無刷電機(jī)通過防水特別制作,擁有極佳的防水性,可以在水下復(fù)雜環(huán)境給機(jī)器人提供動力。40A無刷馬達(dá)電子調(diào)速器由12 V 電源電池供電,根據(jù)單片機(jī)輸出的PWM 波形,解調(diào)三相無刷電機(jī),再控制電機(jī)的三個相位,使得電機(jī)可以調(diào)速實(shí)現(xiàn)機(jī)器人的行走與轉(zhuǎn)向,同時電子調(diào)速器具有穩(wěn)壓和濾波的作用。具體電路如圖3 所示。
圖3 無刷電機(jī)及其電調(diào)驅(qū)動電路
本系統(tǒng)采用Openmv 攝像頭實(shí)現(xiàn)水下機(jī)器人的管道巡線。Openmv 攝像頭掃描水下管道圖像,根據(jù)預(yù)先設(shè)置好的閾值進(jìn)行圖像二值化,再根據(jù)線性回歸算法確定管道位置,并通過擬合曲線得到機(jī)器人偏移量,最后通過串口通信將數(shù)據(jù)發(fā)給STM32F407主控芯片,從而控制機(jī)器人姿態(tài),完成水下管道巡線工作。機(jī)器人巡線工作可分為無刷電機(jī)電調(diào)解鎖、Openmv 攝像頭線性回歸算法以及STM32F407 單片機(jī)控制機(jī)器人姿態(tài)三個部分。
(1)無刷電機(jī)電調(diào)解鎖程序。根據(jù)電調(diào)參數(shù),解鎖電機(jī)需要特定的PWM 波形。本文采用STM32的TIM3 和TIM4 兩個定時器產(chǎn)生PWM 波。
(2)Openmv 攝像頭線性回歸算法。線性回歸算法是解決自變量和應(yīng)變量關(guān)系的算法,它的目標(biāo)是捕捉數(shù)據(jù)關(guān)系的線性趨勢[4]。在本程序中,圖像在二值化后,通過線性回歸算法,圖像中的水下管道會變成一條線,這是機(jī)器人需要循跡的路線。同時,將機(jī)器人前進(jìn)的方向作為一條豎直的直線,對這兩條線進(jìn)行擬合,擬合出直線相對于原點(diǎn)的距離,就是機(jī)器人相對于水下管道的偏移量。
(3)控制姿態(tài)程序。STM32F407 單片機(jī)根據(jù)Openmv 攝像頭串口通信傳輸回來的數(shù)據(jù),調(diào)整左右無刷電機(jī)的PWM 波形來改變每個電機(jī)的轉(zhuǎn)速,從而達(dá)到控制機(jī)器人行進(jìn)方向的目的,實(shí)現(xiàn)正確對管道巡線的功能。
相比于Openmv 攝像頭,K210 攝像頭在性能以及庫函數(shù)等方面表現(xiàn)都十分優(yōu)秀。本系統(tǒng)采用K210 攝像頭識別水下管道上的吸附物。K210 攝像頭首先掃描水下管道吸附物圖像,得到圖像的灰度統(tǒng)計值,識別三色坐標(biāo)信息,再利用庫函數(shù)對圖像進(jìn)行處理。其中,statiatics 函數(shù)讀取圖像色塊像素,blobs 函數(shù)識別分辨出不同顏色的輪廓外形[5],對應(yīng)到圓形、正方形、三角形三種形狀上,然后根據(jù)吸附物形狀控制LED 燈發(fā)出特定顏色的燈光,并且閃爍報警。機(jī)器人管道吸附物識別報警程序流程如圖4 所示。
圖4 K210 吸附物識別程序流程圖
系統(tǒng)軟硬件聯(lián)合調(diào)試無誤后,開啟水下機(jī)器人,進(jìn)行實(shí)際場地測試。經(jīng)過測試發(fā)現(xiàn),水體環(huán)境光線和水體清晰度對Openmv 攝像頭的影響很大,在不同的光照條件下,識別率有很大改變。在光照條件好的白天和室內(nèi)日光燈照射下,系統(tǒng)工作穩(wěn)定,識別成功率較高,達(dá)到85%以上。
對于K210攝像頭識別管道吸附物的性能測試,通過在管道上不同位置隨機(jī)擺放10 個不同形狀的吸附物,讓K210 進(jìn)行識別。經(jīng)過多次測試發(fā)現(xiàn),吸附物擺放在管道的側(cè)面或者正面,識別率不同。正面的正確率高于側(cè)面,整體識別成功率在75%左右。
本文設(shè)計并實(shí)現(xiàn)了基于STM32F407 單片機(jī)和K210 攝像頭的水下管道智能巡檢機(jī)器人,成功實(shí)現(xiàn)水下自主巡線、軌跡判斷、自動轉(zhuǎn)向、管道吸附物識別以及燈光報警等功能。測試結(jié)果表明,水體環(huán)境光線、水體清晰度以及管道吸附物位置的改變都會對識別結(jié)果的成功率造成比較大的影響。