劉子毅,李鐵軍,孫晨昭,史家浩,劉今越
河北工業(yè)大學,天津 300131
當前中國的建筑業(yè)體量較大,但信息化和智能化程度較低,與時代發(fā)展進步已不相適應,急需對行業(yè)進行創(chuàng)新改造[1],發(fā)展安全、高效、智能化的建筑機器人是傳統(tǒng)建筑業(yè)的迫切需求。自主路徑規(guī)劃與避障是實現建筑機器人自主作業(yè)的關鍵技術。當前,針對建筑機器人導航的研究較少,SLAM(simultaneous localization and mapping)方法是傳統(tǒng)移動機器人領域解決環(huán)境感知與定位導航的有效手段之一[2]。該方法需要機器人在未知環(huán)境下進行完整的巡視,應用自身傳感器采集有效信息并建立環(huán)境地圖,且數據計算量較大?,F有建筑機器人的質量與體積較大且作業(yè)空間受限,傳感器無法采集到完整的有效信息,并不適合應用傳統(tǒng)SLAM方法建立完整的環(huán)境地圖。在移動機器人的路徑規(guī)劃方面,分為全局路徑規(guī)劃算法與局部避障算法[3]。常用的全局路徑規(guī)劃算法有基于節(jié)點的A*算法和D*算法[4]、基于模型的人工勢場法[5]等;局部避障算法有DWA(dynamic window approach)動態(tài)窗口法等[6]。其中,A*算法是一種有效的網格地圖路徑搜索方法,但傳統(tǒng)A*算法規(guī)劃的路徑與障礙物相鄰[7],不利于建筑機器人在路徑跟蹤時規(guī)避碰撞風險。文獻[8]提出了一種結合了A*算法與DWA算法的路徑規(guī)劃方法,該方法既可獲得全局最短路徑又能實時避障,但未考慮機器人的安全性問題,將該方法應用于建筑機器人安全風險較高。文獻[9]將安全A*算法與自適應窗口法結合,提高了機器人在復雜動態(tài)環(huán)境下安全避障的能力,但規(guī)劃出的路徑平滑度較低,建筑機器人慣性較大,在對該路徑進行跟蹤時會出現較大誤差。文獻[10]改進了A*算法,采用自適應圓弧算法與加權障礙物步長調節(jié)算法縮短了路徑長度增加了平滑度,在地圖較大時,該算法的搜索時間較長,不符合建筑機器人施工的實時性。文獻[11]介紹了一種在適用于3D空間的改進型A*算法,提出了一種基于Unity3D引擎的機器人虛擬仿真方法,并證明了其方法的可行性與高效性,該物理引擎對建筑機器人的運動以及碰撞檢測有較好的仿真能力,可用于構建建筑機器人施工的虛擬環(huán)境。
建筑機器人無法應用SLAM方法建立環(huán)境地圖,且對路徑的安全性以及平滑度要求較高,作業(yè)空間復雜,現有的路徑規(guī)劃算法無法滿足該需求。本文在團隊研究成果[12]的基礎上,對A*算法進行改進,在路徑規(guī)劃時考慮建筑機器人的通過性與安全性,結合冗余節(jié)點的判定與剔除方法,保證全局路徑最優(yōu)。結合雷達獲取的現實環(huán)境信息,對DWA算法進行改進,考慮了機器人輪廓信息,保證了局部路徑最優(yōu)。
BIM(building information model)是一種創(chuàng)新的理念與方法,通過一個共同的數據標準IFC(industry foundation classes),集成整合建筑工程項目的各種相關信息[13]。以三維數字技術為基礎,構建數字化、智能化建筑信息模型,被廣泛應用于建筑規(guī)劃設計、施工建設和運營管理的各個階段[14]。因此,本文基于BIM構建了建筑機器人作業(yè)的導航地圖,并應用BIM信息構建建筑機器人導航地圖。
以本校某實驗樓為場景,如圖1所示,應用Autodesk Revit軟件建立BIM模型,并給出了BIM信息提取的方法。
圖1 建筑物BIM模型圖Fig.1 BIM model
BIM信息精確提取是構建建筑機器人導航地圖的前提條件,而IFC是BIM模型的共同數據標準,因此,本文給出了一種BIM模型信息的提取方法,通過對IFC文件進行解析,從而得到BIM模型中各個實體精確的位置信息。
根據BIM模型信息的提取方法,對IFC文件進行解析,提取出BIM模型中三樓的各個實體的2D/3D精確位置信息如圖2所示。
圖2 BIM實體位置信息Fig.2 BIM location information for entity
建筑機器人由于其體積、質量較大,且作業(yè)空間受限,無法應用傳統(tǒng)SLAM方法獲取完整的地圖信息,因此,本文提出了一種基于BIM模型的建筑機器人導航地圖映射方法。
根據提取得到的BIM信息,在2維空間中映射為柵格地圖,其映射規(guī)則如下:
(1)移動BIM模型所有實體到正坐標系:
其中,X、Y為實體坐標,Xmin、Ymin為未移動坐標系中最小坐標。
(2)柵格地圖的行數、列數:
其中,N r為柵格地圖行數,N c為柵格地圖列數,Xmax、Ymax為坐標系移動后最大坐標,s為步長,考慮到可能出現的未除盡問題,應對障礙物進行補齊,將補齊的部分視為障礙物。
最終,可得到2維柵格化地圖,由柵格Mij構成:
其中,M ij=0代表無障礙物柵格,M ij=1表示障礙物柵格,M ij=2表示起始點柵格,M ij=3表示終點柵格。
A*算法是一種可實現全局路徑規(guī)劃的啟發(fā)式搜索算法,通過定義全局路徑搜索代價函數獲取最優(yōu)節(jié)點,其代價函數定義為:
式中,n代表當前節(jié)點,F(n)是當前節(jié)點n的代價函數,G(n)是移動機器人從初始節(jié)點到達節(jié)點n的實際代價值,H(n)是從當前節(jié)點n到達目標點的代價值,即A*的代價函數。選用Manhattan距離作為啟發(fā)函數,即:
式中,(n x,n y)為當前節(jié)點柵格中心坐標,(g x,g y)為終點柵格中心坐標。
原始A*算法在搜索過程中,搜索出的路徑往往貼近障礙物且冗余節(jié)點較多,未考慮移動機器人自身高度、寬度等因素對通過性的影響[15],建筑機器人應用該方法進行全局路徑規(guī)劃可能會造成不可挽回的碰撞損失,冗余節(jié)點較多造成建筑機器人頻繁轉向引起位置誤差較大,未考慮輪廓信息可能會造成規(guī)劃出的路徑建筑機器人無法進行跟蹤。因此,本文改進了原始A*算法,充分考慮了建筑機器人的輪廓特征,考慮其通過性與安全性,其改進方法為:
(1)設建筑機器人初始輪廓寬度w r、高度h r,虛擬空間中門的寬度w d、高度h d,σ為安全系數,如果:
則將該“門”的位置對應的柵格視為不可通過。
(2)如圖3所示,設搜索過程openlist中F最小的節(jié)點為best,在best的后續(xù)節(jié)點subs中,設節(jié)點sub中心到障礙物柵格中心的距離為l s-o,δ為安全系數,如果l s-o<δw r+s,則不考慮該節(jié)點sub作為搜索對象。
圖3 改進A*算法搜索策略圖Fig.3 Improved A*algorithm search strategy
在柵格地圖中,以柵格(142,20,0)為起點S,以柵格(30,8,0)為終點D,在Matlab環(huán)境下,使用不同A*算法進行搜索,得到的結果如圖4所示。
圖4(a)為原始A*算法搜索所得結果,可以看出,原始A*算法搜索出的路徑貼近障礙物,且并未判斷柵格地圖中“門”的通過性問題。因此,原始的A*算法得出的路徑不適合建筑機器人進行路徑跟蹤。
圖4 不同A*算法搜索結果圖Fig.4 Different A*algorithm search result
圖4(b)中考慮了建筑機器的安全性,在機器人與障礙物之間預留了足夠的安全距離,提升了搜索路徑的安全性。將建筑機器人的輪廓與點云模型中“門1”的信息比較,將該門視為障礙物,考慮了建筑機器人的通過性后可得到圖4(c)中路徑。從圖4(c)可以看出,搜索出的路徑存在著大量的冗余節(jié)點,該路徑并不適合機器人進行軌跡跟蹤,本文給出了所得路徑的優(yōu)化方法:
設路徑中節(jié)點為ni,節(jié)點的方向向量為n i如果:
(1)n i與n i-1為相鄰節(jié)點且n i=n i-1,則n i為冗余轉折點。
(2)n i與ni-1為相鄰節(jié)點且n i≠n i-1,若連接n i+1與n i-1的直線可通過,則n i為冗余轉折點。
刪除冗余節(jié)點后的路徑如圖4(d)所示,另外,如表1所示,本文從轉折角度、搜索時間、路徑長度三個方面定量地對分析了改進A*算法的性能。
表1 原始A*算法與改進A*算法的性能比較Table 1 Performance comparison between original A*algorithm and improved A*algorithm
當前,移動機器人依靠多種傳感器融合技術感知周圍環(huán)境信息,根據檢測到的障礙物信息,采用局部路徑規(guī)劃算法完成局部避障。DWA是一種廣泛應用的方法,在移動機器人高速運動時具有良好的性能[15]。
傳統(tǒng)DWA算法未考慮機器人的機器人自身輪廓且在復雜環(huán)境下工作時容易陷入局部最小陷阱,建筑機器人體積與慣性較大且作業(yè)環(huán)境復雜,應用該方法進行導航容易引起不可挽回的碰撞損失且無法得到局部最優(yōu)路徑造成不必要的時間及能源消耗。因此,本文在改進A*算法得到全局路徑的基礎上改進DWA算法,A*算法與DWA算法的結合方式具體為:
改進A*算法根據地圖搜索,經過對冗余節(jié)點的判斷與刪除后,得到的全局路徑由關鍵節(jié)點、起點與終點組成即path={S,P1,P2,…,Pi,D},將path中的起點S與p1節(jié)點設置為改進DWA算法的起點與終點,如果機器人與節(jié)點距離小于臨界值即R1≤τ,則判定機器人到達p1節(jié)點,并將改進DWA方法終點切換至p2,經過多次切換后最終切換至D并且R i≤τ時,認定為導航結束。在應用改進DWA算法進行局部避障過程中應用激光雷達獲取真實局部信息并充分考慮了建筑機器人的輪廓特征,進而提升了機器人的安全性,并保證了局部路徑最優(yōu)。
原始DWA方法主要是在速度空間(v,w)中采樣多組速度,并模擬機器人在這些速度下一定時間內的軌跡。在得到多組軌跡后,對這些軌跡進行評價,選擇最優(yōu)軌跡所對應的速度驅動機器人運動。
移動機器人在時間間隔Δt內運動的運動學模型為:
在速度空間(v,w)中,存在無窮多組速度,根據移動機器人自身以及移動環(huán)境設定移動機器人采樣速度的限制條件:
(1)移動機器人本體速度約束:
其中,vmin、vmax為機器人的最小、最大線速度,wmin、wmax為機器人的最小、最大角速度。
(2)移動機器人加速度約束:
其中,vc、w c為移動機器人的當前速度,v?a、v?b為線速度的最大加、減速度,w?a、w?b為角速度的最大加、減速度。
(3)移動機器人安全約束:
其中,dist(v,w)為速度(v,w)對應軌跡上移動機器人相對障礙物的最近距離。
在采樣的速度組中,有若干組軌跡可行,因此,采用評價函數對每組軌跡進行評價,選擇最優(yōu)軌跡所對應的速度驅動機器人,其評價函數如下:
其中,heading(v,w)方向角評價函數,表示移動機器人在當前的采樣速度下,達到模擬軌跡末端時的朝向和目標之間的角度差距;dist(v,w)表示當前軌跡上移動機器人與障礙物之間的最近距離;velocity(v,w)為當前模擬速度的大??;ε為平滑函數;α、β、γ為加權系數。
本文改進了原始DWA算法,選用激光雷達作為傳感器對現實環(huán)境進行實時監(jiān)測。設激光雷達的最大測量范圍為dmax,視場為[φmin,φmax],角度分辨率為Δφ,機器人航向對應的掃描角度為φrob,每次掃描后,得到的測量距離為{d1,d2,…,d n},測量角度為φi=φmin+(i-1)Δφ,測量到障礙物邊緣的距離與角度為d j、φj,根據已知的建筑機器人輪廓參數rrob對障礙物邊緣進行擴展,擴展角度θj=arctan(rrob/d j),設可通過的角度區(qū)間為[φj_1+θj,φj_2-θj]。
如圖5所示,結合機器人的輪廓特征對原始DWA方法的評價函數進行改進,設可通過的角度區(qū)間的區(qū)間中點為φmid,速度軌跡對應的角度φi_o,在區(qū)間[φj_1+θj,φj_2-θj]中,其角度評價函數為:
圖5 考慮機器人輪廓的激光雷達信息圖Fig.5 Lidar information map of considering robot profile
因此,改進DWA的安全評價函數為:
為了驗證本文改進A*算法與改進DWA方法的有效性,應用Unity3D引擎構建了建筑機器人工作的虛擬環(huán)境,并對建筑機器人、激光雷達進行了仿真模擬,進而分析算法的有效性。
以本校某實驗樓為仿真場景,將該實驗樓的BIM模型導入Unity3D引擎進行分析。根據BIM中族的分組情況,對不同的實體添加碰撞體,門實體可通過,視為非碰撞體,墻實體不可通過,視為碰撞體,如圖6所示。碰撞體可應用于仿真環(huán)境下的碰撞檢測,進而構建建筑機器人作業(yè)的仿真環(huán)境。
圖6 建筑機器人作業(yè)仿真環(huán)境Fig.6 Work simulation environment of construction robot
應用SW軟件建立建筑機器人模型,并將該模型導入到Unity3D引擎,如圖7所示。按照表2中的參數對移動機器人底盤進行設置,并依據底盤的運動學模型控制底盤模型運動。為了獲取機器人自身的運動狀態(tài)信息與仿真環(huán)境信息,本文根據2D激光雷達的工作原理進行激光雷達仿真,應用Unity3D引擎中的光線投射模擬激光,根據表3進行參數設置,最終可由仿真激光雷達獲得虛擬環(huán)境中障礙物的距離與角度信息。
表2 移動機器人底盤參數Table 2 Mobile robot parameters
表3 激光雷達參數Table 3 Lidar parameters
圖7 Unity3D引擎下的建筑機器人模型Fig.7 Construction robot model under Unity3D engine
應用Unity3D引擎,在虛擬環(huán)境中對改進A*算法與改進DWA算法進行仿真。根據虛擬空間信息,應用改進A*算法進行全局路徑規(guī)劃,建筑機器人初始輪廓寬度w r=730 mm、高度hr=1 600 mm,σ=1.2,δ=1.0,得到的全局路徑與節(jié)點p i,如圖8(a)所示,該全局路徑考慮了機器人的輪廓特征對通過性的影響,同時為機器人與障礙物之間保留了足夠的安全距離,并刪除了冗余節(jié)點,提升了全局路徑的平滑度。因此,全局路徑的節(jié)點數由57降低至6,轉折角由810°降低至270°。
評價函數各參數為:α=0.05,β=0.2,γ=0.1,ω=0.2,運動學時間間隔為0.1 s,預測周期為3.0 s,改進DWA方法以機器人的安全距離距離dist(v,w)與安全角度angle(v,w,φi_o)作為安全距離評價,并考慮了機器人輪廓的影響,提升了機器人的安全性。在Unity3D環(huán)境中,在改進A*算法得到的節(jié)點p i間應用改進DWA方法,當節(jié)點pi間無障礙物時,得到的軌跡如圖8(b)~(d)所示。當節(jié)點p i間存在障礙物時,激光雷達探測到的障礙物信息如圖8(e)所示,原始DWA算法與改進DWA算法得到的軌跡如圖8(f)、(g)所示。
圖8 仿真結果圖Fig.8 Simulation results
如表4所示,從路徑長度與運行時間兩個方面對改進DWA算法進行評價,改進后的DWA算法考慮了機器人輪廓對安全性的影響,路徑長度比原始DWA算法減少13.5%,所需時間僅比無障礙物時增加3.7%。
表4 原始DWA算法與改進DWA算法的性能比較Table 4 Performance comparison between original DWA algorithm and improved DWA algorithm
本文采用的實驗平臺如圖9(a)所示,移動機器人底盤采用松靈機器人,施工機械臂采用UR5機械臂,選用YDLIDAR G4 2D激光雷達感知周圍信息,以及聯想筆記本電腦i5-10210U處理器。通過提取出的BIM信息與激光雷達獲取的現實環(huán)境信息結合,通過發(fā)送RS232串口數據控制移動機器人平臺??紤]到機器人在運行過程中由于路面不平整、地面摩擦力等對機器人底盤運動的影響,可能使機器人坐標與改進A*節(jié)點坐標出現誤差,因此,本文增加了UWB(ultra wideband)超寬頻定位系統(tǒng)實時獲取移動機器人的位置,如圖9(b)所示,并進行實時的位置修正。
圖9 實驗結果圖Fig.9 Experimental results
為了驗證算法的可行性,應用該實驗平臺對改進后的算法進行驗證。實驗起點、實驗終點、障礙物位置以及移動機器人參數設置與仿真場景中一致,如圖9(c)所示,移動機器人從起點出發(fā)經過p1節(jié)點到達p2節(jié)點,為了保證機器人速度的連續(xù)性,當機器人與p2節(jié)點距離為0.3 m時,將目標節(jié)點由p2節(jié)點切換至p3節(jié)點,圖9(d)表示移動機器人經過p2節(jié)點向p3節(jié)點運動的過程,圖9(e)為機器人通過檢測激光雷達到障礙物,圖9(f)為機器人考慮自身輪廓對安全性的影響應用改進DWA算法并繞過障礙物,圖9(g)為機器人到達可通過門的位置,通過門后經過圖9(h)中的拐角后最后到達終點位置。整個過程歷時約50 s,整個路徑長度為37.4 m,由于使用UWB定位芯片對移動機器人進行位置修正,導致路徑長度比仿真結果增加了約5 m。該實驗驗證了算法的可行性,行駛路徑保持最優(yōu)并保證局部路徑最優(yōu),并引入了UWB定位模塊解決了機器人移動時產生的累計誤差問題。
本文通過BIM模型構建建筑機器人施工的虛擬環(huán)境,并給出了提取BIM信息的方法,并構建導航地圖,使用經過改進A*算法進行全局路徑規(guī)劃,考慮了建筑機器人的外部輪廓對通過性的影響,為建筑機器人與障礙物間預留了足夠的安全距離,提升了機器人的安全性,刪除了冗余節(jié)點,改進后A*算法的搜索時間比改進前減少了107.19 s,路徑轉折角度減少50%。在節(jié)點間應用改進DWA算法,考慮了機器人的輪廓特征,提升了機器人的安全性,引入了DWA定位模塊,使機器人可以實時校正位置誤差,提升了機器人的精度。改進后的DWA算法考慮了機器人輪廓對安全性的影響,路徑長度比原始DWA算法減少13.5%,所需時間僅比無障礙物時增加3.7%。
本文應用UWB定位模塊獲取機器人位置,但未對機器人的姿態(tài)進行實時評價,因此,未來可引入IMU模塊進行信息融合方面的研究。