胡勇兵,黃 達,李金剛
(中國水產科學研究院漁業機械儀器研究所,上海 200092)
中國是世界第一水產養殖大國,陸基工廠化養殖作為工業化程度最高的一種先進養殖模式,雖在國內起步較晚,但無論是技術還是在產業應用上均取得了長足進步[1]。工廠化養殖魚池規格大小一般有邊長3.75 m 的方切角池或直徑6 m的圓形池,采用易清洗的玻璃鋼材料。魚池清洗工作主要在三個時間節點:養魚前、分池倒池階段和養魚結束。現階段傳統的清洗方式是養殖員工手持板刷清刷或者高壓水槍沖洗,勞動強度大,效率低。因此,開發一種滿足于水產養殖過程中進行自動清洗池底的智能化裝備[2-4],對于提高工廠化養殖效率,提升系統自動化和智能化水平具有現實意義。
目前,國內外針對魚池的清洗設備還沒有相關研究,但是地面清刷裝備取得不錯的研究進展,已有相關產品投入實際使用。歐美日韓等發達國家的電器制造商抓住了傳統機械和控制感應單元結合的潮流,推出了一系列智能清潔機器人[5-6]。美國的iRobot 公司推出了Roomba 系列機器人,配備多種傳感器探測環境,瑞典伊萊克斯公司的三葉蟲是最早使用超聲波導航技術的智能吸塵器,這兩款都采用隨機碰撞的方式來進行路徑規劃[7]。英國Dyson公司研發了DC06 清潔機器人[8],以內螺旋方式清掃,能夠自主避開障礙物。浙江大學等高校[9-10]最早研制智能清潔機器人,通過超聲波傳感器對環境進行學習,采用隨機清掃和局部覆蓋的清掃方式。國內市場主要品牌有KV8 和科沃斯系列[11],主要以紅外線障礙感應系統為基礎的隨機碰撞尋路系統,清掃模式有區域螺旋清掃模式和直線S型行走模式。
筆者根據以上背景和國內外水下清洗裝備發展現狀的分析,結合工廠化養殖模式設計了基于STM32 的魚池清刷機器人,該機器人通過STM32控制器、傳感器、電機和電源等模塊來實現自主清掃任務。目前樣機進行了魚池工況作業,能夠實現速度調節和避障轉彎,在路徑規劃方面采用內螺旋路徑算法完成了全覆蓋清掃實驗。
魚池清刷機器人總體設計分為機械結構設計、控制系統硬件設計和軟件設計。結構設計包括機器人本體、行走機構、清掃機構、密封艙等結構。控制系統硬件設計采用模塊化思想,以STM32 單片機為主控模塊,電源模塊為整個系統提供能源,電機驅動模塊執行動作,傳感器模塊采集數據信息,通信模塊實現信息交互。控制系統軟件設計主要是驅動程序設計、路徑規劃算法及上位機軟件的操作。魚池清刷機器人控制部分設計流程如圖1所示。

圖1 機器人控制部分設計流程圖Fig.1 design flow chart of robot control part
根據室內工廠化養殖車間的技術規程,結合養殖魚池的工作環境,確定設計應滿足的主要技術指標如表1所示。

表1 主要技術指標Tab.1 Main technical indicators
魚池清刷機器人主要包括機器人車體、履帶行走機構、清洗刷以及電子艙等。考慮到水下工作環境以及配合其它零件的安裝專門設計了鋁合金制車體,履帶和清洗刷都由直流電機控制,電子艙安裝在車體上方,用來放置電源、控制器等電子元器件。魚池清刷機器人車體平穩安裝,各零件水密封等級達到設計要求。
控制器模塊是整個系統的決策中心,接收各類傳感器采集的數據信息,經過計算處理后向各模塊發送信息指令,從而控制機器人完成清掃任務。考慮到路徑規劃算法的復雜性及運算速度問題,本系統采用STM32F103 微控制器,與相關外圍電路組成主控模塊。該控制器是基于ARM架構的32位Cortex-M3內核,主頻為72 MHz,外設接口豐富,穩定性高,可以精確與其他模塊進行通信,配合PWM 技術、路徑規劃算法保證機器人在運動過程中的智能可控性和良好的清掃效果。
電源模塊為整個系統提供能源,保障電機、傳感器、控制器等模塊正常工作。本次設計選用額定電壓為12 V,容量為12 000 mAh 的鋰電池組,由于清掃機構的電機耗能較大,直接由電源供電,驅動電路和傳感器采用5 V 直流供電,主控制器采用3.3 V 供電。在直流電機上加入LM2577 自動升降壓模塊及LM2596 穩壓模塊,保證所有模塊供電正常。
超聲波測距原理[12]是傳感器發射超聲波時開始計時,碰到障礙物立即返回,接收器收到信號停止計時,測距流程如圖2所示。超聲波在空氣中的傳播速度為V,計時器收發信號時間差為T,通過公式S=V*T 計算出發射點到障礙物的距離。機器人在清掃過程中避障轉彎、路徑選擇都需要傳感器采集的數據來判斷調整。本次設計采用HC-SR04超聲波模塊,包括超聲波發射器、接收器與控制電路,可提供2 cm~400 cm 的非接觸式距離感測功能,測距精度可達到3 mm,符合設計要求。

圖2 超聲波測距流程圖Fig.2 Ultrasonic ranging flow chart
魚池清刷機器人軟件系統設計分為控制程序設計和上位機軟件兩部分。
本方案中機器人控制程序包括驅動避障程序和路徑規劃算法程序。電機驅動程序控制機器人的動作,傳感器采集數據協助機器人避障轉彎,算法程序負責機器人路徑優化。清掃任務的主程序流程圖如圖3所示。

圖3 內螺旋清掃流程圖Fig.3 Internal spiral cleaning flow chart
3.1.1 驅動避障程序
機器人上電后,STM32 控制器初始化各模塊,控制電機按照超聲波識別的數據經過計算處理后,開始巡線運動,當傳感器發出提醒信號時,機器人執行避障轉彎,恢復巡線運動。在此運動過程中,魚池機器人需要具備轉向和調速的功能,同時能夠提前感知池壁的位置,實現避障轉彎。直流電機的轉速與PWM 的周期和占空比有關,因此,本文使用STM32 控制器的定時器產生脈沖信號調節電機速度,利用左右輪速度差實現轉向,PWM 信號配置如圖4 所示。同時機器人采用超聲波測距避障,傳感器采集環境信息,通過收發信號確定時間差來測距,實現避障功能。

圖4 PWM 信號配置Fig.4 PWM signal configurationt
3.1.2 路徑規劃算法
路徑規劃是基于感知的工作環境信息,按照一定的優化指標,從起始點到目標點的無碰撞路徑規劃[13]。本方案中的環境信息已知,去實現機器人行走路徑的最大覆蓋率和最小重復率。在理想狀態下,已知的環境信息只有池壁需要避障轉彎,因此,機器人可以采用內螺旋“回”字型路徑執行清刷任務。清刷機器人從魚池邊界處開始工作,采用沿邊學習的路徑算法,沿池壁運動一圈后向內圈行走,循環向內圈行進并標記所走過的路徑,直至全部清掃完畢自動返回起始點。
上位機軟件是用MATLAB 的GUI 界面編寫,主要用來控制機器人的動作和清掃作業的控制,與STM32 主控芯片實現數據共享,數據的傳輸由串口通信來實現,能夠實時顯示機器人運動狀態和進行路徑規劃的仿真測試。上位機的用戶操作界面具有良好的人機交互性,操作簡單便捷,極大提高效率,降低硬件測試平臺開發的難度[14]。
為了驗證系統的功能和可靠性,在中國水產科學研究院漁業機械儀器研究所如東試驗基地的養殖車間里進行樣機試驗,選擇長為3.75 m ×寬3.75 m的平底方形養殖魚池,池底清洗面積約為12.9m2。試驗樣機車體尺寸為長0.4 m× 寬 0.3 m × 高0.15 m,如圖5所示進行池底清刷試驗。樣機測試在自動運行模式下,通過設置不同的起點,進行6組清刷試驗,主要測試樣機是否達到技術指標要求及其控制性能。

圖5 樣機實驗Fig.5 Prototype experiment
本次試驗主要是觀察機器人在池底的清刷效率,通過以下兩個因素進行評價:覆蓋率和重復率。在樣機實際清掃過程中,由于速度調節、轉彎精度、清掃模式以及機械系統等存在誤差,會出現一些遺漏和重復的問題。在養殖車間的魚池環境中,通過6 組池底清刷試驗的數據,如表2所示,測得機器人主要運動技術指標如下:行走速度均值為11.15 m/min,工作時間約為15 min,清掃速度能達到1 m2/min。清刷機器人在魚池環境中覆蓋率能達到85%以上,重復率最高為8.89%,機器人的行走速度會影響清刷效率,但基本能夠達到所要求的清掃效果。魚池清刷機器人在清掃任務完成后可以自動返回初始位置,驗證了內螺旋式路徑規劃方法是可行的。

表2 清刷試驗設計及結果Tab.2 brush test design and the result
本設計中的魚池清刷機器人選用STM32 單片機為主控制器,結合PWM信號調制和超聲波傳感器實現機器人驅動和避障,選用內螺旋路徑規劃算法實現最大覆蓋率和最小重復率,達到最佳清刷效果,替代了人工操作,實現了自動化清掃。經實驗證明,系統運行正常且滿足預期效果,在水產養殖中能夠實現高效智能的清掃任務,為工廠化養殖中的智能化清洗裝備提供有效參考,具有應用前景。現階段設計的魚池清刷機器人在已知環境信息中工作,未來打算向未知動態環境去展開研究。