丁 坤,黎 彰,張經(jīng)煒,王 立,劉永杰
(1.河海大學(xué)機電工程學(xué)院,江蘇 常州 213022; 2.常州市光伏系統(tǒng)集成與生產(chǎn)裝備技術(shù)重點實驗室,江蘇 常州 213022)
光伏發(fā)電廣泛地應(yīng)用在我國的能源生產(chǎn)領(lǐng)域中,它對改善生態(tài)環(huán)境、節(jié)能減排和建設(shè)可持續(xù)發(fā)展社會起到了積極的促進作用[1]。研究表明,光伏組件表面積灰嚴(yán)重影響組件的發(fā)電效率和可靠性。Jiang等[2]發(fā)現(xiàn),組件表面灰塵沉積密度與發(fā)電效率的降低呈近似的線性關(guān)系,密度由0積累至22 g/m2時,對應(yīng)組件發(fā)電效率的降低率由0升至26%。此外,光伏面板上的積灰可能會導(dǎo)致局部陰影,從而造成熱斑效應(yīng),損毀光伏組件[3-4]。以光伏電站清潔機器人來代替人工完成清潔工作,是提升光伏陣列運行維護效率的發(fā)展趨勢[5],因此國內(nèi)外有關(guān)學(xué)者對其展開了相關(guān)研究。
已知便攜式光伏電站清掃機器人一般采用差速式的行走機構(gòu),爬行在光伏陣列表面上,通過高速轉(zhuǎn)動的毛刷進行清潔工作[6]。由于光伏陣列四周沒有防護裝置,機器人需要添加傳感器進行邊界檢測,實現(xiàn)自我保護。對于清掃機器人邊界檢測問題,王軍[7]使用電感式接近開關(guān)對組件邊沿進行限位;侯杰等[8]對以3個超聲波傳感器為主體的邊緣檢測單元進行邊界檢測;張嬋等[9]對光伏陣列圖像進行邊緣識別,以獲取光伏陣列邊界信息,從而進行邊界檢測。上述方法測量范圍小,易受測量精度的影響,從而造成機器人不能提前做出反應(yīng),導(dǎo)致機器人有跌落光伏陣列的風(fēng)險。此外,通過傳感器獲取的實時邊界信息也會受外界因素的影響,如電感式接近開關(guān)會受磁場干擾而產(chǎn)生誤動作[10],圖像邊緣檢測容易收到強光的影響而失效[11],最終導(dǎo)致機器人跌落。為了解決機器人跌落的問題,引進了代價地圖算法。傳統(tǒng)的代價地圖算法在障礙物周圍設(shè)置一層安全緩沖區(qū),從而在最短無碰撞路徑搜索方面具有一定的優(yōu)勢,但該算法在信息分類方面有缺陷,限制了功能的可拓展性,也逐漸表現(xiàn)出應(yīng)對復(fù)雜環(huán)境時障礙物劃分不靈活、路徑規(guī)劃不理想等不足[12]。
本文在傳統(tǒng)代價地圖的基礎(chǔ)上,將地圖細分為不同的獨立代價層并添加光伏陣列邊界層,共同組成分層代價地圖,進而提出一種基于分層代價地圖的導(dǎo)航方法。①設(shè)計一套基于開源機器人操作系統(tǒng)(robot operating system,ROS)的系統(tǒng)架構(gòu);②分析機器人的工作環(huán)境,利用光電式接近開關(guān)識別陣列邊界,同時控制系統(tǒng)采集陣列邊界的尺寸信息并進行相應(yīng)的處理,以插件的形式,在經(jīng)典分層代價地圖的基礎(chǔ)上,增加光伏陣列邊界層,完成圖層的邊界與代價值的更新,構(gòu)建出機器人清掃區(qū)域地圖,使機器人的工作空間約束在光伏陣列內(nèi);③基于分層代價地圖,采用多點巡航的全覆蓋清掃策略,實現(xiàn)清掃區(qū)域全遍歷。通過測試本文方法,機器人實現(xiàn)了合理避障并在指定區(qū)域內(nèi)運動,解決了機器人跌落光伏陣列的問題,有效完成了清掃任務(wù)。
如圖1(a)所示,光伏電站清掃機器人以帶有滾刷的履帶式移動機構(gòu)作為執(zhí)行機構(gòu)來完成清掃工作。如圖1(b)所示,光伏電站清掃機器人系統(tǒng)由決策層、執(zhí)行層和感知層組成。機器人決策層主要負(fù)責(zé)精確定位與清掃區(qū)域建圖、清掃路徑規(guī)劃與導(dǎo)航以及人機交互等功能,同時還兼具對外部傳感器的數(shù)據(jù)采集以及與執(zhí)行層的交互功能。機器人執(zhí)行層主要負(fù)責(zé)根據(jù)決策層下達的控制指令轉(zhuǎn)換電機和滾刷的轉(zhuǎn)速,同時向決策層上傳采集到的外部環(huán)境和內(nèi)部狀態(tài)信息。機器人感知層選用激光雷達進行實時障礙物檢測,同時以6個光電接近開關(guān)組成邊界檢測單元,對機器人進行雙重保護,該信號還用于構(gòu)建環(huán)境地圖。清掃機器人核心部件選型如表1所示。
圖1 光伏電站清掃機器人的系統(tǒng)結(jié)構(gòu)Fig.1 System structure of photovoltaic cleaning robot
表1 清掃機器人核心部件
為了實現(xiàn)上述功能,采用ROS作為機器人決策層的操作系統(tǒng),其具備點對點拓?fù)涞奶攸c。精確定位和建圖等功能模塊被集成在ROS不同的功能包中,每一個模塊都可以單獨設(shè)計和編譯,并通過松耦合方式連接,簡化了機器人平臺下的復(fù)雜任務(wù)創(chuàng)建與穩(wěn)定行為控制[13]。
2014年,Lu等[14]提出了分層代價地圖的概念,即根據(jù)不同的語義,將原有的代價地圖細分為不同的獨立代價層,主要有靜態(tài)地圖層、障礙物層、膨脹層等,每一層專注于某一特性類型的障礙物,并共同組成主代價地圖以服務(wù)于路徑規(guī)劃算法。史滿翔等[15-16]基于行人軌跡預(yù)測生成包含預(yù)測階段社會代價的分層代價地圖,提供預(yù)測階段的社會約束信息,提高了機器人的環(huán)境適應(yīng)能力。由此可見,可通過分層代價地圖添加外界約束信息,借此提高光伏電站清掃機器人應(yīng)對環(huán)境變化的能力。
光伏電站清掃機器人工作在存有傾斜角度且距離地面有一定高度的光伏陣列表面上,多數(shù)情況下四周是沒有明顯建筑特征的空間,大多傳感器無法獲取有效的數(shù)據(jù)信息,導(dǎo)致無法采用視覺SLAM中的方法進行地圖的構(gòu)建。分層代價地圖可以添加感知層無法獲取的外界約束信息,因此清掃區(qū)域地圖采用基于分層代價地圖的方法建立。如圖2所示,針對全局路徑規(guī)劃與局部路徑規(guī)劃的特性分別建立兩幅代價地圖。
圖2 分層代價地圖配置方案Fig.2 Configuration scheme of hierarchical cost map
為了使清掃機器人工作空間約束在光伏陣列內(nèi),主要進行以下兩方面的整改。
a.靜態(tài)地圖層。為實現(xiàn)全局路徑規(guī)劃,機器人需要一幅超出其傳感器感知范圍的地圖,以定位靜態(tài)障礙物的位置。針對光伏電站清掃機器人的工作環(huán)境,建立一幅比清掃區(qū)域面積大的空白地圖,并加載到主代價地圖中。
b.光伏陣列邊界層。該圖層為在經(jīng)典分層代價圖層基礎(chǔ)上添加的新圖層,是清掃區(qū)域建圖的關(guān)鍵圖層。將光伏陣列邊界標(biāo)記為障礙物屬性,但與真實障礙物不同,實質(zhì)是一種虛擬的障礙。該圖層存在于膨脹層之上,膨脹層不應(yīng)對其產(chǎn)生膨脹作用,以避免膨脹層干擾機器人的全覆蓋清掃任務(wù)。由于可以真實地反應(yīng)陣列邊界,所以被標(biāo)記的虛擬障礙物形狀應(yīng)與陣列邊界形狀一致,機器人在該障礙物邊框的限制約束下導(dǎo)航,避免了跌落光伏陣列的風(fēng)險。
構(gòu)建光伏陣列邊界層,需要確定光伏陣列的邊界尺寸。如圖3(a)所示,建立二維世界坐標(biāo)系,設(shè)定O為坐標(biāo)系原點。假定機器人從中心點O點移動到P點,當(dāng)接近開關(guān)J1、J2、J3和J4同時為遠離狀態(tài)時讀取世界坐標(biāo)系統(tǒng)P坐標(biāo)的(x,y)。則角點的m1坐標(biāo)為
圖3 光伏陣列邊界層創(chuàng)建過程Fig.3 Creating process of photovoltaic array boundary layer
x1=x+Δlcosθ
(1)
y1=y+Δlsinθ
(2)
式中:Δl為機器人滾刷前端中部m與中點P的兩點間距,mm;θ為機器人轉(zhuǎn)角,rad。同理,控制機器人向其余角點移動并得到對應(yīng)的角點坐標(biāo)。
確定了光伏陣列邊界的角點坐標(biāo)之后,進入圖層的創(chuàng)建過程,具體步驟如圖3(b)所示:①進行圖層的初始化,包括初始程序變量、初始地圖邊界,獲取分層代價地圖的指針等內(nèi)容。②從參數(shù)服務(wù)器加載由機器人自動識別的光伏陣列邊界角點坐標(biāo)參數(shù),對角點坐標(biāo)進行取整處理。③以兩點確定一條直線的原則,通過對相鄰角點的橫、縱坐標(biāo)進行歸一化處理,并結(jié)合地圖分辨率確定相鄰角點之間所有障礙點的坐標(biāo),這些連續(xù)的障礙點構(gòu)成了相鄰角點的連線。④執(zhí)行地圖更新過程,以光伏陣列邊界作為更新圖層的邊界,并存儲所有障礙點的坐標(biāo)。⑤將確定的障礙點賦予占據(jù)屬性的代價值,從而完成光伏陣列邊界圖層的建立,最后將光伏陣列邊界圖層以插件的形式加載到分層代價地圖中。
如圖4所示,move_base包是ROS的導(dǎo)航框架,提供了ROS導(dǎo)航的配置、運行、交互接口[17]。在move_base包中構(gòu)建清掃區(qū)域地圖后,全局路徑規(guī)劃器接收構(gòu)建好的全局代價地圖,根據(jù)獲取的坐標(biāo)轉(zhuǎn)換關(guān)系和目標(biāo)點,利用算法實現(xiàn)清掃機器人的全局路徑規(guī)劃。局部路徑規(guī)劃器接收局部代價地圖,根據(jù)獲取的坐標(biāo)轉(zhuǎn)換關(guān)系和IMU/里程計的融合定位數(shù)據(jù),機器人沿著規(guī)劃好的全局路徑移動的同時,根據(jù)DWA算法對路徑進行優(yōu)化和更新。最終將規(guī)劃后的控制指令,即線速度與角速度發(fā)布于機器人執(zhí)行層控制系統(tǒng),實現(xiàn)機器人的導(dǎo)航。
圖4 清掃機器人的導(dǎo)航框架Fig.4 Navigation framework of cleaning robot
為了實現(xiàn)對光伏陣列絕大部分面積的清掃,設(shè)計了基于多點巡航的全覆蓋清掃策略。如圖5(a)所示,清掃機器人選用弓字形的清掃路徑,可以在地圖最外側(cè)開始移動,通過到達邊界的折返動作,實現(xiàn)對地圖的全覆蓋。如圖5(b)所示,根據(jù)光伏陣列邊界尺寸、機器人長度以及滾刷長度,在靠近光伏陣列邊界的位置設(shè)置目標(biāo)點。機器人從起點出發(fā),利用move_base導(dǎo)航系統(tǒng)依次遍歷每個目標(biāo)點,最終回到起點,完成整個地圖的遍歷。該過程的執(zhí)行基于ROS的客戶端/服務(wù)器架構(gòu)。
圖5 多點巡航全覆蓋清掃流程Fig.5 Full coverage cleaning process based on multi-point cruise
具體流程為:①初始化設(shè)置,主要包括初始化已完成目標(biāo)點數(shù)量、總目標(biāo)點數(shù)量、運行距離和起始時間等變量;②從參數(shù)服務(wù)器讀取光伏陣列邊界尺寸參數(shù)、機器人尺寸參數(shù)和全覆蓋清掃次數(shù)等信息;③默認(rèn)機器人從陣列右下角出發(fā),此時機器人在地圖坐標(biāo)系上為原點,根據(jù)參數(shù)器得到的相關(guān)參數(shù),計算可以覆蓋整個區(qū)域的所有目標(biāo)導(dǎo)航點,建立所需的目標(biāo)導(dǎo)航點集;④與move_base服務(wù)器連接成功后,按照順序從導(dǎo)航點集中提取目標(biāo)點,將上輪循環(huán)的導(dǎo)航點作為本輪循環(huán)順序的初始導(dǎo)航位置,計算本輪循環(huán)行駛到目標(biāo)導(dǎo)航點的行駛距離;⑤存儲本輪循環(huán)的位置變量,用于下輪計算;⑥發(fā)送目標(biāo)點至move_base服務(wù)器,等待服務(wù)器反饋信息,查看是否成功到達目標(biāo)點;⑦計算本輪導(dǎo)航所用的時間,輸出本次導(dǎo)航的行駛距離和運行時間至終端界面,方便用戶查看,并從點集中提取下一目標(biāo)點,開始下一輪導(dǎo)航,直至到達最終目標(biāo)點。
張宇等[18]發(fā)現(xiàn)光伏組件表面積灰導(dǎo)致發(fā)電量下降最明顯的是前15 d,其功率衰減了13.08%,而后15 d功率衰減量僅增加5.45%??紤]清洗費用和年發(fā)電損失的關(guān)系,該最小值所對應(yīng)的清洗周期約為20 d[19-20],因此采用20 d為周期進行一次清掃的整體規(guī)劃。此外,光伏板面上局部有可能存在難以通過一輪清掃去除的污物,如陣列邊角大量堆積的灰塵、雨后產(chǎn)生的溝壑狀的污漬和鳥糞等頑固污穢,因此要對這些區(qū)域進行第二輪清掃。
針對殘留污染物的清掃方案,提出具體判斷方案。如圖6所示,清掃機器人根據(jù)清掃區(qū)域建立地圖并進行路徑規(guī)劃;機器人進行導(dǎo)航和開始清掃工作,清掃過程中,實時檢測清掃區(qū)域是否全覆蓋,直至第一輪清掃結(jié)束。調(diào)取上層監(jiān)測系統(tǒng)信息,將清掃后的各區(qū)域組串支路電流和工作電流比較下降是否超過20%;串支路電流與清掃后的相鄰區(qū)域?qū)Ρ认陆凳欠癯^4%;選取另一光伏電站同時刻、同輻照度與清掃后的區(qū)域?qū)Ρ认陆凳欠癯^4%[21-22],3個條件同時符合則判斷光伏陣列上殘留灰塵;對殘留灰塵的區(qū)域進行第二輪清掃;清掃結(jié)束,回收機器人。
圖6 單次清掃策略整體規(guī)劃Fig.6 Overall planning of single cleaning strategy
試驗條件和參數(shù)如下:陣列尺寸橫×縱為3.0 m×3.3 m,光伏陣列傾斜角為10°,機器人大小(長×寬)為1.00 m×0.55 m,移動速度為0.15,機器人質(zhì)量為25 kg。
圖7(a)為光伏陣列表面上進行的試驗,模擬安裝工具進入清掃區(qū)域的實拍圖,圖7(b)為rviz界面,顯示了基于分層代價地圖清掃區(qū)域的完整構(gòu)建結(jié)果?;疑珔^(qū)域為靜態(tài)圖層,粉色矩形框為光伏陣列邊界,清掃機器人只能在此邊框內(nèi)進行路徑規(guī)劃。綠色實線為路徑規(guī)劃結(jié)果,黑色實線為激光雷達識別的障礙物,該障礙物四周為膨脹區(qū)域。試驗中清掃機器人從光伏陣列右下角出發(fā),在靠近光伏陣列邊界處設(shè)置目標(biāo)導(dǎo)航點。通過試驗分析可得,基于分層代價地圖建立的清掃區(qū)域地圖和設(shè)計的路徑規(guī)劃系統(tǒng)是合理并有效的。
圖7 有障礙環(huán)境下的路徑規(guī)劃Fig.7 Path planning in obstacle environment
機器人在不構(gòu)建光伏陣列邊界層的情況下,以傳統(tǒng)代價地圖算法為基礎(chǔ)進行導(dǎo)航運動。如圖8(a)所示,機器人可行駛出光伏陣列邊界外,有跌落光伏陣列的風(fēng)險,但系統(tǒng)對此未有應(yīng)急處理方案。圖8(d)中黑線為試驗根據(jù)光伏陣列尺寸在rviz系統(tǒng)繪制光伏陣列地圖線。
圖8 光伏陣列邊界層的防跌落試驗Fig.8 Experiment on preventing falling of PV array boundary layer
試驗根據(jù)光伏陣列尺寸構(gòu)建光伏陣列邊界層,在光伏陣列邊界層外設(shè)置目標(biāo)導(dǎo)航點,使機器人向該點前進。當(dāng)機器人接近光伏陣列邊界層后,機器人緊急剎停,停止路徑規(guī)劃并進入待機模式,同時系統(tǒng)自動發(fā)出警告。機器人進行手動控制時,也具備緊急制動功能。手動遙控機器人向光伏陣列邊界層運行,在接近光伏陣列邊界層后,機器人會緊急剎停并斷開遙控控制。通過試驗分析可得,分層代價地圖的構(gòu)建可使機器人能夠有效識別邊界信息并提前做出反應(yīng),從而有效地解決機器人跌落光伏陣列的問題。
試驗根據(jù)光伏陣列邊界尺寸、機器人長度以及滾刷長度,在靠近陣列邊界的位置設(shè)置目標(biāo)導(dǎo)航點集。設(shè)置機器人從光伏陣列右下角出發(fā),最大線速度為0.15 m/s,最大角速度為0.6 rad/s,機器人依次向設(shè)置的導(dǎo)航點前進,完成對清掃區(qū)域的全覆蓋,最終回到原點。圖9(a)(b)(c)為機器人全覆蓋清掃的實拍過程,圖9(d)(e)(f)為機器人全覆蓋清掃的路徑規(guī)劃結(jié)果,其中綠實線為采用A星算法的全局路徑規(guī)劃,紅實線為采用DWA算法的局部路徑規(guī)劃,表2為機器人清掃的具體情況。通過該試驗分析可得,基于多點巡航的全覆蓋清掃策略,機器人可以較好地完成清掃任務(wù),該方法設(shè)計合理。
圖9 基于多點巡航的全覆蓋清掃Fig.9 Full coverage cleaning based on multi-point Cruise
表2 機器人清掃試驗數(shù)據(jù)
選取6塊相同材質(zhì)、相同面積的光伏組件構(gòu)成兩個清掃區(qū)域,在相同傾角和輻照度下,從上層監(jiān)測系統(tǒng)提取數(shù)據(jù)對機器人清掃過的區(qū)域與未清掃區(qū)域進行對比。如圖10(a)所示,未清掃區(qū)域的最大功率點下降,曲線發(fā)生變形扭曲。經(jīng)過機器人全覆蓋清掃的區(qū)域,最大功率點上升,實測電流-電壓特性曲線趨于正常(圖中環(huán)境溫度為23.9℃;輻射度為546.9 W/m2)。如圖10(b)所示,清掃機器人對某一清掃區(qū)域進行全覆蓋清掃后,獲取其10 min的實測功率曲線。由實測功率曲線可得,已清掃區(qū)域的實測輸出功率相對于未清掃區(qū)域,經(jīng)計算平均增加約14%。
圖10 光伏組件陣列輸出曲線Fig.10 Output curve of PV module array
在光伏陣列試驗平臺上進行了有障礙環(huán)境下的路徑規(guī)劃試驗、光伏陣列邊界層的防跌落試驗、多點巡航的全覆蓋清掃試驗和已清掃區(qū)域發(fā)電性能檢測試驗,結(jié)果表明,本文提出的基于分層代價地圖的導(dǎo)航方法解決了光伏電站清掃機器人可能出現(xiàn)的跌落問題,并且機器人可以實現(xiàn)合理避障功能和全覆蓋清掃工作。清掃后光伏陣列實測電流-電壓特性曲線趨于正常,輸出功率上升,機器人能夠高效地完成清掃工作。