江西省減災(zāi)備災(zāi)中心 王 茜
機器人行走過程中需要對障礙物進行躲避。躲避的方法和策略依靠障礙物的大小、形狀、位置分布及距離參數(shù)的分析與計算。此過程是動態(tài)地、隨機地,需要實時的分析與判別,基于目標方向的導向線周邊環(huán)境的探測,移動機器人能夠在所設(shè)定的避障算法的控制下,正確的選擇方向,繞過障礙,步進到終點。在MATLAB/GUI軟件平臺上對該避障算法進行仿真實驗,結(jié)果證明了該方法的有效性。
科學技術(shù)不斷地發(fā)展和進步,伴隨著應(yīng)用領(lǐng)域的深入和深化,研究人員大多會采用一個實驗平臺來驗證設(shè)想、思路、算法等等,由此仿真的大量出現(xiàn),同時仿真也進一步推動了科學技術(shù)的進步。本文采用MATLAB/GUI編程工具對移動機器人的行走路徑進行規(guī)劃、計算、分析,并仿真,為移動機器人這一人工智能領(lǐng)域的主要工具進行仿真實驗,驗證規(guī)避障礙、優(yōu)化路徑的規(guī)劃設(shè)計方法,對實際行業(yè)應(yīng)用領(lǐng)域的行走機器人技術(shù)的發(fā)展有著積極的推動意義。而如今社會的物流、礦產(chǎn)、工業(yè)、農(nóng)業(yè)、醫(yī)療衛(wèi)生的生產(chǎn)和應(yīng)急救援等方面的機器人代替人的應(yīng)用是越來越多,提高了生產(chǎn)、救援效率,減少生產(chǎn)成本,降低救援危險系數(shù),由此得出本文的路徑規(guī)劃的仿真研究。
機器人的行走或移動,首先是有一個目標方向,而且行走過程中是不停的判斷和調(diào)整方向的選擇,現(xiàn)實當中的機器人,在其移動的路徑上通常會有各種情況,如有各種隨機形狀或隨機性質(zhì)的障礙物分布在其前進的路上,包括障礙物占領(lǐng)其前進引導線、障礙物在前進引導線左側(cè)、障礙物在前進引導線右側(cè)等三種情況,有時機器人在移動的過程中還要完成某種特殊的作業(yè),因此機器人在行走時要檢測障礙的分布,避免觸碰,實時調(diào)整方向與路線,最終完成預(yù)先設(shè)計好的任務(wù)。
首先建立坐標系,以引機器人目標路線的導線方向為坐標Y軸,其前進方向為正方向,以障礙物中心且與Y軸垂直的直線為坐標X軸,其中障礙物中心點即為坐標原點。對機器人大小進行假設(shè),寬和長改為2b和2a。設(shè)機器人初始位于A點,障礙物大小為長2d,寬2e,設(shè)機器人與障礙物最近距離為L,為防止觸碰,距離L為機器人表面到障礙物表面的最近距離。行進的機器人借助于探測器或傳感器進行檢測周圍的障礙物,當發(fā)現(xiàn)行進正前方有障礙物時,此時的機器人就應(yīng)該考慮怎么躲避障礙,簡單方法就是通過轉(zhuǎn)彎,即左轉(zhuǎn)或右轉(zhuǎn)。這里為了簡化令機器人優(yōu)先選擇左轉(zhuǎn)。接著,假設(shè)機器人在避開障礙物后位于B點位置,此時機器人因避障而左轉(zhuǎn),調(diào)整了行進方向,原有的行進路線上的障礙變成了機器人右側(cè)的障礙,即障礙位于現(xiàn)機器人行進路線的右側(cè),設(shè)距離為M。機器人繼續(xù)行進,在成功避障后需試圖回歸原引導線向終點出發(fā)。具體情況如圖1所示。
圖1 障礙物占領(lǐng)了引導線
障礙物超過引導線左邊的最大距離為C,機器人安全通過B點,機器人最右端與障礙物最左端的距離為M。從A點運行到B點需要偏轉(zhuǎn)角度θ1:
從A點運行到B點需要經(jīng)過的路徑為W1:
機器人從A點運行到B點需要的行駛時間T1:
機器人從B運行到C需要偏轉(zhuǎn)的角度為β1:
從B點運行到C點需要經(jīng)過的路徑為R1:
障礙物位于機器人前進引導線的左側(cè),因障礙物和機器人的外觀、大小、體積等因素,機器人正常行使依然有可能觸碰障礙物,因此需要設(shè)計機器人的避障策略,障礙物在左側(cè),因此機器人需要向右調(diào)整方向進行行進,行進后拉大與障礙物之間的距離,在保證不會觸碰之后,機器人需要回到原定的終點進行行進,即左轉(zhuǎn)回到原方向,具體位置關(guān)系與行進示意如圖2所示。
圖2 障礙物在機器人前進引導線左邊
障礙物右端與引導線的距離N,機器人從A運行到B需要偏轉(zhuǎn)的角度為θ3。據(jù)三角函數(shù)得:
機器人從A點到B點需要經(jīng)過的路徑為W3:
機器人從B點運行到C點需要偏轉(zhuǎn)的角度為β3。根據(jù)三角函數(shù),可得:
機器人從B運行到C需要經(jīng)過的路徑為R3:
障礙物在機器人行進方向引導線的右邊,處理方法與第2種情況類似,此處不再贅述。
由此對機器人行進的過程進行了詳細分析,在實際應(yīng)用中,因路線的精確度或平滑度的要求,可依照這種方法將障礙物與機器人二者的位置關(guān)系進一步的細分,分成5種情況、7種情況或更多。
經(jīng)驗系統(tǒng)是基于現(xiàn)實世界實際的規(guī)則與實際效果的分析,歸納和推理出的一套理論,也稱專家系統(tǒng),這是人工智能的主要基礎(chǔ)信息,并將此賦予計算機程序,解決專門的實際問題。經(jīng)驗系統(tǒng)結(jié)構(gòu)如圖3所示。系統(tǒng)結(jié)構(gòu)由知識庫、推理機、知識獲取、領(lǐng)域?qū)<?、推理咨詢和專家系統(tǒng)用戶等幾個模塊構(gòu)成,其中知識庫又包含規(guī)則庫和數(shù)據(jù)庫;推理機包括解釋程序和調(diào)度程序。
圖3 專家系統(tǒng)結(jié)構(gòu)
機器人行走路徑規(guī)劃控制器的設(shè)計結(jié)構(gòu)如圖4所示,包括行為權(quán)重控制器、趨向目標行為控制器、避障行為控制器、沿障礙物邊緣運動行為控制器等4個部分。其中由移動機器人運動的線速度(vO,vG,V A)和轉(zhuǎn)動速度(ωO,ωG,ωA)和趨向目標行為權(quán)重GW、避障行為權(quán)重OW、沿障礙物邊緣運動行為權(quán)重AW等輸入輸出變量進行加權(quán)融合,得行為融合公式:
圖4 路徑規(guī)劃控制器邏輯結(jié)構(gòu)
式中,V為融合后輸出的移動機器人的線速度,W為融合后輸出的移動機器人的轉(zhuǎn)動速度。
機器人開始位于起點,準備朝終點出發(fā),借助探測器或傳感器,檢測周圍的障礙情況,判斷前進步長內(nèi)是否有障礙物,有則按前述方式分析障礙物方位、距離等信息,進行避障,無則沿導向線前進固定的步長,前進完成判斷是否到達終點,未到達終點則繼續(xù)探測、分析、避障等,繼續(xù)行走,直至到達終點。算法流程如圖5所示。
圖5 行走控制算法
仿真主程序包括機器人的運行軌跡和避障過程。行進軌跡算法流程如圖6所示;主程序的算法流程如圖7所示。
圖6 機器人行進軌跡算法流程
圖7 主函數(shù)流程
MATLAB是高級計算軟件,它提供了大量的高性能的數(shù)值計算函數(shù)和程序,極大地方便了研究人員的仿真分析,在科學計算、信息處理、控制理論等多個領(lǐng)域被廣泛應(yīng)用。MATLAB提供極為方面的GUI應(yīng)用接口,GUI圖形用戶界面由窗口、菜單欄、工具欄和左側(cè)的快捷按鈕組成,每一部分都有特定的功能,可以根據(jù)不同的需求選擇按鈕并排版。
仿真實驗采用GUI界面進行仿真信息交互。界面設(shè)計4個方面信息:(1)工作區(qū)域;(2)起始點和目標點的位置;(3)障礙物數(shù)量及形狀;(4)規(guī)劃的避障路徑。界面設(shè)計如圖8所示。
圖8 移動機器人路徑規(guī)劃界面
設(shè)計好GUI界面后,將輸入輸入信息代入程序,程序依據(jù)前述算法進行編寫,進行基于模糊控制的移動機器人路徑規(guī)劃仿真實驗,步驟如下:
(1)設(shè)置一個二維空間為機器人的工作環(huán)境,模擬一個封閉的房間地面情形。
(2)設(shè)定機器人運動的起始和目標位置坐標、地面上的障礙物個數(shù)及其形狀。
(3)機器人依據(jù)編寫好的模糊控制算法程序進行避障行進。
(4)不斷檢測是否已到達終點,是則中止,否則轉(zhuǎn)入第3步繼續(xù)行進。
仿真過程中設(shè)置起點坐標和終點坐標分別為[0,0]和[500,500],模擬封閉房間環(huán)境中的障礙物數(shù)量為10個、30個和50個,形狀分別為正方體、圓柱體或兩種隨機混合的三種情況進行仿真實驗,仿真結(jié)果如圖9、圖10、圖11所示,分別顯示出了理想航線、運動軌跡以及路徑步數(shù)等信息。
圖9 正方形障礙物數(shù)量10的仿真實驗結(jié)果
圖10 圓形障礙物數(shù)量30的仿真實驗結(jié)果
圖11 隨機障礙物數(shù)量50的仿真實驗結(jié)果
圖中,在理想路線上,明顯的分布著各種形狀、大小不一的障礙物,其中圖9和圖10中在沿著理想路線前進時,遇到不同形狀的障礙物移動機器人能夠在路徑規(guī)劃控制算法的程序控制下,正確繞過障礙物并繼續(xù)行進,直至終點;圖11中不僅能夠繞過不同形狀的障礙物,在障礙物連續(xù)分布的情況下,該算法依然能夠繞過多個障礙,在偏離理想路線上仍然能夠找出一條通往目的地的合理路線。
文中對當下非常流行的機器人行走的路徑進行規(guī)劃設(shè)計,提出遇到障礙物的躲避和繞行控制思路。進一步地設(shè)計經(jīng)驗系統(tǒng)和路徑規(guī)劃控制器,編排避障控制算法和行走軌跡控制算法。最后借助于MATLAB/GUI仿真軟件編寫移動機器人行走避障的仿真程序,并設(shè)置不同的障礙類型和障礙數(shù)量,進行仿真實驗。實驗結(jié)果表明移動機器人能夠在各種障礙的隨機分布的環(huán)境下找出行進的規(guī)劃路線,行走至目的地,驗證了避障算法的有效性。