本發(fā)明涉及一種多機(jī)器人調(diào)度方法,具體涉及一種通過人為添加機(jī)器人之間的排斥力來調(diào)度多個機(jī)器人,避免機(jī)器人互相干擾碰撞的調(diào)度方法。
背景技術(shù):
具有定位導(dǎo)航的室內(nèi)機(jī)器人具有越來越多的應(yīng)用。但是僅將兩臺完全相同的機(jī)器人放在同一個環(huán)境工作會發(fā)生相互干擾,這就需要一套調(diào)度系統(tǒng)根據(jù)各個機(jī)器人的狀態(tài)合理分配任務(wù)與資源,避免機(jī)器人之間互相干擾。目前常見的做法是劃分各個機(jī)器人的工作區(qū)域以實(shí)現(xiàn)互不干擾,但這就限制了機(jī)器人的工作范圍。本發(fā)明公開了一種方法,使得室內(nèi)移動的多臺機(jī)器人在預(yù)設(shè)的路徑上行走時合理避讓其他機(jī)器人,互相不發(fā)生干擾碰撞。
技術(shù)實(shí)現(xiàn)要素:
本申請解決了多個機(jī)器人在同一工作環(huán)境工作時會互相干擾碰撞的問題。
為解決上述技術(shù)問題,本申請采用以下技術(shù)方案,具體內(nèi)容如下:一種基于斥力勢場的多機(jī)器人調(diào)度方法,包括以下步驟:
a. 機(jī)器人使用室內(nèi)基站得到絕對坐標(biāo),將絕對坐標(biāo)發(fā)送到調(diào)度系統(tǒng)。
b.調(diào)度系統(tǒng)計(jì)算兩兩機(jī)器人之間的距離。
c.根據(jù)距離計(jì)算出兩兩機(jī)器人之間的斥力,距離越近斥力越強(qiáng),反之越弱。采用公式force=-0.3*log((distance-0.8)/2),其中distance表示兩兩機(jī)器人之間的距離,log為以10為底的對數(shù)。
d.將每一對斥力發(fā)送給相關(guān)的兩臺機(jī)器人。
e.機(jī)器人收到一組斥力,分別是與其他每一臺機(jī)器人的斥力,取方向?yàn)閮蓛蓹C(jī)器人相互排斥的方向得到斥力向量,計(jì)算出斥力向量的合力得到總斥力向量。
f. 機(jī)器人根據(jù)路徑規(guī)劃出的路線,取沿路徑行走的向量作為原始驅(qū)動力向量。
g. 將原始驅(qū)動力向量和斥力的合力向量求和得到最終驅(qū)動力向量。
h. 將此最終驅(qū)動力向量作為機(jī)器人的運(yùn)動控制輸入。
i. 機(jī)器人兩行動輪采用PID控制器控制,接收上一步的最終驅(qū)動力向量作為輸入,計(jì)算出電機(jī)應(yīng)有的輸入電壓。
j. 將控制電壓發(fā)送給電機(jī)驅(qū)動芯片,實(shí)現(xiàn)機(jī)器人的運(yùn)動。
進(jìn)一步地,步驟a中,每臺機(jī)器人使用室內(nèi)基站,結(jié)合GPS定位方法,定位出機(jī)器人的當(dāng)前坐標(biāo),當(dāng)前坐標(biāo)即為絕對坐標(biāo)。
進(jìn)一步地,步驟c中,斥力的大小根據(jù)公式force = -0.3*log((distance-0.8)/2)計(jì)算,其中distance表示兩兩機(jī)器人之間的距離。
進(jìn)一步地,步驟f中,路徑規(guī)劃方法為:每臺機(jī)器人的行走路徑在圖上使用單源最短路徑方法,得出自身的行走路徑最優(yōu)解。
進(jìn)一步地,地圖采用關(guān)鍵點(diǎn)與關(guān)鍵點(diǎn)之間的連線表示。關(guān)鍵點(diǎn)與關(guān)鍵點(diǎn)的連線以“圖”為數(shù)據(jù)結(jié)構(gòu)。
該方法能保證機(jī)器人在運(yùn)行過程中互相不碰撞,并具有如下特點(diǎn):
1. 在經(jīng)過十字路口時先到的略微減速通過,后到的停下來讓行之后再通過;
2. 在同一條道路上,前方的機(jī)器人遇到障礙停下來后,后方的會平緩減速停下;
3. 在交匯的三叉路口,略微靠前對會略微加速匯入,略微靠后對會略微減速匯入;
4. 在平行且相互靠近對兩條道路上對兩臺機(jī)器人會合理調(diào)節(jié)前后間距。
附圖說明
圖1.斥力與機(jī)器人距離之間的關(guān)系圖。
具體實(shí)施方式
如圖一所示為斥力與機(jī)器人距離之間的關(guān)系圖,斥力force = -0.3*log((distance-0.8)/2)。其中distance表示兩兩機(jī)器人之間的距離,log為以10為底的對數(shù),force表示斥力。從圖中可以直觀看出,斥力在機(jī)器人距離0.5米時趨近于無強(qiáng)大,可使機(jī)器人之間的距離不小于0.5米。在基于趨近于無窮遠(yuǎn)時斥力趨近于無窮小,即較遠(yuǎn)的機(jī)器人互不影響。較近的機(jī)器人會盡量避免相撞。
1. 絕對坐標(biāo)
每臺機(jī)器人使用室內(nèi)基站,結(jié)合GPS定位方法,定位出機(jī)器人的當(dāng)前坐標(biāo),當(dāng)前坐標(biāo)即為絕對坐標(biāo)。
2. 地圖表示
地圖采用關(guān)鍵點(diǎn)(如拐角,桌子,門)與關(guān)鍵點(diǎn)之間的連線表示。關(guān)鍵點(diǎn)與關(guān)鍵點(diǎn)的連線以“圖”為數(shù)據(jù)結(jié)構(gòu)。
3. 路徑規(guī)劃
每臺機(jī)器人的行走路徑在圖上使用單源最短路徑方法,得出自身的行走路徑最優(yōu)解。
4. 調(diào)度方法
a. 機(jī)器人使用室內(nèi)基站得到絕對坐標(biāo),將絕對坐標(biāo)發(fā)送到調(diào)度系統(tǒng)。
b. 調(diào)度系統(tǒng)計(jì)算兩兩機(jī)器人之間的距離。
c. 根據(jù)距離計(jì)算出兩兩之間的斥力,距離越近斥力越強(qiáng),反之越弱。采用公式force = -0.3*log((distance-0.8)/2),其中distance表示兩兩機(jī)器人之間的距離,log為以10為底的對數(shù),force表示斥力。
d. 將每一對斥力發(fā)送給相關(guān)的兩臺機(jī)器人。
e. 機(jī)器人收到一組斥力,分別是與其他每一臺機(jī)器人的斥力,取方向?yàn)閮蓛蓹C(jī)器人相互排斥的方向得到斥力向量,計(jì)算出斥力向量的合力得到總斥力向量。
f.機(jī)器人根據(jù)路徑規(guī)劃出的路線,取沿路徑行走的向量作為原始驅(qū)動力向量。
g.將驅(qū)動力向量和斥力的合力向量求和得到最終驅(qū)動力向量。
h.將此最終驅(qū)動力向量作為機(jī)器人的運(yùn)動控制輸入。
i. 機(jī)器人兩行動輪采用PID控制器控制,接收上一步的運(yùn)動向量作為輸入,計(jì)算出電機(jī)應(yīng)有的輸入電壓。
j.將控制電壓發(fā)送給電機(jī)驅(qū)動芯片,實(shí)現(xiàn)機(jī)器人的運(yùn)動。