胡勇兵,倪 琦,黃 達,李金剛
(1 上海海洋大學工程學院,上海 201306;2中國水產(chǎn)科學研究院漁業(yè)機械儀器研究所,上海 200092)
工廠化循環(huán)水養(yǎng)殖作為工業(yè)化程度最高的一種先進水產(chǎn)養(yǎng)殖模式,雖在國內(nèi)起步較晚,但無論是技術(shù)還是在產(chǎn)業(yè)應(yīng)用上均取得了長足進步[1-3]。工廠化循環(huán)水養(yǎng)殖的魚池規(guī)格一般有邊長為3.75 m的方切角池和直徑6.4 m的圓形池等,其材質(zhì)一般為玻璃鋼和混凝土。傳統(tǒng)清洗方式需要人工手持板刷或者拖著水槍機四周環(huán)繞清刷,工作煩瑣重復且池底易滑。為了節(jié)約人力成本和安全考慮,需要研發(fā)養(yǎng)殖過程中進行自動清洗池底的智能化機器人[4-7]。由于工廠化循環(huán)水養(yǎng)殖車間不同于室外環(huán)境,無法采用全球定位系統(tǒng)(GPS)定位策略,機器人移動導航和路徑規(guī)劃清掃難度也相應(yīng)增加,因此實現(xiàn)機器人的精準定位是魚池機器人具有自主運動的關(guān)鍵環(huán)節(jié)。其中,SLAM(Simultaneous Localization and Mapping)同步定位和地圖構(gòu)建技術(shù)[8-10]是指機器人配置傳感器提取環(huán)境信息,在移動過程中完成環(huán)境地圖的構(gòu)建并不斷修正自身位姿實現(xiàn)定位的過程,是實現(xiàn)機器人定位導航的關(guān)鍵技術(shù),這對機器人的運動控制和路徑規(guī)劃任務(wù)完成具有重要意義。
目前室內(nèi)移動機器人定位[11-12]研究一直是熱點話題,壽佳鑫等[13]利用激光雷達實現(xiàn)了室內(nèi)移動機器人的定位和導航;侯家林等[14]研制了基于雙激光雷達的溫室機器人導航系統(tǒng);水下環(huán)境復雜,不像陸地上方便控制和觀測,Wu等[15]闡述了水下機器人定位導航的方法以及李渝[16]提出了利用聲吶來提取環(huán)境特征的SLAM算法研究;其中SLAM是實現(xiàn)機器人定位導航的關(guān)鍵技術(shù),從傳感器輸入信號角度出發(fā),SLAM技術(shù)分為基于距離傳感器和基于視覺傳感器兩大類[17];早期Grisetti等[18]提出了改進的Rao-Blackwellized粒子過濾器的Gmapping算法利用RB粒子濾波對匹配進行優(yōu)化;再到Kohlbrecher等[19]提出的Hector SLAM利用高斯牛頓法進行掃描匹配;近年Hess等[20]發(fā)表的Catographer在局部范圍內(nèi)掃描匹配實現(xiàn)了回環(huán)檢測及全局優(yōu)化;蒙特卡羅定位(Monte Carlo Localization,MCL)算法最早由 Dellaert等[21]提出,主要是利用粒子濾波結(jié)合移動機器人傳感器和里程計進行定位,SLAM技術(shù)為機器人建圖和定位研究提供了理論基礎(chǔ)。
但是,針對養(yǎng)殖車間魚池機器人的定位技術(shù)的研究還比較少。根據(jù)以上背景和國內(nèi)外對于機器人定位技術(shù)的研究發(fā)展分析,結(jié)合工廠化循環(huán)水養(yǎng)殖車間的魚池環(huán)境,設(shè)計了一款能夠?qū)崿F(xiàn)地圖構(gòu)建和定位的魚池清刷機器人。
魚池清刷機器人用于養(yǎng)殖車間的魚池池底污染物清理,主要由機器人車體、驅(qū)動機構(gòu)、清掃機構(gòu)和激光雷達傳感器等組成(圖1)。魚池清刷機器人搭載傳感器提取魚池環(huán)境特征,該傳感器支持12 m半徑測量范圍,通過測量反射光的運行時間而確定目標的距離,連續(xù)360°掃描測距收集環(huán)境中目標點的數(shù)據(jù)信息,同時機器人攜帶的慣性傳感器獲取姿態(tài)、速度和方向信息,通過串口輸出數(shù)據(jù)到電腦(PC)端。在機器人操作系統(tǒng)(Robot Operating System,ROS)平臺上進行數(shù)據(jù)信息的處理和同步仿真機器人的位姿狀態(tài),實現(xiàn)即時構(gòu)建地圖和定位功能。

圖1 魚池清刷機器人組成結(jié)構(gòu)圖
1.2.1 試驗條件
試驗于2020年9—10月在中國水產(chǎn)科學研究院漁業(yè)機械儀器研究所如東試驗基地的養(yǎng)殖車間里進行(圖2),選擇的區(qū)域為長3.75 m 、寬3.75 m的無水方切角形養(yǎng)殖魚池,墻壁高度為1.5 m,池底坡度有8°~10°,面積約為12.9 m2。對照組為平整的地面,沒有坡度,高度為0.5 m,形狀尺寸規(guī)格同魚池一致。

圖2 魚池清刷機器人樣機試驗
1.2.2 試驗設(shè)計與測定指標
試驗主要研究不同算法、魚池坡度以及機器人移動速度等對定位精度的影響。首先實地勘測魚池環(huán)境數(shù)據(jù),在ROS平臺的gazebo插件里搭建魚池世界模型如圖3(a)所示。考慮到魚池的面積和傳感器的精度,加載安裝好的導航slam包,利用Gmapping算法進行實時仿真建圖。選擇上述試驗環(huán)境,將機器人隨機放置在魚池任意位置。機器人上電后驅(qū)動電機和傳感器正常運行,同時與PC端的ROS形成通信機制。通過機器人操作系統(tǒng)來控制機器人的行走速度,保持接收傳感器發(fā)來的數(shù)據(jù)信息,在RVIZ插件里即時反映魚池環(huán)境,結(jié)果如圖3(b)所示。在建圖過程中,控制機器人以0.1 m/s的速度移動。

圖3 魚池環(huán)境仿真和實時建圖
在地圖已知條件下,分別采用自適應(yīng)蒙特卡羅定位(Adaptive Monte Carlo Localization,AMCL)算法和慣性里程計方法進行定位試驗,試驗環(huán)境相同,傳感器能360°全方位檢測。自適應(yīng)蒙特卡羅定位[22-23]是MCL的擴展形式,在構(gòu)建的地圖中采用粒子來代表機器人的位姿,在重采樣階段自適應(yīng)調(diào)整粒子數(shù)量以達到更準確的定位。慣性里程計方法是基于里程計的航跡推算方法進行定位,在機器人位姿初始值給定的前提下,基于內(nèi)部傳感器信息計算出每一時刻位姿相對于上一時刻位姿的距離以及方向角的變化,從而實現(xiàn)位姿的實時估計。在魚池中隨機選取10個位置,與上述ROS平臺上構(gòu)建的環(huán)境地圖進行坐標匹配,并在池底貼上標記。開始時機器人放置在魚池起始位置,在rviz界面適當調(diào)整機器人初始狀態(tài),在PC端顯示的地圖中隨機選取一個定位目標點進行導航移動,待機器人停穩(wěn)后測量記錄下實際位姿誤差數(shù)據(jù)。采用控制變量策略,分別在有坡度的魚池中和平整的對照組場地,在考慮移動速度和障礙物的情況下進行定位試驗。
根據(jù)PC端構(gòu)建的地圖和魚池真實環(huán)境,以機器人當前到達的位置為中心,并從朝向角和位置坐標點兩方面進行比較評價。a)角度誤差:機器人到達位置的朝向與PC端預(yù)定朝向之間的角度差;b)距離誤差:機器人到達位置的坐標點與PC端預(yù)定位置的坐標點之間的距離差。
1.2.3 軟件操作平臺與統(tǒng)計分析
所用電腦配置為:CPU為i5-8250U,主頻為1.8 GHz,內(nèi)存8 G,系統(tǒng)為 Ubuntu18.08,ROS版本為melodic。在實際測試中將傳感器搭載在魚池清刷機器人上進行定位試驗,在ROS仿真平臺的gazebo插件里搭建魚池環(huán)境模型,在rviz插件里即時反映地圖。試驗數(shù)據(jù)用“平均值”表示,無顯著性差異(P>0.05),用Excel軟件對所有數(shù)據(jù)進行計算及繪制圖表工作。
機器人在移動導航過程中,算法是影響定位的關(guān)鍵因素之一。本試驗采用傳統(tǒng)慣性里程計和AMCL兩種方法,保持其他因素與基礎(chǔ)試驗組一致,進行不同算法對定位效果的試驗研究。結(jié)果如圖4所示,在選擇慣性里程計的方法定位時,平均距離誤差為10.67 cm,平均角度誤差為6.8°;選擇自適應(yīng)蒙特卡羅全局定位算法時,平均距離誤差為9.02 cm,平均角度誤差為4.6°。由試驗數(shù)據(jù)可知,AMCL較慣性里程計平均距離誤差減少1.65 cm,平均角度誤差減少2.2°,AMCL算法定位精準度更高。

圖4 不同算法下的定位誤差
為了方便魚池污垢集中向中心排污口排出,工廠化循環(huán)水養(yǎng)殖車間魚池池底都會有坡度存在。本試驗將選擇坡度為8°~10°的方切角魚池,同時安排對照組進行定位效果的比較試驗,保持其他因素與基礎(chǔ)試驗組一致。結(jié)果如圖5所示,在有坡度的方切角魚池中,平均距離誤差為9.02 cm,平均角度誤差為4.6°;在無坡度的對照組中,平均距離誤差為6.29 cm,平均角度誤差為3.9°。由試驗數(shù)據(jù)可知,有坡度明顯比對照組的定位誤差更大(P<0.05),且各位置之間定位誤差更散亂,因此坡度會影響到定位性能。

圖5 有無坡度情況下的定位誤差
本試驗將魚池清潔機器人的移動速度分別設(shè)置成0.1 m/s、0.2 m/s和0.3 m/s三種速度,保持其他因素與基礎(chǔ)試驗組一致,分別進行目標位置點的定位試驗。結(jié)果如圖6所示,在移動速度為0.1 m/s時,平均距離誤差為9.02 cm,平均角度誤差為4.6°;在移動速度為0.2 m/s時,平均距離誤差為9.65 cm,平均角度誤差為4.3°;在移動速度為0.3 m/s時,平均距離誤差為9.77 cm,平均角度誤差為5°;由試驗數(shù)據(jù)可知,速度對于定位精度沒有顯著影響(P>0.05)。

圖6 不同速度下的定位誤差
在環(huán)境地圖已知的條件下,移動定位過程中隨機添加小型靜態(tài)障礙物,測試障礙物的存在對定位精度的影響,保持其他因素與基礎(chǔ)試驗組一致。有無障礙物情況下的定位誤差結(jié)果如圖7所示。

圖7 有無障礙物情況下的定位誤差
在有障礙物的情況下,平均距離誤差為9.61 cm,平均角度誤差為5.7°;在無障礙物的情況下,平均距離誤差為9.02 cm,平均角度誤差為4.6°;由試驗數(shù)據(jù)可知,障礙物對于定位目標點位置影響不大(P>0.05),但朝向角誤差會出現(xiàn)偏大情況。
室內(nèi)移動機器人擁有穩(wěn)定可靠的定位是實現(xiàn)自主運動的關(guān)鍵環(huán)節(jié)[24]。在室外環(huán)境下,GPS導航系統(tǒng)是解決定位問題的有效途徑[25]。一旦進入室內(nèi)無線電波信號會非常差甚至失去,無法在室內(nèi)正常使用,室內(nèi)定位需要尋找其他解決方法。現(xiàn)階段室內(nèi)移動機器人定位主要是依據(jù)環(huán)境地圖和給定的傳感器獲取環(huán)境信息,確定自身在環(huán)境地圖中的位姿[11]。以激光雷達和里程計等為傳感器的2D激光SLAM技術(shù)較為成熟[26],已經(jīng)應(yīng)用于多種工作場景,例如AGV(Automated Guided Vehicle)自動導航車等。目前視覺SLAM具有很大的發(fā)展空間,應(yīng)用于低速的產(chǎn)品如清潔機器人等,徐曉蘇等[27]研究了室內(nèi)環(huán)境下視覺SLAM的定位效果。由于Hector SLAM對傳感器的要求比較高,需具備高更新頻率且測量噪聲小的激光掃描儀。Catographer是基于圖優(yōu)化的方法,需要復雜的矩陣運算,計算量和內(nèi)存需求大。而視覺SLAM中環(huán)境光對于視覺傳感器影響大,暗處或者渾濁的區(qū)域無法工作。考慮到魚池環(huán)境的面積、觀測傳感器的精度和適用范圍,本研究采用Gmapping算法和激光雷達來實現(xiàn)地圖構(gòu)建。傳統(tǒng)慣性里程計方法需要基于航跡推算確定機器人位置,由于里程計的累計誤差會導致定位誤差逐漸變大,影響定位精度。采用基本的蒙特卡羅算法時,小概率假設(shè)會因粒子貧乏而丟失導致定位失敗。AMCL[22]能夠解決機器人“綁架問題”(突然變換位置),克服粒子數(shù)貧乏和固定的問題,在運動模型中使用KLD(Kullback-Leibler Divergence)對粒子進行重新采樣。本研究在已知環(huán)境地圖下采用AMCL算法,在重采樣階段優(yōu)化粒子數(shù)量提高機器人定位效果。由于目前魚池機器人搭載的是激光雷達觀測傳感器,發(fā)射出的光信號在水中容易被散射吸收,無法準確探測到物體,現(xiàn)階段只是在無水池底下進行試驗,在未來的工作中水下SLAM技術(shù)是重點研究方向。
本試驗的影響因素從魚池環(huán)境和機器人本體兩部分進行分析。除了定位技術(shù)的優(yōu)化選擇是影響室內(nèi)機器人的主要因素外,魚池坡度和機器人系統(tǒng)也是造成定位誤差的重要原因。本試驗結(jié)果表明,相比較于傳統(tǒng)慣性里程計的方法,采用AMCL算法能夠有效提高定位精度。有坡度的魚池平均定位誤差會增加2.73 cm,平均角度誤差增加0.7°,魚池坡度對定位精度影響較大。魚池清刷機器人在0.1 m/s、0.2 m/s和0.3 m/s三種速度情況下,平均定位誤差差距不大,但在建圖過程中用低速移動,建圖效果更好,環(huán)境特征覆蓋更全面。已知環(huán)境地圖下,添加障礙物對于定位精度影響不大,因為AMCL算法在全局定位的同時,也會有局部規(guī)劃器,能夠?qū)崟r發(fā)現(xiàn)障礙物的情況,但朝向角可能會出現(xiàn)較大誤差,有時陷入局部死點。根據(jù)誤差規(guī)律將定位誤差分為隨機誤差和系統(tǒng)誤差,隨機誤差是由試驗對象與環(huán)境的相互作用引起的,葉敏等[28]對采摘機器人定位誤差的研究中得出結(jié)論,環(huán)境下的隨機誤差是造成定位不準確的主要原因。本試驗中魚池存在坡度,池底會打滑或有阻礙機器人旋轉(zhuǎn)的障礙物。針對地形問題,本研究中證實了坡度等環(huán)境因素會造成定位誤差,但目前尚缺乏地形匹配模型來修正坡度對定位精度的影響。郭磊明[29]提出了一種利用地形坡度特征來確定機器人空間位置的方法,使用機器人地形傾斜模型提取機器人位姿信息實現(xiàn)機器人定位。后續(xù)研究中會在構(gòu)建的地圖模型中加入坡度特征,形成立體地圖來修正機器人的位置。系統(tǒng)誤差主要是由于系統(tǒng)設(shè)計的不完整和不可預(yù)期的機械特性引起,Borenstein等[30]經(jīng)過長時間的實驗發(fā)現(xiàn)里程計的系統(tǒng)誤差來源主要是兩驅(qū)動輪輪距的誤差和輪徑不相等。達興鵬等[31]提出了一種里程計系統(tǒng)誤差及激光雷達安裝誤差迭代標定方法,實現(xiàn)定位誤差大幅度降低。里程計的累計誤差不可避免,隨著機器人的移動距離越遠,轉(zhuǎn)向動作越多,定位誤差也越大。為了盡量減少系統(tǒng)誤差,定位試驗前都會檢查機器人本身性能以及正確調(diào)整驅(qū)動機構(gòu)和激光雷達,并且進行多次里程計校正準備試驗。在這些影響因素下,基礎(chǔ)試驗組定位精度達到預(yù)期,基本滿足試驗要求。但是該機器人也存在一定問題,傳感器的選擇、里程計誤差的校正和機器人系統(tǒng)結(jié)構(gòu)的優(yōu)化等需要進一步調(diào)試改進。
Gmapping算法構(gòu)建小場景地圖時計算量小且精度高,能夠真實反映魚池環(huán)境。通過不同因素定位試驗分析,在基礎(chǔ)試驗組條件下采用自適應(yīng)蒙特卡羅定位算法,目標點定位平均距離誤差為9.02 cm,平均角度誤差為4.6°,機器人能夠有效估計自身位姿,同時也能完成導航任務(wù),為路徑規(guī)劃清掃任務(wù)提供參考。現(xiàn)階段設(shè)計的魚池清刷機器人定位試驗主要在方切角形魚池里展開,在后續(xù)研究中增加魚池環(huán)境的復雜度,增強機器人的通用性和實際性,以期進一步提高魚池清刷機器人的定位性能。
□