邢 旺,黃小華 ,李 根 ,龐國良 ,袁太平
1. 浙江海洋大學,浙江 舟山 316022
2. 中國水產科學研究院南海水產研究所/農業(yè)農村部外海漁業(yè)可持續(xù)利用重點實驗室/廣東省網箱工程技術研究中心,廣東 廣州 510300
3. 三亞熱帶水產研究院,海南 三亞 572024
我國是海洋大國,發(fā)展海水養(yǎng)殖能充分發(fā)揮海域廣闊的優(yōu)勢,滿足人們對于優(yōu)質水產動物蛋白的需求[1-2]。由于近海養(yǎng)殖日趨飽和,養(yǎng)殖壓力不斷攀升,資源和空間的問題日益加劇,因此人們將目光投向了具有水域面積遼闊、水質條件優(yōu)良、水體交換速度快等優(yōu)點[3]的深遠海區(qū)域。
網箱是深海養(yǎng)殖中不可或缺的組成,大型深海網箱具有一般網箱沒有的大容量、抗風浪和高效益等優(yōu)點,同時大型深海網箱往往配備成套的智能系統,易實現無人值守和遠程管控[4]。網衣清洗是深海網箱養(yǎng)殖必不可少的環(huán)節(jié)。網衣得不到及時清潔會影響魚類生長,同時污損生物會增加網衣的重量,導致網衣、網箱的結構破壞風險增加[5-6]。
目前,網衣清洗可分為:人工清洗法、機械沖洗法和洗網機器人清洗法。人工清洗和機械清洗均費時費力,且會造成危險[7]。洗網機器人具有操作簡單、安全便攜和自動化程度高等優(yōu)點。其主要由控制單元、運動單元和清洗單元等構成[8]??刂萍斑\動單元解決機器人貼網移動、水下穿梭等問題,而清洗單元則可以通過多種不同的清洗工具達到對網箱網衣的清理。
總體上,在結構設計方面,研究者探索了各種不同的洗網方式,例如高壓旋轉水流、毛刷、空化射流等,旨在實現高效、便捷的網箱清洗??煞譃榍逑垂ぞ摺⑶逑此饕嗷騼烧呔C合使用。在清洗工具方面:通過清洗盤清洗噴嘴[9]或提供多種類型噴嘴的清洗單元來進行洗網作業(yè)[10],以及采用多個旋轉刀片構成洗網清潔頭實現高效清洗[11]等。在清洗水流方面:通過高壓旋轉水流[12]和通過空化射流進行清洗作業(yè)[13]。綜合兩者還有:采用水流和毛刷作為清洗方式[14]和通過清洗模塊的形式進行清洗作業(yè)[15]等組合模式。
在運動控制方面,采用自動導航[16-17]、自適應抓鉤控制[18]等控制策略,以實現洗網機器人的自主貼網移動。為應對深海環(huán)境中的復雜動力學,建立動力學模型、開展仿真研究也成為熱點?;谝曈X、聲吶等各種傳感器的控制方案也受到關注。
好的洗網機器人應具備水下抗擾動、低能耗的特點。然而洗網機器人在貼網移動、水下穿梭的過程中,受力復雜、非線性程度高、狀態(tài)難以觀測,要求大量、全面的實驗數據來支撐控制器的優(yōu)化,該方式成本高、耗時長。針對此問題,本文在物理仿真環(huán)境Gazebo 的基礎上,設計并開發(fā)了一套洗網機器人動力學及運動學仿真平臺,通過仿真來獲得洗網機器人水下工作的完備數據,開展不同控制器的全面性能驗證,助力洗網機器人的控制器開發(fā)及優(yōu)化。
針對機械臂、無人駕駛等機器人仿真問題,研究者開發(fā)了多款機器人仿真軟件,包括Webots、V-REP (現為CoppeliaSim)、MuJoCo 和Gazebo 等(圖1),目前暫無針對水下機器人的仿真平臺[19]。
本文選擇Gazebo 作為基礎仿真平臺,主要原因是:1) 機器人操作系統ROS[20]提供了豐富的Gazebo 接口,因此Gazebo 方便聯合ROS 開展機器人控制器開發(fā);2) Gazebo 支持多種物理引擎,如ODE 和Bullet,且有直觀、易操作的三維仿真界面 (圖1-d);3) Gazebo 社區(qū)開源了UUV Simulator 項目,該項目可以支持搭建和測試水下機器人,仿真水動力對機器人的作用為本文的開發(fā)提供了參考[21]。
在Gazebo 和ROS 的基礎上,本文設計了圖2 所示的仿真系統架構。其中綠色部分為基礎平臺已經具備的功能,橙色部分為需要開發(fā)的功能。ROS 提供了良好的進程間通訊機制,針對機器人控制策略設計問題,需要開發(fā)狀態(tài)估計模塊、控制模塊、日志記錄模塊等;Gazebo 提供了機器人建模語言及編譯系統、3D 渲染功能及物理引擎,在此基礎上,開發(fā)洗網機器人本體,并開發(fā)水動力、推進器、傳感器等插件。本文針對的是動力學仿真問題,因此,主要介紹水動力插件和推進器插件相關內容。通過ROS-Gazebo 通訊接口,可實現兩平臺的信息交換[22]。
圖2 仿真系統架構Fig. 2 Framework of simulation system
結構對機器人動力學和控制性能有非常重要的影響。結構尺寸、外表面影響碰撞、摩擦、附加質量[23]等參數,推進器布置影響機器人的姿態(tài)控制,重心浮心位置影響機器人的穩(wěn)定性,質量和慣量決定機器人的響應速度,上述因素綜合影響著機器人的運動性能和操作能力。
構建洗網機器人本體結構步驟如下:1) 先在SolidWorks 軟件中設計出機器人各零部件模型,包括機器人本體、推進器、洗盤3 個部分,并對零部件進行裝配得到洗網機器人三維模型 (圖3);2) 利用SolidWorks to URDF Exporter 插件設置機體、推進器和洗盤的坐標系、旋轉軸以及父子關系;3) 獲取機器人中各部件的相對位置關系和關節(jié)之間的關系,利用這些信息編寫機器人模型xacro 文件;4)將各零部件導出為STL 格式用于描述機器人模型在Gazebo 中的外觀元素部分;5) 設置機器人水動力模型參數,并將其數據編寫軟件包。
圖3 洗網機器人本體結構圖Fig. 3 Structure diagram of washing robot body
一旦洗網機器人的受力已知,就可模擬機器人在水下無輸入情況下的運動軌跡,還可模擬機器人在控制作用下的運動軌跡,有助于深入理解洗網機器人的運動行為,設計及驗證控制器性能[24]。
洗網機器人在工作過程中受力復雜,本文僅考慮影響較大的力,包括:浮力、重力、水阻尼力、附加質量效應、水流作用、推進器及洗盤作用。忽略了臍帶纜、湍流、渦流等的影響[25],主要原因為:1) 考慮到機器人移動速度慢,設計時選用相對大功率的推進器,因此湍流、渦流對機器人的控制影響較??;2) 臍帶纜在設計時會選用零浮力纜,在大部分場景下對機器人運動無影響 (少數情況的影響我們將在后續(xù)深入研究)。
本文依據Fossen 手冊[26]海洋運載器的六自由度運動學方程建立洗網機器人動力學模型:
式中:v為洗網機器人速度向量,即機器人本體坐標系在世界坐標系下的速度在本體坐標系下的表示;v˙為洗網機器人加速度向量,即機器人本體坐標系在世界坐標系下的加速度在本體坐標系下的表示;η6×1為洗網機器人在世界坐標系下的姿態(tài)向量;M6×6=MRB+MA,為系統的慣性矩陣,MRB和MA分別為剛體和附加質量引起的慣性矩陣;C6×6=CRB(vr)+CA(vr),為系統的科里奧利向心矩陣 (下文簡寫為科氏力),CRB(vr)和CA(vr) 分別為剛體和附加質量導致的科里奧利向心矩陣;D6×6=DL+DN,為系統的阻尼矩陣,DL和DN分別為線性和非線性阻尼矩陣;g(η)6×1為系統的重力、浮力的合力矩矢量;g0為用于預調平 (壓載控制) 的向量;τ∈R6×1,為推進器或其他動力元件產生的力和力矩;τb∈R6×1,為風、浪和流環(huán)境等不確定因素產生的干擾力。
下文將分別對公式 (1) 中出現的附加質量、科氏力、阻尼等作用力對機器人運動的影響進行仿真。需要注意的是,由于洗網機器人移動范圍小且速度慢,因此地球旋轉導致的科氏力可忽略,機器人旋轉運動導致的科氏力由物理引擎自動處理,因此,下文不專門探討科氏力對機器人的影響[27]。
推進器通過螺旋槳旋轉推水給機器人施加推力和轉矩 (圖4),推力和轉矩與螺旋槳的轉速、水流密度推力系數等相關,計算公式[28]為:
圖4 螺旋槳洗盤對機器人施加的推力和轉矩Fig. 4 Thrust and torque applied by propeller to robot
式中:τ為螺旋槳的推力;Q為螺旋槳的轉矩;n為螺旋槳的轉速;D為螺旋槳的直徑;ρ為流體密度;KTp為螺旋槳的推力系數;KQ為轉矩系數。
洗盤和推進器對機器人的作用類似,即提供一個推力和轉矩,因此,采用和推進器一樣的公式(2) 和(3),調整系數來獲得洗盤對機器人的作用。只是動態(tài)特性時間常數需要減小,旋轉系數需要增大。
靜止在水中的機器人,會受到重力和浮力作用。如果重心和浮心不重合,重力和浮力將產生恢復力矩,使得機器人姿態(tài)在平衡狀態(tài)附近震蕩[29]。水下機器人受到的浮力和重力如圖5 所示,在NED 坐標系中,作用于浮心的浮力,作用于重心上的重力,重力與浮力組合作用可表示為:
圖5 重力、浮力共同作用示意圖Fig. 5 Schematic diagram of combined action of gravity and buoyancy
式中:xg、yg、zg、xb、yb、zb分別表示重心和浮心在其坐標軸上相應的分量;B和W分別代表在z軸方向上的重力和浮力。
由于恢復效應為重心和浮心不重合所致,故z軸方向的旋轉不受恢復效應影響,因此只考慮x和y軸方向波動所導致的轉矩對機器人的影響。
在僅考慮重力和浮力的影響下,設置機器人重心 (0, 0, 0),浮心 (0, 0,zb),分別對機器人的x、y和z軸方向施加100 Nm 的沖擊轉矩,仿真機器人的運動軌跡 (圖6)。
圖6 Gazebo 中對機器人施加轉矩 (以x 軸為例)Fig. 6 Applying torque to robots in Gazebo(Taking x-axis as an example)
由圖7 可見,由于重力和浮力的恢復力距作用,機器人的x、y軸角速度作周期性的變化,而z軸角速度則保持在一個定值,這是因為浮力和重力方向均為豎直方向,無法在z軸方向上產生恢復力矩。
圖7 重力、浮力作用下的角速度沖擊響應Fig. 7 Angular velocity shock response under action of gravity and buoyancy
機器人在水下運動會受到水流的碰撞和摩擦,導致阻尼作用,即速度越大,受到速度反方向的力就越大。阻尼作用可以建模為線性阻尼矩陣DL和非線性阻尼矩陣DN。
DL用于描述水動力引起的線性阻尼效應。該阻尼力矩陣是一個方陣,其元素表示不同自由度上的阻尼系數。它被用于分析水下機器人在運動過程中受到速度相關阻尼力的影響。線性阻尼力矩陣的規(guī)模和結構受水下機器人的幾何形狀、運動速度以及周圍水流特性的影響 (圖8)。其形式為:
圖8 阻尼效應示意圖Fig. 8 Schematic diagram of damping effect
式中:Xu、Yv、Zw、Kp、Mq和Nr為一階阻尼系數。
DN用于描述水動力引起的非線性阻尼效應。該矩陣包含了一些非線性阻尼項,例如速度的高階項和非線性耦合項。這些項反映了水下機器人在運動過程中非線性阻尼力的貢獻,通常是由于機器人的非線性形變或流體動力學效應所引起的 (圖8)。其形式為:
式中:Xu|u|、Yv|v|、Zw|w|、Kp|p|、Mq|q|、Nr|r|為二階水動力系數。
兩者結合即為阻尼矩陣D,表示為:
參考Berg[29]線性阻尼矩陣DL以及非線性阻尼矩陣DN可設置為:
組合兩項作為其阻尼矩陣D為:
阻尼對機器人運動狀態(tài)影響的仿真情況如下:
1) 阻尼對x、y、z軸方向平動線速度的影響。對x、y、z軸方向分別在0.5、0.2 及0.7 s 同時施加100 N 的單位沖擊力,并繪制在同一幅圖表上(圖9-a)??梢杂^察到由于平動不涉及恢復效應,3 個方向均在單位沖擊時達到最大線速度,并由于阻尼效應隨時間減小;其中x、y軸方向的速度最終趨近于0,而z軸的速度并不為0,這是由于仿真過程重力略大于浮力,導致其在初始狀態(tài)有一個初速度,并且最終在阻尼效應下速度回歸于該初速度。
圖9 阻尼效應對機器人平動和轉動的影響Fig. 9 Effect of damping on translation and rotation of robots
2) 阻尼對x、y、z軸角速度的影響。對x和z軸在第0.8 秒時以及y軸在第1.25 秒時施加100 Nm 的單位沖擊扭矩,并同時繪制在圖9-b 上??梢杂^察到x和y軸的角速度變化規(guī)律完全相同。由于恢復效應的影響,它們均作周期性的阻尼震蕩運動。且隨著時間的增加,周期性幅度逐漸減小。而z軸方向由于不受恢復效應的影響,不會產生周期性的震蕩,而是沿著光滑的凹曲線緩慢下降。
附加質量的產生是由于機器人的移動帶動周圍流體運動狀態(tài)變化而對機器人產生的反作用,用符號MA表示,其為6×6 的矩陣,包含36 個參數[30],由于機器人本體的對稱性,本文將附加質量矩陣簡化為對角矩陣,即附加質量不會改變機器人速度方向,只改變大小,設置:
根據歐拉力學[30],剛體質量和慣量對運動的影響可建模為MRB,即:
因此,慣量和質量共同作用下的影響矩陣為:M6×6=MRB+MA。討論在慣量及附加質量共同影響下的仿真情況如下:
1) 無附加質量下x、y、z軸線性加速度的變化。為探究無附加質量對線性方向加速度的影響情況,分別對x、y、z軸施加100 N 的單位沖擊力(圖10-a)。除因仿真中誤差導致的重力略大于浮力使得z軸的線性加速度略小于x和y軸外,其余加速度影響完全相同。
圖10 單位沖擊對有無附加質量線性加速度的影響Fig. 10 Influence of unit impact on linear acceleration with or without added mass
2) 有無附加質量對線性加速度的影響。經過分析仿真結果,在有附加質量時x、y、z軸的線性加速度變化完全相同,故只考慮有無附加質量對線性加速度的影響。以x軸作為觀察附加質量對線性加速度影響的參考。對機器人施加公式 (11) 的附加質量矩陣,同時對其施加100 N 的沖擊力。根據理論,在施加沖擊力F不變的情況下,增加附加質量會導致其真實質量m增大,機器人的加速度a應該減小。但由于模擬仿真環(huán)境不像真實世界中時間為連續(xù)的變量,而是離散變量,故圖10-b 中的反向加速度在真實時間中應和正向加速度同時發(fā)生,疊加之后的加速度a就比無附加質量時小,故其符合理論情況。
海流是由海洋水體的流動引起的,具有一定的速度和方向。因此,機器人在海流中運動時,會受海流作用,產生阻力和推力[31]。考慮到水流對機器人的影響非常復雜,本文對該作用進行簡化,即水流場的作用等效為在機器人質心處施加一個速度矢量,具體如圖11 所示。
圖11 流場圖Fig. 11 Flow field diagram
其中與機器人前進方向x軸夾角也為水平夾角設為α,與xOy平面的夾角也為豎直夾角設為β。且其中的速度、水平夾角和豎直夾角如上圖的參數。所以其各速度分量可以表示為:
式中:currentVel 為當前水流速度矢量,隨著回調函數實時更新。
為增加仿真的真實性,引入噪聲來模擬水下環(huán)境中的擾動。采用高斯馬爾可夫過程 (Gauss-Markov process) 來模擬噪聲的影響。通過引入噪聲,能夠更準確地模擬真實環(huán)境中的隨機變動,從而提高仿真的真實性。高斯馬爾可夫過程是一種常用于噪聲建模和處理的數學模型[32]。它通常用來描述隨機信號或噪聲的變化過程,具有隨機性、平穩(wěn)性等特點。本模擬仿真使用下述公式來引入高斯噪聲:
式中:var 表示當前時刻的過程狀態(tài)或變量的值;step 表示時間步長;mu 表示過程的阻尼系數;noiseAmp 表示噪聲幅值或強度;random 表示服從均勻分布的隨機數,用來引入隨機性或噪聲成分,模擬真實世界中不確定的隨機變動。
在不引入噪聲的情況下,將速度矢量設為1 m·s?1,且與水平面和豎直面的夾角均為。觀察線速度的變化曲線,海流場作用的仿真情況見圖12。在3 s之前的圖像滿足模擬仿真結果。但3 s 之后出現了較大波動,這是因為機器人設置的深度為5 m,在波動時刻機器人沖出水面,然后在阻尼等的作用下出現波動并最終趨于穩(wěn)定。
圖12 無高斯噪聲流場下的線速度零輸入零狀態(tài)響應Fig. 12 Linear velocity zero input zero state response in no gaussian noise flow field
將mu 設置為0.3,noiseAmp 設置為0.5,繼續(xù)觀察對機器人速度的影響情況。由圖13 可見,噪聲對線速度和角速度的影響非常大。如何通過控制策略來消除噪聲對機器人平穩(wěn)運行的影響是下一步要研究的問題,本文只涉及機器人模型的建立,未給出解決方案。
圖13 流場高斯噪聲下的線速度和角速度零輸入零狀態(tài)響應Fig. 13 Zero input and zero state response of linear velocity and angular velocity with Gaussian noise of flow field
洗網機器人在貼網移動時,會受到網衣的作用。網衣對機器人施加摩擦力、支持力,影響機器人在網面和垂直網面的運動。同時,網衣將網箱的移動作用到機器人上,改變機器人的狀態(tài);此外,網衣可能改變水動力特性,進而改變機器人的狀態(tài)。在本文模擬仿真中,假設網箱固定,重點關注摩擦力和支持力的影響 (圖14),忽略其他受力方面,這種簡化有助于減少計算的復雜度。
圖14 機器人在網箱表面的受力情況和貼網示意圖Fig. 14 Force situation of robot on surface of cage and schematic diagram of sticking net
本文基于Gazebo 仿真平臺,搭建了洗網機器人仿真環(huán)境,實現了洗網機器人三維建模和動力學仿真。通過單元仿真的方式,分別建?;蚍抡媪送七M器及洗盤、流體阻尼、慣量及附加質量、海流場以及網衣對洗網機器人運動的影響。驗證了仿真平臺的有效性,為后續(xù)設計抗干擾能力強、能耗低的控制器奠定了基礎。但目前的仿真平臺中洗網機器人在水下的真實運動情況仍有提升的空間,體現在:1) 附加質量未考慮機器人的結構;2) 流場模型和現實有差別;3) 網衣作用缺乏有效模型;4) 未考慮推進器時滯效應;5) 未基于真實實驗數據辨識機器人的受力情況。在后續(xù)的工作中將針對上述問題進行優(yōu)化,盡可能地模擬洗網機器人在真實工況下的行為,為控制器設計提供數據支撐。