一種應(yīng)用于掃地機(jī)器人的改進(jìn)勢場柵格法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及機(jī)器人技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用于掃地機(jī)器人的改進(jìn)勢場柵格 法。
【背景技術(shù)】
[0002] 目前在掃地機(jī)器人領(lǐng)域上,人工勢場法中機(jī)器人在障礙物附近震蕩而無法到達(dá)目 標(biāo)點、存在陷阱區(qū)域、臨近的障礙物之間不能發(fā)現(xiàn)路徑等問題,由于機(jī)器人作用范圍內(nèi)有隨 機(jī)分布的障礙物、以及目標(biāo)點靠近障礙物時導(dǎo)致所受合力方向經(jīng)常變化,使得機(jī)器人在移 動過程中會出現(xiàn)震蕩、擺動及無法到達(dá)目標(biāo)點現(xiàn)象。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足而提供一種應(yīng)用于掃地機(jī)器人的改進(jìn)勢 場柵格法,該改進(jìn)勢場柵格法可讓掃地機(jī)器人在已知環(huán)境中靜態(tài)構(gòu)建出全覆蓋路徑后再進(jìn) 行清掃,即使遇到無記錄在地圖文件中的障礙物時,仍能順利無碰避障,有效減少了路徑死 節(jié)點與清掃盲點。
[0004] 為達(dá)到上述目的,本發(fā)明通過以下技術(shù)方案來實現(xiàn)。
[0005] -種應(yīng)用于掃地機(jī)器人的改進(jìn)勢場柵格法,其特征在于,包括如下步驟: 步驟1 :將室內(nèi)環(huán)境地圖通過柵格法表示,劃分柵格的大小根據(jù)市面上掃地機(jī)器人尺 寸而定,每單元格約35cm2,障礙物超過單元格1/3則判定該柵格機(jī)器人不可達(dá); 步驟2 :確定機(jī)器人在柵格地圖中的起始位置C,通過牛耕式全覆蓋算法靜態(tài)規(guī)劃出遍 歷環(huán)境地圖的全局總路徑L ; 步驟3 :在柵格地圖上,將全局總路徑L拆分為連續(xù)的柵格點集合:
步驟4 :在路徑集合Lc中,將集合第一個點作為機(jī)器人的起始位置Xc= (X y) T,則集合 L中下一個目標(biāo)子點Oi會對機(jī)器人產(chǎn)生引力時采用引力勢場函數(shù),當(dāng)機(jī)器人上下左右四個 方向柵格中存在障礙物Xb時,會對機(jī)器人產(chǎn)生斥力,則采用斥力勢場函數(shù); 步驟5 :機(jī)器人在Oi-I處,判斷下一個目標(biāo)子點Oi是否被新增加的障礙物占據(jù),如圖4 所示,若被占據(jù)則再取下一個目標(biāo)子點〇i+l作為目標(biāo)點; 步驟6 :機(jī)器人每次移動時,根據(jù)當(dāng)前位置Xc與目標(biāo)子點Oi之間使用人工勢場法進(jìn)行 受力分析及移動,采用受力分析方法; 步驟7 :每當(dāng)機(jī)器人到達(dá)下一個目標(biāo)子點后,將當(dāng)前位置Xc=(x y)T設(shè)置為到達(dá)的目標(biāo) 子點Oi的坐標(biāo)值,并且將i值自加一,取下一目標(biāo)子點; 步驟8 :判斷機(jī)器人當(dāng)前位置是否已經(jīng)到達(dá)最終目標(biāo)點0,若否則跳轉(zhuǎn)到步驟4,繼續(xù)迭 代逐步移動;若是則算法結(jié)束,代表掃地機(jī)器人已經(jīng)完成了全覆蓋的清掃任務(wù)。
[0006] 其中,所述引力勢場函數(shù)為
所述斥力勢場函數(shù)為
其中,katt--引力勢場正比例增益系 數(shù);f:一一斥力勢場正比例增益系數(shù);一一障礙物影響距離,可根據(jù)實際情況而定; 一一機(jī)器人在當(dāng)前空間位置X。與障礙物X b的最短距離,約一個柵格長度。
[0007] 其中,所述受力分析方法的引力勢場函數(shù)的負(fù)梯度
其中,將引力Fatt分解到X與Y軸上的兩個分量Fatt_X與Fatt_Y,當(dāng)Oi與Xc的Y軸相 同,X軸不同時為
當(dāng)Oi與Xc的X軸相同,Y軸不同時為
其它情況為
[0008] 其中,當(dāng)障礙物與機(jī)器人距離小于,則其會對機(jī)器人產(chǎn)生斥力Frap:
[0009] 本發(fā)明的有益效果為:本發(fā)明所述的一種應(yīng)用于掃地機(jī)器人的改進(jìn)勢場柵格法, 針對人工勢場法中機(jī)器人在障礙物附近震蕩而無法到達(dá)目標(biāo)點、存在陷阱區(qū)域、臨近的障 礙物之間不能發(fā)現(xiàn)路徑等問題,提出了一種改進(jìn)的勢場柵格算法,結(jié)合牛耕式全覆蓋路徑 規(guī)劃算法使機(jī)器人在已知環(huán)境中規(guī)劃出全局清掃路徑的同時,具備動態(tài)無碰撞的避障能 力,本發(fā)明具有可讓掃地機(jī)器人在已知環(huán)境中靜態(tài)構(gòu)建出全覆蓋路徑后再進(jìn)行清掃,即使 遇到無記錄在地圖文件中的障礙物時,仍能順利無碰避障,有效減少了路徑死節(jié)點與清掃 盲點的優(yōu)點。
【附圖說明】
[0010] 下面利用附圖來對本發(fā)明進(jìn)行進(jìn)一步的說明,但是附圖中的實施例不構(gòu)成對本發(fā) 明的任何限制。
[0011] 圖1為本發(fā)明的流程圖; 圖2為本發(fā)明的路徑拆解圖; 圖3為本發(fā)明的障礙物繞行方法示意圖; 圖4為本發(fā)明的勢場柵格法受力分析示意圖。
【具體實施方式】
[0012] 下面結(jié)合具體的實施方式來對本發(fā)明進(jìn)行說明。
[0013] 如圖1所示,一種應(yīng)用于掃地機(jī)器人的改進(jìn)勢場柵格法,包括如下步驟: 步驟1 :將室內(nèi)環(huán)境地圖通過柵格法表示,劃分柵格的大小根據(jù)市面上掃地機(jī)器人尺 寸而定,每單元格約35cm2,障礙物超過單元格1/3則判定該柵格機(jī)器人不可達(dá); 步驟2 :確定機(jī)器人在柵格地圖中的起始位置C,通過牛耕式全覆蓋算法靜態(tài)規(guī)劃出遍 歷環(huán)境地圖的全局總路徑L ; 步驟3 :在柵格地圖上,將全局總路徑L拆分為連續(xù)的柵格點集合:
如圖2所示,η的值與路徑長短有關(guān),但保證最后一個點On與 總路徑終點0重合,當(dāng)機(jī)器人到達(dá)點On時表示算法結(jié)束; 步驟4 :在路徑集合Lc中,將集合第一個點作為機(jī)器人的起始位置Xc= (X y) Τ,則集合 L中下一個目標(biāo)子點Oi會對機(jī)器人產(chǎn)生引力時采用引力勢場函數(shù),當(dāng)機(jī)器人上下左右四個 方向柵格中存在障礙物Xb時,會對機(jī)器人產(chǎn)生斥力,則采用斥力勢場函數(shù); 步驟5 :機(jī)器人在Oi-I處,判斷下一個目標(biāo)子點Oi是否被新增加的障礙物占據(jù),如圖3 所示,若被占據(jù)則再取下一個目標(biāo)子點〇i+l作為目標(biāo)點,由于實際上機(jī)器人與障礙物有一 定尺寸,如果此時只依靠 A*算法繞過障礙物,則會導(dǎo)致碰撞,因此本文采用以A*為輔尋找 繞行目標(biāo)點、勢場法為主的實際移動方法,實現(xiàn)無碰避障的目的; 步驟6 :機(jī)器人每次移動時,根據(jù)當(dāng)前位置Xc與目標(biāo)子點Oi之間使用人工勢場法進(jìn)行 受力分析及移動,采用受力分析方法; 步驟7 :每當(dāng)機(jī)器人到達(dá)下一個目標(biāo)子點后,將當(dāng)前位置Xc=(x