盛嶸捷,章 凡,劉建雄
(1.陸軍航空兵學院,北京 101123;2.93427部隊,北京 100024)
隨著時代的發展,人們更加重視水面環境的清理與保護。水面清障機器人用于對水面垃圾的自動機械化打撈,取代過去大量消耗人力資源,效率低下的手動打撈。
由于絕大多數清障船僅對于寬廣的水域進行清理,而面對相對較小的水域尤其是在特殊環境的水域,如布有魚雷的危險領域、可見度低的彎曲河道、小型洞穴內水面等的作用受到了限制,投入使用的狀況并不普遍。此設計制作一款水面清障機器人,將船體與無人機結合,利用無人機中繼通信技術實現水面垃圾清理一體化,更加適用復雜水域。
設計制作方面綜合運用無人機中繼通信技術,將船體與無人機兩者相結合,實現無人機“發現”障礙物,引導機器船將其“收取”。
船體方面通過水中船體的實際工作經驗,將船體的動力裝置由水下的螺旋推動改為水上的風力發動,從而更加適用于環境惡劣的水域。船體采用可靠性強的PE材料為主體,船體下方安裝障礙物收納箱。
軟件方面通過Arduino及超聲波模塊,以無人機為主體建立空中基站,輔以OpenMV視覺技術,實時向船體發送障礙位置信息。
OpenMV3是一個開源,低成本,功能強大的機器視覺模塊。OpenMV3的視覺算法包括尋找色塊、人臉檢測、眼球跟蹤、邊緣檢測、標志跟蹤等??梢杂脕韺崿F非法入侵檢測、產品的殘次品篩選、跟蹤固定的標記物等,性能參數如表1所示。

表1 OpenMV3性能參數
Arduino是一款邊界靈活、方便上手的開源平臺,包含硬件和軟件。Arduino簡單的開發方式使得其容易實現,更加輕便,縮短了開發的周期。本設計中選用了性能穩定的Arduino MEGA 2560,其性能參數如表2所示。
動力裝置分為主動力裝置和輔助動力裝置。主動力裝置采用無刷電機、11寸螺旋槳;輔助動力裝置采用直流電機、11cm螺旋槳。無刷電機搭配矢量轉向和標準的金屬舵機,使船身靈活易于操控。

表2 Arduino MEGA 2560性能參數
機器船的控制分為手動控制和自動控制,手動控制以主動力裝置的無刷電機為主,搭配2.4G接收器天線,利用航模遙控器進行控制;自動控制分為船上OpenMV的色塊識別和基于超聲波的無人機中繼通信自動跟隨,利用船上的OpenMV及舵機驅動板組件和Arduino及超聲波收發模塊進行自動控制,如圖1為控制系統流程圖。

圖1 控制系統流程圖
當無人機發現水面上的障礙物時,系統為實現機器船自動跟隨無人機,機器船首先向無人機發送無線電信號同時機器船開始計時,無人機接收到無線電信號后向機器船發送超聲波信號,由于無人機距離機器船上的2個超聲波接收器距離不同,則超聲波信號到達2個接收器的時間不同,Arduino通過2個接收器接收超聲波時間的比較和運算,計算出各個超聲波接收器到無人機的距離。然后基于超聲波定位的相應算法,可以計算出無人機在機器船所建立坐標系中的具體坐標,從而判斷無人機相對機器船的具體方位,通過PWM控制電機轉速實現機器船按照設定距離跟隨目標,如圖2為系統原理流程圖。

圖2 系統原理流程圖
船體自動識別的設計主要是運用OpenMV3對需要打撈物體或引導船體的無人機的具體特征進行識別追蹤,最終將其鎖定至攝像頭的中心位置。其設計思路如下:
(1)選中目標色塊,將色彩格式調換為LABColor,記錄L,A,B三者的最大值(MAX)與最小值(MIN)。
(2)將閾值傳入f ind_blobs函數中。
(3)根據需求設定像素點與矩形面積等閾值約束。即繪制矩形框鎖定目標色塊,繪制十字形標記鎖定目標色塊中心實現對目標物體的鎖定。
本設計通過大量實驗并改進,使水面清障機器人的控制部件在船體的甲板平臺水面上工作時的具有穩定性,使水面清障機器船有效應對復雜惡劣的水域,工作效率大大提升。在手動控制穩定的基礎上創新了自動控制,通過無人機上單發超聲波模塊發出的信號與船體上左右兩側的單收超聲波模塊互聯,實現機器船對無人機的跟隨,使無人機作為機器船的空中的中級通信平臺,完美的將無人機與機器船聯合起來,實現水面垃圾清理一體化。