一種基于仿生觸角的機(jī)器人自主導(dǎo)航方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于智能機(jī)器人領(lǐng)域,具體涉及一種基于仿生觸角的機(jī)器人自主導(dǎo)航方 法。
【背景技術(shù)】
[0002] Bug算法是一種基于傳感器的著名導(dǎo)航算法,它結(jié)合全局規(guī)劃和局部規(guī)劃的特點(diǎn), 其路徑規(guī)劃是在直接應(yīng)用傳感信息的基礎(chǔ)上引入一些全局信息,但只是一種"宏觀"意義上 的理論算法,多運(yùn)用于理論仿真,很難直接用于指導(dǎo)實(shí)際應(yīng)用。Bug算法假設(shè)機(jī)器人為一個(gè) 質(zhì)點(diǎn),無實(shí)體物理尺寸,并要求機(jī)器人具有全方位的障礙探測和沿著障礙物邊緣繞行的能 力,這一點(diǎn)對于實(shí)際機(jī)器人來說是極其困難的。Bug算法核心在于如何確定朝著目標(biāo)點(diǎn)直線 前進(jìn)和沿著障礙物邊緣繞行兩種基本行走模式的切換時(shí)機(jī)以及繞行障礙物邊緣的具體方 式。
【發(fā)明內(nèi)容】
[0003] 有鑒于此,本發(fā)明從仿生學(xué)的角度出發(fā),運(yùn)用神經(jīng)行為學(xué)原理提出了基于仿生觸 角的機(jī)器人自主導(dǎo)航算法。該方法是一種實(shí)用的改進(jìn)Bug算法,綜合考慮了機(jī)器人實(shí)體物理 尺寸和實(shí)際環(huán)境復(fù)雜性的影響,解決了 Bug算法兩種基本行走模式的切換時(shí)機(jī)及繞行障礙 物的具體方式,解決了 Bug算法難以實(shí)際應(yīng)用的問題。
[0004] 為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:
[0005] -種基于仿生觸角的機(jī)器人自主導(dǎo)航方法,所述自主導(dǎo)航方法從仿生學(xué)的角度出 發(fā),提出"仿生觸角"模型來理解傳感器信息,將機(jī)器人簡化成半徑為R:的圓,R:為機(jī)器人外 接圓半徑,并包括多個(gè)檢測單元。
[0006] 進(jìn)一步的,所述檢測單元分別為半圓環(huán)形觸角Dngs、Dngb和Dng。,半徑分別為R s、Rb 和R。,圓形觸角Lng,箭頭形觸角Hng,以及位于正前方位置由矩形(2RS Xa)加半圓形(半徑 Rs)組成的寬面積型觸角Sng,Dngs、Dngb用于檢測用于探測激光雷達(dá)180°范圍內(nèi)最近的障礙 物點(diǎn);Dng。用于檢測位于相遇點(diǎn)時(shí)障礙物所處的方位;Lng用于記錄依靠自身定位系統(tǒng)實(shí)時(shí) 得到的機(jī)器人位置;Hng用于記錄航向傳感器實(shí)時(shí)獲得的機(jī)器人航向角;Sng用于檢測當(dāng)前 傳感器探測范圍內(nèi)無障礙直線行走的最大距離s max;
[0007] 所述方法包括四種行走行為方式、六種行為觸發(fā)條件,所述行走方式為:對準(zhǔn)轉(zhuǎn) 向、直線前進(jìn)、避開轉(zhuǎn)向、弧線繞行,所述行為觸發(fā)條件為:對準(zhǔn)條件、偏航條件、相遇條件、 避開條件、脫離條件、終點(diǎn)條件;
[0008] 所述方法步驟如下:
[0009] 步驟1:從起點(diǎn)S向目標(biāo)點(diǎn)T行進(jìn),對準(zhǔn)轉(zhuǎn)向行為觸發(fā),判斷是否滿足對準(zhǔn)條件,若滿 足對準(zhǔn)條件,進(jìn)行步驟2,不滿足對準(zhǔn)條件,繼續(xù)執(zhí)行對準(zhǔn)轉(zhuǎn)向行為;
[001 0]步驟2:直線前行行為觸發(fā),判斷是否滿足偏航條件,若滿足偏航條件,返回步驟1, 不滿足偏航條件進(jìn)行步驟3;
[0011] 步驟3:判斷是否滿足偏航條件,若滿足相遇條件,進(jìn)行步驟4,不滿足相遇條件,進(jìn) 行步驟5;
[0012] 步驟4:避開轉(zhuǎn)向行為觸發(fā),判斷是否滿足避開條件,若滿足避開條件,進(jìn)行步驟 6,不滿足避開條件,繼續(xù)執(zhí)行避開轉(zhuǎn)向行為;
[0013]步驟5:判斷是否滿足終點(diǎn)條件,若滿足終點(diǎn)條件,終點(diǎn)登陸,抵達(dá)目標(biāo)點(diǎn)T,不滿足 終點(diǎn)條件,返回步驟2;
[0014]步驟6:弧線繞行行為觸發(fā),判斷是否滿足相遇條件,若滿足相遇條件,返回步驟4, 不滿足相遇條件,進(jìn)行步驟7;
[0015] 步驟7:判斷是否滿足脫離條件,若滿足脫離條件,返回步驟1,不滿足脫離條件,返 回步驟6。
[0016] 進(jìn)一步的,所述四種行走行為方式具體如下:
[0017]對準(zhǔn)轉(zhuǎn)向:在S、P和L處執(zhí)行的旨在對準(zhǔn)目標(biāo)點(diǎn)T的原地轉(zhuǎn)向動(dòng)作,轉(zhuǎn)向方向按最小 轉(zhuǎn)角原則來決定,直到對準(zhǔn)目標(biāo)點(diǎn)T對準(zhǔn)轉(zhuǎn)向行走行為結(jié)束,其中S為起點(diǎn),T為目標(biāo)點(diǎn),L為 機(jī)器人繞行障礙物邊緣結(jié)束時(shí)所處的位置點(diǎn),P為機(jī)器人直線前進(jìn)過程中航向角發(fā)生偏離 的位置點(diǎn);
[0018] 直線前進(jìn):在對準(zhǔn)目標(biāo)點(diǎn)T后所執(zhí)行的沿XT方向的直線行走動(dòng)作,直到到達(dá)目標(biāo)點(diǎn) T(此時(shí)任務(wù)結(jié)束)或者航向角發(fā)生偏離(此時(shí)位于偏離點(diǎn)P)或者遇到障礙物(此時(shí)位于相遇 點(diǎn)H)為止,包括從S完成對準(zhǔn)轉(zhuǎn)向行為后的直線行走動(dòng)作,航向角發(fā)生偏離后對準(zhǔn)目標(biāo)點(diǎn)T 的直線行走動(dòng)作,以及脫離障礙物邊緣后對準(zhǔn)目標(biāo)點(diǎn)T的直線行走動(dòng)作;
[0019] 避開轉(zhuǎn)向:在障礙物邊緣繞行過程中所執(zhí)行的為遠(yuǎn)離障礙物而實(shí)施的原地轉(zhuǎn)向動(dòng) 作,當(dāng)處于直線前進(jìn)或弧線繞行行走行為過程中遇到障礙物,即Dng s檢測到位于相遇點(diǎn)H, 則觸發(fā)避開轉(zhuǎn)向行走行為,直至Dngb檢測不到障礙物時(shí)避開轉(zhuǎn)向行走行為結(jié)束,Η表示機(jī)器 人碰到障礙物時(shí)所處的位置點(diǎn);
[0020] 弧線繞行:在障礙物邊緣繞行過程中所執(zhí)行的沿一定曲率半徑圓弧繞行行走動(dòng) 作,當(dāng)遇到障礙物執(zhí)行的避開轉(zhuǎn)向行走行為結(jié)束時(shí),則觸發(fā)弧線繞行行走行為,直至再次遇 到障礙物(Dng s檢測到下一個(gè)相遇點(diǎn)Η)或滿足脫離點(diǎn)條件,則弧線繞行行走行為結(jié)束。
[0021] 進(jìn)一步的,所述避開轉(zhuǎn)向行為檢測過程中按施密特觸發(fā)器有Rs〈Rb以提高系統(tǒng)的穩(wěn) 定性,所述避開轉(zhuǎn)向行為的方向確定方法是:當(dāng)位于相遇點(diǎn)Η時(shí)障礙物位于機(jī)器人左側(cè)則原 地右轉(zhuǎn),反之原地左轉(zhuǎn),如果機(jī)器人避開轉(zhuǎn)向一周,則表示無法避開障礙物,停止運(yùn)動(dòng),障礙 物的方向通過Dng。來檢測,設(shè)置RJRb以提高障礙物檢測的準(zhǔn)確率,若在觸角Dng。探測范圍 內(nèi)激光雷達(dá)共檢測到m個(gè)障礙物點(diǎn),計(jì)算其方位角(相對于X軸)的算術(shù)平均值,記為則 有:
[0022]
[0023]定義如下的整型標(biāo)志變量:
[0024]
[0025] 其中,?·^ = 0表示障礙物位于右側(cè),?·^=1表示障礙物位于左側(cè),當(dāng)位于起點(diǎn)S和 脫離點(diǎn)L處時(shí),該變量進(jìn)行初始化有f〇bt = -l;
[0026] 弧線繞行轉(zhuǎn)彎方向與避開轉(zhuǎn)向轉(zhuǎn)彎方向?qū)?yīng),當(dāng)遇到障礙物執(zhí)行的避開轉(zhuǎn)向?yàn)樵?地左轉(zhuǎn),則弧線右轉(zhuǎn),反之弧線左轉(zhuǎn)。
[0027] 進(jìn)一步的,所述對準(zhǔn)條件具體為:判斷對準(zhǔn)轉(zhuǎn)向過程中機(jī)器人當(dāng)前航向角是否沿 著XT方向,用于連接對準(zhǔn)轉(zhuǎn)向與直線前進(jìn),對準(zhǔn)條件通過Hng判斷,其定量表達(dá)式為0 r = θχτ, 其中ΘΛ機(jī)器人當(dāng)前航向角,θχτ表示矢線段XT的方位角,若θτ = θχτ,直線前進(jìn)觸發(fā),否則保 持當(dāng)前行為。
[0028] 進(jìn)一步的,所述偏航條件具體為:判斷直線前進(jìn)過程中機(jī)器人是否位于偏航點(diǎn)Ρ, 即當(dāng)前航向角是否偏離XT方向,用于連接直線前進(jìn)與對準(zhǔn)轉(zhuǎn)向,偏航條件通過Hng判斷,其 定量表達(dá)式為I 9r-0XT| >θη,其中θη為預(yù)先設(shè)定的航向偏離閾值,若| θ「θχτ| >θη,對準(zhǔn)轉(zhuǎn)向觸 發(fā),否則保持當(dāng)前行為。
[0029] 進(jìn)一步的,所述相遇條件具體為:判斷直線前進(jìn)或弧線繞行過程中是否遇到障礙 物,即是否處于相遇點(diǎn)Η,用于連接直線前進(jìn)與避開轉(zhuǎn)向或弧線繞行與避開轉(zhuǎn)向,相遇條件 通過Dng s和Dng。判斷,其中Dngs判斷是否遇到障礙物,Dng。判斷位于相遇點(diǎn)Η時(shí)障礙物的方 位,其定量表達(dá)式為d min < Rs,若dmin < Rs,避開轉(zhuǎn)向觸發(fā),否則保持當(dāng)前行為,其中dmin表示激 光雷達(dá)探測范圍內(nèi)機(jī)器人與障礙物之間的最近距離。
[0030] 進(jìn)一步的,所述避開條件具體為:判斷避開轉(zhuǎn)向過程中是否避開障礙物,用于連接 避開轉(zhuǎn)向和弧線繞行,避開條件通過Dngb判斷,其定量表達(dá)式為d min2 Rb,若dmin2 Rb,弧線繞 行觸發(fā),否則保持當(dāng)前行為;當(dāng)機(jī)器人避開轉(zhuǎn)向一周,則表示機(jī)器人無法避開障礙物,導(dǎo)航 任務(wù)失敗。
[0031] 進(jìn)一步的,所述脫離條件具體為:判斷在弧線繞行過程中是否脫離障礙物邊緣,即 判斷是否處于脫離點(diǎn)L,用于連接弧線繞行與對準(zhǔn)轉(zhuǎn)向,脫離條件通過Hng和Sng判斷,其中 定量表達(dá)式為(| QsX-9xT | <θλ | | | θρ-θχτ | < θε&&(1χτ < Smax)0R( I Qsx-θχτ | <θλ | | | θρ-θχτ | < θε&& Smax 2 Sst(3p),其中θλ為預(yù)先設(shè)定的直線重合度容差,θε*預(yù)先設(shè)定的對準(zhǔn)角度容差,Θ 5Χ為矢 線段SX的方位角,Sstep為預(yù)先設(shè)定的脫離閾值,Smax表示XT方向可無障礙直線行走