一種基于廣義波前算法的移動(dòng)機(jī)器人實(shí)時(shí)避障方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明公開了一種基于廣義波前算法的自適應(yīng)多目標(biāo)移動(dòng)機(jī)器人避障方法,屬于人工智能領(lǐng)域。
【背景技術(shù)】
[0002]避障方法對(duì)于移動(dòng)機(jī)器人來(lái)說(shuō)是一項(xiàng)關(guān)鍵技術(shù),每一個(gè)移動(dòng)機(jī)器人都有自己一套獨(dú)特的避障策略。目前最常見的是用于局部路徑規(guī)劃的VFH系列避障算法和用于局部路徑規(guī)劃的A*系列避障算法。VFH系列避障算法根據(jù)正前方障礙物的密度來(lái)給出橫向控制量,因此避障路徑十分的靈活。但是這種特性既是它的優(yōu)點(diǎn)同時(shí)也是它的缺點(diǎn)。因?yàn)檫@種避障路徑的隨意性,會(huì)造成移動(dòng)機(jī)器人行駛?cè)狈δ康男?,不利于避障結(jié)束后恢復(fù)沿著預(yù)定軌跡正常行駛。A*系列避障算法,會(huì)在移動(dòng)機(jī)器人的前方設(shè)定唯一的目標(biāo)點(diǎn),然后規(guī)劃出唯一的避障路徑。這種方法由于目標(biāo)點(diǎn)的唯一性,會(huì)造成生成的避障路徑十分的死板,避障路徑缺乏必要的靈活性。除此之外,A*系列避障算法,產(chǎn)生的避障路徑一般為折線避障路徑,不能直接用來(lái)作為移動(dòng)機(jī)器人的橫向控制量。
[0003]本發(fā)明采用全新的避障算法,既能夠兼顧上述兩種算法的優(yōu)點(diǎn),又能夠很好的克服它們自身的缺點(diǎn)。本算法是在廣義波前算法的基礎(chǔ)之上,通過(guò)結(jié)合多目標(biāo)點(diǎn)技術(shù)和避障路徑二次優(yōu)化技術(shù),使算法生成的避障路徑,能夠同時(shí)兼顧目的性和靈活性,并且滿足移動(dòng)機(jī)器人的運(yùn)動(dòng)學(xué)模型,從而能夠直接用來(lái)作為移動(dòng)機(jī)器人的橫向控制量。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于廣義波前算法的多目標(biāo)點(diǎn)、平滑路徑的移動(dòng)機(jī)器人路徑避障算法。
[0005]本發(fā)明的目的是通過(guò)以下的技術(shù)方案實(shí)現(xiàn)的:
[0006]SI由廣義波前算法以移動(dòng)機(jī)器人所在的柵格為中心柵格,對(duì)整個(gè)柵格圖進(jìn)行更新。
[0007]本方法的非線性膨脹函數(shù)用于對(duì)雷達(dá)檢測(cè)到的車輛周圍的障礙物進(jìn)行膨脹。柵格圖采用多層次柵格圖,每層?xùn)鸥穹謩e表示事物的一種屬性。算法以移動(dòng)機(jī)器人所在的柵格為起始柵格,采用迭代方式對(duì)柵格圖中每個(gè)柵格的代價(jià)值進(jìn)行更新,并且更新柵格代價(jià)值的過(guò)程中不設(shè)定目標(biāo)點(diǎn)。
[0008]S2在更新后的柵格圖上設(shè)定多個(gè)目標(biāo)點(diǎn)。
[0009]本算法中在已經(jīng)更新過(guò)代價(jià)值的柵格圖上,設(shè)定以先驗(yàn)軌跡點(diǎn)為中心點(diǎn)的多個(gè)目標(biāo)點(diǎn),并且設(shè)定的目標(biāo)點(diǎn)距離車的縱向距離的大小能夠根據(jù)環(huán)境的變化自動(dòng)調(diào)整。
[0010]S3獲取移動(dòng)機(jī)器人所在位置到所有目標(biāo)點(diǎn)的原始避障路徑。
[0011]S4對(duì)所有原始避障路徑進(jìn)行二次路徑優(yōu)化,并輸出所有優(yōu)化后的避障路徑以及避障路徑的最小曲率半徑。
[0012]二次路徑優(yōu)化算法中,生成的優(yōu)化路徑共有左并線避障路徑、右并線避障路徑、左轉(zhuǎn)彎避障路徑、右轉(zhuǎn)彎避障路徑、原始波前避障路徑五種避障路徑。并線避障路徑采用的是余弦軌跡避障路徑。轉(zhuǎn)彎避障路徑采用的是1/4圓弧軌跡避障路徑。
[0013]S5對(duì)所有優(yōu)化后的避障路徑,求其所包含的所有柵格的總代價(jià)值的總和,并輸出總和最小的避障路徑,則該避障路徑就是算法輸出的最終的最優(yōu)避障路徑。
[0014]S6由尋線算法來(lái)解釋最優(yōu)避障路徑,并輸出移動(dòng)機(jī)器人的橫向控制量。
[0015]S7由速度判斷算法來(lái)解釋最優(yōu)避障路徑的最小曲率半徑,并輸出機(jī)器人的縱向控制量。
【附圖說(shuō)明】
[0016]圖1為本發(fā)明方法的工作流程圖。
[0017]圖2為用于生成左并線避障路徑的函數(shù)曲線圖。
[0018]圖3為用于生成右并線避障路徑的函數(shù)曲線圖。
[0019]圖4為用于生成左轉(zhuǎn)彎避障路徑的函數(shù)曲線圖。
[0020]圖5為用于生成右轉(zhuǎn)彎避障路徑的函數(shù)曲線圖。
【具體實(shí)施方式】
[0021]結(jié)合實(shí)施例及附圖1-5對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
[0022]實(shí)施例
[0023]本實(shí)施例是一種基于廣義波前算法的移動(dòng)機(jī)器人實(shí)時(shí)避障方法,包括下述步驟:SI由廣義波前算法獲取多條原始避障路徑;S2由二次路徑優(yōu)化算法輸出最優(yōu)避障路徑及其最小曲率半徑;S3由尋線算法輸出橫向控制量;S4由速度判斷算法輸出縱向控制量。
[0024]步驟I中,廣義波前算法所用的柵格圖為多層次柵格圖,每層?xùn)鸥穹謩e表示事物的一種屬性。膨脹函數(shù)采用的是非線性膨脹函數(shù)。本實(shí)施例中非線性膨脹函數(shù)采用y = a*(log(b)-log(X-C))/log(2),其中參數(shù)a取值為25,參數(shù)b取值為5,參數(shù)c取值為5。對(duì)柵格圖中每個(gè)柵格的代價(jià)值的更新,采用的是迭代方式。廣義波前算法更新柵格代價(jià)值的起始柵格為移動(dòng)機(jī)器人所在的柵格,并且更新柵格代價(jià)值的過(guò)程中不設(shè)定目標(biāo)點(diǎn)。在已經(jīng)更新過(guò)代價(jià)值的柵格圖上,設(shè)定以先驗(yàn)軌跡點(diǎn)為中心點(diǎn)的多個(gè)目標(biāo)點(diǎn)。設(shè)定的目標(biāo)點(diǎn)距離車的縱向距離的大小能夠根據(jù)環(huán)境的變化自動(dòng)調(diào)整。同時(shí)生成多條避障路徑,并對(duì)這些避障路徑進(jìn)行二次路徑優(yōu)化,然后從這些優(yōu)化后的避障路徑中選出最優(yōu)的避障路徑。
[0025]步驟2中,二次路徑優(yōu)化算法生成的優(yōu)化路徑共有左并線避障路徑、右并線避障路徑、左轉(zhuǎn)彎避障路徑、右轉(zhuǎn)彎避障路徑、原始波前避障路徑等5種避障路徑。并線避障路徑采用的是余弦軌跡避障路徑。轉(zhuǎn)彎避障路徑采用的是1/4圓弧軌跡避障路徑。左并線避障路徑采用7 = 4處08(2邙丨/1'*&4))+4+¥作為路徑優(yōu)化函數(shù),右并線避障路徑采用7=4處08(2*pi/T*(x-X))-A+Y作為路徑優(yōu)化函數(shù),左轉(zhuǎn)彎避障路徑采用y= (R.~2-(x-X-R).~2).~(1/2)+Y作為路徑優(yōu)化函數(shù),右轉(zhuǎn)彎避障路徑采用y = _(R.~2-(x-X-R).'2).~(1/2)+Υ作為路徑優(yōu)化函數(shù)。其中A、T、X、Y、R等參數(shù),在系統(tǒng)運(yùn)行時(shí),根據(jù)移動(dòng)機(jī)器人周圍環(huán)境的變化動(dòng)態(tài)生成。
[0026]步驟3中,采用尋線算法來(lái)確定橫向偏移量,從而控制移動(dòng)機(jī)器人的橫向運(yùn)動(dòng)。
[0027]步驟4中,采用速度判斷算法來(lái)判定當(dāng)前能夠允許的最大行駛速度,從而控制移動(dòng)機(jī)器人的縱向運(yùn)動(dòng)。
[0028]上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所做的改變、修飾、替代、組合、簡(jiǎn)化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于廣義波前算法的移動(dòng)機(jī)器人實(shí)時(shí)避障方法,其特征在于: Si由廣義波前算法以移動(dòng)機(jī)器人所在的柵格為中心柵格,對(duì)整個(gè)柵格圖進(jìn)行更新; 本方法的非線性膨脹函數(shù)用于對(duì)雷達(dá)檢測(cè)到的車輛周圍的障礙物進(jìn)行膨脹;柵格圖采用多層次柵格圖,每層?xùn)鸥穹謩e表示事物的一種屬性;算法移動(dòng)為機(jī)器人所在的柵格為起始柵格,采用迭代方式對(duì)柵格圖中每個(gè)柵格的代價(jià)值進(jìn)行更新,并且更新柵格代價(jià)值的過(guò)程中不設(shè)定目標(biāo)點(diǎn); S2在更新后的柵格圖上設(shè)定多個(gè)目標(biāo)點(diǎn); 本算法中在已經(jīng)更新過(guò)代價(jià)值的柵格圖上,設(shè)定以先驗(yàn)軌跡點(diǎn)為中心點(diǎn)的多個(gè)目標(biāo)點(diǎn),并且設(shè)定的目標(biāo)點(diǎn)距離車的縱向距離的大小能夠根據(jù)環(huán)境的變化自動(dòng)調(diào)整; S3獲取移動(dòng)機(jī)器人所在位置到所有目標(biāo)點(diǎn)的原始避障路徑; S4對(duì)所有原始避障路徑進(jìn)行二次路徑優(yōu)化,并輸出所有優(yōu)化后的避障路徑以及避障路徑的最小曲率半徑; 二次路徑優(yōu)化算法中,生成的優(yōu)化路徑共有左并線避障路徑、右并線避障路徑、左轉(zhuǎn)彎避障路徑、右轉(zhuǎn)彎避障路徑、原始波前避障路徑五種避障路徑;并線避障路徑采用的是余弦軌跡避障路徑;轉(zhuǎn)彎避障路徑采用的是1/4圓弧軌跡避障路徑; S5對(duì)所有優(yōu)化后的避障路徑,求其所包含的所有柵格的總代價(jià)值的總和,并輸出總和最小的避障路徑,則該避障路徑就是算法輸出的最終的最優(yōu)避障路徑; S6由尋線算法來(lái)解釋最優(yōu)避障路徑,并輸出移動(dòng)機(jī)器人的橫向控制量; S7由速度判斷算法來(lái)解釋最優(yōu)避障路徑的最小曲率半徑,并輸出移動(dòng)機(jī)器人的縱向控制量。2.根據(jù)權(quán)利要求1所述的一種基于廣義波前算法的移動(dòng)機(jī)器人實(shí)時(shí)避障方法,其特征在于:該方法包括下述步驟,SI由廣義波前算法獲取多條原始避障路徑;S2由二次路徑優(yōu)化算法輸出最優(yōu)避障路徑及其最小曲率半徑;S3由尋線算法輸出橫向控制量;S4由速度判斷算法輸出縱向控制量。3.根據(jù)權(quán)利要求2所述的一種基于廣義波前算法的移動(dòng)機(jī)器人實(shí)時(shí)避障方法,其特征在于:SI中,廣義波前算法所用的柵格圖為多層次柵格圖,每層?xùn)鸥穹謩e表示事物的一種屬性;膨脹函數(shù)采用的是非線性膨脹函數(shù);對(duì)柵格圖中每個(gè)柵格的代價(jià)值的更新,采用的是迭代方式;廣義波前算法更新柵格代價(jià)值的起始柵格為移動(dòng)機(jī)器人所在的柵格,并且更新柵格代價(jià)值的過(guò)程中不設(shè)定目標(biāo)點(diǎn);在已經(jīng)更新過(guò)代價(jià)值的柵格圖上,設(shè)定以先驗(yàn)軌跡點(diǎn)為中心點(diǎn)的多個(gè)目標(biāo)點(diǎn);設(shè)定的目標(biāo)點(diǎn)距離車的縱向距離的大小能夠根據(jù)環(huán)境的變化自動(dòng)調(diào)整;同時(shí)生成多條避障路徑,并對(duì)這些避障路徑進(jìn)行二次路徑優(yōu)化,然后從這些優(yōu)化后的避障路徑中選出最優(yōu)的避障路徑。4.根據(jù)權(quán)利要求2所述的一種基于廣義波前算法的移動(dòng)機(jī)器人實(shí)時(shí)避障方法,其特征在于:S2中,二次路徑優(yōu)化算法生成的優(yōu)化路徑共有左并線避障路徑、右并線避障路徑、左轉(zhuǎn)彎避障路徑、右轉(zhuǎn)彎避障路徑、原始波前避障路徑等5種避障路徑;并線避障路徑采用的是余弦軌跡避障路徑;轉(zhuǎn)彎避障路徑采用的是1/4圓弧軌跡壁障路徑。5.根據(jù)權(quán)利要求2所述的一種基于廣義波前算法的移動(dòng)機(jī)器人實(shí)時(shí)避障方法,其特征在于:S3中,采用尋線算法來(lái)確定橫向偏移量,從而控制移動(dòng)機(jī)器人的橫向運(yùn)動(dòng)。6.根據(jù)權(quán)利要求2所述的一種基于廣義波前算法的移動(dòng)機(jī)器人實(shí)時(shí)避障方法,其特征在于:S4中,采用速度判斷算法來(lái)判定當(dāng)前能夠允許的最大行駛速度,從而控制移動(dòng)機(jī)器人的縱向運(yùn)動(dòng)。
【專利摘要】一種基于廣義波前算法的動(dòng)機(jī)器人實(shí)時(shí)避障方法,該方法包括下述步驟:對(duì)整個(gè)柵格圖進(jìn)行代價(jià)值更新;在代價(jià)值更新后的柵格圖上設(shè)定多個(gè)目標(biāo)點(diǎn);獲取機(jī)器人所在位置到所有目標(biāo)點(diǎn)的原始避障路徑;對(duì)所有原始避障路徑進(jìn)行二次路徑優(yōu)化,并輸出所有優(yōu)化后的避障路徑以及避障路徑的最小曲率半徑;對(duì)所有優(yōu)化后的避障路徑求避障路徑總代價(jià)值的總和,并輸出總和最小的避障路徑,則該避障路徑就是算法輸出的最優(yōu)避障路徑;由尋線算法來(lái)解釋最優(yōu)避障路徑,并輸出機(jī)器人的橫向控制量;由速度判斷算法來(lái)解釋最優(yōu)避障路徑的最小曲率半徑,并輸出移動(dòng)機(jī)器人的縱向控制量。本發(fā)明能夠滿足移動(dòng)機(jī)器人的運(yùn)動(dòng)學(xué)模型,從而能直接用來(lái)作為移動(dòng)機(jī)器人的橫向控制量。
【IPC分類】G05D1/02
【公開號(hào)】CN105652874
【申請(qǐng)?zhí)枴?br>【發(fā)明人】杜煜, 張永華, 宋曉帥, 李強(qiáng)
【申請(qǐng)人】北京聯(lián)合大學(xué)
【公開日】2016年6月8日
【申請(qǐng)日】2016年3月21日