本發(fā)明涉及無(wú)人機(jī)巡檢,具體涉及一種多任務(wù)巡檢的無(wú)人機(jī)航線規(guī)劃方法、系統(tǒng)、介質(zhì)及設(shè)備。
背景技術(shù):
1、本部分的陳述僅僅是提供了與本發(fā)明相關(guān)的背景技術(shù),并不必然構(gòu)成現(xiàn)有技術(shù)。
2、無(wú)人機(jī)航線規(guī)劃是指在無(wú)人機(jī)執(zhí)行遠(yuǎn)距離任務(wù)時(shí)對(duì)飛行航線進(jìn)行規(guī)劃,目前,在無(wú)人機(jī)機(jī)場(chǎng)進(jìn)行無(wú)人機(jī)的自動(dòng)回收和起飛控制已經(jīng)較為成熟。為達(dá)到執(zhí)行任務(wù)時(shí)更高程度的安全性和自動(dòng)化,減少人力和物力的消耗,在執(zhí)行任務(wù)之前進(jìn)行無(wú)人機(jī)航線的規(guī)劃至關(guān)重要。
3、現(xiàn)有的無(wú)人機(jī)航線規(guī)劃方法一般需要依賴高精度的傳感器和復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型。例如,實(shí)時(shí)slam(simultaneous?localization?and?mapping)技術(shù)需要實(shí)時(shí)構(gòu)建地圖以實(shí)現(xiàn)實(shí)時(shí)導(dǎo)航,其對(duì)無(wú)人機(jī)機(jī)載計(jì)算機(jī)的算力要求較高,當(dāng)實(shí)時(shí)地圖構(gòu)建的速度無(wú)法與無(wú)人機(jī)航速適配時(shí),容易出現(xiàn)巡檢區(qū)域的重要特征數(shù)據(jù)缺失的情況;而且,基于視覺(jué)算法構(gòu)建出的地圖僅僅是周邊20米至100米范圍以內(nèi)的地圖,只能用于局部規(guī)劃,無(wú)法適用于無(wú)人機(jī)大范圍多任務(wù)巡檢的路徑規(guī)劃場(chǎng)景。
技術(shù)實(shí)現(xiàn)思路
1、為了解決現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種多任務(wù)巡檢的無(wú)人機(jī)航線規(guī)劃方法、系統(tǒng)、介質(zhì)及設(shè)備,在保證路徑規(guī)劃精度的前提下,不僅能夠有效的避障,而且不依賴于高精度的傳感器,減少了無(wú)人機(jī)的無(wú)效載荷,增加了續(xù)航里程,保證了無(wú)人機(jī)巡航的穩(wěn)定性。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
3、第一方面,本發(fā)明提供了一種多任務(wù)巡檢的無(wú)人機(jī)航線規(guī)劃方法。
4、一種多任務(wù)巡檢的無(wú)人機(jī)航線規(guī)劃方法,包括以下過(guò)程:
5、獲取待巡檢區(qū)域的三維點(diǎn)云數(shù)據(jù);
6、根據(jù)所述三維點(diǎn)云數(shù)據(jù),識(shí)別得到地面點(diǎn)云數(shù)據(jù),進(jìn)而得到待巡檢區(qū)域的地面高度,根據(jù)所述地面高度以及所述三維點(diǎn)云數(shù)據(jù)構(gòu)建八叉樹(shù)模型;
7、在所述八叉樹(shù)地圖上,從無(wú)人機(jī)巡檢的起點(diǎn)至終點(diǎn)連接一條直線路徑,所述直線路徑上的每個(gè)障礙物的兩端分別標(biāo)記為第一端點(diǎn)和第二端點(diǎn),在任一個(gè)障礙物的第一端點(diǎn)和第二端點(diǎn)之間執(zhí)行局部規(guī)劃,得到局部規(guī)劃路徑;
8、所述直線路徑減去各個(gè)障礙物的第一端點(diǎn)與第二端點(diǎn)之間的障礙物路徑,得到剩余直線路徑,將所述局部規(guī)劃路徑與所述剩余直線路徑組合后得到最終的無(wú)人機(jī)航線規(guī)劃結(jié)果。
9、作為本發(fā)明第一方面進(jìn)一步的限定,識(shí)別得到地面點(diǎn)云數(shù)據(jù),進(jìn)而得到待巡檢區(qū)域的地面高度,包括:
10、從所述三維點(diǎn)云數(shù)據(jù)中,取出多組點(diǎn)對(duì),每組點(diǎn)對(duì)構(gòu)成一個(gè)向量;
11、對(duì)任意兩個(gè)向量做叉乘處理得到叉乘結(jié)果,計(jì)算叉乘結(jié)果與向量(0,0,1)的夾角;
12、當(dāng)所述夾角大于或等于設(shè)定閾值時(shí),返回上一步繼續(xù)選取新的兩個(gè)向量做叉乘計(jì)算;否則,判定兩個(gè)向量對(duì)應(yīng)的點(diǎn)對(duì)為地面點(diǎn)并存入地面點(diǎn)容器,對(duì)所有的點(diǎn)對(duì)均進(jìn)行判斷后存入地面點(diǎn)容器;
13、計(jì)算地面點(diǎn)容器內(nèi)的點(diǎn)的高度方差,當(dāng)所述高度方差大于或等于設(shè)定閾值時(shí),從地面點(diǎn)容器內(nèi)取出高度最大和高度最小的點(diǎn)繼續(xù)計(jì)算高度方差,直至所述高度方差小于設(shè)定閾值時(shí),取地面點(diǎn)容器內(nèi)的點(diǎn)的高度均值作為待巡檢區(qū)域的地面高度。
14、作為本發(fā)明第一方面進(jìn)一步的限定,構(gòu)建八叉樹(shù)模型,還包括進(jìn)行八叉樹(shù)模型更新的過(guò)程,包括:
15、輸入更新點(diǎn)云,更新待更新區(qū)域內(nèi)的平面坐標(biāo)并存儲(chǔ)預(yù)置容器;
16、如果所述預(yù)置容器為空,則根據(jù)所述更新點(diǎn)云更新八叉樹(shù)模型的占據(jù)柵格,識(shí)別待更新區(qū)域的地面高度,更新八叉樹(shù)模型的free柵格,得到更新后的八叉樹(shù)模型;
17、如果所述預(yù)置容器不為空,則從預(yù)置容器取出坐標(biāo)(x,y),八叉樹(shù)模型位于(x,y)處的柵格設(shè)置為未知,繼續(xù)判斷所述預(yù)置容器是否為空。
18、作為本發(fā)明第一方面進(jìn)一步的限定,連接起點(diǎn)至終點(diǎn)的直線,判斷起點(diǎn)是否等于終點(diǎn),如起點(diǎn)等于終點(diǎn),則直接輸入路徑,結(jié)束;如判斷起點(diǎn)不等于終點(diǎn),則沿直線取起點(diǎn)的下一節(jié)點(diǎn)next;
19、判斷下一節(jié)點(diǎn)next是否占據(jù)柵格,如下一節(jié)點(diǎn)next不占據(jù)柵格,則將起點(diǎn)存儲(chǔ)path容器,并將當(dāng)前的下一節(jié)點(diǎn)next賦值給起點(diǎn),以更新起點(diǎn),并采用更新的起點(diǎn)繼續(xù)沿直線取下一節(jié)點(diǎn)next,并繼續(xù)判斷下一節(jié)點(diǎn)next是否占據(jù)柵格;
20、如下一節(jié)點(diǎn)next占據(jù)柵格,則沿直線取下一節(jié)點(diǎn)next的再下一個(gè)節(jié)點(diǎn)a,判斷a點(diǎn)是否占據(jù)柵格,如是,則沿直線取a點(diǎn)的下一節(jié)點(diǎn)b,并將b點(diǎn)賦值給a點(diǎn),以更新a點(diǎn)的值,繼續(xù)判斷a是否占據(jù)柵格;
21、當(dāng)a沒(méi)有占據(jù)柵格時(shí),采用breadth?first?search搜索算法搜索從當(dāng)前更新的起點(diǎn)至a點(diǎn)的路徑,搜索出的路徑點(diǎn)存入path容器,并將a點(diǎn)的值賦給起點(diǎn),以更新起點(diǎn),返回繼續(xù)判斷當(dāng)前更新的起點(diǎn)是否等于終點(diǎn)。
22、作為本發(fā)明第一方面進(jìn)一步的限定,將無(wú)人機(jī)巡檢的起點(diǎn)至終點(diǎn)的直線劃分成多段,每段對(duì)應(yīng)一個(gè)子起點(diǎn)和子終點(diǎn),在各個(gè)子起點(diǎn)和子終點(diǎn)之間進(jìn)行路徑規(guī)劃,最終將各段的規(guī)劃結(jié)果相加得到起點(diǎn)至終點(diǎn)的規(guī)劃結(jié)果。
23、第二方面,本發(fā)明提供了一種多任務(wù)巡檢的無(wú)人機(jī)航線規(guī)劃系統(tǒng)。
24、一種多任務(wù)巡檢的無(wú)人機(jī)航線規(guī)劃系統(tǒng),包括:
25、數(shù)據(jù)獲取單元,被配置為:獲取待巡檢區(qū)域的三維點(diǎn)云數(shù)據(jù);
26、八叉樹(shù)構(gòu)建單元,被配置為:根據(jù)所述三維點(diǎn)云數(shù)據(jù),識(shí)別得到地面點(diǎn)云數(shù)據(jù),進(jìn)而得到待巡檢區(qū)域的地面高度,根據(jù)所述地面高度以及所述三維點(diǎn)云數(shù)據(jù)構(gòu)建八叉樹(shù)模型;
27、局部規(guī)劃單元,被配置為:在所述八叉樹(shù)地圖上,從無(wú)人機(jī)巡檢的起點(diǎn)至終點(diǎn)連接一條直線路徑,所述直線路徑上的每個(gè)障礙物的兩端分別標(biāo)記為第一端點(diǎn)和第二端點(diǎn),在任一個(gè)障礙物的第一端點(diǎn)和第二端點(diǎn)之間執(zhí)行局部規(guī)劃,得到局部規(guī)劃路徑;
28、總體規(guī)劃單元,被配置為:所述直線路徑減去各個(gè)障礙物的第一端點(diǎn)與第二端點(diǎn)之間的障礙物路徑,得到剩余直線路徑,將所述局部規(guī)劃路徑與所述剩余直線路徑組合后得到最終的無(wú)人機(jī)航線規(guī)劃結(jié)果。
29、作為本發(fā)明第二方面進(jìn)一步的限定,八叉樹(shù)構(gòu)建單元中,識(shí)別得到地面點(diǎn)云數(shù)據(jù),進(jìn)而得到待巡檢區(qū)域的地面高度,包括:
30、從所述三維點(diǎn)云數(shù)據(jù)中,取出多組點(diǎn)對(duì),每組點(diǎn)對(duì)構(gòu)成一個(gè)向量;對(duì)任意兩個(gè)向量做叉乘處理得到叉乘結(jié)果,計(jì)算叉乘結(jié)果與向量(0,0,1)的夾角;
31、當(dāng)所述夾角大于或等于設(shè)定閾值時(shí),返回上一步繼續(xù)選取新的兩個(gè)向量做叉乘計(jì)算;否則,判定兩個(gè)向量對(duì)應(yīng)的點(diǎn)對(duì)為地面點(diǎn)并存入地面點(diǎn)容器,對(duì)所有的點(diǎn)對(duì)均進(jìn)行判斷后存入地面點(diǎn)容器;
32、計(jì)算地面點(diǎn)容器內(nèi)的點(diǎn)的高度方差,當(dāng)所述高度方差大于或等于設(shè)定閾值時(shí),從地面點(diǎn)容器內(nèi)取出高度最大和高度最小的點(diǎn)繼續(xù)計(jì)算高度方差,直至所述高度方差小于設(shè)定閾值時(shí),取地面點(diǎn)容器內(nèi)的點(diǎn)的高度均值作為待巡檢區(qū)域的地面高度。
33、作為本發(fā)明第二方面進(jìn)一步的限定,局部規(guī)劃單元中,連接起點(diǎn)至終點(diǎn)的直線,判斷起點(diǎn)是否等于終點(diǎn),如起點(diǎn)等于終點(diǎn),則直接輸入路徑,結(jié)束;如判斷起點(diǎn)不等于終點(diǎn),則沿直線取起點(diǎn)的下一節(jié)點(diǎn)next;
34、判斷下一節(jié)點(diǎn)next是否占據(jù)柵格,如下一節(jié)點(diǎn)next不占據(jù)柵格,則將起點(diǎn)存儲(chǔ)path容器,并將當(dāng)前的下一節(jié)點(diǎn)next賦值給起點(diǎn),以更新起點(diǎn),并采用更新的起點(diǎn)繼續(xù)沿直線取下一節(jié)點(diǎn)next,并判斷下一節(jié)點(diǎn)next是否占據(jù)柵格;
35、如下一節(jié)點(diǎn)next占據(jù)柵格,則沿直線取next的下一個(gè)節(jié)點(diǎn)a,判斷a點(diǎn)是否占據(jù)柵格,如是,則沿直線取a點(diǎn)的下一節(jié)點(diǎn)b,并將b點(diǎn)賦值給a點(diǎn),以更新a點(diǎn)的值,繼續(xù)判斷a是否占據(jù)柵格;
36、當(dāng)a沒(méi)有占據(jù)柵格時(shí),采用breadth?first?search搜索算法搜索從當(dāng)前更新的起點(diǎn)至a點(diǎn)的路徑,搜索出的路徑點(diǎn)存入path容器,并將a點(diǎn)的值賦給起點(diǎn),以更新起點(diǎn),返回繼續(xù)判斷當(dāng)前更新的起點(diǎn)是否等于終點(diǎn)。
37、第三方面,本發(fā)明提供了一種計(jì)算機(jī)設(shè)備,包括:處理器和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);
38、處理器,適于執(zhí)行計(jì)算機(jī)程序;
39、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時(shí),實(shí)現(xiàn)如本發(fā)明第一方面所述的多任務(wù)巡檢的無(wú)人機(jī)航線規(guī)劃方法。
40、第四方面,本發(fā)明提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序適于被處理器加載并執(zhí)行如本發(fā)明第一方面所述的多任務(wù)巡檢的無(wú)人機(jī)航線規(guī)劃方法。
41、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
42、本發(fā)明創(chuàng)新性的提出了一種多任務(wù)巡檢的無(wú)人機(jī)航線規(guī)劃方法,在保證路徑規(guī)劃精度的前提下,不僅能夠有效的避障,而且不依賴于高精度的傳感器,減少了無(wú)人機(jī)的無(wú)效載荷,增加了續(xù)航里程,保證了無(wú)人機(jī)巡航的穩(wěn)定性;通過(guò)預(yù)先采集數(shù)據(jù)來(lái)構(gòu)建地圖,保證了地圖數(shù)據(jù)的可靠性和準(zhǔn)確性,避免了實(shí)時(shí)建圖時(shí)重要特征丟失問(wèn)題,節(jié)省了計(jì)算量,實(shí)現(xiàn)了全局規(guī)劃與障礙物附近局部規(guī)劃的融合,無(wú)需復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型,提高了無(wú)人機(jī)多任務(wù)巡檢時(shí)的航線規(guī)劃的環(huán)境適應(yīng)性。
43、本發(fā)明附加方面的優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。