基于SSD的自动路径规划算法
目錄
- 1、場(chǎng)景需求
- 2、路徑規(guī)劃算法簡(jiǎn)介
- 2.1 、PRM算法簡(jiǎn)介
- 2.2、RRT算法簡(jiǎn)介
- 3、基于SSD的自動(dòng)路徑規(guī)劃算法簡(jiǎn)介
- 4、基于SSD的自動(dòng)路徑規(guī)劃算法詳解
- 4.1、利用外置攝像頭獲取圖像或者視頻
- 4.2、利用目標(biāo)檢測(cè)算法進(jìn)行障礙物的識(shí)別和定位
- 4.3、根據(jù)目標(biāo)檢測(cè)結(jié)果制作二維平面映射圖
- 4.4、利用GUIDE制作的自動(dòng)路徑規(guī)劃GUI效果展示和分析
- 5、基于SSD的自動(dòng)路徑規(guī)劃算法效果展示與分析
- 5.1、RRT算法在復(fù)雜場(chǎng)景下的路徑規(guī)劃結(jié)果分析
- 5.2、雙向RRT算法在復(fù)雜場(chǎng)景下的路徑規(guī)劃結(jié)果分析
- 5.3、PRM算法在復(fù)雜場(chǎng)景下的路徑規(guī)劃結(jié)果分析
- 6、總結(jié)與分析
- 注意事項(xiàng)
1、場(chǎng)景需求
??隨著數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等技術(shù)的興起,它們?yōu)榧矣脵C(jī)器人提供了更敏銳的聽(tīng)覺(jué)和視覺(jué),使得它們可以完成一些更加復(fù)雜的任務(wù),不僅僅是簡(jiǎn)單的掃地、抓取等。自動(dòng)路徑規(guī)劃是家用機(jī)器人中的一個(gè)關(guān)鍵技術(shù),它的主要作用是根據(jù)用戶(hù)設(shè)定的起點(diǎn)和終點(diǎn)在盡可能短的時(shí)間內(nèi)尋找到一個(gè)最短或者最優(yōu)的路徑,從而提高機(jī)器人的工作效率。
2、路徑規(guī)劃算法簡(jiǎn)介
2.1 、PRM算法簡(jiǎn)介
??PRM是一種經(jīng)典的自動(dòng)路徑識(shí)別算法,該算法的主要特點(diǎn)是基于隨機(jī)采樣技術(shù)的,可以有效的解決高維空間個(gè)和復(fù)雜場(chǎng)景約束下的自動(dòng)路徑規(guī)劃問(wèn)題。該算法是一種基于圖搜索的路徑規(guī)劃算法,主要包含兩個(gè)大的步驟,即學(xué)習(xí)和查詢(xún)階段。該算法的主要思想是首先將一個(gè)連續(xù)空間轉(zhuǎn)換為一個(gè)離散空間;然后使用A*等其它的搜索算法在路徑圖中尋找最優(yōu)的路徑,從而在一定程度上提升該算法的搜索效率。這種算法的主要優(yōu)勢(shì)是可以借助采樣技術(shù)使用很少的點(diǎn)來(lái)找到一個(gè)滿(mǎn)意的解,它是基于這樣的一個(gè)前提的,即對(duì)于現(xiàn)實(shí)中的大多數(shù)問(wèn)題而言,使用少量的樣本其實(shí)就可以覆蓋大多數(shù)的可行空間,并且隨著樣本數(shù)量的不斷增加,找到最優(yōu)路徑的概率接近1。該算法的一個(gè)缺點(diǎn)是當(dāng)數(shù)據(jù)中的采樣點(diǎn)的個(gè)數(shù)比較少或者數(shù)據(jù)的分布情況不太合理時(shí),該算法可能并不能找到最優(yōu)的路徑,在這種情況下就需要增加樣本的個(gè)數(shù)。該算法的實(shí)現(xiàn)步驟如下所示:
- 學(xué)習(xí)階段,即在給定圖的自由空間里隨機(jī)撒點(diǎn)(自定義個(gè)數(shù)),構(gòu)建一個(gè)路徑網(wǎng)絡(luò)圖。通常包括構(gòu)造和擴(kuò)張兩個(gè)步驟。
- 查詢(xún)階段,即使用其它的算法來(lái)查詢(xún)從某一個(gè)起點(diǎn)到某一個(gè)終點(diǎn)的路徑是否存在,通常需要進(jìn)行局部路徑的規(guī)劃、計(jì)算距離和碰撞檢測(cè)等操作,最終的規(guī)劃結(jié)果如下圖所示。
2.2、RRT算法簡(jiǎn)介
??RRT算法是一個(gè)經(jīng)典的路徑規(guī)劃算法,提出該方法的主要目的是為了克服傳統(tǒng)路徑算法中需要在一個(gè)特定的空間中對(duì)障礙物進(jìn)行建模,計(jì)算復(fù)雜度比較高和不適用于解決多自由度機(jī)器人在復(fù)雜場(chǎng)景中的路徑規(guī)劃問(wèn)題。RRT算法的主要思路是對(duì)狀態(tài)空間中的采樣點(diǎn)進(jìn)行碰撞檢測(cè),這行可以有效的避免對(duì)空間場(chǎng)景的建模,從而極大的降低算法對(duì)維度空間的要求,適合于解決復(fù)雜場(chǎng)景中的路徑規(guī)劃問(wèn)題。該算法的主要特點(diǎn)是能夠在高維數(shù)據(jù)空間中進(jìn)行有效、快速的搜索,利用狀態(tài)空間中的隨機(jī)采樣點(diǎn)來(lái)使得搜索的方向不斷的向空白區(qū)域靠近,從而尋找出一條最優(yōu)的路徑。該算法和PRM算法具有類(lèi)似的缺點(diǎn),即該算法是概率完備的但并不是最優(yōu)的,有時(shí)候并不能找到最優(yōu)的路徑。該算法的實(shí)現(xiàn)流程如下所示:
- 步驟1-首先產(chǎn)生一個(gè)屬于Xfree?X_{\text {free }}Xfree??的節(jié)點(diǎn)Xinit\mathcal{X}_{i n i t}Xinit?,在當(dāng)前的循環(huán)中產(chǎn)生一個(gè)隨機(jī)點(diǎn)xrandx_{r a n d}xrand?,這個(gè)隨機(jī)點(diǎn)是在整個(gè)狀態(tài)空間XXX內(nèi)的任意點(diǎn);
- 步驟2-通過(guò)上一步獲得隨機(jī)點(diǎn)之后,遍歷隨機(jī)樹(shù)中的每一個(gè)節(jié)點(diǎn),計(jì)算出每一個(gè)節(jié)點(diǎn)和隨機(jī)點(diǎn)之間的距離,并尋找出距離該隨機(jī)點(diǎn)最近的一個(gè)節(jié)點(diǎn)Xnear?\mathcal{X}_{\text {near }}Xnear??;
- 步驟3-定義一個(gè)步進(jìn)量EPS,當(dāng)找到Xnear?\mathcal{X}_{\text {near }}Xnear??時(shí),Xnear?\mathcal{X}_{\text {near }}Xnear??向Xnear?\mathcal{X}_{\text {near }}Xnear??和Xrand\mathcal{X}_{\text {rand}}Xrand?連接方向擴(kuò)展EPS步長(zhǎng),擴(kuò)展后產(chǎn)生一個(gè)新的節(jié)點(diǎn)xnewx_{n e w}xnew?;
- 步驟4-判斷新的節(jié)點(diǎn)Xnew\mathcal{X}_{n e w}Xnew?是否滿(mǎn)足非完整微分約束,如果不滿(mǎn)足,則需要舍棄掉Xnew\mathcal{X}_{n e w}Xnew?,重新生成一個(gè)新的隨機(jī)點(diǎn);如果滿(mǎn)足非完整微分約束條件,則需要將Xnew\mathcal{X}_{n e w}Xnew?加入其中,并在Xnear\mathcal{X}_{near}Xnear?和Xnew\mathcal{X}_{n e w}Xnew?之間添加上一條新的邊;
- 步驟5-在插入新節(jié)點(diǎn)的過(guò)程中,當(dāng)Xnew?\mathcal{X}_{\text {new }}Xnew??,Xnear?\mathcal{X}_{\text {near }}Xnear??和Xnear?\mathcal{X}_{\text {near }}Xnear??到Xnew?\mathcal{X}_{\text {new }}Xnew??節(jié)點(diǎn)之間的任意一條邊位于XobsX_{\mathrm{obs}}Xobs?中或者和XobsX_{\mathrm{obs}}Xobs?相交,則跳過(guò)次數(shù)的循環(huán),并在下一輪的循環(huán)中生成一個(gè)新的隨機(jī)點(diǎn)Xnew\mathcal{X}_{n e w}Xnew?,并重復(fù)的執(zhí)行判斷操作,如果該節(jié)點(diǎn)屬于Xfree\mathcal{X}_{free}Xfree?則保留這個(gè)新節(jié)點(diǎn);
??上圖展示了RRT算法的效果,圖中藍(lán)色的點(diǎn)表示障礙物,紅色的路徑表示RRT算法尋找到的最優(yōu)路徑,其它的表示RRT算法在搜索過(guò)程中的一些中間結(jié)果,我們可以觀察到這個(gè)搜索結(jié)果比較平滑,基本上可以滿(mǎn)足我們的要求。
3、基于SSD的自動(dòng)路徑規(guī)劃算法簡(jiǎn)介
??對(duì)于家居機(jī)器人的自動(dòng)路徑識(shí)別問(wèn)題而言,我們的主要任務(wù)是對(duì)家居環(huán)境中的場(chǎng)景進(jìn)行機(jī)器人的自動(dòng)路徑規(guī)劃,但是這里不僅僅涉及到自動(dòng)路徑規(guī)劃算法的實(shí)現(xiàn),我們首先需要實(shí)時(shí)的獲取到家居環(huán)境中的圖片或者視頻,這就要求我們整個(gè)系統(tǒng)中需要配備一個(gè)外置攝像頭來(lái)進(jìn)行家居環(huán)境的圖片或者視頻的捕獲;在獲取到我們需要的圖片或者視頻之后,我們的下一個(gè)關(guān)鍵問(wèn)題是如何對(duì)這些圖片或者視頻中的障礙物進(jìn)行準(zhǔn)確的識(shí)別和定位,為了解決這個(gè)問(wèn)題,首先我們需要知道什么是障礙物;然后我們通過(guò)哪種方式來(lái)快速的捕獲這些障礙物。對(duì)于家居環(huán)境下的障礙物而言,主要包括桌子,椅子,瓶子和人等;為了獲取到這些物體在圖片或者視頻中的具體位置,我們嘗試著使用目標(biāo)檢測(cè)算法來(lái)獲取圖像或者視頻中的目標(biāo),為了獲得實(shí)時(shí)的檢測(cè)速度,本文使用了單階段的SSD目標(biāo)檢測(cè)算法,我們將目標(biāo)檢測(cè)算法輸出的結(jié)果作為家居環(huán)境下的障礙物,目標(biāo)檢測(cè)算法最終的輸出是目標(biāo)的類(lèi)別和相應(yīng)的位置信息,這剛好滿(mǎn)足我們這個(gè)任務(wù)的需要;在獲取到圖片或者視頻中的障礙物的具體位置信息之后,我們需要去根據(jù)這些障礙物生成一張二維映射平面圖,即整個(gè)圖片中僅僅包含障礙物。為了解決這個(gè)問(wèn)題,本文將這些檢測(cè)的BB繪制在一張1000x1000大小的圖上面,將這個(gè)邊界框所在的區(qū)域繪制成全黑色,其它的區(qū)域用白色表示,這樣我們就可以獲得一張簡(jiǎn)單的二維平面映射圖,即將真實(shí)環(huán)境中的圖片和視頻轉(zhuǎn)化成對(duì)應(yīng)的障礙物平面圖;;在獲得了平面圖之后,我們要做的就是實(shí)現(xiàn)經(jīng)典的自動(dòng)路徑規(guī)劃算法并使用這些算法在獲取到的映射圖上面執(zhí)行路徑規(guī)劃操作并展示最終的結(jié)果。整個(gè)系統(tǒng)的實(shí)現(xiàn)流程如下所示:
??上圖展示了基于家居機(jī)器人的自動(dòng)路徑規(guī)劃系統(tǒng)設(shè)計(jì)流程,整個(gè)系統(tǒng)可以總結(jié)為以下4個(gè)主要的步驟,即利用外置攝像頭獲取圖像或者視頻、利用目標(biāo)檢測(cè)算法進(jìn)行障礙物的識(shí)別和定位、根據(jù)目標(biāo)檢測(cè)結(jié)果制作二維平面映射圖和利用自動(dòng)路徑算法進(jìn)行路徑規(guī)劃和結(jié)果可視化。下面將對(duì)這些步驟的實(shí)現(xiàn)細(xì)節(jié)和實(shí)現(xiàn)效果進(jìn)行詳細(xì)的展示。
4、基于SSD的自動(dòng)路徑規(guī)劃算法詳解
4.1、利用外置攝像頭獲取圖像或者視頻
??整個(gè)系統(tǒng)中的第一步就是圖像或者視頻的獲取,為了獲取到圖像或者視頻,我們可以采用的方案比較多,具體包括利用普通攝像頭獲取視頻、利用深度攝像頭獲取視頻、利用雙目攝像頭獲取視頻、利用三目攝像頭獲取視頻的等??偠灾?#xff0c;使用越復(fù)雜的攝像頭能夠獲得更加豐富的紋理信息,而這些信息可以給后續(xù)的處理算法提供一些輔助信息,考慮到系統(tǒng)的成本和通用性等多個(gè)因素,本系統(tǒng)最后選擇使用普通的攝像頭來(lái)完成家居環(huán)境下視頻的實(shí)時(shí)采集任務(wù)。主要的實(shí)現(xiàn)方式是通過(guò)Matlab中提供的圖像獲取工具箱中的接口來(lái)實(shí)現(xiàn)視頻的捕獲和保存工作,即vid = videoinput (‘winvideo’, 1, ‘YUY2_640x480’),其中videoinput是Matlab中的捕獲視頻的接口,1表示當(dāng)前攝像頭的ID號(hào),每一個(gè)攝像頭都會(huì)有特定的ID號(hào),YUY2_640x480表示視頻的具體格式,vid表示獲取到的視頻對(duì)象;然后使用preview函數(shù)來(lái)對(duì)獲取到的視頻進(jìn)行預(yù)覽,即preview(vid,hImage),其中preview是相應(yīng)的預(yù)覽函數(shù),hlmage是提前定義好的一個(gè)圖像,vid就是前面的視頻對(duì)象;最后我們可以使用VideoWriter函數(shù)來(lái)是對(duì)捕獲到視頻進(jìn)行保存,即writerObj = VideoWriter( [filename ‘.avi’] ),其中filename 表示保存視頻的具體名字,.avi表示保存的視頻格式,writerObj 是輸出的寫(xiě)對(duì)象。使用外置攝像頭獲取都的室內(nèi)場(chǎng)景的圖片如下所示:
4.2、利用目標(biāo)檢測(cè)算法進(jìn)行障礙物的識(shí)別和定位
??在獲取到室內(nèi)場(chǎng)景的圖片或者視頻之后,對(duì)于我們的任務(wù)而言,我們需要檢測(cè)出圖片中的障礙物的信息,具體包括目標(biāo)的類(lèi)別和位置信息。為了獲取到這些信息,本文嘗試著使用目標(biāo)檢測(cè)器來(lái)快速的獲得我們需要的障礙物的信息,盡管當(dāng)前已經(jīng)有很多經(jīng)典的目標(biāo)檢測(cè)算法,但是由于我們使用的環(huán)境是Matlab,使用的深度學(xué)習(xí)庫(kù)是Matconvnet,支持它們的目標(biāo)檢測(cè)算法十分有限,盡管Matconvnet提供了一個(gè)預(yù)訓(xùn)練好的fast r-cnn預(yù)訓(xùn)練模型,但是經(jīng)過(guò)實(shí)驗(yàn)之后我們發(fā)現(xiàn)這個(gè)模型并不能滿(mǎn)足我們的實(shí)際要求,具體的原因包括:該模型的運(yùn)行速度比較慢,不能滿(mǎn)足實(shí)時(shí)場(chǎng)景的需要;該模型的檢測(cè)精度比較低,并不能準(zhǔn)確的獲取到圖像中的障礙物;該模型能夠識(shí)別的目標(biāo)類(lèi)別比較少,并不能我們的需求。針對(duì)以上的這些原因,本文最終實(shí)現(xiàn)了一個(gè)基于單階段檢測(cè)SSD目標(biāo)算法,該算法不僅具有較快的檢測(cè)速度,同時(shí)可以提供準(zhǔn)確的檢測(cè)結(jié)果,基本上可以滿(mǎn)足整個(gè)系統(tǒng)的需要。
??為了實(shí)現(xiàn)SSD目標(biāo)檢測(cè)器,我們首先收集了一個(gè)含有標(biāo)簽的目標(biāo)檢測(cè)數(shù)據(jù)集;然后通過(guò)Matconvnet深度學(xué)習(xí)開(kāi)源庫(kù)進(jìn)行模型的訓(xùn)練,最終保存最好的一個(gè)SSD模型;接著我們直接使用預(yù)訓(xùn)練好的SSD模型來(lái)進(jìn)行簡(jiǎn)單的前向推理操作就可以獲得我們需要的目標(biāo)檢測(cè)結(jié)果。下面對(duì)該模型的檢測(cè)結(jié)果進(jìn)行展示。
??上圖展示了本文實(shí)現(xiàn)的SSD目標(biāo)檢測(cè)算法的檢測(cè)效果。第1行第1列的圖片是一個(gè)室外的場(chǎng)景圖片,該圖片中包含的目標(biāo)是一個(gè)人和一輛摩托車(chē),SSD準(zhǔn)確的檢測(cè)出了這兩個(gè)目標(biāo),以99%的自信度確定這個(gè)目標(biāo),并輸出準(zhǔn)確的邊界框信息;對(duì)于第1行第2列的室內(nèi)場(chǎng)景圖片而言,圖片中的目標(biāo)包括4把凳子和1張桌子,SSD算法都準(zhǔn)確的檢測(cè)出了這些目標(biāo),由于受到部分的遮擋,僅以24%的概率確定某一個(gè)目標(biāo)是一把椅子;對(duì)于第2行第1列的家居場(chǎng)景圖片而言,圖片中包含著3把椅子和1張桌子,有兩把椅子受到了桌子的嚴(yán)重的遮擋,而本文實(shí)現(xiàn)的SSD算法仍然可以準(zhǔn)確的檢測(cè)出這些障礙物,并且輸出了較大的自信度;對(duì)于第2行第2列的家居場(chǎng)景圖片而言,圖片中包含了4把椅子和1張桌子,本文實(shí)現(xiàn)的SSD可以準(zhǔn)確的檢測(cè)到這些障礙物,并輸出準(zhǔn)確的邊界框。通過(guò)以上的觀察和分析,我們可以得出一個(gè)初步的結(jié)論,即本文實(shí)現(xiàn)的SSD目標(biāo)檢測(cè)算法可以準(zhǔn)確的檢測(cè)到家居環(huán)境中的障礙物,并輸出一個(gè)準(zhǔn)確的邊界框,這個(gè)邊界框可以有助后續(xù)的二維平面映射圖的生成。
4.3、根據(jù)目標(biāo)檢測(cè)結(jié)果制作二維平面映射圖
??通過(guò)SSD目標(biāo)檢測(cè)器我們可以準(zhǔn)確的獲取到圖片中障礙物的類(lèi)別和位置信息,而對(duì)于基于家居機(jī)器人的自動(dòng)路徑規(guī)劃問(wèn)題而言,我們需要的是在某一個(gè)平面映射圖中的執(zhí)行自動(dòng)路徑規(guī)劃的任務(wù),即在選擇出起始位置和終止位置之后,算法通過(guò)大量的查找最終會(huì)輸出一個(gè)最優(yōu)的路徑。即我們需要將獲取的圖像轉(zhuǎn)換為一個(gè)僅僅包含障礙物的二維平面映射圖。本文的主要思路是將目標(biāo)檢測(cè)的結(jié)果看做家居場(chǎng)景中的障礙物,然后在一個(gè)大小為1000X1000圖像中將檢測(cè)到的邊界框所在的位置填充上黑色,其它的位置填充為白色,通過(guò)以上的這個(gè)操作,我們就可以將原始的輸入圖片轉(zhuǎn)化為相應(yīng)的二維平面映射圖。下面對(duì)本文實(shí)現(xiàn)的映射圖進(jìn)行效果展示和分析。
??上圖對(duì)視頻中捕獲到的連續(xù)3幀的效果進(jìn)行了展示,第1列表示的是外置攝像頭捕獲到的真實(shí)場(chǎng)景圖片;第2列表示的是使用SSD目標(biāo)檢測(cè)算法檢測(cè)的結(jié)果,包括障礙物的類(lèi)別和邊界框信息;第3類(lèi)表示使用本文的轉(zhuǎn)換方法獲得的二維映射平面,該平面中僅僅包含障礙物,由于本文的攝像頭的分辨率最大支持640x480,而生成的映射圖的大小為1000x1000,因而在轉(zhuǎn)換的過(guò)程中需要使用到線性插值操作。通過(guò)下面的結(jié)果我們可以觀察到SSD算法在真實(shí)場(chǎng)景中的圖片中能夠獲得比較好的檢測(cè)結(jié)果,準(zhǔn)確的檢測(cè)出圖片中的障礙物,通過(guò)簡(jiǎn)單的映射轉(zhuǎn)換我們就可以獲得我們需要的二維平面映射圖,圖中黑色部分表示障礙物,白色的部分表示可行區(qū)域,后續(xù)我們將在該圖的基礎(chǔ)上進(jìn)行自動(dòng)路徑規(guī)劃和效果展示。
4.4、利用GUIDE制作的自動(dòng)路徑規(guī)劃GUI效果展示和分析
??通過(guò)以上的步驟我們可以獲得路徑規(guī)劃中需要的二維平面映射圖,接下來(lái)我們的主要工作就是集中在如何實(shí)現(xiàn)、使用和展示經(jīng)典的自動(dòng)路徑規(guī)劃算法。為了方便用戶(hù)的使用,本文將自動(dòng)路徑規(guī)劃的功能整合到了一個(gè)GUI界面上面,整個(gè)GUI界面是使用Matlab的GUIDE工具實(shí)現(xiàn)的,該界面的主要功能包含原始二維映射平面的選擇、起始點(diǎn)和終止點(diǎn)的設(shè)置或選擇、自動(dòng)路徑規(guī)劃算法的選擇和自動(dòng)路徑規(guī)劃結(jié)果的展示。下面對(duì)本文實(shí)現(xiàn)的GUI界面進(jìn)行簡(jiǎn)單的介紹和效果展示。
5、基于SSD的自動(dòng)路徑規(guī)劃算法效果展示與分析
5.1、RRT算法在復(fù)雜場(chǎng)景下的路徑規(guī)劃結(jié)果分析
??上圖展示了RRT算法在一種比較復(fù)雜的場(chǎng)景下面的路徑規(guī)劃效果展示。當(dāng)前的平面圖中包含有圓形障礙物、矩形障礙物和三角形的障礙物,選擇的起始坐標(biāo)位置是(74.24,750),選擇的終止坐標(biāo)為(377.2, 143.9),對(duì)于這種場(chǎng)景而言,RRT輸出的路徑中雖然成功的躲開(kāi)了所有的障礙物,但是該算法獲得最優(yōu)路徑并不是最優(yōu)的,當(dāng)然也并不是最短的,主要的原因是因?yàn)樵撍惴ㄊ腔陔S機(jī)采樣的思路的,它在很大程度上可以保證獲得最終的路徑,但是該路徑其實(shí)并不一定就是最優(yōu)的。
??上圖展示了RRT算法在一種復(fù)雜場(chǎng)景下面的路徑規(guī)劃效果展示。當(dāng)前的平面圖中障礙物是自己繪制的一個(gè)比較復(fù)雜的障礙物,選擇的起始坐標(biāo)位置是(0,100),選擇的終止坐標(biāo)為(400,0),對(duì)于這種場(chǎng)景而言,RRT輸出的路徑中雖然成功的躲開(kāi)了所有的障礙物,并獲得一個(gè)比較好的路徑規(guī)劃結(jié)果,但是在拐彎的地方RRT算法輸出的結(jié)果并不是最優(yōu)的,獲得的曲線不是很平滑,具有一定的改進(jìn)空間。
??上圖展示了RRT算法在一種復(fù)雜場(chǎng)景下面的路徑規(guī)劃效果展示。當(dāng)前的平面圖中障礙物是自己繪制的一個(gè)比較復(fù)雜的障礙物,選擇的起始坐標(biāo)位置是(0,0),選擇的終止坐標(biāo)為(128.7,37.87),對(duì)于這種場(chǎng)景而言,RRT輸出的路徑中雖然成功的躲開(kāi)了所有的障礙物,并獲得一個(gè)比較好的路徑規(guī)劃結(jié)果,但是在拐彎的地方RRT算法輸出的結(jié)果并不是最優(yōu)的,獲得的曲線不是很平滑,具有一定的改進(jìn)空間。
??上圖展示了RRT算法在一種復(fù)雜場(chǎng)景下面的路徑規(guī)劃效果展示。當(dāng)前的平面圖是通過(guò)目標(biāo)檢測(cè)的結(jié)果繪制的,選擇的起始坐標(biāo)位置是(25.75,13.63),選擇的終止坐標(biāo)為(495.4,343.9),對(duì)于這種場(chǎng)景而言,RRT輸出的路徑中雖然成功的躲開(kāi)了所有的障礙物,并獲得一個(gè)比較好的路徑規(guī)劃結(jié)果,但是算法在尋找終點(diǎn)的時(shí)候花費(fèi)了較長(zhǎng)的時(shí)間,走了很多不必要的路,浪費(fèi)了很長(zhǎng)的時(shí)間,因而該算法的時(shí)間效率不是特別高,具有一定的改進(jìn)空間。
5.2、雙向RRT算法在復(fù)雜場(chǎng)景下的路徑規(guī)劃結(jié)果分析
??上圖展示了雙向RRT算法在一種比較復(fù)雜場(chǎng)景下面的路徑規(guī)劃效果展示。當(dāng)前的平面圖是通過(guò)目標(biāo)檢測(cè)的結(jié)果繪制的,選擇的起始坐標(biāo)位置是(56.06,13.63),選擇的終止坐標(biāo)為(853.0,13.63),對(duì)于這種場(chǎng)景而言,雙向RRT很快就輸出了最優(yōu)的路徑路徑,圖中展示的路徑看起來(lái)比較平滑;對(duì)于同樣的場(chǎng)景而言,RRT算法則需要較長(zhǎng)的搜索時(shí)間,搜索的結(jié)果并不平滑,這在一定程度上展示了雙向RRT算法的優(yōu)勢(shì)。
??上圖展示了雙向RRT算法在一種復(fù)雜場(chǎng)景下面的路徑規(guī)劃效果展示。當(dāng)前的平面圖是通過(guò)繪制得到的,整個(gè)平面中的障礙物比較復(fù)雜,具有多個(gè)峰值和峰谷,這些峰值和峰谷的存在會(huì)對(duì)RTT算法的查找造成一定的困難。選擇的起始坐標(biāo)位置是(22.72,59.09),選擇的終止坐標(biāo)為(534.8,7.575),對(duì)于這種場(chǎng)景而言,雙向RRT很快就輸出了最優(yōu)的路徑路徑,圖中展示的路徑看起來(lái)比較平滑;對(duì)于同樣的場(chǎng)景而言,RRT算法則需要較長(zhǎng)的搜索時(shí)間,搜索的結(jié)果并不平滑,這在一定程度上展示了雙向RRT算法的優(yōu)勢(shì)。
??上圖展示了雙向RRT算法在一種復(fù)雜場(chǎng)景下面的路徑規(guī)劃效果展示。當(dāng)前的平面圖是通過(guò)目標(biāo)檢測(cè)的結(jié)果繪制的,整個(gè)平面中的障礙物比較復(fù)雜,具有多個(gè)不規(guī)則的障礙物,為了增加復(fù)雜度,選擇的起始坐標(biāo)位置是(16.66,59.09),選擇的終止坐標(biāo)為(495.4,346.9),對(duì)于這種場(chǎng)景而言,雙向RRT很快就輸出了最優(yōu)的路徑路徑,圖中展示的路徑看起來(lái)比較平滑;對(duì)于同樣的場(chǎng)景而言,RRT算法則需要較長(zhǎng)的搜索時(shí)間,搜索的結(jié)果并不平滑,這在一定程度上展示了雙向RRT算法的優(yōu)勢(shì)。
5.3、PRM算法在復(fù)雜場(chǎng)景下的路徑規(guī)劃結(jié)果分析
??上圖展示了PRM算法在一種復(fù)雜場(chǎng)景下面的路徑規(guī)劃效果展示。當(dāng)前的平面圖是通過(guò)目標(biāo)檢測(cè)的結(jié)果繪制的,整個(gè)平面中的障礙物比較復(fù)雜,具有多個(gè)不規(guī)則的障礙物,為了增加復(fù)雜度,選擇的起始坐標(biāo)位置是(22.72,383.3),選擇的終止坐標(biāo)為(265.1,219.6),對(duì)于這種場(chǎng)景而言,PRM很快就輸出了最優(yōu)的路徑路徑,即圖中最粗的一條線段,圖中展示的中間結(jié)果包括該算法搜索的一些路徑。我們可以觀察到該算法最終獲得的路徑還是比較平滑的,基本上是一條最優(yōu)的路徑。和RRT算法,該算法的運(yùn)行效率會(huì)比較高,可以在很短的時(shí)間內(nèi)獲得一個(gè)最優(yōu)的路徑。
??上圖展示了PRM算法在一種復(fù)雜場(chǎng)景下面的路徑規(guī)劃效果展示。當(dāng)前的平面圖是通過(guò)手工繪制得到的,整個(gè)平面中的障礙物比較復(fù)雜,具有多個(gè)不規(guī)則的障礙物,為了增加復(fù)雜度,選擇的起始坐標(biāo)位置是(10.60,62.12),選擇的終止坐標(biāo)為(768.1,46.96),對(duì)于這種場(chǎng)景而言,PRM并沒(méi)有找到最優(yōu)的路徑,主要的原因可能是障礙物太過(guò)復(fù)雜,這在一定的程度上顯示了該算法的缺陷,即當(dāng)場(chǎng)景中的障礙物比較復(fù)雜時(shí),PRM算法可能并不能找到最優(yōu)的路徑。
??上圖展示了PRM算法在一種復(fù)雜場(chǎng)景下面的路徑規(guī)劃效果展示。當(dāng)前的平面圖是調(diào)用平面模板1獲得的,整個(gè)平面中的障礙物比較復(fù)雜,為了增加復(fù)雜度,選擇的起始坐標(biāo)位置是(0,0),選擇的終止坐標(biāo)為(1000,1000),對(duì)于這種場(chǎng)景而言,PRM很快就輸出了最優(yōu)的路徑路徑,即圖中最粗的一條線段,圖中展示的中間結(jié)果包括該算法搜索的一些路徑。我們可以觀察到該算法最終獲得的路徑還是比較平滑的,基本上是一條最優(yōu)的路徑。和RRT算法,該算法的運(yùn)行效率會(huì)比較高,可以在很短的時(shí)間內(nèi)獲得一個(gè)最優(yōu)的路徑。
6、總結(jié)與分析
??本文實(shí)現(xiàn)的家居機(jī)器人自動(dòng)路徑規(guī)劃系統(tǒng)巧妙的將視頻捕獲、障礙物檢測(cè)、制作平面映射和路徑規(guī)劃算法結(jié)合起來(lái),能夠很好的處理簡(jiǎn)單的場(chǎng)景和稍微復(fù)雜的平面映射圖,同時(shí)具有實(shí)時(shí)的處理速度,可以應(yīng)用到多個(gè)現(xiàn)實(shí)場(chǎng)景中,具有較廣的實(shí)際應(yīng)用價(jià)值。
??本文實(shí)現(xiàn)的基于家居機(jī)器人的自動(dòng)路徑規(guī)劃系統(tǒng)的應(yīng)用場(chǎng)景主要是針對(duì)室內(nèi)的,而現(xiàn)實(shí)場(chǎng)景中的需求不僅包括室內(nèi)環(huán)境,同時(shí)也會(huì)包含大量的室外場(chǎng)景,因而將本文提出的系統(tǒng)擴(kuò)展到室外場(chǎng)景中是一個(gè)比較好的研究方向;
??本文實(shí)現(xiàn)的基于家居機(jī)器人的自動(dòng)路徑規(guī)劃系統(tǒng)僅僅依賴(lài)于單個(gè)普通的攝像頭來(lái)獲取家庭的環(huán)境信息,而單個(gè)攝像頭能夠獲取到的信息往往比較有限,而多個(gè)攝像頭的協(xié)作可以捕獲到更多有用的信息,另外室內(nèi)場(chǎng)景的深度和紅外等其它信息有助于場(chǎng)景中障礙物的識(shí)別,因而加入多目相機(jī)或深度相機(jī)等其它的信息可以進(jìn)一步提升該系統(tǒng)的性能;
??本文實(shí)現(xiàn)的基于家居機(jī)器人的自動(dòng)路徑規(guī)劃系統(tǒng)中僅僅使用簡(jiǎn)單的目標(biāo)檢測(cè)算法來(lái)進(jìn)行障礙物的檢測(cè),而本系統(tǒng)中使用到的目標(biāo)檢測(cè)算法僅僅能夠識(shí)別出有限種的障礙物,而現(xiàn)實(shí)場(chǎng)景中通常會(huì)存在很多種障礙物,檢測(cè)這些障礙物是進(jìn)行自動(dòng)路徑規(guī)劃的關(guān)鍵一步。因此嘗試著使用其它的障礙物識(shí)別算法可以進(jìn)一步提升該系統(tǒng)的性能;
??本文實(shí)現(xiàn)的基于家居機(jī)器人的自動(dòng)路徑規(guī)劃系統(tǒng)的整個(gè)過(guò)程都是在二維坐標(biāo)系中執(zhí)行的,而我們生活在一個(gè)三維的環(huán)境中;除此之外,自動(dòng)路徑規(guī)劃的應(yīng)用場(chǎng)景大多都是三維場(chǎng)景中,因而實(shí)現(xiàn)一個(gè)3D的自動(dòng)路徑規(guī)劃系統(tǒng)具有更大的實(shí)用性;
??本文實(shí)現(xiàn)的基于家居機(jī)器人的自動(dòng)路徑規(guī)劃系統(tǒng)中僅僅包含了幾種經(jīng)典的自動(dòng)路徑規(guī)劃算法,這些算法的整體性能比較一般,作為一個(gè)系統(tǒng)應(yīng)當(dāng)包含足夠多的算法,這樣就可以根據(jù)真實(shí)場(chǎng)景的需要使用合適的算法,從而規(guī)劃出一個(gè)更好的路徑,因而加入更多的自動(dòng)路徑規(guī)劃算法也是一件值得去做的事情。
注意事項(xiàng)
[1] 該博客是本人原創(chuàng)博客,如果您對(duì)該博客感興趣,想要轉(zhuǎn)載該博客,請(qǐng)與我聯(lián)系(qq郵箱:1575262785@qq.com),我會(huì)在第一時(shí)間回復(fù)大家,謝謝大家的關(guān)注.
[2] 由于個(gè)人能力有限,該博客可能存在很多的問(wèn)題,希望大家能夠提出改進(jìn)意見(jiàn)。
[3] 如果您在閱讀本博客時(shí)遇到不理解的地方,希望您可以聯(lián)系我,我會(huì)及時(shí)的回復(fù)您,和您交流想法和意見(jiàn),謝謝。
[4] 本文測(cè)試的圖片可以通過(guò)該鏈接進(jìn)行下載。網(wǎng)盤(pán)鏈接- 提取碼:2gwr。
[5] 本人業(yè)余時(shí)間承接各種本科畢設(shè)設(shè)計(jì)和各種小項(xiàng)目,包括圖像處理(數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等)、matlab仿真、python算法及仿真等,有需要的請(qǐng)加QQ:1575262785詳聊,備注“項(xiàng)目”!!!
總結(jié)
以上是生活随笔為你收集整理的基于SSD的自动路径规划算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于i 标签盛放背景图像
- 下一篇: YOLT遥感图像检测算法详解